当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]几年前,我创建了一个支持手势交互的嵌入式项目,允许用户通过向左或向右滑动来翻页。然而,一直困扰我的一个问题是,传统的手势传感器依赖于光信号,这意味着它们必须保持畅通无阻。这需要切一个洞来暴露传感器,这看起来并不美观。所以,我想知道:有没有一种方法可以隐藏手势传感器,同时保持良好的性能?这是一个我一直无法解决的挑战。

几年前,我创建了一个支持手势交互的嵌入式项目,允许用户通过向左或向右滑动来翻页。然而,一直困扰我的一个问题是,传统的手势传感器依赖于光信号,这意味着它们必须保持畅通无阻。这需要切一个洞来暴露传感器,这看起来并不美观。所以,我想知道:有没有一种方法可以隐藏手势传感器,同时保持良好的性能?这是一个我一直无法解决的挑战。

现在,当我开始创建另一个有趣的互动项目时,我开始再次寻找符合我要求的手势传感器。我不仅找到了一个,而且它也更强大——提供更高的灵敏度、更高的精度,甚至可以精确地跟踪手部运动的3D空间。有了这个,我可以在我的项目中加入更多创造性的互动。

最后,我成功地集成了一个可以通过实体物体检测运动的手势传感器。它使用I2C协议,使其相对容易与微控制器接口。复杂的算法预先配置并存储在传感器的固件中,允许微控制器通过简单的I2C通信检测手势。

代码

/**

* @fn begin

* @brief initialization function

* @return bool,returns the initialization status

* @retval true Initialization succeeded

* @retval fasle Initialization failed

*/

bool begin(void);

/**

* @fn reset

* @brief reset the sensor

*/

void reset(void);

/**

* @fn sensorDataRecv

* @brief get the sensor data

*/

void sensorDataRecv(void);

/**

* @fn enableGestures

* @brief enable gesture recognition function

* @return Result of enabling gesture recognition

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t enableGestures(void);

/**

* @fn disableGestures

* @brief turn off gesture recognition function

* @return Result of disabling gesture recognition

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t disableGestures(void);

/**

* @fn disableAirWheel

* @brief turn off AirWheel function

* @return Result of disabling AirWheel function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t disableAirWheel(void);

/**

* @fn enableAirWheel

* @brief enable AirWheel function

* @return Result of enabling AirWheel function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t enableAirWheel(void);

/**

* @fn disableApproachDetection

* @brief turn off proximity detection function

* @return Result of disabling proximity detection function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t disableApproachDetection(void);

/**

* @fn enableApproachDetection

* @brief enable proximity detection function

* @return Result of enabling proximity detection function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t enableApproachDetection(void);

/**

* @fn disableTouchDetection

* @brief turn off touch detection function

* @return Result of disabling touch detection function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t disableTouchDetection(void);

/**

* @fn enableTouchDetection

* @brief enable touch detection function

* @return Result of enabling touch detection function

* @retval -1 setup fails

* @retval 0 setup succeeds

*/

int8_t enableTouchDetection(void);

/**

* @fn getPositionX

* @brief get the X-axis position

* @return X-axis position

*/

uint16_t getPositionX(void);

/**

* @fn getPositionY

* @brief get the Y-axis position

* @return Y-axis position

*/

uint16_t getPositionY(void);

/**

* @fn getPositionZ

* @brief get the Z-axis position

* @return Z-axis position

*/

uint16_t getPositionZ(void);

/**

* @fn getTouchInfo

* @brief get touch information

* @return touch information

* @retval eDoubleTapCenter Double Tap Center electrode

* @retval eDoubleTapRight Double Tap Right electrode

* @retval eDoubleTapUp Double Tap Up electrode

* @retval eDoubleTapLeft Double Tap Left electrode

* @retval eDoubleTapDown Double Tap Down electrode

* @retval eTapCenter Tap Center electrode

* @retval eTapRight Tap Right electrode

* @retval eTapUp Tap Up electrode

* @retval eTapLeft Tap Left electrode

* @retval eTapDown Tap Down electrode

* @retval eTouchCenter Touch Center electrode

* @retval eTouchRight Touch Right electrode

* @retval eTouchUp Touch Up electrode

* @retval eTouchLeft Touch Left electrode

* @retval eTouchDown Touch Down electrode

*/

uint16_t getTouchInfo(void);

/**

* @fn getGestureInfo

* @brief get gesture information

* @return gesture information

* @retval eFilckR Flick Left to Right

* @retval eFilckL Flick Right to Left

* @retval eFilckU Flick Down to Up

* @retval eFilckD Flick Up to Down

* @retval eCircleClockwise Circle clockwise (only active if AirWheel disabled)

* @retval eCircleCounterclockwise Circle counterclockwise (only active if AirWheel disabled)

*/

uint8_t getGestureInfo(void);

/**

* @fn havePositionInfo

* @brief monitor position information

* @return Results of monitoring position information

* @retval true position information exists

* @retval false There is no position information

*/

bool havePositionInfo(void);

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2025年9月4日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 宣布与电子元器件制造商、连接器领域创新企业Molex合作推出全新互动电子书《The El...

关键字: 机器人 连接器 传感器

面对市场对更智能产品、更短设计周期以及更高效灵活生产流程的需求日益增长,设计与制造企业纷纷借助人工智能,推动业务流程迈向新高度。凭借处理复杂数据的卓越能力与传递智能洞见的便捷性,人工智能已准备好在工业价值链的各个环节承担...

关键字: 人工智能 工业物联网 传感器

传感器模块能实现便捷无接触的后备箱或侧滑门开启,适配各种车辆架构 该24 GHz雷达传感器可集成于保险杠或底盘上,并通过特定的手势或脚部动作触发响应 已为多家欧洲主流车企启动量产交付 德国布尔2025...

关键字: 传感器 BSP 触发 保险杠

提升工业系统智能化的方法有多种,其中包括将边缘和云端人工智能(AI)技术应用于配备模拟和数字器件的传感器。鉴于AI技术方法的多样性,传感器设计人员需要考虑多个相互冲突的要求,包括决策延迟、网络使用、功耗/电池寿命以及适合...

关键字: 人工智能 传感器 AI

【2025年8月29日,中国上海讯】近日,第二十届全国大学生智能汽车竞赛(以下简称“智能车大赛”)总决赛在杭州举办并圆满结束。作为大赛主协办单位,英飞凌科技从技术支持与人才培养上全方位支持赛事,践行产学研合作,助力行业人...

关键字: 微控制器 LED驱动芯片 人机交互

不久前,作为行业领先的传感器和电源解决方案的领导者之一——Allegro携手合作伙伴成功举办《Allegro高速电机位置检测解决方案,赋能未来智能驱动》线上技术研讨会。基于在磁传感领域的技术积淀与持续创新,Allegro...

关键字: 传感器 汽车电子

现已推出评估套件、软件和文档,可帮助可穿戴设备和医疗保健领域的开发人员优化电源管理

关键字: 电池 电量计 传感器

【2025年8月26日,德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)宣布携手NVIDIA Technology(简称:NVIDIA 英伟达,...

关键字: 机器人 传感器 智能执行器

在工业物联网(IIoT)与边缘计算快速发展的背景下,Modbus协议凭借其轻量化特性成为微控制器(MCU)设备互联的首选方案。然而,在资源受限的MCU(如STM32F0系列、ESP8266等,RAM通常小于32KB,Fl...

关键字: 微控制器 Modbus 工业物联网

在工业物联网设备开发中,Modbus从站功能已成为微控制器(MCU)的标配能力。某智能电表项目通过在STM32上实现Modbus RTU从站,成功将设备接入现有SCADA系统,开发周期缩短40%。本文将系统解析MCU实现...

关键字: 微控制器 Modbus 协议栈优化
关闭