今天到了第一批制作四旋翼飞行器用的开发板和传感器,实现了最简单的ArduinoUNO和Android手机间的蓝牙串口通讯和超声测距传感器的试用。

蓝牙测距python 蓝牙测距模块_安卓

Arduino <wbr>UNO连接蓝牙模块与安卓手机通讯教程

最左边的是HC-06蓝牙模块,中间的一对金属圆柱是超声测距的传感器,最右是ArduinoUNO开发板。然后操作者点按手机中串口调试助手上的按钮发送信号,并接收发回的传感器数据。下图键盘左上角的测量按键会通过蓝牙串口向ArduinoUNO发送一个信号,单片机收到信号激活超声传感器,并读回数据,再通过蓝牙传回手机显示。图中前一部分数据是传感器测得的桌面到屋顶的距离,最后一个是桌面到地面的距离。

蓝牙测距python 蓝牙测距模块_arduino_03


1 蓝牙模块的调试

我选择的蓝牙模块是HC-06,相关资料下载: 百度云下载

第一步,连线:

RXD--------TX->1 
TXD--------RX<-0 
GND--------GND         
Arduino UNO 
VCC--------3.3V

第二步,修改蓝牙模块的名字、密码和波特率,因为我的应用中对带宽要求不高,所以波特率还是选择默认的9600。修改名字和密码用蓝牙模块的AT指令,因为没有USB转串口的片子,我是用单片机执行这段代码,更多代码可以在手册里查看:

void setup()
{
  
Serial.begin(9600);
Serial.print("AT");
delay(2000);
Serial.print("AT+NAMERon_bluetooth");
delay(2000);
Serial.print("AT+PIN5274");
}
void loop()
{
delay(1000);
}

注意:上传代码的时候必须先拔掉接蓝牙模块接在串口上的两条线,程序写入之后按下板上的reset键使代码执行一遍。

第三步,在手机上下载蓝牙串口助手,搜索先前设置的蓝牙设备,这个app的使用很简单,不多做介绍。

至此,蓝牙模块配置完成,用法与串口完全一样,基本上属于即插即用。

2 超声模块HC-SR04

主要参数:1 使用电压:5V 2 静态电流:小于2mA 3 电平输出:0-5V

4 感应角度:不大于15度 5 探测距离:2cm-450cm

使用方法:控制口Trig发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以得到测量的距离了。

第一步,接线

TRIG--------PIN 2 
GND---------GND       
Arduino UNO 
VCC---------5V

第二步,烧写入以下代码,

#define TRIG_PIN 2 
#define ECHO_PIN 4 
char val; 
int cm; 
void setup()
{
   Serial.begin(9600);
   pinMode(TRIG_PIN,OUTPUT);
   pinMode(ECHO_PIN,INPUT);
}
void loop()
{
   if((val = Serial.read()) == 'c')
   {
    
     digitalWrite(TRIG_PIN, LOW);
     delayMicroseconds(2);
     digitalWrite(TRIG_PIN,HIGH);
     delayMicroseconds(10);
     digitalWrite(TRIG_PIN, LOW);
     cm = pulseIn(ECHO_PIN,HIGH) / 60;
     Serial.print(cm);
     Serial.println(" cm");
   }
}

这时候手机与蓝牙模块完成配对,如代码中所写,手机端串口发送'c',获得超声测距的数值。