【S123】轮式行走全方位平台机器人
作品说明 |
作者:孟庆焱 刘明洋 代小阳
单位:三河市职业技术教育中心
指导老师:张志松 王建林
本项目设计的轮式行走全方位平台机器人以Brsra主控板为核心,以舵机和直流电机为基础的工作台,通过Arduino软件,利用编程思想,完成轮式全方位平台机器人的行进、升降、转向、动作程序,并在生成的C语言代码中,由实际情况调整合适的参数,确保机器人能高效、稳定的完成任务。本作品将多种功能集于一体,采用模块化设计思想,对不同情况设置不同的程序及参数,使机器人能应对不同的工作情况,并通过遥控完成工作。实验结果表明,该设计方案可行。
关键词:Brsra;Arduino;图形化编程;蓝牙模块
1. 教育机器人研究背景和意义
2016年3月21日工业和信息化部、发展改革委、财政部关于《机器人产业发展规划(2016-2020年)》(工信部联规〔2016〕109号)的通知正式印发,2017年7月8日国务院关于新一代人工智能发展规划(国发〔2017〕35号)的通知正式印发。在此期间,各级别领导多次发声助力机器人和人工智能的发展。教育机器人是面向教育领域专门研发的以培养学生分析能力、创造能力和实践能力为目标的机器人,具有教学适用性、开放性、可扩展性和友好的人机交互等特点,最早源自于20世纪60年代麻省理工学院的人工智能实验室。
教育机器人是一个多学科、跨领域的研究,涵盖计算机科学、教育学、自动控制、机械、材料科学、心理学和光学等领域。机器人教育将激发广大学生对智能技术的学习兴趣和动力,并大范围提高学生信息技术能力,提升数字时代的竞争能力。机器人教育主要应用于组装—动力机械,如学习物理学原理、空间结构、机械传动、电与磁等;控制—智能操控,如执行机构、驱动装置、检测装置和控制系统等;竞赛-实战对抗,如按竞赛设计情境搭建机器人,并对机器人进行任务编程,学习问题解决等。随着机器人技术的不断提高,教育服务机器人在教育领域中的应用越来越普遍,有研究表明教育机器人作为一个学习工具有巨大的潜力。此外,教育机器人也是一种典型的数字化益智玩具,适用于各种人群,通过多样化的功能达到寓教于乐的目。
2. 系统整体设计
系统的总体概述为:轮式行走全方位平台机器人主要参考工程车辆和数控机床,根据工程现场的实际需要,完成相关机械结构的设计及组装,包括:行进、升降、转向、动作等。轮式全方位平台机器人基于Brsra主控板及Bigfish扩展版控制算法进行相应路线运行,利用蓝牙模块进行控制。
根据系统的基本要求,本项目设计了系统的结构图,如下图所示。为满足工程要求,力求系统的高效、稳定,因此在结构设计过程中要避免信号干扰和动力不足,减少因硬件而引发的问题。因此,我们采用类似于工程车辆的两套独立控制方式,以及可转手动操作部分。
作品说明
系统结构图
本项目中的轮式行走全方位平台机器人整体布局如下图所示,有如下几个特点:
① 采用一个蓝牙模块、两个直流电机控制行进、两个舵机控制行进和升降。两个直流电机分别安装在机器人足部,舵机安装在机器人腿部。
② 采用一个蓝牙模块、一个舵机控制转向、一个舵机控制手臂动作。一个控制转向舵机安装在机器人胸部,工作舵机安装在机器两臂。为保障整体稳定,主控部分安装在腰部,根据需要可适当增加配重;手控按钮安装在背部。
整体布局实物图
从设计角度的简便性、稳定性及可靠性出发,结合功能要求,完成轮式全方位平台机器人机械结构的设计,机械机构主要包括行进轮、腿部舵机、转向机构和臂部功能构件。轮式全方位平台机器人的尺寸为:长*宽*高=390*270*185mm。其结构简图如下所示:
轮式行走全方位平台机器人结构简图
选择轮足式的机器人,针对的是相对平坦地形的工作,而对于复杂地形,我们的行走模式一般情况就可以满足,但对于疑难地形我们设计了另一个模式,机器人蹲下降低重心、轮足修正为履带式。因此,我们在设计中采取了易于变更履带安装的轮式结构,同时也是对机器人重心的一个考虑。如下图所示:
轮足式与履带轮实物对比图
M01标准舵机
M01标准舵机三根引出线图
Brsra是一款基于Arduino开源方案设计的一款开发板(如下图所示)。通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以在Arduino、clipse、VisualStudio等IDE中通过c/c++语言来编写程序,编译成二进制文件,烧录进微控制器。Basra的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一ICSPheader和一个复位按钮,接口图如下所示:
Brsra主控板具有以下特点:
开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改
可以采用 USB接口供电,不需外接电源,也可以使用外部DC输入
支持 ISP在线烧,有了bootloader之后,可以在线更新固件
支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。
具有宽泛的供电范围,电源电压可任选3v~12v 的电源
采用堆叠设计,可任意扩展
主控板尺寸不超过60mm*60mm,便于给小型机电设备安装
板载USB驱动芯片及自动复位电路,烧录程序时无需手动复位
支持Visual Studio、eclipse、sublime text等IDE
4.2 Bigfish扩展板Arduino是开源的控制板,专用于简单机器人的扩展板,能将大部分传感器轻松地和arduino控制板连接,通过BigFish扩展板连接的电路可靠稳定,上面还扩展了伺服电机接口、8*8Led点阵、直流电机驱动以及一个通用扩展接口,可以说控制板的必备配件,BigFish扩展板实物图及接口图如下所示:
BigFish扩展板实物图
BigFish扩展板接口图
BigFish扩展板的特点为:
完全兼容Basra、Mehran控制板接口
彩色分组插针,一目了然
全部铜制插针,用料考究,电器性能稳定
优秀PCB设计,美观大方
多种特殊接口设计,兼容所有探索者电子模块,使用方便
所有 3P、4P 接口采用防反插设计,避免电子模块间连线造成的误操作
可直接驱动舵机、直流电机、数码管等机器人常规执行部件,无需外围电路
具有5v、3.3v及vin3种电源接口,便于为各类扩展模块供
4.3主控板使用注意事项Brsra主控板:USB口附近有一个可重置的保险丝,对电路起到保护作用;当电流超过500mA时会断开USB连接。主控板提供了自动复位设计,可以通过主机复位。
BigFish扩展板:D11\D12舵机端口与LED点阵复用,应注意避免同时使用。
5. 软件设计
软件部分采用模块化的设计思想,主要是主程序通过调用各个模块的子程序控制机器人的整体运作,每个子程序设计一个模块的动作。软件部分包含了蓝牙模块、行进模块、升降模块、转向模块、动作模块以及算法部分等。其中蓝牙控制模块贯穿了程序的始终,是机器人准确而稳定的接收信号的保障,但手动部分又是意外状况发生后机器人能够完成工作的保障。本项目采用了Android的蓝牙管理软件 Amarino ,程序如下:
① 蓝牙模块调试
void setup() { Serial.begin(9600); }
void loop() { while(Serial.available()) { char c=Serial.read(); if(c=='A') { Serial.println("Hello I am amarino"); } } } |
#include <Servo.h>
Servo servo_pin_4; Servo servo_pin_3; Servo servo_pin_12; Servo servo_pin_8; Servo servo_pin_11; Servo servo_pin_7;
void daoxia(); void zhanli();
void setup() { pinMode( 17, INPUT); pinMode( 18, INPUT); pinMode( 16, INPUT); pinMode( 14, INPUT); servo_pin_4.attach(4); servo_pin_3.attach(3); servo_pin_12.attach(12); servo_pin_8.attach(8); servo_pin_11.attach(11); servo_pin_7.attach(7); }
void loop() { if (!( digitalRead(14) )) { zhanli(); } if (!( digitalRead(16) )) { daoxia(); } if (!( digitalRead(17) )) { servo_pin_4.write( 45 ); delay( 1000 ); servo_pin_4.write( 125 ); delay( 1000 ); } else { servo_pin_4.write( 75 ); } if (!( digitalRead(18) )) { servo_pin_3.write( 45 ); delay( 1000 ); servo_pin_3.write( 125 ); delay( 1000 ); } else { servo_pin_3.write( 90 ); } }
void daoxia() { servo_pin_12.write( 0 ); servo_pin_8.write( 180 ); servo_pin_11.write( 90 ); servo_pin_7.write( 90 ); }
void zhanli() { servo_pin_12.write( 110 ); servo_pin_8.write( 50 ); servo_pin_11.write( 0 ); servo_pin_7.write( 200 ); } |
② 舵机模块调试
Arduino是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。
Arduino特点:
便宜 - 和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。
跨平台 - Arduino软件可以运行在Windows,Macintosh OSX,和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。
简易的编程环境 - 初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。
软件开源并可扩展 - Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。
硬件开源并可扩展 - Arduino板基于 Atmel 的ATMEGA8 和ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。
6.2 系统调试机器人利用的是左右舵机带动机械结构升降的。在调试过程中,为保障舵机动力满足要求,我们在两个舵机启动中采取了延时控制,在保证升降不受影响的基础上,降低启动电流,防止动力不足以及扩展板损坏的情况。
6.2.2 转向调试首先要通过先对机械结构进行调整,在机械硬件方面保证机器人重心稳定。在机器人腰部的主控模块上增加配重,确保机器人能稳定的实现转向。
6.2.3 手动调试本机器人采用遥控和手动两套操作方式,目的在与避免工业应用中出现不可控故障。在此过程中,若蓝牙模块收到干扰,则不能被有效接收信号,进而会影响机器人的工作,因此需要对机器人实施手动操作,我们在机器人背部设置了5个触碰传感器模拟线控手柄。
7. 结论
针对轮式行走全方位平台机器人的运行要求,本项目完成了基本的结构设计和样机制作,主要成果如下:
① 完成了轮式行走全方位平台机器人的系统整体设计,确定了机器人的整体布局方案。
② 完成了轮式行走全方位平台机器人的机械结构设计,确定了行走机构的选型设计。
③ 完成了轮式行走全方位平台机器人的硬件设计,并利用Brsra主控板及Bigfish扩展板,完成对机器人的硬件设计。
④ 完成了轮式行走全方位平台机器人系统开发及调试,利用Arduino软件对机器人进行编程,并对主要功能进行了调试。
* 本项目未获得作者开源授权,无法提供资料下载。
|