arduino教程-13. 蓝牙

智能移动设备和Arduino微电脑,两者相辅相成,可各自发挥所长。例如,用手机当成Arduino的显示器或输入设备,Arduino当做手机的硬件扩展口,控制灯光和自走车,或者返回温湿度传感器的数据给手机。

电波、频段和无线传输简介

利用电波或红外线来传输数据。可见光、红外线和电波都是一种电磁波,并非所有的频段和无线电设备都需要使用执照,世界各国都有保留某些给工业(industrial)、科学研究(Scientific)和医疗(Medical)方面的频段,简称ISM频段,2.4GHZ是世界各国共同的ISM频段,因此市面上许多无线通信产品都采用2.4GHZ。
NFC是一种采用电磁波,用于1~2米内的短距离无线通信技术,全名是Near Field Communicatin(进场通信,或近距离无线通信)。在联机范围内的两台机器要相连时,只要在屏幕上点选是否接收另一方的联机即可。

14-2 认识蓝牙(Bluetooth)

蓝牙是一种近距离无线数据和语音传输技术,主要用于取代线材和红外线传输。蓝牙主要用于无线耳机和数据传输,蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG),定义了多种蓝牙规范(Profile,或译为“协议”):
HID:制定鼠标、键盘和游戏杆等人机接口设备(human interface device)所要遵循的规范。
HFP: 泛指用于行动设备,支持语音拨号和重拨等功能的免提听筒设备
A2DP: 可传输16位、44.1kHZ取样频率的高质量立体声音乐,主要用于随身听和影音设备。
SPP:用于取代有线串口的蓝牙设备规范。Bluetooth 2.1 + EDR代表“加强资料传输率(Enhanced Data Rate)

动手做14-1 使用软件串口程序连接Arduino与蓝牙模块

**实验说明:**在电脑上通过蓝牙与Arduino板联机,控制端口13上的LED。
蓝牙模块通过串口和Arduino板联机,不过,Arduino的程序和“串口监控窗口”也是通过串口传输。Arduino微电脑板默认只有一个串口(简称“系统串口”),应保留给串口监控窗口使用,本单元将通过SoftwareSerial(软件串口)扩展库,把其他端口变成串口给蓝牙模块使用。
**实验电路:**数字0和1是Arduino自带的串口端口,我们可以连接蓝牙模块。蓝牙模块的发送端(Tx)接Arduino的接收端(Rx),这种方式会占用系统串口,应该避免使用。
实验程序: Arduino软件自带的SoftwareSerial扩展库,能让我们指定任意两个端口充当串口

//蓝牙模块其实就是无线串口,程序写法和有线的串口相同。
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 9);  //自定义SoftwareSerial类型对象,参数(接收端,发送端)
const byte ledPin = 13;
char val;
void setup() {
    pinMode(ledPin, OUTPUT); //
    /*初始化串口,请依照你的蓝牙模块设置联机速率,笔者的模块采用9600bps速率联机。*/
    BT.begin(9600);
    BT.print("BT is ready!"); //
}

void loop() {
    if (BT.available()){
        val = BT.read();
        switch (val) {
            case '0':
                digitalWrite(ledPin, LOW);
                break;
            case '1':
                digitalWrite(ledPin, HIGH);
                break;
        }
    }
}

动手做14-2 用Android手机蓝牙遥控机器人

**实验说明:本单元的遥控机器采用Android手机蓝牙控制,架构图如下:
控制原理是从手机蓝牙传递字符给机器人,机器人的微电脑将依照收到的’w’、'a’等字符,执行前进和转弯等动作。
实验材料:
具备蓝牙的Android智能手机、采用两个碳刷电机的模型动力玩具、L298N电机模块、蓝牙接口模块、电池盒

猜你喜欢

转载自blog.csdn.net/acktomas/article/details/85040711
今日推荐