机器人制作宝典\机器人制作天空宝典.0003.pdf 机器人制作的好书!机器人大空(htp/www.robotsky.com)RObots com第六步:大脑因为这个电路非常简单,所以我就没有给出详细的电路图因为使用的是伺服电机,并且只是做很简单的运动,所以不需要额外的驱动电路,直接用单片机输岀的脉宽调制信号来控制电机动作。我切了一小块电子实验中常用的实验板来做这个电路,用胶水粘了一些插针在上面。两针的用米连接伺服电机,一个两针的用来接电池,一个五针的用米传输程序到单片机里,丕有一个28针的插座用来安放我的 ATMega8单片机。所有的插针粘好后,我在实验板的反面用电线按照电路原理图将必要的针脚焊接在起RObots\som机器人天空(htp:/www.robotsky.co)第七步编程将程序下载到单片机中有很多办法,我用的是最简单的一种方法,只需要一根如图中所示的下载线通过计算机并口将程序下载到单片机中使用这种方法有一个地方要切记:千万不要通过数据线对你的并行口施加5v以上的电压,那会烧坏你的并∏,甚至毁掉你的整台电脑。不过在这个⊥程中最烏屯压也只有3.6v,不过还是小心一点好我的代码在后面的附件中,程序功能很简单,只是靠输出脉冲信号来控制伺服电机的动作,与其他复杂的札器人相比算是很简单的了。b@②面第八步:蹒跚学步现在所有的工作都已经做好了,我的机器人马上就要迈出它人生的第一步了,不过这时候可不能对它报太大的期望,毕竟就是一个婴儿迈岀第一步的时候也是摇摇晃晃的。这时候就需要不断的调整机器人的步伐,调整前腿的后腿的相对运动关系,当然这是一个枯燥而漫长(光荣而艰巨?)的过程。经过多次的调整,我的机器人可以走的有点模样了。现在,我可以骄傲的宣布:我的BEAM机器人做好了,有志者事亮成!l12机器人天空(htp:/www.robotsky.co)第九步现在我的机器人可以可以像一个刚刚学会走路的小孩子一样,可以开始到处乱跑了。不过这显然是不够的,还要多多实验机器人的步伐和机器人腿部的形状对机器人的行走速度和越障能力有什么影响。对于越障,机器人腿部与脚部的弯曲角度是关键的。经过试验我决定让机器人的腿部末端与地面成30度角。那么现在我的机器人可以越过多高的障碍呢?l13札器人大空(htt/www.robotsky.con)第十步爬高图中显示的高度有一英寸左石,已经超出了很多轮式机器人的越障极限了。我的札器人并没有一次就翻越成功,它也是尝试了两次才把两条前腿都放到书上去,不过最后还是成功的翻越了这个一英寸的障碍raoRObotskucom视频下载:htt:/ww. robotsky. com/down./ videos2008-05-08/1210220968154html114机器人大空(htt/www.robotsky.com)用 Arduino控制的三轮小车作者: Mickey泮*编者注: Arduino是源于意大利的一个开放源码的埂件项目。包括一片单片机开发板和套程序开发环境软件。因其易于上于,成本低廉而受到众多单片机初学者的欢迎。*硬件1.3轮小车1台2 Arduino dm板1个3.GP2D12红外测距传感器2个4.杜邦线若干5.电机驱动板1个6LCD16021个7.7.2V电池包1个软件:1. arduing-0011实验目标使小车能自主地在房间内行驶,并自动躲避障碍物。实验目的:利用 Arduino开发板与红外线测距传感器、电机驱动板、液晶显示等通讯,完成一些简单的任务,激发初学者对机器人的制作热情。实验原理使用2个GP2D12成八字型安装,探测左右2边的障碍物,当然这样也会有个弊端,就是中间要是出现一个较小的障碍物就会探测不到,所以能安装3个GP2D12最好了。这里我们就用2个将就实验,实验原理很简单,就是左边探测到定距离的障碍物就控制2个电机向右转,右边探测到一定距离的璋碍物就控制2个电机向左转,至于小车转向多少度呢,这个小车没有使用编码盘和电子罗盘,所以转向就只用了个简单的延时来处理。115札器人大空(htt/www.robotsky.con)实验连线图GP2D12 HGPlD12HEN121986432性GNDDE-MDVl. ltArduino diecimilawww DFRobot comtreviEAr址g日啡2348MIM2LCD1602l16札器人大空(htt/www.robotsky.con)实验实物图Robotsky.com,击8a可RObotsky com1l7机器人天空(htp:/www.robotsky.co)导Arduino开发板实物图实验代码木木术未木木木木木木木木木术木木木木木冰木木木未木木木木木木木木木木米木木木木木水木木木术水木米木木木水木木木木木木int gP2d12 L=0:int GP2D12_R=liint leapin 13:int LCD1602_ RS=12int LCD 1602 RW=11.int LCD1602 EN=10:int dB[]={6,7,8,9};int en1=5.int in 1= 4int in2= 3.int en2=2:int in3= 1int in 4= 0charstr1=www.DfrobOt.Cn"char str2[]=L=00cmchar str3[=R=OOcm*米*米米水米米米米*米米水米*冰米冰*****水*米米水米米米米*米米*米*冰*米米***米*米米*水米米*/void LCD_Command_ Write(int command)int i, tempdigitalWrite( LCD1602_ RS, LoW)digital Write( LCD 1602_RW,LOW);118