舵机控制的机械爪

 

■ 背景


先驱威锋白超发送过来机械爪购买样品连接 机械爪子汇总机器人机械手臂配件大扭力舵机控制驱动板diy夹持器 。利用其中一种完成 双轴机械臂前端抓持机械结构。

▲ 由舵机控制的各种机械爪

▲ 由舵机控制的各种机械爪

手边有一个从白超订购过来的平行机械爪,其中舵机来自于 海灵智电 提供的20公斤-厘米的舵机。

▲ 平行机械爪控制平行机械爪的舵机

▲ 平行机械爪控制平行机械爪的舵机

下面对于这款机械爪的安装和控制进行初步测试。

 

01舵机控制信号模块


实验电路使用在 使用STC8H1K的高级PWM的正交编码器计数方式 中的基于STC8H1K28单片机的电路板。

1.控制电路板1

▲ 实验电路原理图

▲ 实验电路原理图

序号符号功能
1+5V工作电压
2GND电源地线
3CHAP2.0 PWM1P 2 PWM5
4CHBP2.2 SS 2 PWM2P 2 PWM7
5INT0P3.2 INT0 SCLK 4 I2CSCL 4

使用其中的INT0来输出控制舵机运动的PWM信号。

2.单片机软件2

  • 单片机基础配置: Fosc=35MHz,UARB:460800 bps
(1) 配置周期

对于脉冲输出的HZ50_PERIOD的常数为:

#define HZ50_PERIOD             3760

对于nPulseCount = 280对应输出 1500us;所以对应nPulse从 200-400大约对应1000-2000us的脉冲输出。

Delay(10);

//----------------------------------------------------------------------
while(++n50HzCount >= HZ50_PERIOD) {
    n50HzCount = 0;
}

if(n50HzCount > nPulseCount) OFF(PWM_PIN);
else ON(PWM_PIN);
(2) 输出Servo控制脉冲

▲ 输出PWM波形

▲ 输出PWM波形

 

02舵机控制


1.舵机控制参数范围

舵机的脉宽控制参数 nPulseCount通过串行命令PWM来设置。通过试凑可以找到改参数的最大和最小值范围。

  • MIN: 80 顺时针最大;
  • MAX:475 逆时针最大
  • MIDDLE:278
if(strcmp("hello",                (char *)STD_ARG[0]) == 0)
    printf("%s is ready !\r\n", VERSION_STRING);
else IFARG0("pwm") {
    sscanf(SDA(1), "%d", &nPulseCount);
}

▲ 机械爪在舵机控制下运动

▲ 机械爪在舵机控制下运动

 

※ 结论


关于机械爪之间的距离与舵机角度之间的关系可以参见下面的博文:


  1. 实验电路的AD工程文件:AD\Test\2020\STCTest\STC8H1K28Encode.SchDoc\ ↩︎

  2. C51工程文件:C51\STC\Test\2020\CLAWSTC8HSERVO\ClawSTC8HServo.uvproj ↩︎

  • 9
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值