【Funpack3-2——EV54Y39A】光照传感器识别手指数量
该项目使用了EV54Y39A板卡以及MplabIDE,实现了光照传感器识别手指数量的设计,它的主要功能为:依靠片上集成的光照传感器,结合状态机设计,伸出手指在强光环境下在板上挥舞,可以识别手指数量并通过串口发送至计算机。
标签
Funpack活动
MPU
ADC
张伟伟
更新2024-06-04
87

一、项目介绍

本项目基于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的逻辑分析功能。

此外,该开发板还具有功耗低,安全验证、支持多种无线连接方式等特点

board-2.png

三、实现思路

项目基于Maplab IDE开发,利用板上光照传感器获取光照强度以获得手指的经过信息,之后对比此时刻光照与上一时刻光照的大小关系,更新状态机状态。

状态1:此时可光照强度大于上一时刻时,有手指离开;

状态2:此时刻光照强度等于上一时刻时,无手指经过;

状态3:此时刻光照强度小于上一时刻时,有手指进入;

由状态3转换为状态1时,意味着有一根手指完整经过了光照传感器,计数+1,由状态1转为状态2时,意味着手指已全部经过,输出并清空计数。

为避免状态频繁切换,对比大小关系时增添了阈值;为避免采样过快导致误判,降低了采样频率。

图片.png

四、代码与实现效果

项目采用MaplabIDE自带的MMC进行内部配置,可直接选择目标管脚以及内部资源,结合原理图配置引脚如下,串口与ADC不再赘述

图片.png

主程序如下,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
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号