手势控制机器人:基于 Arduino UNO 的免手操作项目
组件与物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | |
| SparkFun 三轴加速度计模块 ADXL335 | 1 | |
| 434MHz RF 模块 | 1 | 发射/接收各一 |
| HT12D 解码器 | 1 | 接收端 |
| HT12E 编码器 | 1 | 发射端 |
| SparkFun 双 H 桥驱动器 L298 | 1 | |
| 通用万能板 | 1 | |
| 7805 线性稳压器 | 2 | 发射端和接收端各一 |
| 直流电机(通用) | 1 | 实际需两个电机驱动左右轮 |
应用与在线服务
- Arduino IDE
项目简介
更新:本项目更新版见此处
简介:我一直想像老板一样坐在椅子上用手控制一切!于是我做了这个 DIY 手势识别机器人,通过手势指挥它移动。听起来疯狂但其实很简单。手势控制机器人制作非常简单,这是我之前用 RF 模块做的遥控小车的改进版。
机器人分为发射端(遥控器)和接收端(小车)。接收电路与旧版相同,发射端只需加上编程。使用 Arduino 作为编程平台,用加速度计传感器识别手势。开始制作!
观看机器人演示
它是什么?如何工作?
什么是加速度计 (ADXL335)?

简而言之,加速度计是测量三轴加速度的装置。这里用的 ADXL335 有 X、Y、Z 三轴。现在几乎所有智能手机都有加速度计(虽然我们不从手机拆)。你一定玩过体感游戏(如 Temple Run),角色随手机倾斜左右移动,就是加速度计的功劳。手机里还有陀螺仪,这里不需要。
如何工作并识别手势?
机器人大脑是 Arduino Uno (Atmega32),烧录特定代码。手部手势/运动由加速度计 (ADXL335) 识别。

加速度计读取手势产生的 X、Y、Z 坐标并发送给 Arduino(此处只需 X、Y,忽略 Z)。Arduino 根据坐标值发送 4 位代码给编码器 IC (HT12E),编码器将数据传给发射模块。接收端 RF 接收模块收到数据传给解码器 IC (HT12D),解码器再传给电机驱动 IC (L298),驱动器控制两个电机按需转向。
制作电源模块
需要两套电源:发射端用 9V 电池,接收端用 12V 电源(因使用 12V 电机)。

按右图接线。可加一个 LED 经 1k 电阻指示电源状态。

- IC 7805 将 12V 降为 5V(若无 12V 可用 9V)
- 0.1μF 和 470μF 电容
- 1k 电阻驱动状态 LED
注意:7805 必须加散热片,因为压降 7V (12-5) 会产生大量热量,否则会烧毁稳压器。
制作发射端(遥控器)
发射端包含检测手势的加速度计,数据经 Arduino 处理后发送给编码器 IC,再经发射模块发出。接线如下:

注意: 某些加速度计工作电压 3.3V,5V 可能损坏。请查阅供应商文档确认正确电压。
发射端示意图:

上传代码到 Arduino
更新后的代码见下文。
制作接收端

接收电路包含两个 IC (HT12D 解码器, L293D 电机驱动) 和 RF 接收模块。按上图原理图接线。接收板上有两个 LED:一个指示接收端供电,另一个指示发射端供电(靠近 HT12D 的 LED 应亮起,表示有效传输 VT)。若不亮,检查连接或 RF 模块。
想了解接收端更多细节,请阅读这篇文章。
机器人能识别哪些手势?
设计识别五组手势:前进、后退、左转、右转、停止。下图展示手势姿势:





享受驾驶你的机器人吧!
缩小尺寸并做成永久电路
Arduino Uno 戴在手上太大笨重。若想用 Arduino 做其他项目,拆除连接会丢失之前工作。我不喜欢这样,所以想出永久化方案。可参考这篇文章学习如何缩小 Arduino 项目。

下载独立版 PCB 布局(镜像版):
standalone_etch_copper_top_mirror1.pdf
standalone_etch_copper_top1.pdf
观看视频:我将代码烧录到 Atmega8 MCU,仅用 LED 显示输出。
关注我的博客获取新项目。有疑问请在博客留言,我在那里更常回复。
制造工艺
- 蓝牙控制树莓派机器人:语音反馈功能构建指南
- 树莓派手势控制机器人:告别按键,挥手即达
- 在树莓派 2 上用 Windows 10 IoT Core 构建语音控制机器人
- 用 Python 构建 Wi-Fi 控制的树莓派机器人:分步指南
- ROObockey:精准辅助的遥控街头曲棍球机器人
- 手势控制 RGB 台灯 —— 交互式免手操作照明
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- 智能 Arduino 水杯:实时监测饮水量与智能提醒
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- 以太网远程控制机械臂 — 基于 Arduino 101 与 WIZ750SR
- MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
- 手引导协作机器人:安全标准解析