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 是基于创客的卓越平台,适合设计人员和创客在有趣且具备良好支持的环境中探索软件开发、微控制器功能、传感器选项和电机控制。


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

    关注

    213

    文章

    30580

    浏览量

    219563
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195964
  • ATMEGA16U2-MU
    +关注

    关注

    1

    文章

    1

    浏览量

    3631
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索RISC-V在机器人领域的潜力

    运行ROS 2,充分证明了RISC-V架构完全有能力承载机器人操作系统这样的复杂软件栈。它不仅是学习RISC-V的绝佳工具,更是探索未来边缘计算和智能机器人个强大起点。 致谢:
    发表于 12-03 14:40

    发那科推出全新M-710iD系列六轴多功能机器人

    广受欢迎的六轴多功能机器人M-710系列迎来全面升级!发那科全新推出M-710iD/50M与M-710iD/70机器人,为机床上下料、物料搬运、装配、码垛及焊接应用树立新标杆。
    的头像 发表于 09-12 15:05 2296次阅读

    工业机器人的特点

    机器人是关键。工业互联网是通过端上的数据传输,经过大数据分析和云计算处理,再进行智能化决策的整个过程,其中端的数据传输是基础。工业互联网的端包括机器人、传感器等切线下连接端口。因此
    发表于 07-26 11:22

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    的非常好的,特别是些流程图,很清晰的阐释了概念 很适合作为初学者入门的引路书 还能了解很多技术和框架,破除初学者的自负困境,让初学者知道功能是由很多开发者维护的,前人已经为各种产品搭建了完善的框架。避免陷入得
    发表于 04-30 01:05

    【「# ROS 2智能机器人开发实践」阅读体验】+内容初识

    《ROS 2智能机器人开发实践》内容阅读初体验 《ROS 2 智能机器人开发实践》是本针对 ROS 2(Robot Operating System 2)这先进
    发表于 04-27 11:24

    名单公布!【书籍评测活动NO.58】ROS 2智能机器人开发实践

    的应用功能就可以被快速分享了。 例如,我的自主导航功能你可以用,你的物体抓取功能我也可以用, 只需开发
    发表于 03-03 14:18

    安富利推动多功能机器人的发展和应用

    在科技的前沿,多功能机器人(Polyfunctional Robots)正逐渐成为工业和生活场景中的关键力量。
    的头像 发表于 02-27 18:08 1149次阅读
    安富利推动<b class='flag-5'>多功能</b><b class='flag-5'>机器人</b>的发展和应用

    多功能复合机器人设计方案

    本文中的案例介绍了如何将 myCobot 280 机械臂与 myAGV 移动底盘进行集成,以构建用于智能自动化的多功能复合机器人
    的头像 发表于 02-10 15:34 1370次阅读
    <b class='flag-5'>多功能</b>复合<b class='flag-5'>机器人</b>设计方案

    机器人发布全球首款防爆人形机器人“天魁1号”

    近日,天机器人公司正式推出了全球首款防爆人形机器人——“天魁1号”。这款机器人是工业智能运维领域的项重要创新,为构建从发现问题到解决问题
    的头像 发表于 01-17 10:18 1602次阅读

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    次生成深度信息。 自主机器人定位任务的本质是对机器人自身状态的估计问题,包括位置,朝向,速度等问题。 路径规划旨在找到从起点到目标区域的路径,确保路径的可行性和最优性。路径规划方法包括变分方法,图搜
    发表于 01-04 19:22

    开源项目!能够精确地行走、跳舞和执行复杂动作的机器人—Tillu

    的语音识别系统响应语音指令 为什么打造Tillu? 打造Tillu不仅是个项目,更是学习体验。通过深入探索机器人技术、编程细节以及自定义动作和表情,释放你的创造力。无论你是学
    发表于 01-02 17:24

    【「具身智能机器人系统」阅读体验】1.全书概览与第学习

    非常感谢电子发烧友提供的这次书籍测评活动!最近,我一直在学习大模型和人工智能的相关知识,深刻体会到机器人技术是个极具潜力的未来方向,甚至可以说是推动时代变革的重要力量。能参与这次活动并有机会深入
    发表于 12-27 14:50

    【「具身智能机器人系统」阅读体验】+初品的体验

    解决许多技术的和非技术的挑战,如提高智能体的自主性、处理复杂环境互动的能力及确保行为的伦理和安全性。 未来的研究需要将视觉、语音和其他传感技术与机器人技术相结合,以探索更加先进的知识表示和记忆模块,利用强化学习步优化决策过程
    发表于 12-20 19:17

    《具身智能机器人系统》第1-6章阅读心得之具身智能机器人系统背景知识与基础模块

    与环境持续互动来优化决策策略。书中还进步讨论了强化学习的基本原理,包括状态空间、动作空间、奖励函数的设计,以及策略网络的训练方法。 具身智能机器人系统是个多学科知识交叉的复杂工程体
    发表于 12-19 22:26