Funpack3-2 基于EV54Y39A的手指数量辨识工具
该项目使用了EV54Y39A,实现了手指计数的设计,它的主要功能为:手指数量辨识工具。
标签
Funpack活动
EV54Y39A
手指数量辨识工具
星辰i
更新2024-06-04
100

项目描述

项目介绍

尝试搭建一个手指数量辨识工具。板卡上集成了光照传感器,将板卡平放后,伸出不同数量的手指在板卡上挥动,识别出有几根手指。

设计思路

本项目通过板卡上的光照传感器捕捉用户手指挥动时产生的光照变化。当用户伸出不同数量的手指在板卡上挥动时,由于手指遮挡光源,会产生不同的光照变化模式。系统通过分析这些光照变化模式,结合算法进行特征提取和模式识别,最终辨识出手指的数量。

硬件介绍

PIC-IoT WA 开发板将功能强大的 PIC24FJ128GA705 MCU、ATECC608A CryptoAuthentication™ 安全元件 IC 和经过全面认证的 ATWINC1510 Wi-Fi® 网络控制器结合在一起,为嵌入式应用连接到云端网络服务 (AWS或Google等) 提供了最简单有效的方法。该电路板还包括一个板载调试器,无需外部硬件即可对 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的逻辑分析功能。

特点:

  • 智能:PIC24FJ128GA705 超低功耗MCU
  • 安全:ATECC608安全身份验证
  • 连接:WINC1500 Wi-Fi 支持2.4GHz b/g/n

软件流程图


主要代码片段及说明

初始化部分

void application_init(void)
{
SYSTEM_Initialize();
timeout_flushAll();
LED_test();
SENSORS_getLightValue();
DELAY_milliseconds(100);
light_default += SENSORS_getLightValue();
DELAY_milliseconds(100);
light_default += SENSORS_getLightValue();
DELAY_milliseconds(100);
light_default += SENSORS_getLightValue();
DELAY_milliseconds(100);
light_default /= 3;
light_occlusion = light_default / 2;
printf("light_occlusion:%d\r\n", light_occlusion);
}


主代码

void runScheduler(void)
{
light = SENSORS_getLightValue();
if(light < light_occlusion && mode == 0)
{
count = 0;
mode = 1;
fingers++;
}
else if(light >= light_occlusion && mode == 1)
{
mode = 0;
}
if(fingers > 0 && count > 100)
{
printf("fingers num:%d\r\n", fingers);
fingers = 0;
}
count++;
DELAY_milliseconds(10);
}


光照传感器读取

#define MCP9809_ADDR				0x18 
#define MCP9808_REG_TA 0x05
#define LIGHT_SENSOR_ADC_CHANNEL LIGHT_AN

uint16_t SENSORS_getLightValue(void)
{
return ADC1_GetConversion(LIGHT_SENSOR_ADC_CHANNEL);
}

int16_t SENSORS_getTempValue (void)
{
int32_t temperature;

temperature = i2c_read2ByteRegister(MCP9809_ADDR, MCP9808_REG_TA);

temperature = temperature << 19;
temperature = temperature >> 19;

temperature *= 100;
temperature /= 16;

return temperature;
}


功能展示及说明

见视频

对本活动的心得体会(包括意见或建议)

通过这次尝试搭建手指数量辨识工具的过程,我深刻体会到了理论与实践相结合的重要性。在理论层面,我深入学习了光照传感器的工作原理和模式识别算法等知识;在实践层面,我通过动手搭建硬件、编写算法和进行实验验证等方式,将理论知识应用于实际问题中,并取得了一定的成果。

此外,我还学到了如何在面对困难和挑战时保持冷静和耐心。在项目中,我遇到了许多意想不到的问题和挑战,但我没有放弃或气馁,而是积极寻求解决方案并不断完善和改进自己的工作。这种心态和态度对于未来的学习和工作都是非常重要的。

总之,这次尝试搭建手指数量辨识工具的过程让我收获了很多宝贵的经验和教训。我相信在未来的学习和工作中,我会更加努力地学习和实践,不断提高自己的能力和水平。

附件下载
代码.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号