在开发了一些流行的机器人项目后,例如直线跟随器机器人,避边机器人,DTMF机器人,手势控制机器人等,我们将开发一种蓝牙控制的机器人汽车。在这里,我们使用了蓝牙模块来控制汽车,它也是一个基于Android的应用程序。
组件
- Arduino UNO
- 直流电动机
- 蓝牙模块HC-05
- 电机驱动器L293D
- 9伏电池和6伏电池
- 电池接头
- 玩具车
蓝牙控制的汽车是通过使用Android手机而不是按钮,手势等任何其他方法来控制的。这里只需触摸android手机中的按钮即可在前进,后退,左右方向上控制汽车。因此,此处将android手机用作发送设备,并将车载的蓝牙模块用作接收器。Android手机将使用其内置的蓝牙将命令传输到汽车上,以便它可以按所需的方向移动,例如前进,后退,左转,右转和停止。
蓝牙模块
HC蓝牙模块由两部分组成,一是蓝牙串行接口模块,另一个是蓝牙适配器。蓝牙串行模块用于将串行端口转换为蓝牙。
蓝牙模块如何操作?
从市场上购买后,您可以直接使用蓝牙模块,因为不需要更改蓝牙模块的任何设置。新蓝牙模块的默认波特率是9600 bps。您只需要将rx和tx连接到控制器或串行转换器,并为模块提供5伏直流稳压电源即可。
蓝牙模块有两种模式,一种是主模式,第二种是从模式。用户可以通过使用一些AT命令来设置任何一种模式。甚至用户也可以使用AT命令来设置模块的设置。以下是一些命令用法:
首先,用户需要通过按蓝牙模块上的EN按钮或在EN引脚上提供HIGH电平,以38400 bps的波特率进入AT模式。注意:所有命令应以\ r \ n(0x0d和0x0a)或键盘输入ENTER结束。
之后,如果您将AT发送到模块,则模块将以OK响应
AT→测试指令
AT + ROLE = 0→从模式选择
AT + ROLE = 1→主模式选择
AT + NAME = xyz→设置蓝牙名称
AT + PSWD = xyz→设置密码
AT + UART =
例如。AT + UART = 9600,0,0
加速度计的引脚说明
- 状态→打开
- Rx→串行接收引脚
- Tx→串行发送引脚
- GND→地
- Vcc→+5伏直流
- EN→进入AT模式
工作说明
在该项目中,我们使用了玩具车进行演示。在这里,我们选择了具有左右转向功能的RF玩具车。购买这辆车后,我们用Arduino电路代替了它的RF电路。这辆车的前侧和后侧都有两个直流电动机。前侧电机用于指示汽车方向,即向左或向右转(类似于真实的汽车转向功能)。后侧马达用于向前和向后驱动汽车。蓝牙模块用于接收来自android手机的命令,而Arduino UNO用于控制整个系统。
蓝牙控制的汽车根据android蓝牙移动应用中触摸的按钮移动。要首先运行此项目,我们需要从Google Play商店下载蓝牙应用程序。我们可以使用任何支持或可以发送数据的蓝牙应用程序。这是一些可能正确运行的应用程序名称。
-蓝牙Spp Pro
-蓝牙控制器
安装应用程序后,您需要打开它,然后搜索蓝牙设备并选择所需的蓝牙设备。然后配置密钥。在此项目中,我们已使用蓝牙控制器应用程序。
- 下载并安装蓝牙控制器。
- 打开移动蓝牙。
- 现在打开蓝牙控制器应用程序
- 按扫描
- 选择所需的蓝牙设备
- 现在,通过按屏幕上的设置按钮来设置按键。要设置按键,我们需要按下“设置按钮”并根据以下图片设置按键:
设置键后,按确定。
当我们触摸蓝牙控制器应用程序中的前进按钮时,汽车将开始向前移动,并继续向前移动,直到出现下一个命令。
当我们在蓝牙控制器应用程序中触摸后退按钮时,汽车将开始反向行驶,并继续反向行驶,直到出现下一个命令。
当我们在蓝牙控制器应用程序中触摸左按钮时,汽车将开始向左方向移动,并继续向左移动,直到出现下一个命令。在这种情况下,前侧马达会向左旋转前轮,而后部马达会向前旋转。
当我们在蓝牙控制器应用程序中触摸向右按钮时,汽车将开始向右方向移动,并继续向右移动,直到出现下一个命令。在这种情况下,前侧马达会向右旋转前轮,而后部马达会向前行驶。
通过触摸停止按钮,我们可以停止汽车。
电路图和说明
上图显示了蓝牙控制汽车的电路图。马达驱动器连接到arduino来运行汽车。电机驱动器的输入引脚2、7、10和15分别连接到arduino的数字引脚12、11、10和9。在这里,我们使用了两台直流电动机来驱动汽车,其中一个电动机连接在电动机驱动器3和6的输出引脚上,另一电动机连接在11和14上。一个6伏电池也用于为电动机驱动器供电。蓝牙模块的rx和tx引脚直接连接到Arduino的tx和rx。蓝牙模块的vcc和接地引脚与Arduino的+5伏特相连。并且使用9伏电池为Arduino的Vin引脚上的电路供电
程序说明
首先,在程序中我们定义了电机的输出引脚。
#define m11 11 //后电动机#define m12 12 #define m21 10 //前电动机#define m22 9
然后在设置过程中,我们给出了固定的指示。
void setup(){Serial.begin(9600); pinMode(m11,输出); pinMode(m12,OUTPUT); pinMode(m21,输出); pinMode(m22,输出); }
此后,我们使用来自蓝牙模块的串行通信读取输入并相应地执行操作。
void loop(){while(Serial.available()){char ch = Serial.read(); str = ch; if(str =='1'){Serial.println(“ Forward”); 前锋(); i = 0; } else if(str =='2'){Serial.println(“ Left”); 对(); i = 0; } else if(str =='3'){Serial.println(“ Right”); 剩下(); i = 0; }
然后,我们为汽车的不同方向创建了函数。此蓝牙控制的汽车有五个条件,可用于提供指示:
蓝牙控制器应用中的触摸按钮 |
前侧电机输出方向 |
后侧电机向前或向后移动的输出 |
|||
纽扣 |
M11 |
M12 |
M21 |
M22 |
方向 |
停止 |
0 |
0 |
0 |
0 |
停止 |
前锋 |
0 |
0 |
0 |
1个 |
前锋 |
落后 |
0 |
0 |
1个 |
0 |
落后 |
对 |
1个 |
0 |
0 |
1个 |
对 |
剩下 |
0 |
1个 |
0 |
1个 |
剩下 |