目前官方给了基础的运行环境,人脸识别、数据库、显示都是现成的,目前缺的轮子就是人脸识别后,如果控制门禁的开关。其实如何控制开关也就是gpio的控制。
【改造切入点】
EASY EAI灵眸科技 | 让边缘AI落地更简单 (easy-eai.com)在官方的人脸识别方案里增加GPIO的“轮子”。
git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-C-Solution.git克隆仓库下来。
用QT或者其他的代码编辑器增加对GPIO的控制。
控制函数如下:
int setLed(void)
{
FILE *fp=NULL;
int i;
printf("stat led!
");
fp = fopen("/sys/class/gpio/export","w");
if(fp == NULL)
{
printf("opne export fial
");
return -1;
}
else
{
fprintf(fp,"%d",107); //Bank*32+PinGround(0、8、16、24)+PinNumP 这里使用GPIO3_B3,最终序号为3*32+8+2=107
i=fclose(fp);
if(i==0)
{
printf("File close OK!
");
}
}
fp = fopen("/sys/class/gpio/gpio107/direction","w");
if(fp == NULL)
{
printf("opne direction fial
");
return -1;
}
else
{
fprintf(fp,"out");
i=fclose(fp);
if(i==0)
{
printf("File close OK!
");
}
}
fp = fopen("/sys/class/gpio/gpio107/value","w");
if(fp == NULL)
{
printf("opne write val fail
");
return -1;
}
else
{
printf("opend LED
");
fprintf(fp,"%d",1);
i=fclose(fp);
if(i==0)
{
printf("File close OK!
");
}
}
sleep(1);
fp = fopen("/sys/class/gpio/gpio107/value","w");
if(fp == NULL)
{
printf("opne write val fail
");
return -1;
}
else
{
printf("close LED
");
fprintf(fp,"%d",0);
i=fclose(fp);
if(i==0)
{
printf("File close OK!
");
}
}
fp = fopen("/sys/class/gpio/unexport","w");
if(fp == NULL)
{
printf("un export fial
");
return -1;
}
else
{
fprintf(fp, "%d",107);
i=fclose(fp);
if(i==0)
{
printf("File close OK!
");
}
}
return 0;
}
把这段代码加入到
/EASY-EAI-Toolkit-C-Solution/solu-faceRecognition/src/main.cpp中
然后在主程序的人脸识别成功后插入函数执行。
编译好后上传到开发板。执行后识别到人脸就可以打开LED灯了。
门禁视频演示
本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。
原文标题:【经验分享】EASY EAI Nano开源套件试用体验——门禁改造之一
文章出处:【微信公众号:电子发烧友william hill官网 】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !