0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学习做一名创客,搭建多功能机器人

工程师兵营 来源:互联网 作者:佚名 2018-06-29 09:25 次阅读

要学习做一名创客,从套件搭建多功能机器人不失为一种有效的方法,因为它提供机会学习多个相关领域的知识,包括微控制器传感器电机、软件开发等。而且,不论对于初学者还是经验丰富的创客,都有大量的机器人套件、插件和在线帮助供其选择。

本文讨论在基于 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 的兼容性和电机驱动器。

Arduino Uno 图片

图 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) 通道。

DFRobot DFR0398 Romeo BLE Quad 图片

图 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 编程

由于 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 文件。

要安装此文件:

  1. 打开 Arduino IDE 并转至 File(文件)-> Preferences(偏好)。将 GitHub 链接复制到“Additional Boards Manager URLs(更多板管理器 URL)”框中,然后单击“OK(确定)”。

  2. 转至 Tools(工具)-> Board(板)-> Board Manager(板管理器),在搜索框中输入“Bluno M3”,然后单击“Install(安装)”。随即下载配置文件。

  3. 从 Tools(工具)-> Board(板)菜单中选择 Bluno M3 板。

系统现在做好了进行应用开发的准备。标准 IDE 支持 C 和 C++ 编程,并且包含多个代码示例。开发人员使用文本编辑器编写草图(程序)(图 4)。

Arduino IDE 屏幕和文本编辑器图片

图 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/*!*@fileRemeoBLEQuadDrive.ino*@briefRemeoBLEQuadDrive.inoPIDcontrolsystemofDCmotor**RemeoBLEQuadDrive.inoUsePIDcontrol4wayDCmotordirectionandspeed**@authorlinfeng(490289303@qq.com)*@versionV1.0*@date2016-4-14*/#include"PID_v1.h"#include"Motor.h"Motormotor[4];intmotorSpeed[4]={-200,200,400,-400};/*Set4speedmotor*//*Speed=motorSpeed/(32*(setSampleTime/1000))(r/s)*/constintmotorDirPin[4][2]={//Forward,Backward/*Motor-drivenIOports*/{8,23},{7,9},{24,14},{4,25}};//constdoublemotorPidParam[3]={0.6,1,0.03};/*DCMOTOR,Yellow??180degree*///constdoublemotorPidParam[3]={1.5,1,0.05};/*DCMOTOR,Yellow??90degree*/constdoublemotorPidParam[3]={1.2,0.8,0.05};/*EncoderV1.0,160rd/min;19500/min;32:1,Kr=3.5*/voidsetup(void){Serial1.begin(115200);for(inti=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 是基于创客的卓越平台,适合设计人员和创客在有趣且具备良好支持的环境中探索软件开发、微控制器功能、传感器选项和电机控制。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27025

    浏览量

    201369
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184824
  • ATMEGA16U2-MU
    +关注

    关注

    1

    文章

    1

    浏览量

    3535
收藏 人收藏

    评论

    相关推荐

    3D打印遥控气垫船、微型步行机器人、变压器式实验室电源|DF周刊(第77期)

    /3D-Printed-RC-Hovercraft-IPACV-3D/ 微型步行机器人——Wee Bug \"Wee Bug\"是款基于开源硬件CircuitPython的四足机器人
    发表于 03-29 11:15

    营】新品体验!机器视觉VisionBoard开发板免费试用

    MicroPython 解释器,使其可以流畅地开发机器视觉应用。为了让更多人能够深入了解并充分利用Vision Board的强大功能,RT-Thread携手瑞萨电子及华秋电子将发起Vision Board
    发表于 03-20 14:03

    【开源项目】Emo:基于树莓派 4B DIY 能笑会动的桌面机器人

    Emo是款基于树莓派4的个人伴侣机器人,集时尚与创新于身。它不仅仅是机器人,更是
    发表于 12-26 15:18

    开源项目!教你如何复刻自平衡赛车机器人、智能家居中控、竞技机器人先进模糊控制器等

    开源项目作品 为了方便大家更好提升自己,电子发烧友小编为大家整理了些工程师大佬设计的开源项目作品,供大家可以参考学习,希望对广大工程师有所帮助。 1.用全志R128复刻自平衡赛车机器人,还实现
    发表于 12-26 09:17

    LabVIEW的六轴工业机器人运动控制系统

    。LabVIEW的可视化编程环境和强大的数据处理能力,使得复杂的运动学算法和轨迹规划得以顺利实现,显著提高了工业机器人的控制精度和效率。 ​ 这是LabVIEW的功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息
    发表于 12-21 20:03

    pic单片机扫地机器人有什么优势?

    pic单片机扫地机器人有什么优势
    发表于 11-09 07:24

    Arduino教学机器人的使用教程

    本文档的主要内容详细介绍的是Arduino教学机器人的使用教程
    发表于 09-27 06:53

    教你做个PID控制巡线机器人

    在本项目中,我们将学习如何使用带PID控制器的线跟随机器人使用Arduino Nano来解决迷宫。
    发表于 09-25 06:54

    ai人工智能机器人

    的进行监控管理。 智能电话机器人的另个优势是不知疲倦,不需要休息和喝水,不需要休息。人在工作时就会有各种各样的脾气,但智能电话机器人不会,永远都以最严谨、最周到的态度和客户进行沟通。 在科技高速发展
    发表于 09-21 11:09

    基于Matlab和VR技术的移动机器人建模及仿真

    利用 Matlab 建立移动机器人的动力学模型 ,在虚拟现实 (VR )环境下 ,实时仿真移动机器人路径跟踪的运动特性 ,为基于 Internet 的机器人遥操作试验搭建了仿真平台 。
    发表于 09-20 06:24

    机器人上线有什么注意事项

    不要被复杂的生产线吓倒,生产线可以看成多个单独的设备或机器人,每部分完成功能
    发表于 06-08 17:40

    自编程机器人,售后难吗?

    帮助文件当函数执行了,其实很简单。 起初,我们可以只设计个if功能个if可以完成所有的功能,只是可能会执行缓慢。但我们的确完成了个智
    发表于 06-08 16:20

    如何快速地让机器人投入生产

    机器人也是种设备,它主要内容是完成个制造的其中功能。 制造个产品,可以分为几个部件。和
    发表于 06-06 16:18

    机器人如何计算简单的运动

    模型要具备齿轮,导轨几种基本的运动原理。 要分辨基本图形,视觉模型要能分辨圆形,方形和三角形。 有了这两点,机器人就基本上能计算开模和注塑这种简单的工作了。要替代人类的工作,还要进学习
    发表于 05-19 20:40

    浅谈儿童陪护机器人

    输出电流达3.5A、电源电压范围广、过流、过热保护等功能。这些特点使得TB6560AHQ成为种理想的步进电机芯片选择,特别是在儿童陪护机器人等对噪音和安全性要求高的应用场景中,TB6600: 这是
    发表于 05-11 15:12