内容介绍
内容介绍
一、项目介绍
本项目基于PIC-IOTWA平台开发,实现了基于板上光照传感器识别手指数量的功能。项目具体要求如下
尝试搭建一个手指数量辨识工具。板卡上集成了光照传感器,将板卡平放后,伸出不同数量的手指在板卡上挥动,识别出有几根手指
二、平台介绍
本项目依托PIC-IoT WA 开发板实现,主控为功能强大的 PIC24FJ128GA705 MCU,硬件上包含
- 控制器包含两个主要组件:PIC微控制器(PIC24FJ128GA705)和Wi-Fi模块(WINC1510)。PIC24F是一款低功耗的16位微控制器,时钟频率为32MHz,具有集成的12位ADC。Wi-Fi模块采用Microchip的ATWINC1510,是低功耗认证的IoT网络控制器。
- 板载ATECC608的密码协处理器。用于生成私钥和公钥,私钥用于加密发送的每条消息,而公钥可与服务提供商(如Google IoT cloud或AWS)共享。
- 板载传感器包括TEMT6000X01光传感器和MCP9808温度传感器。光传感器连接到PIC控制器的10位ADC,温度传感器通过I2C接口测量-20℃至100℃之间的温度,典型精度为0.25 ℃。
- PIC IoT WA开发板可通过微型USB端口或4.2V锂电池供电,同时具有板上编程仿真器和调试器(PKOB)支持一路串口和一个IO的逻辑分析功能。
此外,该开发板还具有功耗低,安全验证、支持多种无线连接方式等特点
三、实现思路
项目基于Maplab IDE开发,利用板上光照传感器获取光照强度以获得手指的经过信息,之后对比此时刻光照与上一时刻光照的大小关系,更新状态机状态。
状态1:此时可光照强度大于上一时刻时,有手指离开;
状态2:此时刻光照强度等于上一时刻时,无手指经过;
状态3:此时刻光照强度小于上一时刻时,有手指进入;
由状态3转换为状态1时,意味着有一根手指完整经过了光照传感器,计数+1,由状态1转为状态2时,意味着手指已全部经过,输出并清空计数。
为避免状态频繁切换,对比大小关系时增添了阈值;为避免采样过快导致误判,降低了采样频率。
四、代码与实现效果
项目采用MaplabIDE自带的MMC进行内部配置,可直接选择目标管脚以及内部资源,结合原理图配置引脚如下,串口与ADC不再赘述
主程序如下,MCC自动生成的配置文件不再展示
while (1)
{
// Add your application code
//Initialize for channel scanning
ADC1_Start();
for(int i=0;i <1000;i++)
{
}
ADC1_Stop();
while(!ADC1_IsConversionComplete())
{
this_value = ADC1_ConversionResultGet();
}
for(int i=0;i <interval;i++)
{
}
if (this_value-last_value>gap)
{
if (state==down)
{
count++;
}
state=up;
}
if (this_value-last_value<-gap)
{
state=down;
}
if(this_value-last_value>-gap & this_value-last_value<gap)
{
if (state==up)
{
printf("finger num %i \n",count);
count=0;
}
state=hold;
}
last_value=this_value;
switch(state){
case hold: led1_SetLow();led2_SetHigh();led3_SetHigh();break;
case up: led1_SetHigh();led2_SetLow();led3_SetHigh();break;
case down: led1_SetHigh();led2_SetHigh();led3_SetLow();break;
}
}
实际效果见视频
五、遇到的困难
在开发过程中出现了串口无法发送信息至计算机的问题,后经过排查发现仅配置了串口但为分配相应引脚,导致未发送信息。
六、感想与体会
本项目中使用MPLAB开发,简单易操作的配置方式可快速构建项目并开发,省去了不少配置资源的工作,是非常好用的开发工具。未来期望再次参加活动,了解并学习更多的知识,掌握更多的技能,开拓电子芯片在生活中运用的视野。
附件下载
finger.X.zip
团队介绍
某不知名工程师
评论
0 / 100
查看更多
猜你喜欢
Funpack3-2 EV54Y39A 基于光传感器的手指数量辨识及显示该项目使用了EV54Y39A开发板和板载光照传感器TEMT6000X01,实现了辨识手指数量的设计,它的主要功能为:当手指在开发板上方挥动时,可识别手指数量,并在oled中显示出识别的手指数量。
TetraPak
116
Funpack3-2 基于EV54Y39A的手指数量辨识工具该项目使用了EV54Y39A,实现了手指计数的设计,它的主要功能为:手指数量辨识工具。
星辰i
117
Funpack3-2,使用EV54Y39A板卡的光传感器完成手指数量识别该项目使用了EV54Y39A板卡上的TEMT6000,实现了手指数量识别的设计,它的主要功能为:将板卡平放后,伸出不同数量的手指在板卡的光照传感器上挥动,识别出有几根手指。
小熊熊
91