舵机仿蜘蛛小型四足机器人应用程序

Gitee


https://gitee.com/WangXi_Chn/xspider

应用版本V1.0

应用功能

  • 支持USB串口终端与PC通信
  • 支持LED频闪状态显示
  • 支持OLED信息显示
  • 支持12路舵机驱动与命令行单独调试
  • 支持与手机蓝牙通信,手机端SPP遥控

开发环境

应用特性

  • 模块化设计自由裁剪
  • 多线程工作
  • 手机蓝牙异步通信遥控
  • 目前支持前进、后退、顺时针、逆时针转动四种移动动作
  • 支持抬手打招呼,睡眠,直立三种特殊动作



开发进程

  • 完成机器人骨架结构设计和制作,对关节电机编号
  • 完成机器人电控PCB绘制和制作
  • 移植RT-Thread操作系统模板
  • 完成env配置,外设配置、管脚分配
  • 从模块库中移植所需模块
  • 设计单独的舵机调试程序、终端指令
MODULE_STEERING module_steering = {
	.Property_SteerType = SG90,
	.Property_PwmDevName = "pwm2",
	.Property_PWM_CHANNEL = 1,
	.Property_PulseMINus = 500,
	.Property_PulseMAXus = 2200,
	.Property_AngleMAX = 180,
	.Property_InitAngle = 90 
};

void SteerPulse(int argc,char **argv)
{
    
    rt_uint32_t num = atoi(argv[1]); 
    module_steering.Method_SetPulse(&module_steering,num*1000);
    
}
MSH_CMD_EXPORT(SteerPulse , SteerPulseUs <pulse>(500-2500)us);

void SteerAngle(int argc,char **argv)
{
    
    rt_uint16_t Angle = atoi(argv[1]); 
    module_steering.Method_SetAngle(&module_steering,Angle);
    
}
MSH_CMD_EXPORT(SteerAngle , SteerAngle <Angle>(0-MAX));

int main(void)
{
 	Steer Param Test-Part------------------------------------------	
	Module_Steering_Config(&module_steering);
	module_steering.Method_Enable(&module_steering);
	
    return 0;
}
  • 通过调试程序测得舵机的工作范围、有效频率区间等参数
  • 参数测试结果可见https://www.yuque.com/wangxi_chn/ggi748/pel2k1
  • 调整电机安装,以电机90度转角为默认位置(电机将以绝对位置驱动)
  • 将程序面向对象化(结构体)建立实例APP_XSpider
  • 在方法Application->Method_Init中完成对各个模块的初始化,包括电机参数配置
  • 构建四个线程
    • XSpiderLed_entry 系统状态灯工作线程
    • XSpiderOrderUpdate_entry 遥控指令获取与更新线程
    • XSpiderControl_entry 遥控指令执行线程
    • XSpiderAction_entry 动作执行线程
  • 运行逻辑可概括为
    • 手机通过SPP发出遥控指令 -> 板上蓝牙模块获取指令 -> 程序切换动作标签 -> 根据标签执行相应的动作循环
    • 参照模拟状态机工作形式(考虑后续优化状态机结构https://www.yuque.com/wangxi_chn/qaxke0/dklmgb
  • 动作调试
    • 对机器人的四肢,即全部12个电机的动作封装为一个方法Application->Method_JointPlace
    • 方法绑定函数如下
void APP_XSpiderJointPlace(APP_XSPIDER *Application,rt_uint16_t *angle)
  - 参数`APP_XSPIDER *Application`为应用实例的回传指针
  - 参数`rt_uint16_t *angle`为长度12的数组指针,填入12个关节电机的转动角度

补充说明

  • 目前尚未开发全部功能,等待后续扩展开发

更多内容

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐