1. 导航按键
五向导航按键是一种常用的多功能按键,它具有5个方向操作能力的功能模块,它在每个方向都对应着一个开关触点,从而感知对不同方向的控制要求,其外观见图1所示,相应的引脚功能见图2所示。

图1 五向导航按键

图2 引脚功能
2. 舵机云台
舵机云台是一种以舵机为驱动的器件,依照舵机的数量可拓展运动的维度。这里选用的是一款2自由度的舵机云台见图3所示,通常用于超声波、摄像头的方向调整等。
其实,对于一些机器人或机械臂来讲也是采用舵机来控制。

图3 舵机云台
3. PWM功能模块
对于舵机来讲是靠占空比来控制姿态的,为此可使用PWM模块来解决占空比调节的问题,该功能模块见图4所示。该模块的特点是既支持以按键来调节频率和占空比,也可以串口来调节这些参数,其引脚功能见5所示。

图4 PWM功能模块

图5 引脚功能
为了便于进行控制,这里采用串口来调节占空比以达到控制舵机姿态的效果。
串口通讯的基本参数为:

设置占空比的指令格式为:

现在菜已备好,下面就该如何把他们变成美味啦。
首先解决的是按键引脚的配置及按键的状态识别,所用导航按键与开发板的连接关系为:
GPIO2---LIGHT
GPIO22---RIGHT
GPIO128---UP
GPIO129---DOWN
COM---GND
在程序的初始阶段,需将这些引脚设置为输入模式,将串口的波特率设置为9600bps,将PWM功能模块的工作频率设置为50Hz,参见图6所示。


图6 初始化处理
随后的关键是判别按键状态,控制PWM功能模块向不同的通道发送占空比调节值,其程序见图7和图8所示。
其中,图8的程序是不采用键值过滤处理的,而图7的程序是采用键值过滤处理的,其主要原因是由于导航按键没提供电位上拉处理,导致按键在释放状态不能可靠地提供高电平状态,为此只能通过滤波处理,来辅助判别以筛选出按键准确状态。
此外,还有一个要解决的关键问题就是必须限定占空比的参数宽度(3个字符),否则指令将不予响应。

图7 加过滤处理的状态识别

图8 未加过滤处理的状态识别
在按图9来连接器件的情况下,经程序的运行其控制效果见视频所示。
当然这只是一个基础性的测试,如果有必要完全可以向工业机器人那样在程序的控制下实现固定的操作序列。哎现在多自由度的机械臂太贵了,否则真的想尝试一下其控制效果。

图9 器件连接
演示视频:
我要赚赏金
