之前申请了一块南京沁恒的开发板,CH32V307,上面有带Arduino板的拓展口,前段时间刷到了一个摇杆加按键的UNO拓展模块,就想着跟之前的用STM32做的机械臂来结合一下。
现有功能介绍:
摇杆左右方向分别控制机身左右旋转,前后方向控制机臂的前后。斜向则同时控制机械臂的左右和前后两个方向。按键A控制机臂的上升,按键C下降。按键B控制爪子的开,按键D关。按键E复位到初始状态,按键F恢复到复原前状态。
硬件部分介绍:
主控:CH32V307核心板。芯片外设十分丰富,性能也不错,可玩性很高。核心板板载了WCH-LINK,只需要一根TypeC的数据线就可以链接电脑下载了,Mounriver开发环境里可以自动识别固件型号下载对应驱动,非常方便。
拓展模块:淘宝买的成品模块,模块上除了摇杆与按键,可拓展的接口也不少,有蓝牙串口,洛基亚5110屏幕,NRF24l01等,但是硬件资料商家没提供,简单抄个板,仅供参考。
机械臂:成品激光切割亚克力板加SG90/MG90舵机自己拼的,淘宝还有木板款,拼装可能会更方便些。
舵机:舵机用的SG90和MG90,最开始都是用的塑料的SG90,发现机械臂的夹子的力非常小,底部旋转的舵机在长期运行后,抖动越来越明显,所以把这两个舵机都换成了质量更好扭矩更大的金属MG90。
舵机驱动:由于要使用四个舵机,最好还是不要用USB口的5V来供电,而是使用外部电源再共地。电源用的的成品DC-DC MP2482降压模块,模块上预留了舵机接口,输入端接7V-30V直流。由于没有合适的电源,这里用的是一根USB升压线接5V2A的手机电源适配器来的。
使用的模块
软件部分介绍:
最开始是用的STM32F1的标准库来开发的,跟CH32V307的内核虽然不一样,但是库函数基本上一样的,所以移植起来比较容易。
按使用的库函数简单介绍一下,按键控制:GPIO的上拉输入。摇杆控制:GPIO的模拟输入和数字量的软件滤波处理。舵机角度控制:定时器的输出比较模式输出PWM波和改变CCR来改变占空比。屏幕显示:硬件IIC驱动0.96寸OLED屏幕。
硬件连接:
舵机编号,控制夹子舵机编号0,控制底部旋转(-90~+90)舵机编号1,控制前后的舵机编号2,控制上下的舵机编号3。0-3号舵机分别连接PB3,PB4,PB6和PB7。按键和摇杆是模块与开发板拼插连接的,对应使用的GPIO分别为,A接PA8,B接PA7,C接PA6和D接PB5,E接PB8,F接PB9。按键的X轴接PA0,Y轴接PA1。ps.由于开发板带了以太网口,所以得在排母上再接上11mm加长排母才能插上去。
后续可能的拓展:用RT-Thread实现相同功能,蓝牙串口orNRF24L01加手机APP远程控制。
下载链接:程序