| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 蓝牙遥控小车2.0版发布啦 -> 正文阅读 |
|
[嵌入式]蓝牙遥控小车2.0版发布啦 |
今天要跟大家分享的是两个蓝牙模块之间的通信,再结合摇杆模块和小车就可以做一个遥控小车啦! 蓝牙模块的主从机模式1.主从机模式要实现两个蓝牙模块之间的通信就要先搞明白蓝牙模块的工作模式,HC-05是一款主从一体蓝牙模块,既有从机模式,也有主机模式,而且两者之间可以自行设置。 主机模式:蓝牙模块在主机模式下可以对周围的蓝牙设备进行搜索,并且可以选择需要连接的从机设备进行连接,连接成功后就可以发送数据和接收数据了。 从机模式:蓝牙模块在从机模式下不能主动搜索其他蓝牙设备,但是可以被主机模式下的蓝牙模块搜索到,而且与主机模式的蓝牙模块建立连接后也可以发送数据和接收数据。HC-05蓝牙模块默认工作在从机模式下。 2.设置主从机模式设置蓝牙模块的主从机模式需要使用AT指令,所以我们先按照上一篇文章《浅谈Arduino进入蓝牙模块的AT指令模式》的方法给Arduino板子上传AT指令的程序,然后把其中一个蓝牙模块设置成主机模式,连接模式设置为任意蓝牙地址连接模式,并且设置好配对密码、波特率、蓝牙模块的名字。然后再把另外一个蓝牙模块设置成从机模式,连接模式、配对密码和波特率要和主机模式的蓝牙模块一样,否则会导致不能正常接收数据,蓝牙模块的名字可以不一样。通过Arduino进入AT指令的程序如下:
这是小编设置的两个蓝牙模块: 设置完两个蓝牙模块的主从机模式以后,可以把两个模块分别接到两个Arduino板上,上电几秒后,两个蓝牙模块的指示灯会从快速闪烁变成慢速闪烁,这就表示两个蓝牙模块能够自动建立连接了。 蓝牙遥控器1.硬件接线接下来我们利用主机模式的蓝牙模块、Arudino板和摇杆模块制作一个遥控器,摇杆模块比较简单,我们直接用Arduino的A0~A5端口读取摇杆模块的VRX和VRY引脚的模拟信号即可,SW引脚是摇杆模块的按键,小编没有用到就直接空着了。 这几个模块的接线方式如下: 注意:这里比较难的是电源正极(+5V)引脚的分配,ArduinoUNO板上只有一个明确标识+5V的引脚,大家可以在遥控器上加一个小面包板,把+5V引脚扩展到面包板上,再从面包板上分配给摇杆和蓝牙模块即可。但是小编喜欢不走寻常路,因为UNO板上还隐藏着两个+5V和两个GND引脚,就是标着ICSP的接口和复位按钮旁边的接口,大家有兴趣可以查一下UNO板的电路图或者直接用万用表测试。 2.程序设计?由于从Arduino的A0 ~ A5端口读取的模拟信号的数据范围在0 ~ 1023之间,而通过串口发送给蓝牙模块的数据和从串口缓存区读取的数据都是字节数据,另外通过蓝牙模块发送数据的时候还要对数据做一些简单的“加密”,这样受控端可以更加准确的读取数据,所以小编在程序中把0 ~ 1023的数据映射到了0 ~ 250之间,这样在给数据“加密”时,可以利用251 ~ 255这几个数字作为数据的开头和结尾发送出去。
蓝牙小车1.硬件接线小车部分作为受控端,可以直接把从机模式的蓝牙模块连接到小车上,在连接蓝牙模块时要注意避免使用和控制小车速度的PWM端口冲突的端口,这句话是不是有点绕? 小编举个例子,以前在调试小车的时候发现,当使用3、5、6这几个PWM端口控制电机速度时,9、10、11这几个PWM端口会受到影响,尤其是使用这几个端口控制舵机或者红外接收器时,影响最明显,所以小编就把蓝牙模块的引脚接到了A0和A1端口。 蓝牙模块 Arduino UNO 2.程序设计设计蓝牙接收数据的程序时,要先从串口的缓冲区读取第一个数据,当这个数据是发送来的数据的开头标志时再继续读取后面的数据;读取完所有的数据后,当判断开头标志和结束标志都正确时再处理摇杆数据。 为了便于控制小车,小编在程序中先把摇杆数据映射到了-250~250之间,然后利用加减法来消除摇杆模块中间位置的偏差,保证摇杆模块在中间位置时的数据为0。 另外,小编根据自己的习惯设定两个摇杆的工作方式,左侧摇杆的纵轴VRY设定为控制小车前进和后退,右侧摇杆的横轴VRX控制小车左右转向,两者结合可以控制小车一边前进/后退一边左转/右转,但是这样设定时还要在程序中对计算得到的速度值进行限定,不能超出-250~250的范围。 注意:摇杆的使用可以根据自己的想法和习惯自行设定,例如,可以直接把左侧摇杆的纵轴VRY的数据作为小车左侧电机的速度,右侧摇杆的纵轴VRY的数据作为小车右侧电机的速度。 小车端的部分程序如下:
蓝牙遥控小车视频: 蓝牙遥控小车2.0 篇幅有限,小编在这里只写了部分代码,完整的程序已经上传到网盘了,想要程序的同学,请先关注公众号哦,然后在对话框中回复“蓝牙遥控小车2.0”,即可获得下载链接,好东西不容错过。 本期分享就到这里咯,撰文不易,欢迎各位小伙伴持续关注我的公众号:初芯未来,更多内容分享等着你哦~! |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:54:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |