打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
专业在线电子书网站

遥控是指对被控对象进行远距离的控制,这里所说的“远”只是相对而言,它强调的是控制器与被控对象有一定的空间距离。近到用手机遥控玩具(图6-1),远到用跟踪雷达控制航天飞机,这些都属于遥控。

图6-1 遥控玩具车

遥控分为有线遥控和无线遥控两种。由于无线遥控具有控制距离远、使用灵活方便的优点,所以它是一种使用广泛的遥控形式。本章将介绍“蓝牙”遥控方式。不管哪类遥控方式,其基本组成都可用图6-2表示。

图6-2 遥控原理

控制信号发送电路控制信息,通过信号通道到达接收电路。对于有线遥控系统,信号通道是传输电缆或光缆;对于无线遥控系统,信号通道是大气、水等。接收电路对接收到的信号进行放大、处理,由执行机构完成动作的执行。

6.1 基于蓝牙的数据收发

1.什么是蓝牙

第一次听到“蓝牙”这个词也许会觉得它与无线通信技术没有联系(图6-3)。先别纠结蓝牙的名字,来认识一下什么是蓝牙。

蓝牙其实是一种无线电技术,它支持设备之间短距离通信,能在移动电话、PDA、无线耳机、笔记本电脑、相关外设等之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够简化设备与因特网之间的通信,从而使数据传输变得更加迅速、高效,如手机和无线蓝牙耳机(图6-4)、手机通过蓝牙传输数据等。

图6-3 蓝牙技术

图6-4 无线蓝牙耳机

蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用、无须申请许可的2.4GHz ISM频段,其数据速率为1~3Mb/s。

2.蓝牙的起源

蓝牙这个名称真的与蓝色的牙齿有关系吗?10世纪的欧洲一位丹麦国王哈拉尔蓝牙王,因为喜欢吃蓝莓,牙龈每天都是蓝色的,而这位伟大的国王口齿伶俐,善于交际,在其掌权期间又将当时的挪威、瑞典和丹麦统一,可以说功勋卓越。而蓝牙行业协会正在筹备阶段,需要一个极具表现力的名字来命名这项高新技术。协会组织人员在经过一夜关于欧洲历史和未来无线技术发展的讨论后,最终选用Blatand国王的名字命名该项技术。

蓝牙的创始人是爱立信公司,1998年2月,爱立信联合包括诺基亚、苹果、三星等公司组成的一个特殊兴趣小组(Bluetooth Special Interest, SIG),他们共同的目标是建立一个全球性的小范围无线通信技术,即蓝牙。而蓝牙这个标志的设计取自Harald Blatand名字中的“H”和“B”两个字母,用古北欧字母来表示,将这两者结合起来就成为蓝牙的Logo(图6-5)。

3.蓝牙的工作原理

蓝牙通信是一种主从关系。蓝牙技术规定每一对设备之间进行蓝牙通信时,必须一个为主角色,另一个为从角色才能进行通信。通信时,必须由主端进行查找,发起配对,建链成功后,双方即可收发数据。理论上,一个蓝牙主端设备,可同时与7个蓝牙从端设备进行通信。一个具备蓝牙通信功能的设备,可以在两个角色之间切换,平时工作在从模式,等待其他主设备来连接;需要时,转换为主模式,向其他设备发起呼叫。一个蓝牙设备以主模式发起呼叫时,需要知道对方的蓝牙地址、配对密码等信息,配对完成后,可直接发起呼叫。

图6-5 蓝牙标志的由来

试验活动:基于蓝牙的数据收发

【试验目的】

以手机或安卓4.3设备蓝牙配对Dfrobot Bluno控制板,手机发送数据包,Dfrobot Bluno控制板收到数据后,将数据发回此手机。

【试验器材】

试验所用器材如表6-1及图6-6所示。

表6-1 实验所用器材

【试验步骤】

(1)打开Arduino IDE软件(推荐使用Arduino 1.5.x)。

(2)将下列程序代码复制在Arduino IDE窗口中。

这个程序的作用:把收到的串口数据都发回去。

(3)选择菜单Tools(工具)→Board(板卡)→Arduino Uno命令。

(4)下载程序到BLUNO(下载程序时,请断开蓝牙连接)。

(5)在安卓设备上安装下列的APK文件BlunoBasicDemo。

(6)运行程序出现下列界面,单击Scan按钮开始搜索设备,如图6-7所示。

(7)当出现以下界面时,请在BLE Device Scan浮动窗口上单击;否则它一直停留在这个界面,如图6-8所示。

图6-7 BlunoBasicDemo

图6-8 BLE Device Scan

(8)连接之后,在文本框中输入需要发送的字符,单击Send Data钮发送数据给Bluno,如图6-9所示。

(9)Bluno会回复相同的数据。收到的数据将在Received Data处显示,如图6-10所示。

图6-9 蓝牙数据收发发送

图6-10 蓝牙数据收发接收

6.2 基于蓝牙控制的遥控项目

第6.1节通过Bluno主控板与手机建立通信,完成了一个简单数据收发试验。实际应用中通常需要用传感器来采集环境信息,用声光电设备加以反馈。从而使Arduino丰富的开源硬件资源得以充分体现。本节使用Bluno Accessory Shield扩展板让它给大家带来丰富的体验。

试验活动:基于手机蓝牙控制的房间电器互动模型

【试验目的】

本节将设计制作一个基于手机蓝牙控制的房间电器互动模型,具体功能实现如下。

(1)手机蓝牙控制RGBLED的开关及调色。

(2)手机蓝牙控制实时获取房间内温度、湿度。

(3)手机蓝牙控制蜂鸣器、继电器设备。

(4)手机发送数据信息在OLED屏幕上显示。

【试验器材】

试验所用器材如表6-2及图6-11所示。

表6-2 试验所用器材

Bluno Accessory Shield扩展板集成器件如表6-3所示。

表6-3 Bluno Accessory Shield扩展板集成器件

【试验步骤】

(1)打开Arduino IDE软件(推荐使用Arduino 1.5.x)。

(2)将下列程序代码复制在Arduino IDE窗口中。

(3)安装PlainProtocol库文件(PlainProtocol参考文档)、U8glib库文件(U8glib参考文档)和BlunoAccessory库文件。

(4)执行菜单栏的Tools(工具)→Board(板卡)→Arduino Uno命令。

(5)下载程序到BLUNO(下载程序时,请断开蓝牙连接)。

(6)在安卓设备上安装下列的APK文件Bluno地址:APK应用程序见光盘

(7)运行程序出现下列界面,单击Scan按钮开始搜索设备。

(8)同样,在出现BLE Device Scan浮动窗口上仍然需要单击一下。

(9)出现如图6-12所示的手机界面,就可开始蓝牙互动体验了,这里不再介绍。

表6-12 手机APP界面

(10)观察OLED屏会发现,在手机中输入的文本跟屏上原有的文本重叠了。如何解决这个问题呢?

把OLED显示函数里的温度、湿度、RGB值等直接删掉或者直接注释掉即可。

【试验观察】

Bluno扩展板上的功能是针对手机APP上的功能开发的,功能会有局限。但是Arduino为Bluno提供了丰富的硬件扩展,可以用传感器扩展板V7以及丰富的传感器,搭建出所需要的功能。

6.3 蓝牙多功能夜灯的创意设计

第6.2节通过Dfrobot的Bluno主控板和Bluno Accessory Shield扩展板的使用已经能够充分感受到其强大的功能。本节将继续利用其功能来完成蓝牙多功能夜灯的创意设计。

试验活动:蓝牙多功能夜灯的创意设计

【试验目的】

利用上节Bluno集成蓝牙4.0主控板的部分功能,完成多功能夜灯的创意设计。

【试验器材】

试验所用器材如表6-4所示。

表6-4 实验所用器材

【试验步骤】

图6-13 夜灯效果

(1)外观设计。本作品设计为一个外表光滑的圆形灯罩,加上棱角分明的立方体底座,将两种截然不同的风格有机结合(图6-13)。同时台灯的色彩搭配上采用了乳白色的灯罩,体现出现代都市生活的现代感。底座使用牛皮纸黄的效果,体现出一种复古的风格。既有现代感,又有复古风格,让现代与复古两种不同的风格融为一体。

(2)结构设计。一盏形态美观的灯具,由内部的合理结构作为支撑。而通常灯具结构可分为内部结构、核心结构和空间结构。从本节创意夜灯的内部结构图中可以看出,电池盒、主控板分别被固定在上下隔层上,既相互独立,又相互联系,如图6-14所示。

(3)功能设计。灯具基本功能指灯具直接与消费者接触,进行物质能量交换,满足使用的要求。我们的设计在灯的开关、调光、房间温湿度侦测显示等角度进行。首先通过手机蓝牙的方式与灯具进行通信,通过手机APP来控制灯的开关、调光等功能,同时为了能让用户及时了解房间的温湿度情况,在灯的底座中增加了侦测温、湿度的传感器(图6-15)。不过大家已经注意到了,本节内容并没有使用Bluno Accessory Shield扩展板,而使用了RGB灯盘,从而提高夜灯的亮度。

图6-14 内部结构(灯盘底座内部结构)

图6-15 温、湿度

(4)器材安装。将RGB灯盘的R、G、B、GND这4根引脚分别插在Bluno蓝牙主控板的数字口9、10、3上,将DH11的3根引脚分别插在Bluno蓝牙主控板的数字口2、SCL、SDA上,如图6-14所示。将电池盒用螺钉固定在灯盘底座的下层,Bluno蓝牙主控板固定在灯盘底座的上层。

(5)将第6.2节中的代码烧录至Bluno蓝牙主控板后,打开手机APP程序即可使用。

(6)结构三视图如图6-16所示。

图6-16 结构三视图

(7)效果如图6-17所示。

图6-17 模型实物

【试验观察】

通过手机APP能否开关RGBLED,能否对其进行调光。

6.4 BLE无线编程

Bluno扩展板虽然提供了丰富的硬件资源,并且把软硬件资源封装好了,使操作起来更加方便,但问题往往要从两方面看,带来方便的同时也带来了一些“限制”。因为Bluno扩展板上的功能是针对手机APP上的功能开发的,功能局限。

试验活动:BLE基于蓝牙的无线控制

【试验目的】

以两块Arduino Mega 2560 V3.0控制器作为主控板,通过两块DF-Bluetooth V3蓝牙串口模块进行主从配对,进行数据传输。实现触摸主模块上的开关,主模块上的LED(黄色)亮起,同时从模块上接收到主模块发送的数据信号点亮从模块的LED(绿色),从而实现基于蓝牙的无线控制。

【试验所用器材】

试验所用器材如表6-5及图6-18和图6-19所示。

【试验步骤】

(1)切换蓝牙模块到AT模式。图6-20所示为DF-BluetoothV3蓝牙串口模块,模块有一个2位拨码开关,1号开关LED Off是LINK灯的开关,可以关闭LINK省电,拨到ON为开,拨到另一端为关;2号开关AT Mode是AT命令模式开关,拨到ON进入AT命令模式,拨到另一端退出AT命令模式。

表6-5 试验器材清单

(2)连接到USB to Serial模块。将DF-BluetoothV3蓝牙串口模块按接口顺序插在USB to Serial转串口上,如图6-21所示。

图6-20 DF-Bluetooth V3蓝牙串口模块

图6-21 USB to Serial转串口工具

(3)USB to Serial模块需要安装驱动程序。安装成功后,在设备管理器中显示为一个串口,图6-22所示的设备管理器端口中Silicon Labs CP210x USB to UART Bridge(COM15),这个COM口是用来配置蓝牙模块的。

图6-22 设备管理器端口

(4)通过串口指令来配置蓝牙模块。在这里需要用串口监视器来完成配置。有很多串口调试软件都可以完成,当然也可以用Arduino IDE自带的串口监视器。在这里就选用Arduino IDE自带的串口监视器来完成配置。首先,打开IDE,查看是否显示串口,这里选择COM4,打开串口监视器界面,设置波特率为38400baud,选择Both(换行和回车模式),如图6-23和图6-24所示。

图6-23 串口监视器(1)

图6-24 串口监视器(2)

注意:

①在AT模式中,波特率默认为38400,和通信时设置的波特率无关。

设置完成后,在串口中输入AT(不区分大小写),测试蓝牙模块与USB串口是否建立连接,如果连接成功,会显示[OK]。按同样的方法在串口输入相关的AT指令就能进行配置了。

②当AT指令设置完毕后,将开关另一端退出AT命令模式,重新上电后设置才生效。

(5)设置主从模块。两块蓝牙模块进行配对时,需要将其中一个设置为主,而另一个设置为从。在IDE窗口中分别输入AT+ROLE=1和AT+ROLE=0,设置其分别为主、从模块。

【知识拓展】

AT指令集的说明见表6-6~表6-11。

表6-6 测试指令

表6-7 模块重启指令

当模块无法被适配器、主机搜索到或无法连接时,需配置该参数,配置为AT+CMODE=1。

表6-8 设置和查询模块连接模式

表6-9 设置和查询模块角色

模块角色说明:①从角色(Slave)——被动连接,可以和任意蓝牙适配器配对使用;②主角色(Master)———查询周围从设备,并主动发起连接,从而建立主、从蓝牙设备间的透明数据传输通道;③回环角色(Slave-Loop)——被动连接,接收远程蓝牙主设备数据,并将数据原样返回给远程蓝牙主设备。

表6-10 设置和查询配对码

表6-11 设置和查询串口参数

蓝牙模块电路连线如表6-12所示。

程序代码如下。

表6-12 蓝牙模块电路连线

主模块程序如下:

从模块程序如下:

【试验观察】

本节试验效果如图6-25所示,当手指触摸开关后,主、从模块上的LED灯是否都亮?

图6-25 试验效果

【小任务】

请你依据本节所学内容,对其进行改进,将主模块上的触摸开关换成大按键按钮,从模块上的LED换成RGBLED,当按钮按一次,亮红色;当按钮按两次,亮绿色;当按钮按三次,亮蓝色。

6.5 基于蓝牙的转向指示器

第6.4节实现了蓝牙模块的数据通信,实际上,该案例中数据通信的内容只有两个状态,即灯的开和关,使用了数值型数据“0”和“1”表示灯的“闭”和“开”。如果数据通信的状态不止两种时该如何处理呢?通常情况下若被控对象状态较多,可以采用数据编码进行通信;若被控对象状态不是非常多,可以通过传输字符完成数据通信。

本节将制作一套基于蓝牙通信的自行车转向指示器。任何一个有经验的自行车骑行者都会告诉你,在转弯时要给别的司机信号,让他们知道你要往哪边转是非常重要的。不用说,提前让你的转向被看见的可能性越高,你的出行安全就越有保障。

试验活动:基于蓝牙的转向指示器

【试验目的】

以两块Arduino Mega 2560 V3.0控制器作为主控板,通过两块DF-BluetoothV3蓝牙串口模块进行主、从配对,进行数据传输。实现通过分别按下主模块上的红、绿按钮开关,来控制从模块上的指向LED灯带,从而实现基于蓝牙的无线控制的转向指示器。

【试验所用器材】

试验器材如表6-13及图6-26~图6-29所示。

表6-13 试验器材清单

【试验步骤】

(1)按上节介绍的方法将两个蓝牙通信模块分别设置为主模块和从模块,并将主、从模块分别与两块主控板正确连接(连线方法见上节)。

(2)将输入扩展板V2.0(集成摇杆/按键)插接在主模块2560控制板上,再将蓝牙主模块插在输入拓展板蓝牙接口上,如图6-30所示。

图6-30 蓝牙主模块板卡叠加

将传感器拓展板V7.1插在从模块2560控制板上,再将蓝牙从模块插在传感器拓展板蓝牙接口上,如图6-31所示。

图6-31 蓝牙从模块板卡叠加

(3)将指向的左、右LED灯带数据线分别接在从模块数字口11、12上,VCC接+5V、GND接GND。两条灯带放在转向器装置中,如图6-32所示。

图6-32 RGBLED灯带安装

程序代码如下。

通过蓝牙模块进行数据通信,当按下主模块上蓝色按钮(LEFT)时,左转向灯带亮;当按下红色色按钮(RIGHT)时,右转向灯带亮。在此作品的功能中,可以看出灯的状态有3种:左灯亮、右灯亮、两灯都灭。因此,使用字符型a、b、c来进行三种状态的数据通信。

主模块程序如下:

从模块程序如下:

【试验观察】

本节试验效果如图6-33所示,当分别按下主模块上的蓝色、红色按钮开关后,从模块上的左、右转向指示LED灯带是否正确亮起?

图6-33 试验效果

【小任务】

(1)请把该转向指示装置安装在书包上,遥控装置安装在自行车把头,在上路骑行中,测试一下你的转向器吧!

(2)增加以下功能,看看需要增添哪些设备。

①为车头部分增加一盏大灯,用于黑夜照明,通过手柄控制。

②为控制器增加一个控制面板显示装置,用于显示控制端操作类型。

③为转向指示增加提示音。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HC05蓝牙模块的使用
集成蓝牙4.0的控制开发板Bluno
蓝牙技术架起LabVIEW和Arduino之间无线沟通的桥梁
arduino+App Inventor+mixly=纯图形化编程实现手机蓝牙2.0无线遥控
蓝牙与arduino的完美结合~通过电脑自带蓝牙无线给arduino下载程序,已测试成功
从零开始DIY一辆蓝牙遥控小车
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服