admin 管理员组文章数量: 887021
2024年2月18日发(作者:特斯拉事件涉及啥法律)
仿生六足机器人教材
———基于Arduino开发平台V1.0
目录
一、机器人的组装 ............................................................................................................................... 1
1.1. 组装工具 ............................................................................................................................... 1
1.2. 装配步骤 ............................................................................................................................... 1
二、系统概述 ..................................................................................................................................... 10
2.1. arduino介绍........................................................................................................................ 10
1
Arduino仿生六足机器人教材
2.2. Arduino驱动安装 .............................................................................................................. 13
2.3. Arduino IDE菜单介绍 ....................................................................................................... 20
三、实验操作 ..................................................................................................................................... 25
3.1 红外避障实验 ...................................................................................................................... 25
3.2 舵机实验 .............................................................................................................................. 27
四、使用说明 ..................................................................................................................................... 31
4.1.接线端口介绍 ....................................................................................................................... 31
4.2.操作说明 ............................................................................................................................... 32
2
Arduino仿生六足机器人教材
一、机器人的组装
1.1. 组装工具
工具:尖嘴钳、十字螺丝刀等。
1.2. 装配步骤
1) 首先是准备好机体
2) 在机体上装配4个M3X15mm的六棱铜柱,所用到4个M3X8mm的螺钉如下图所示:我这里为了方便能够清楚看到螺钉与铜柱的连接把它分开了。
1
Arduino仿生六足机器人教材
2
Arduino仿生六足机器人教材
3) 完成组装
4) 下一步就是装两个模拟舵机和付板,所用到八个螺钉,八个螺母如下图所示1是分解装配
3
Arduino仿生六足机器人教材
5) 完成装配
6) 这一步是两个十字舵盘的安装,这里用到两个M3X6mm的螺丝
4
Arduino仿生六足机器人教材
7) 完成组装
8) 组装M3X20mm、M3X25mm的六棱铜柱,这里中间部位是两个M3X20mm六棱铜柱,两侧是M3X25mm的六棱铜柱,用到M3X8mm的螺丝
5
Arduino仿生六足机器人教材
9) 完成组装
10) 中间脚的组装,M3X20螺丝、M3螺母、钢纸垫片
6
Arduino仿生六足机器人教材
11) 组装连接杆
12) 另一个连杆组装
7
Arduino仿生六足机器人教材
13) 两侧脚组装,这里用到M3X8螺丝、M3螺母、钢纸垫片
14) 固定完成
8
Arduino仿生六足机器人教材
15) 中间脚上部螺丝的固定,这里用到M3X8螺丝、钢纸垫片
9
Arduino仿生六足机器人教材
二、 系统概述
2.1. arduino介绍
要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。
1、什么是单片机?它与个人计算机有什么不同?
一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。
2、单片机有什么用?
实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。
单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。
下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。
10
Arduino仿生六足机器人教材
3、什么是Arduino?
Arduino是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序 的开发环境组成。
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。
Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。
4、为什么要使用Arduino?
有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic
Stamp, Netmedia’s BX-24,Phidgets,MIT’s Handyboard 和其它等等提供类似功能的。 所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性, 特别适合老师,学生和一些业余爱好者们使用:
11
Arduino仿生六足机器人教材
便宜 - 和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。
跨平台 - Arduino IDE可以运行在Windows,Macintosh OSX,和Linux操作系统。大部分其它的单片机编译软件都只能运行在Windows上。
简易的编程环境 - 初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
软件开源并可扩展 - Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。
硬件开源并可扩展 - Arduino板基于 Atmel 的ATMEGA8 和ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。
6组PWM端口
数字端口0~13
TX、RX指示灯
USB
插孔
稳
压芯片
ICSP
外部电源
供电插孔
模拟端口0~5
12
Arduino仿生六足机器人教材
Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。
性能:
Digital I/O 数字输入/输出端口0—13。
Analog I/O 模拟输入/输出端口0-5。
支持ICSP下载,支持TX/RX。
输入电压:USB接口供电或者5V-12V外部电源供电。
输出电压:支持3.3V级5V DC输出。
处理器:使用Atmel Atmega168 328处理器,因其支持者众多,已有公司开发出来32位的MCU平台支持arduino。
arduino板子上基本端口如描述,对几个比较特殊的端口下面详细说明下:
VIN端口:VIN是input voltage的缩写,表示有外部电源时的输入端口。如果不使用USB供电时,外接电源可以通过此引脚提供电压。(如电池供电,电池正极接VIN端口,负极接GND端口)
AREF:Reference voltage for the analog inputs(模拟输入的基准电压)。使用analogReference()命令调用。
ICSP:也有称为ISP(In System Programmer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式,包括大家常听说的8051系列的芯片,也都慢慢采用这种简便的烧录方式。我们都知道传统的烧录方式,都是将被烧录的芯片,从线路板上拔起,有的焊死在线路板上的芯片,还得先把芯片焊接下来才能烧录。为了解决这种问题,发明了ICSP线上即时烧录方式。只需要准备一条R232线(连接烧录器),以及一条连接烧录器与烧录芯片针脚的连接线就可以。电源的+5V,GND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。
2.2. Arduino驱动安装
首先在电脑上面打开光盘,找到Arduino项目开发文件夹,拷贝到你的电脑上你想放到的盘符上,例如D盘(建议不要放到桌面上),然后打开,可以看到如下:
13
Arduino仿生六足机器人教材
光盘中所带arduino IDE为1.0.3版本,是目前最新版本,IDE就是arduino的软件程序开发环境,里面已经集成了项目中所需要的很多外设库,还有一些其他设置,比如添加中文注释,为用户省去了很多麻烦。IDE中所带库文件均经过调试,和光盘代码完全匹配。arduino资料相关文件夹中是一些入门资料以及我们提供的arduino电路板原理图。
(注:光盘中所带软件仅支持Windows 系统。其他系统请去官网下载。)
Arduino控制板到手后,首先需要在电脑上把驱动装上,这样才可以进行各种实验。
首先打开包装,找到蓝色USB数据线,一端连接ARDUINO控制板另一端连接电脑USB端口。本文以win7 32位为例,会出现识别到新硬件显示。
然后会开始查找系统内驱动。
如果没有找到驱动,会显示这个画面。
14
Arduino仿生六足机器人教材
这时,需要在开始菜单,“计算机”上面点右键,点“属性”。
然后点击设备管理
15
Arduino仿生六足机器人教材
会看到打了感叹号的未识别硬件
在未识别硬件上点右键,点击“属性”,选择更新驱动程序软件。
16
Arduino仿生六足机器人教材
选择浏览计算机以查找驱动程序软件
然后目录选择你的arduino1.0所在目录的drivers目录
17
Arduino仿生六足机器人教材
注意,如果您的计算机提示无法找到驱动,需要将目录进一步定位到driversFTDI USB Drivers即可
点击下一步,就可以安装好驱动了。
18
Arduino仿生六足机器人教材
安装好驱动后,就可以显示是COM几端口,我这里显示的是COM14端口。
19
Arduino仿生六足机器人教材
2.3. Arduino IDE菜单介绍
接着我们介绍下Arduino的IDE界面,首先进入软件目录。然后就可以看到文件,双击打开IDE,可以生成桌面快捷方式,方便以后使用。
首先映入眼帘的是下图的界面,工具栏按钮功能依次为“编译”--“上传”--“新建程序”--“打开程序”--“保存程序”--“串口监视器”
20
Arduino仿生六足机器人教材
菜单栏上,首先看File菜单~介绍如下:
21
Arduino仿生六足机器人教材
接下来看Edit菜单~介绍如下:
Sketch菜单介绍
Tools菜单介绍
22
Arduino仿生六足机器人教材
Arduino也支持中文界面,如果英文界面看着不爽的话,,只要打开File-preferences,如下图中选择简体中文,点击OK,关闭后重新打开软件即可。
在正常使用之前我们还需要对arduino软件做如下设置:
1)打开Arduino IDE,选择文件-参数设置,按如下设置。
23
Arduino仿生六足机器人教材
2)选择工具-板卡,点选如图所示。因为我们用的是328的芯片,如果为其他型号相应选择即可。
串口就选择电脑-设备管理器里面显示的串口号即可。至此Arduino IDE的设置基本完成。可以编写编译代码进行开发了。
24
Arduino仿生六足机器人教材
三、 实验操作
3.1 红外避障实验
3.1.1 红外避障原理
红外线反射传感器是利用红外线反射的原理,根据反射的强度来判定前方障碍的有无。在距离适中的时候测量精度很高。由于使用的是红外线,所以抗干扰能力很强。这样做更加确保了机器人的稳定性。
管脚线定义:
红线
黑线(或绿线)
蓝线(或黄线)
电源(+)
电源(-)
控制线
手动调节如图所示:
可调电阻
可调电阻用于手动调节传感器的测量范围(顺时针旋转距离增大,逆时针旋转距离减小)。
3.1.2 红外避障实验操作
利用红外避障传感器控制LED灯。
接线图:
25
Arduino仿生六足机器人教材
例程:
int sensor = 3; //把红外避障传感器接到3脚上
int val = 0; //保存红外传感器状态值
int LED = 13; //定义LED灯
void setup()
{
pinMode(sensor,INPUT); //设置传感器引脚为输入模式
pinMode(LED,OUTPUT); //设置传感器引脚为输入模式
}
void loop()
{
val=digitalRead(sensor); //采集传感器状态值 0或1
if(val==0) //红外传感器检测到信号
digitalWrite(LED, HIGH); // 打开LED
if(val==1) //红外传感器没有检测到信号
digitalWrite(LED, LOW); // 关闭LED
}
知识点:
pinMode()
描述
将指定的引脚配置成输出或输入。
26
Arduino仿生六足机器人教材
语法
pinMode(pin, mode)
参数
pin:要设置模式的引脚
mode:INPUT或OUTPUT
逻辑:
红外传感器检测到信号,打开LED。红外传感器没有检测到信号,关闭LED。
实验现象:
红外传感器前有障碍时,打开LED灯。红外传感器前没有障碍时,关闭 LED灯。
3.2 舵机实验
3.2.1 舵机的介绍
舵机,顾名思义,大海航行靠舵手,舵机早期是应用在航模中控制方向的,在航空模型中,飞行器的飞行姿态是通过调整发动机和各个控制多面来实现的,后来有人发现这种机器的体积小、重量轻、扭矩大、精度高,由于具备了这样的优点,很适合应用在机器人身上作为机器人的驱动。
按照舵机的转动角度分有180度舵机和360度舵机。
180度舵机只能在0度到180度之间运动,超过这个范围,舵机就会出现超量程的故障,轻则齿轮打坏,重则烧坏舵机电路或者舵机里面的电机。360度舵机转动的方式和普通的电机类似,可以连续的转动,不过我们可以控制它转动的方向和速度。
按照舵机的信号处理分为模拟舵机和数字舵机,它们的区别在于,模拟舵机需要给它不停的发送PWM信号,才能让它保持在规定的位置或者让它按照某个速度转动,数字舵机则只需要发送一次PWM信号就能保持在规定的某个位置。关于PWM信号在以后章节将会介绍。
3.2.2 舵机的内部结构
一般来说,我们用的舵机有以下几个部分组成:直流电动机、减速27
Arduino仿生六足机器人教材
器(减速齿轮组)、位置反馈电位计、控制电路板(比较器)。舵机的输入线共有三根,红色在中间,为电源正极线,黑色线是电源负极(地线)线,黄色或者白色线为信号线。其中电源线为舵机提供6V到7V左右电压的电源。
位置反馈电位计
红、黑、白线
固定螺丝
舵机后盖
舵机上盖
齿轮组
电机
舵机的内部结构图
直流控制电路板(比较器)
3.2.3 模拟舵机的控制协议
360度舵机是怎样控制的呢?360度舵机使用的场合基本上是在轮式机器人身上,所以对应的上升沿和下降沿代表的意义也很不相同,图3-4给出了360度舵机PWM控制信号的波形图。
下图中,T1表示上升沿,T2表示下降沿,T表示方波的周期。下面具体解释一下这种舵机的控制协议。我们是通过PWM信号的高电平占空比来控制360度舵机的,通过实验我们发现PWM信号的周期为20ms时控制效果是最好的。在周期为20ms情况下,当1.3ms 28 Arduino仿生六足机器人教材 1.3ms T=20ms 3.2.4 舵机实验操作 控制一个360度舵机正反转,接线图如下。 接线图: Arduino有舵机应用库 360度舵机接在第6接口,舵机控制程序如下。 例程1: #include 29 Arduino仿生六足机器人教材 Servo servo; //定义舵机 void setup() { (6); //定义舵机接口6 icroseconds(1500);//高电平1500微秒 此时舵机停止 } void loop() { icroseconds(1500); //高电平1500微秒 此时舵机停止 } 把舵机接到第6口,烧录例程1,调整微调电阻使舵机停止。 例程2: #include Servo servo; //定义舵机 void setup() { (6); //定义舵机接口6 icroseconds(1500);//高电平1500微秒 此时舵机停止 } void loop() { icroseconds(1300); //高电平1300微秒 此时舵机正转 delay(10000); //延时10秒 icroseconds(1700); //高电平1700微秒 此时舵机反转 delay(10000); //延时10秒 } 烧录例程2,舵机正转,延时10秒,舵机反转延时10秒。 知识点: 描述 将指定的引脚控制脉冲控制舵机。 语法 attach(接口)——设定舵机的接口。 write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。 read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中30 Arduino仿生六足机器人教材 的值。 attached()——判断舵机参数是否已发送到舵机所在接口。 detach()——使舵机与其接口分离,该接口(9或10)可继续被用作PWM接口。 writeMicroseconds(uS)——写一个值在微秒(uS)到伺服舵机,控制相应的轴。在一个标准的伺服系统,这将为角度的轴。在标准的伺服系统参数值1000完全是逆时针方向的,2000是完全顺时针,1500是在中间。 注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:(9) 逻辑: 舵机正转,延时10秒,舵机反转,延时10秒。 实验现象: 下载例程1,微调电阻使舵机停止。下载例程2,舵机正转,延时10秒,舵机反转,延时10秒。 四、 使用说明 4.1.接线端口介绍 器 31 Arduino仿生六足机器人教材 4.2.操作说明 仿生六足机器人采用两路360度舵机,利用舵机的正反转,实现前进、后退、左右转等动作,利用两路红外传感器实现避障等功能。程序开始处一定要包含舵机库,否则是编译不过的,舵机也无法使用。可以点击程序—导入库,选择想要的库文件。 机器人上电之后自行行走,当左侧有障碍物时向右转,右侧有障碍物时向左转,前方有障碍物是向后退。 32
版权声明:本文标题:arduino仿生六足机器人教材 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708267225h518113.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论