要学习做一名创客,从套件搭建多功能机器人不失为一种有效的方法,因为它提供机会学习多个相关领域的知识,包括微控制器、传感器、电机、软件开发等。而且,不论对于初学者还是经验丰富的创客,都有大量的机器人套件、插件和在线帮助供其选择。
本文讨论在基于 DF Robot 的 Devastator 坦克平台(图 1)搭建机器人时,应该考虑的一些实用步骤、问题和可能的升级。
图 1:DFRobot Devastator 是可帮助设计人员和创客学习广泛的电子和软件技能的多功能平台。(图片来源:DFRobot)
为什么选择 Devastator?它坚固耐用,采用铝构造,并具有两个金属齿轮有刷直流电机。它能搬运重达 3 kg 的载荷,具有多个可用于安装传感器、伺服机构、机器人手和其他配件的安装孔,而且可兼容所有流行的、适合创客使用的微控制器板。
机器人附带底座、轮子、履带和两个电机,其他组件的选择则取决于设计人员。完整的系统需要一块微控制器板、一块电机驱动器板和一种输入命令的方法。可选的插件可能包括机器人手、摄像机等组件,或旨在提供一定程度的自主操作的防撞系统。
Devastator 机器人可兼容多种流行的微控制器平台。Arduino 开源开发平台于 2003 年在意大利问世,并为初学者和专业设计人员广泛使用。Arduino Uno(图 2)使用 Microchip Technology(原 Atmel)的 ATmega328P 8 位 RISC 微控制器。
其他标准功能包括:一个受预编程的 ATmega16U2 微控制器控制的 USB 端口、多路数字输入和输出、一个模拟输入端口,以及一个用于软件更新的在线串行编程 (ICSP) 端口。更新的 Arduino Due 将内核升级为一个 32 位 ARM® Cortex®-M3。此内核还在下文讨论的 DFRobot 控制器板中使用,而该控制器板同时具备 Arduino 的兼容性和电机驱动器。
图 2:Arduino Uno 是创客项目的流行选择,并且基于 Microchip Technology 的 ATmega328P 8 位 RISC 微控制器。(图片来源:Arduino)
Raspberry Pi 单板计算机最初在学校用于基础计算机科学教学,但如今在创客社区变得极为流行。最新的 Raspberry Pi 3 基于以 1.2 GHz 频率运行的 Broadcom 64 位四核 CPU。它包含 802.11n 无线 LAN、蓝牙 4.1 和低功耗蓝牙 (BLE)。还包含 1 GB RAM、一个微型 SD 卡插槽、4 个 USB 端口、多个 HDMI 和以太网端口、一个摄像头接口、40 个 GPIO 引脚,以及其他专用接口。
希望运用其现有经验的 Windows 专家可以从使用 Devastator 兼容型 LattePanda 控制器板开始,因为该板附带已安装并激活的完整版 Windows 10。该板使用一个以 1.8 Ghz 频率运行且捆绑了一个协处理器的四核 CPU,还使用了 Microchip 的 8 位 Atmega32u4 以实现 Arduino 兼容性。
LattePanda 附带 2 GB DDR3L RAM 和多达 32 GB 存储,一个 USB 3.0 和两个 USB 2.0 端口,Wi-Fi,蓝牙 4.0,一个协处理器,以及在两个处理器之间划分的合计 22 个 GPIO。
确定微控制器内核后,下一步是选择电机控制板。Devastator 包含两个以 160 rpm(无负载)速度工作的 6 伏 (V) 电机。每个电机的最大输出扭矩为 0.8 kgf.cm (0.058 ft-lb.),最大失速电流为 2.8 安 (A)。
Raspberry Pi 需要插件扩展板来实现机器人特定的功能,不过 DFRobot 的 DFR0398 Romeo BLE Quad 板为 Arduino 爱好者提供了同时包含微控制器和电机驱动器的单板选件(图 3)。该板提供了比 UNO 衍生产品更强大的内核,但仍保持了 Arduino 软件兼容性。
微控制器为 STMicroelectronics 的 STM32F103RET6:此器件使用以 72 MHz 频率运行的 ARM® Cortex®-M3 32 位内核,并包含 512 KB 闪存、一个电机控制脉冲宽度调制 (PWM) 模块、16 个 12 位模数转换 (ADC) 通道,以及两个 12 位数模转换 (DAC) 通道。
图 3:DFR0398 Romeo BLE Quad 是可兼容 Arduino 的机器人控制板,并带有蓝牙功能和用于四个电机的驱动器。(图片来源:DFRobot)
电机驱动器由两个 Microsemi HR8833 器件实现。每个 MOSFET 驱动器包含两个 H 桥驱动器,用于 Devastator 电机的双向控制。Romeo BLE Quad 包含四个编码器接口,而且集成了 Texas Instruments 的 CC2540 射频收发器,用于实现蓝牙 4.0 无线连接。
微控制器板本身通用 USB 连接器以 5 伏电压运行,但电机需要具有更高电压和电流的便携式(即电池)电源。许多创客采用最初用于无线电遥控 (RC) 车的廉价可充电电池组。这些电池组通常具有 7 伏或更高的电压和超过 5000 毫安时 (mAh) 的容量,并且可以轻松更换原始连接器。Romeo BLE Quad 伺服电源端口可接受 7 到 10 伏直流电。
在微控制器板上安装软件非常简单,面向创客的供应商在其网站上提供了分步说明。
在确定操作系统 (OS) 时,选择因平台而异。LattePanda 板附带已安装好的 Windows。Raspberry Pi 提供了多种选项,包括 Windows IoT Core 和各种 Linux 版本。Raspbian 是开源 Debian Linux OS 的变型,也是创客社区中最常见的选择。
另一方面,Arduino 并不使用传统的操作系统;Arduino 平台使用的是一个通过代码序列重复循环的循环执行程序。开发人员使用开源的 Arduino 集成开发环境 (IDE) 编写和安装代码。它是以 Java 编写,并且适用于 Windows、Mac OS X 和 Linux 主机的跨平台应用。在 Arduino 环境中,有几个项目具有自己的术语。例如,Arduino 兼容型插件板被称为“盾板”,软件模块则被称为“草图”。
由于 Romeo BLE Quad 板是包含高级外设的单板机器人解决方案,因此后面的讨论中将使用该板。
首先,为主机选择首选操作系统,并从 Arduino 网站下载相应的 IDE。尽管 DF Romeo BLE Quad 没有使用与标准 Arduino 硬件相同的 Atmega328 处理器,但软件开发流程是相似的,因为该板与 Arduino IDE 是兼容的。
该 IDE 支持超过 25 款的来自多家制造商的开发板,但 Romeo BLE Quad 不在其中。Romeo BLE Quad 是另一块 DFRobot 板 Bluno M3 的一个版本,并添加了电机驱动器。要配置 IDE,必须先从开源 GitHub 网站下载 Bluno M3 文件。
要安装此文件:
打开 Arduino IDE 并转至 File(文件)-> Preferences(偏好)。将 GitHub 链接复制到“Additional Boards Manager URLs(更多板管理器 URL)”框中,然后单击“OK(确定)”。
转至 Tools(工具)-> Board(板)-> Board Manager(板管理器),在搜索框中输入“Bluno M3”,然后单击“Install(安装)”。随即下载配置文件。
从 Tools(工具)-> Board(板)菜单中选择 Bluno M3 板。
系统现在做好了进行应用开发的准备。标准 IDE 支持 C 和 C++ 编程,并且包含多个代码示例。开发人员使用文本编辑器编写草图(程序)(图 4)。
图 4:Arduino IDE 屏幕和文本编辑器:新程序中包含两个必要的函数。(图片来源:Arduino)
然后 IDE 对代码进行调试,交叉编译,并通过在线串行编程 (ICSP) 端口将结果上传到微控制器板。Romeo BLE Quad 还可通过其蓝牙端口进行编程。
文本编辑器从一个新程序开始,该程序包含两个预载的必要函数,并且已准备好添加代码:setup() 用于配置初始条件并且仅执行一次,然后连续运行 loop()。
必须下载并安装两个 Arduino 库,才能使用 Romeo BLE Quad 来运行 Devastator 电机:Motor.h 和 PID_v1.h。
电机代码首先通过一个 include 语句请求将这两个库作为头文件,并定义 I/O 引脚和一些初始常数,然后在 setup() 部分配置电机(列表 1)。
Copy/*!* @file RemeoBLEQuadDrive.ino* @brief RemeoBLEQuadDrive.ino PID control system of DC motor** RemeoBLEQuadDrive.ino Use PID control 4 way DC motor direction and speed** @author linfeng(490289303@qq.com)* @version V1.0* @date 2016-4-14*/ #include "PID_v1.h"#include "Motor.h" Motor motor[4];int motorSpeed[4] = {-200,200,400,-400};/*Set 4 speed motor*//* Speed=motorSpeed/(32*(setSampleTime/1000))(r/s) */const int motorDirPin[4][2] = { //Forward, Backward/*Motor-driven IO ports*/ {8,23}, {7,9}, {24,14}, {4,25}}; //const double motorPidParam[3]={0.6,1,0.03};/*DC MOTOR,Yellow??180degree*///const double motorPidParam[3]={1.5,1,0.05};/*DC MOTOR,Yellow??90 degree*/const double motorPidParam[3]={1.2,0.8,0.05};/*Encoder V1.0,160rd/min ;19500/min; 32:1,Kr=3.5*/void setup( void ){ Serial1.begin(115200); for(int i=0;i<4;i++){ motor[i].setPid(motorPidParam[0],motorPidParam[1],motorPidParam[2]);/*Tuning PID parameters*/ motor[i].setPin(motorDirPin[i][0],motorDirPin[i][1]);/*Configure IO ports*/ motor[i].setSampleTime(100);/*Sets the sampling period*/ motor[i].setChannel(i);/*Sets the motor channel */ motor[i].ready();/*Motor enable*/ motor[i].setSpeed(motorSpeed[i]);/*Set motor speed*/ }} void loop( void ){ for(int i = 0; i < 4; i++){ motor[i].calibrate();/*motor PID calibrate*/ } }
列表 1:此 C 代码示例用于配置和控制 Romeo BLE Quad 的四个 Arduino 电机。(代码来源:DFRobot)
Setup() 和 loop() 部分用于配置和控制四个电机通道。由于 Devastator 底盘只需要两个电机,因此可将备件用于下面讨论的机器人手等配件。
可以将一根 USB 电缆插入控制板,并操纵机器人四处移动,但通过 Wi-Fi 或蓝牙使用智能手机、平板电脑或计算机来无线控制它无疑要方便得多。如前所述,Romeo BLE Quad 包含与 Bluno 平台相同的蓝牙 4.0 模块。GitHub 提供了适用于 iOS 7.0+ 和 Android 4.3+ 的开源应用。利用这些应用,设计人员可以远程控制机器人并上传新的草图。
组装基本设计之后,下一步通常是添加配件,使机器人能够执行一些有用的任务(图 5)。以下是一些升级尝试。
图 5:DFRobot URM37 v4.0 超声传感器(左侧)和 Adafruit 397 摄像模块(右侧)是两种流行的配件(图片来源:DFRobot 和 Adafruit)
检测并避开障碍物是移动机器人需要的一项功能。DFRobot URM37 v4.0 超声传感器输出与距离成正比的电压,并且可兼容 Arduino 和 Raspberry Pi。该传感器可检测物体或墙壁的存在,然后由代码执行随机转向,机器人继续在新方向上移动。
将该机器人升级为移动摄像机是另一项流行的升级。Adafruit 397 摄像模块可以捕获视频或静态图片。该摄像机及其 CMOS 图像传感器能以 30 帧每秒 (fps) 的速度捕获 640 x 480 像素的图像,并且具备运动检测功能。
考虑在机器人手(例如图 6 所示的 DF05BB 倾斜/平移组件)上安装摄像机。该套件包含两个托架和两个 DF05 伺服电机,适合水平安装。
图 6:DFRobot DF05BB 倾斜/平移安装附带两个伺服电机和两个托架。(图片来源:DFRobot)
完整的 Devastator 机器人包括底盘、控制器板、扩展板和超声传感器(图 7)。为方便起见,两个板位于平台上部,但如果需要一个顶部安装的可移动摄像机,则也有一个下部安装平台。
图 7:此完整设计示例包括 Devastator 底座、控制器板、电机控制扩展板和超声传感器。(图片来源:DFRobot)
DFRobot 是基于创客的卓越平台,适合设计人员和创客在有趣且具备良好支持的环境中探索软件开发、微控制器功能、传感器选项和电机控制。
全部0条评论
快来发表一下你的评论吧 !