该无线控制的机器人汽车使用手势:手的倾斜/方向来向前、向后、向左或向右行驶。
说到机器人,手势控制机器人是业余爱好者和学生在物理和实际项目中理解和实施微控制器知识的最常见的项目类型之一。其背后的概念很简单:手掌的方向控制机器人汽车的运动。但如果你要问它是怎么做到的?那就得让我们仔细分解一下。
为了更好地理解,我们将通过了解每个组件的角色和功能,然后将它们组合起来以实现所需的性能。
1. ADXL335(加速度计)
加速度计的功能很简单:感知手腕的方向。加速度计测量加速度,包括重力加速度“g”。因此,我们可以使用加速度计通过测量 ADXL335 任何特定轴上的“g”分量来感知手腕的方向,如下图所示:
由于手的倾斜,X 和/或 Y 轴的角度随垂直方向发生变化,因此“g”加速度的分量也作用在它们上,这可以被测量并因此指示手的方向。
ADXL335 可以测量高达 3g 的加速度,并通过将其轴引脚连接到 Arduino 的模拟引脚来与 Arduino 接口。加速度计输出与加速度成比例的电压值。
在这个项目中,加速度计连接到 Arduino Nano 并附在手掌上。ADXL335 输出电压范围为 0 到 Vcc(施加电压通常为 3.3V),并由 Arduino 的模拟引脚读取。因此对于用户来说,我们得到一个范围从 0 到 1024(10 位 ADC)的值。不同的方向为每个轴产生不同的模拟值,然后映射到不同的机器人运动。
加速度计的电路图是:
了解 ADXL335 工作的测试代码如下:
你可以运行这个程序来查看你的手掌和手腕向前、向后、向左和向右倾斜的值,这些值最终将用于控制机器人。
2. RF-433 发射器和接收器
RF模块的功能很简单:将手腕Arduino Nano的命令数据传输到控制Arduino Uno的电机。RF 模块使用 433hz 频率的无线电波,因此命名为 RF-433。它们使用幅度调制来发送数据,但不会涉及太多技术细节并保持简单,它们将用于向机器人传输命令,即:向前、向后、向右或向左移动。在没有数据的情况下,静止不动。它们的工作范围可达 10 米。
现在要了解如何在我们的项目中实现射频模块,让我们依次处理发射器和接收器电路。
发射器电路
发射器电路由两部分组成:发射器RF和编码器HT12E。发射器由一个数据引脚、一个天线、一个接地和电源组成。向发送器提供数据是HT12E编码器的工作。编码器由 4 个可以发送数据的数据引脚组成。我们将使用这 4 个数据引脚来表示四种运动,这些引脚上的高电平将分别表示四种运动之一,所有引脚上的低电平表示静止。
电路图如图所示:
左侧引脚(A0-A7)是地址引脚,定义了将交换数据的对(具有相同地址的发送器和接收器将仅共享数据)。我们将 A0-A7 设置为 LOW(接地)。
数据输入引脚连接到 Arduino 数字引脚(在本项目中为 6 到 9),它们将输出命令数据为:
数字引脚命令(高电平时)
9 前锋
10 反向
11 左
12 右
我们将根据 ADXL335 的输入将数字引脚写入高电平以执行所需的运动。
接收电路
接收器电路与所示的发射器电路完全相似,但数据引脚不是作为 Arduino 的输出,在这种情况下,它们将被读取为输入,以接收 Arduino Uno 的命令并根据需要运行电机:
为简化起见,您可以在引脚 17 处将 LED 与 1K 电阻串联,而不是如图所示的复杂电路,以指示与发射器的正确连接。
3.电机护罩
由于 Adafruit 库 AFMotor 的可用性,电机护罩是最容易处理的部分,链接:- https://github.com/adafruit/Adafruit-Motor-Shield-library
下载并复制 Arduino 库文件夹中的库,以便能够将其包含在程序草图中。
AFMotor 库的示例如下所示:
#include
4.结合所有部分
最后也是最后一部分包括将上述所有部分组合在一起,形成一个完整的机器人,遵循手的命令!
由于电机屏蔽使用几乎所有的数字引脚,我们将使用 Arduino Uno 的模拟引脚来读取接收器数据。最终的电路图如下所示:
电机屏蔽处理与电机的连接。将 9V 电池连接到屏蔽的电源输入端。
注意:我个人更喜欢将 2 甚至 3.9V 电池并联到屏蔽电源输入端,以提供足够的电力来运行所有四个电机。我已将四个电机连接成一组 2(同一侧电机并联连接在一起,因此只需要电机点 3 和 4 即可运行)。
最终代码
Arduino Nano:
int x_axis = 0;
int y_axis = 0;
int forward = 9;
int backward = 10;
int right = 11;
int left = 12;
void setup()
{
pinMode(A0, INPUT); //X-Axis
pinMode(A3, OUTPUT); //Y-Axis
pinMode(forward, OUTPUT); //HIGH to move Forward
pinMode(backward, OUTPUT); //HIGH to move Backward
pinMode(right, OUTPUT); //HIGH to move Right
pinMode(left, OUTPUT); //HIGH to move Left
Serial.begin(9600);
}
void loop()
{
x_axis = analogRead(A0);
y_axis = analogRead(A3);
Serial.print(" X = ");
Serial.println(x_axis);
Serial.print(" Y = ");
Serial.println(y_axis);
if (y_axis >= 390)
{
Serial.println("Forward");
digitalWrite(forward, HIGH);
}
else
{
if (y_axis <= 310)
{
Serial.println("BACK");
digitalWrite(backward, HIGH);
}
else
{
if (x_axis >= 380)
{
Serial.println("RIGHT");
digitalWrite(right, HIGH);
}
else
{
if (x_axis <= 320)
{
Serial.println("LEFT");
digitalWrite(left, HIGH);
}
Serial.println(" ");
}
}
}
delay(200);
if (x_axis > 320 && x_axis < 380 && y_axis > 310 && y_axis < 390)
{
digitalWrite(forward, LOW);
digitalWrite(backward, LOW);
digitalWrite(right, LOW);
digitalWrite(left, LOW);
}
}
#include
发射器电路:
加速度计:
完整的全部模块:
这里还没有内容,您有什么问题吗?
电子电路资源推荐
- 电磁兼容原理、技术及应用(第2版)
来源:下载中心
- 《单片机C语言模块化编程》
来源:下载中心
- 逆变器原理
来源:大学堂
- 小功率 DC-DC 换流器设计常用技巧
来源:大学堂
- 电阻的串联、并联及混联电路介绍及作用
来源:电路图
- 常用的13种半导体功率器件介绍
来源:电路图
推荐帖子 最新更新时间:2024-11-13 08:53
- 多地竞相布局 5G带动自动驾驶加速步入现实
- 今年政府工作报告提出,加强新型基础设施建设,发展新一代信息网络,拓展5G应用。商用一年来,我国5G部署不断提速,5G正在加速融入各行各业,驱动整个社会的数字化转型。 近日,人民网记者走进车间校园,探寻5G应用落地场景,聚焦5G+制造等新业态,发现5G产业新机会。 搭配了5个
- zqy1111RF/无线
- msp430f5529串口通信
- 求大神给关于msp430f5529的串口通信,波特率是9600的程序,非常谢谢了! msp430f5529串口通信 TI官网都有提供例程,自己去下一下 没找到啊 能发给我一下么 多谢~~ 69137583@qq.com 好的,谢谢!
- 执念莫相惜微控制器 MCU
- 求助各位大神,这个电路有什么问题
- 我是想做一个自动增益调节的放大电路,电路的原图是这个样子 可是我们的仿真测试的结果增益一直不对应,问题在哪里求各位大神解答 求助各位大神,这个电路有什么问题 奇怪,楼主的输入信号同时送比较器(U1、U2、U3)和放大器(U5)。难道是要在输入信号的一个周期之内改变放大器增益么?
- luoyuhui模拟电子
- 51增强型板子
- 手里一块stc12c5a60s2增强型51单片机,资料显示为1T的,定时器里面可以设置它为12T或1T,我现在有个疑问,这个单片机别的时候就都是按照1T运行的吗?我程序里面对延时稍有要求,希望大虾们不吝赐教! 51增强型板子 没用过,建议去找官网的datasheet。官网上应该
- 麻滴滴51单片机
- STC芯片还能用吗?要求整盘购买
- 我 14:24:20 50片100片的没什么区别吧 STC 14:25:53 价格一样的 STC 14:26:02 但是要整盘买 STC 14:26:09 160一盘 我 14:26:28 一盘多少片? 我 14:26:46 现在不零售? STC 14:27:54 160片
- kangkls国产芯片交流
- premierelectronics
- 我是上海派睿电子的 朱林 下面给您介绍下我们的 3 个网站 http://www.newark.com/ 这是我们美国的网站 http://uk.farnell.com/ 这是我们英国的网站
- 派睿电子嵌入式系统
- 做很3天出来的例程红龙429-GSM模块数据收发实验
- 无线局域网设置全上手
- MSP430状态机范例
- 免费发放firmwave,打造史上最低价.Net MF开发板
- 帮帮我wince5.0下电子地图制作问题,我已经在自己的电脑上装了pb,evc4.0,
- 电容倍增器的等效电容计算
- RDA执行pull操作时会失败,[,,,Database name,,],希望高手帮帮我,代码如下
- 【聊聊DSP】我与DSP之情缘
- 【EAGLE】基准标记(光学定位点、Fiducial Mark)的封装绘制及使用。
- 【 ST NUCLEO-H743ZI测评】+ 4、串口输出
- 基于BBB的移动图像采集终端当前进展情况(20140420)
- MTS3300EV
- 新型霍尔传感器的特性及在测量与控制中的应用
- EEWORLD大学堂----直播回放: C2000? 内置可编程逻辑模块CLB的介绍和应用
- TI 推出新款 MSP430F5529 USB Launchpad只要$12.99
- 一个重要的无线技术即将闪亮登场!
- 使用ISD51进行在线仿真
- FPGA Xilinx ISE 运行速度
- 数字电视编码器工作原理及其视频图像压缩格式
- arm与单片机的区别
- 具有延迟、可调复位和检测输出的 NCV4269A 5.0 V、3.3 V 微功率 150 Ma LDO 线性稳压器的典型应用
- 使用 Analog Devices 的 LT124XMJ8 的参考设计
- 使用 NXP Semiconductors 的 XPC860SR 的参考设计
- ADP1850 宽范围输入、双相/两相、DC 至 DC 同步降压控制器的典型 14A 工作电路
- RT9166 300/600mA、超快瞬态响应LDO稳压器的典型应用
- Arduino打造USBPS2鼠标转接器
- LTC3407EDD-2、2.5V/1.8V @ 800mA 降压型稳压器的典型应用电路
- 使用 Analog Devices 的 LTC7851IUHH-1 的参考设计
- LTC2321-16 双通道、16 位、2 Msps 差分输入 ADC 的典型应用
- 物联网开发板 温湿度 红外灯基础集合