外国牛人教你一步步快速打造首台机器人
操作,但他已经处在中间位置。
尝试去摁住板上的“reset”键,当伺服电机跑到另一边,松开手,电机会跑到原来位置。
可能你认为那不是中间位置,但那的确是,可能你电机的“号角”安装得不合适,在其中间位置,有个螺丝钉。拧开螺丝钉,拿掉号角,确保微控制器的确把电机放在中间位置,然后拧上“号角”。
接下来尝试让电机跑到边上,继续扩展这个程序:
servo 0, 75
wait 2
servo 0, 225
wait 2
servo 0, 150
wait 2
电机命令的有效值范围是75到225,这是一个标准电机能娶到每一个角落的范围,超过这个有效范围的数值是不建议的,尽管会产生有趣的结果。
每次你运行程序(你可以拔掉下载线,拔掉电池,然后在无线的情况下打开),一切都会从头开始运行。每次你reset,都会进行同样的操作。
如果你希望能够循环,你可以在开始那里添加一个标记,然后在程序结尾使它再回到那个标记重新运行,我们可以给这个标记任何名称,只需要一个词,再加一个冒号,如下:
servofun:
servo 0, 75
wait 2
servo 0, 225
wait 2
servo 0, 150
wait 2
goto servofun
现在它就会无限循环,如果你喜欢,可以尝试使它工作在任何地方,改变数值等等、
回到做机器人上面来。
把线插入Sharp的芯片,如果没附带线,你要确保有三根线从它接出,颜色可以不同,但我希望是红、黑和白,因为这对V、G和信号时非常有意义的。
你可能要在线上接上杜邦线,像下图我那样操作。这些可以是任何颜色。
确保你准确插线,因为Sharp的芯片很容易被烧掉。
如下图所示,你会知道怎么连接,黏贴和奇怪的设置时确保你能看到导线和它的颜色。
你也要三个跳线帽,连接相连的两根针。
如果你没有,你可以用杜邦线来跳线代替,跳线帽不占地方,因此这是一个很好的选择。而线对于从一断到另一端来说,也是个不错的选择。
如接下来的照片所示,用跳线帽或者杜邦线连接模拟输入1,2,3到V.
为什么这样做?一个简单的解析就是这四个输入(0,1,2,3)是模拟的,也就是意味着他测量它们在线上受到多大的压强。不管同意与否,它们已经被连接起来。这样任一个输入的小小压强都会传递给了其他,可以悬空处理。“3”对于V来说是不需要使用,它们只是满载,而不是悬空。
确保伺服电机处在中间,就是150位置。
用一些双面胶,把Sharp的芯片装在伺服电机的角的位置,面向前。
你已经完成了基本组装了,整个产品可能会很大,你也可能会用其他配件,但如果你按指导做,以下有些机器人编程建议给你。
编程
输入这些代码,在连接机器人的情况下按F5。
main:
readadc 0, b0
debug
goto main
然后把你的手从机器人的头部拿开,然后注意变量b0的改变数值,你可以凭借你掌握的知识去决定接下来会发生什么。
如果“眼睛”太接近物体,你会注意到机器人怎么走。Sharp的这颗芯片是设计监测10-18厘米范围内的物体的,小于10CM,大于18CM范围的物体,对编程来说是一个很大的挑战。
你可以选择没有这个问题的的传感器,然而Sharp这颗是最便宜的,同时也是非常容易编程的,这就是我为什么选择这颗芯片的缘故。
输入以下程序,按下F5:
high 4
low 5
有一个轮子会按一个方向转,你的轮子向前么?这是一个向前的指令。如果轮子向后,你可以尝试以下指令:
low 4
high 5
输入以下指令去转动另一个轮子:
high 6
low 7
(或者以另一种方式去改变方向)
通过微控制器的特有方式去控制方向,打开或关闭针脚上的开关,命令电机控制器指挥电机A或B正反向模式。
low 4
low 5
low 6
low 7
停止所有马达。
电机到一边是:
servo 0, 75 wait 2
另一边是:
servo 0, 225 wait 2
中间是:
servo 0, 150 wait 2
以下是一个使机器人旋转的小程序,在障碍物前面停住,左右观察寻找最佳路径,驱动去完成新的挑战。
Symbol dangerlevel = 70 ‘ how far away should thing be, before we react?
symbol turn = 300 ’ this sets how much should be turned
symbol servo_turn = 700 ‘ This sets for how long time we should wait for the servo to turn (depending on it´s speed) before we measure distance
main: ’ the main loop
readadc 0, b1 ‘ read how much distance ahead
if b1 《 dangerlevel then
gosub nodanger ’ if nothing ahead, drive forward
else
gosub whichway ‘ if obstacle ahead then decide which way is better
end if
goto main ’ this ends the loop, the rest are only sub-routines
nod
- 基于DSP的机器人视觉伺服系统研究(04-17)
- 基于DSP的自动避障小车(04-05)
- 基于DSP的双足机器人运动控制系统设计(06-21)
- 用于日本震后救援的机器人技术(03-03)
- 基于TMS32OLF2407A的教育机器人硬件系统设计 (08-21)
- 基于DSP的覆冰机器人控制系统设计(02-13)