Arduino开发—机械臂篇-2摇杆控制机

网友投稿 2019-04-24 11:34

本节内容:

+机械臂电路连接

+实现简单控制

https://cdn.china-scratch.com/timg/190426/11342G318-0.jpg

在上节内容将机械臂结构件组装完成之后,这节我们继续下一步操作了,将机械臂与开发板电路连接,并实现简单的控制,下面就来看看本节具体内容吧。

•••所需材料•••

01

     上节内容所组装完成的机械臂,uno开发板,面包板以及面包板电源模块,ps2摇杆,面包线和杜邦线。

https://cdn.china-scratch.com/timg/190426/11342J4I-1.jpghttps://cdn.china-scratch.com/timg/190426/1134291b5-2.jpg

•••电路连接•••

02

机械臂需要4个舵机分别控制夹子、小臂、大臂、底盘,而舵机则需要两个ps2摇杆控制,有关舵机与摇杆的使用在基础知识中会有介绍,这里就不多说了。下面看看详细接法吧。

舵机信号线分别连接开发板的3、5、6、9这4个数字接口,摇杆分别连接模拟口A0~A3。

舵机连接原理图

https://cdn.china-scratch.com/timg/190426/11343552a-3.jpg

面包板连接图

https://cdn.china-scratch.com/timg/190426/1134363a9-4.jpg

实物图

https://cdn.china-scratch.com/timg/190426/11343TA9-5.jpg

•••写入程序•••

03

以下部分给出了控制机械臂的基本代码,内容虽然简单,也写了相应的注释,但我们还是简单介绍一些各部分代码,方便理解。

首先,定义头文件并设定摇杆输入引脚以及声明变量,在这里我们直接调用servo库函数,虽然我们可以自己编写程序来控制舵机,但是那样对于初学者来说难度就提升了很多,而arduino有各种丰富的库函数,我们可以直接使用它,这样就大大降低了我们的开发难度。

https://cdn.china-scratch.com/timg/190426/1134453391-6.jpg

setup函数比较简单,只有设定4舵机接口。

https://cdn.china-scratch.com/timg/190426/113445L96-7.jpg

loop函数中,从模拟口读取摇杆的值,然后根据所得值执行相应的自定义舵机函数。这里特别说明一下底座部分,我在这用到了map函数,读取的模拟值是0~1023,而一般舵机的角度是0~180度,所以用map函数将模拟值映射为舵机角度,这样底座用的360度舵机就不会一直转圈,而是跟着摇杆的值变化而转动(我当时也和其他舵机一样写了自定义函数,然后它就开始爱地魔力转圈圈https://cdn.china-scratch.com/Public/Home/images/grey.gif

https://cdn.china-scratch.com/timg/190426/1134455039-9.jpg

其余舵机用了自定义函数,在loop函数中只需调用就可以了。这部分用了switch循环,判断读取的模拟值,当值为0时,输出舵机角度,每次+1度,延时5毫秒,当值为1023时,每次-1度,延时5毫秒,当值不是这两种情况时,输出当前舵机角度,也就是舵机保持当前状态,停止不动。

https://cdn.china-scratch.com/timg/190426/1134452T7-10.jpg

以上就是摇杆控制机械臂的全部内容了,基本功能已经实现,可以正常操作,但还有很多问题,需要继续优化,才能稳定的实现操作。现在机械臂还处于抽搐阶段,下面来看看它的鬼畜视频吧https://cdn.china-scratch.com/Public/Home/images/grey.gif

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com