机器人控制器编程实践指导书旧版-实践八 机器人综合设计

2022-09-21 09:13:08 浏览数 (1)

适用于UNO/2560/DUE/ESP8266/ESP32,2021年之前使用版本。


8.1 实践目的

  • 综合运用Arduino[ESP32]单片机编程技术和机器人相关硬件单元设计具有特殊功能的机器人。

8.2 实践设备

  • PC机一台
  • Arduino[ESP32]开发板及配件等
  • 万用表和示波器等

8.3 实践原理

  • 初级:无
  • 中级:

观察示意图,需理解各模块作用。

示意图

模型图

  • 高级(ROS选修):

使用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编程

  • 11 x IO引脚
  • 1 x ADC引脚(输入范围0~3.3V)
  • 板载5V 1A开关电源(高输入电压24V)

0 人点赞