适用于UNO/2560/DUE/ESP8266/ESP32,2021年之前使用版本。
8.1 实践目的
8.2 实践设备
8.3 实践原理
观察示意图,需理解各模块作用。
示意图
模型图
使用ROS实现蓝牙小车遥控。
8.4 实践内容
阅读8.3中示意图、原理图和代码,在Arduino[ESP32]平台上完成实践。
8.5 实践问题
手机蓝牙遥控与电脑蓝牙遥控最大差异在哪里?
蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m,如果增加功率或是加上某些外设便可达到100m的传输距离。它采用2.4GHz ISM频段和调频、跳频技术,使用权向纠错编码、ARQ、TDD和基带协议。TDMA每时隙为0.625μs,基带符合速率为1Mb/s。蓝牙支持64kb/s实时语音传输和数据传输,语音编码为CVSD,发射功率分别为1mW、2.5mW和100mW,并使用全球统一的48比特的设备识别码。由于蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,并且适用于多种场合,加上该技术功耗低、对人体危害小,而且应用简单、容易实现,所以易于推广。
电脑主板与手机的蓝牙使用的是相兼容的协议,在10米范围内可以互相通信。
8.6 实践总结
回顾本次实践,遇到哪些问题,如何解决,经验和启发有哪些?
Verp PID控制
if (simK3.getLineSensor(k3Handle,0)>0.5) then
velLeft=maxVel -- left sensor intensity > 0.5
else
velLeft=maxVel*0.5 -- left sensor intensity <= 0.5
end
if (simK3.getLineSensor(k3Handle,1)>0.5) then
velRight=maxVel -- right sensor intensity > 0.5
else
velRight=maxVel*0.5 -- right sensor intensity <= 0.5
End
velLeft=1.74*maxVel*simK3.getLineSensor(k3Handle,0)
velRight=1.74*maxVel*simK3.getLineSensor(k3Handle,1)
Arduino Uno 是整个 Arduino 家族当中使用最为广泛、文档最为齐全的一款硬件产品,基于 Microchip 微芯公司的 8 位 AVR 单片机 ATmega328P,工作电压为5V,采用16MHz的无源谐振器,并拥有32 KB的 Flash 存储器(其中0.5KB用于Bootloader程序),以及2KB的 SRAM 和1KB的 EEPROM。 Arduino Mega 2560开发板基于ATmega2560微控制器,与 Uno 上采用的 ATmega328P 同属 8 位 AVR 微控制器,其工作电压同为5V,采用的时钟频率为16MHz,拥有256KB容量的 Flash 存储器(其中8KB用于 Bootloader),8KB大小的 SRAM,4KB容量的 EEPROM。 Arduino Due 开发板基于 Atmel SAM3X8E ARM Cortex-M3 CPU 微控制器,工作电压为3.3V,采用的时钟晶振频率为84 MHz,拥有512KB的 Flash 存储器,以及96KB的 SRAM(分为64KB和32KB两个Bank)。作为第一款基于 32 位 ARM 内核微控制器的 Arduino 开发板,板载 54 个数字输入/输出引脚(其中 12 个可用于 PWM 输出),12 个模拟输出,4 个硬件串行接口,其引脚分布基本与 Arduino Mega 2560 保持一致。 Wemos D1是一款基于上海乐鑫科技的 WIFI 芯片 ESP8266 的仿 Arduino Uno 开发板,通过Arduino core for ESP8266 WiFi chip 开源项目为 Arduino 环境提供了对 ESP8266 芯片的支持。 特性: 基于ESP-8266EX Arduino兼容,使用Arduino IDE编程