赞
踩
通过两周江科大的STM32学习,使得我对于嵌入式最基础外设的调用与内部时钟和定时器有了初步的理解,因为目前本人技术力和精力有限以及AD软件的长时间搁置,此项目中的PCB主板与机身骨架均为某宝购买,在之后会逐步去复习(doge)。
本项目是基于STM32的常规项目开发,实现了蓝牙控制四足机器人的移动、转向、舞蹈动作,使用的软件为Keil5,采用标准库函数进行设计。
工程和源码请移步Github:GitHub - EDMTANOC/A-Simple-Quadruped-Robot-Based-on-STM32: Embedded Development Learning Record
器件名称 | 数量 |
STM32F103C8T6最小系统板 | 1 |
HC-06蓝牙模块 | 1 |
TS90A 5V直流舵机 | 8 |
降压模块+主板+骨架 | 1 |
3.7V 14500电池 | 2 |
在核心配置方面主要通过两个时钟的比较输出通道,从而实现8个PWM的输出来对舵机进行控制,以此实现每个脚的控制。在控制方面以HC-06蓝牙模块实现USART串口通讯,通过手机APP进行控制。
在步态上相关的资料已经有很多了,本人在移动上主要采用的是对角式爬行的方式,0号脚和2号联动,1号和3号联动。
- void Go_Ahead(void){
- leg0_CW();
- leg2_ATCW();
- Delay_ms(200);//0,2号腿各自挪动
-
- Servo4_SetAngle(110);
- Servo6_SetAngle(120);
- leg3_CW();
- leg1_ATCW();
- Delay_ms(200);//0,2号腿转向舵机反向推动的同时1,3号腿挪动
-
- Servo5_SetAngle(60);
- Servo7_SetAngle(50);
- leg0_CW();
- leg2_ATCW();
- Delay_ms(200);//1,3号腿转向舵机反向推动的同时0,2号腿挪动
-
- Servo4_SetAngle(110);
- Servo6_SetAngle(120);
- leg3_CW();
- leg1_ATCW();
- Delay_ms(200);
-
- Servo5_SetAngle(60);
- Servo7_SetAngle(50);
- leg0_CW();
- leg2_ATCW();
- Delay_ms(200);//重复步态
-
- Servo4_SetAngle(110);
- Servo6_SetAngle(120);
- leg3_CW();
- leg1_ATCW();
- Delay_ms(200);
-
- Servo5_SetAngle(60);
- Servo7_SetAngle(50);
- leg0_CW();
- leg2_ATCW();
- Delay_ms(200);//重复步态
-
- leg0_Init();
- leg1_Init();
- leg2_Init();
- leg3_Init();//恢复
-
-
- }

其效果如图:
在转向方面,以左转为例,通过转向舵机的共同作用以及高度舵机的固定来实现机体的转向:
- void Turn_Left(void){
- leg0_ATCW();
- Delay_ms(50);
- leg2_ATCW();
- Delay_ms(50);
- leg1_ATCW();
- Delay_ms(50);
- leg3_ATCW();
- Delay_ms(100);//四个脚分别逆时针转至所需角度
- Servo4_SetAngle(65);
- Servo5_SetAngle(25);
- Servo6_SetAngle(75);
- Servo7_SetAngle(12);//转向舵机顺时针转动使机身向左转动
- Delay_ms(100);
- leg0_ATCW();
- leg2_ATCW();
- Delay_ms(100);
- leg1_ATCW();
- leg3_ATCW();
- Delay_ms(100);
- Servo4_SetAngle(65);
- Servo5_SetAngle(25);
- Servo6_SetAngle(75);
- Servo7_SetAngle(12);//重复步态
- Delay_ms(50);
- leg0_Init();
- leg1_Init();
- leg2_Init();
- leg3_Init();//恢复
-
- }

其效果如图:
至于竹节虫舞蹈动作就不在此赘述了,在工程Move.c文件的代码中一目了然。
此文章作为个人学习记录,仅供交流参考,由于本人仍处于学习阶段,在动作的设计方便欠佳(比如行动轨迹上的偏差),代码的优化上也存在诸多问题,可能有更多的没有利用起来的函数能实现细致化的控制以使得步态更加完美,最后希望此工程能为读者提供些许帮助。
哔哩哔哩:【STM32入门教程-2023版 细致讲解 中文字幕】 https://www.bilibili.com/video/BV1th411z7sn/?share_source=copy_web&vd_source=494d8a46761a4e0ce0df6f3a9b7a7957
CSDN:【四足机器人(从PCB到3D打印)】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。