前几篇推送,我们一直在学习arduino与周围外设的互动。有的是读取数据,有的是控制器件。但是现在是网络时代了,不能总让arduino自娱自乐是吧。所以我们近期会陆续推出蓝牙模块,WiFi模块的使用,以及物联网的基本知识。
先从简单的来,今天我们先介绍arduino通过蓝牙模块与上位机(手机、电脑)之间的通讯。然后我们一起制作一个蓝牙遥控小车。需要代码和上位机app的同学留邮箱,我会发给大家。
先简单介绍一下蓝牙模块:
在arduino的开发过程中,蓝牙模块实际上是起到了一个桥梁的作用,我们称之为透传。就像透明玻璃一样,把命令原封不动的传送给对方。
拿来一个蓝牙模块,首先需要进行设置。将蓝牙模块与串口模块连接,TX,RX要交叉连接
将模块插入电脑,打开串口调试助手。输入指令
1、测试通讯
发送:AT(返回OK,一秒左右发一次)
返回:OK
2、改蓝牙串口通讯波特率
发送:AT BAUD1.......C
返回:OK 波特率
1---------1200
2---------2400
3---------4800
4---------9600(默认就是这个设置)
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400
3、改蓝牙名称
发送:AT NAMEname
返回:OKname
4、改配对密码
发送:AT PINxxx
返回:OKsetpin
这样,一般的设置就完成了。其他的还有很多设置内容,但是一般我们也用不上,所以不在这里占用篇幅了。
然后,在手机上下载蓝牙助手app,蓝牙模块通过串口模块连电脑,手机打开蓝牙,与蓝牙模块配对,打开蓝牙助手app,随便发送几个字母,在电脑端就应该能看到显示了。反过来,在电脑端发送消息,手机端也能收到。
下面,我们就来使用蓝牙模块,一起来制作一台蓝牙小车
材料:arduino主控板、蓝牙模块、298n电机驱动模块、小车底盘(带轮胎和电机)
上面的材料在淘宝上有很多,这里就不给大家介绍了。价格也不贵。电机驱动板的使用在前几篇推文里都有,不清楚使用的同学可以再翻翻文章。
重点说说程序代码中蓝牙数据的读取方面。
先在宏定义中定义不同编码代表的功能
#define LEFT '3' //左转编码 #define RIGHT '4'//右转编码 #define GO '1'//前进编码 #define back '2'//后退编码 #define STOP '0'//停止编码
然后在主程序里读取串口传来的数据,根据数据运行相应的函数。
if(Serial.available()>0){ char ch = Serial.read(); //这一段眼熟不?就是串口通讯。很简单的。 if(ch == GO){ //前进 go(); }else if(ch == BACK){ //后退 back(); }else if(ch == LEFT){ //左转 turnLeft(); }else if(ch == RIGHT){ //右转 turnRight(); }else if(ch=='0'){ //停车 stopCar(); } }
玩的时候,先安装手机端小车控制软件,打开蓝牙,让手机和小车蓝牙进行配对,然后就可以用手机控制小车了。
,