淘宝二手优必选舵机保姆级驱动教程,看不懂来打我(自行修改ID,有HAL库驱动函数)

1.首先,先检查舵机的好坏。
本身优必选舵机的连接线属于稀缺物品,所以经本人实验,使用PH2.0 3P端子口也可以供电,但要剪掉端口背面的一小段塑料凸起。
另:24齿的舵机也已经测试过可以兼容淘宝有售的24T铝合金舵机盘。
若供电之后,彩灯正常亮起,并有切换效果,则电机有九成概率是良品,可以使用了

2.精华部分,修改舵机ID

这一步是确保舵机可用,并可以集成到自己的机器人项目中的关键一步,只有自行修正了舵机ID,才能使多个舵机并联工作。
另:本人试过级联驱动,但估计是因为线材问题没有成功,目前只有统一连接实验成功了,即多个舵机连接至同一个控制板一条总线

我对这个舵机的研究基本基于两篇文章:一篇是在码云上的“某宝白菜价总线舵机开发记”,一篇是知乎上的相关文章,基本上前一篇的知识就都足够使用了,我的程序也是从博主的arduino代码移植而来。

其实关键就在于一点:根据协议表(刚才提到的码云教程就有),有修改电机ID的命令,使用串口助手即可,在广播模式下(ID位是0x00),仅连接一个电机(这是关键),使用修改命令就可以成功修改电机ID。
很简单,很方便(其实不是很方便校验和还得拿计算器算。。。。。。。。)

在这里也贴出驱动程序,校验和计算程序,基于STM32HAL库的
同理可任意移植到各平台,做ros应用或者机器人的各种学习都可以

uint8_t checksum(uint8_t* buf, uint8_t sz)//计算校验和
{
  uint16_t sum = 0;
  for(uint8_t i=0; i<sz; i++)
    sum += buf[i];
  return (uint8_t)(sum&0xff);
}

void delay_2bit()//延时出来2个回复位的时间,约20us
{
uint16_t a1 =50;
	
while(a1>2)
	a1--;

}

void servo_c(uint8_t ID,uint8_t angle,uint8_t time)//舵机控制
{

servo[2]=ID;   //舵机ID
servo[3]=0x01; //运动控制命令
servo[4]=angle;//目标角度
servo[5]=time; //运动时间
	             //6,7位控制指令中不使用
servo[8]=	checksum(&servo[2],6);//校验和
HAL_UART_Transmit(&huart1,servo,10,1000);//发送10个值
delay_2bit();
	
}

使用这三个函数,可以实现基本的控制,但这款电机据说支持速度校准,位置校准,减速电机模式和回读之类的高级功能,暂时还没有开发。
另:要注意那个延时函数,连续发太快容易丢信号,要根据装机情况微调一下。

典型驱动电压7.4V,兼容2S锂电供电,正常最高是8.4V
应该支持超压提速运行,有待实验,电机和驱动的耐受程度还是很高的。

就是图里这种,在淘宝随处可见
码云文章链接:https://gitee.com/alicedodo/xaobao_cheap_bus_servo_hack_record

文章写得慌促,各位朋友如果有进一步交流的想法请加qq交流:2754578740

我是热爱机器人的通信小白一只,欢迎各位留下宝贵的意见,也期待和各位交朋友。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值