树莓派4b控制机械手臂_STM32与树莓派(上位机)交互控制机械臂

本文介绍了如何使用STM32F407VGT6通过PWM控制六路舵机,构建五自由度机械臂。树莓派作为上位机,通过USB转TTL模块与STM32进行串口通讯,发送数据控制舵机转动。STM32配置了TIM3和TIM9的PWM输出,并设置了串口USART2进行通讯,采用中断方式接收数据,根据接收到的指令调整舵机角度。
摘要由CSDN通过智能技术生成

通常的机械臂都是由多路舵机组成,我使用的是某宝上(并不)常见的五自由度机械臂。尽管商家称它为六自由度。

这里使用STM32F407VGT6的6路PWM输出通道来控制6个舵机的运动,树莓派(上位机)通过USB转TTL模块与STM32进行串口通讯

PWM舵机控制原理

标准的 PWM 舵机有三条控制线,分别为:电源、地及信号线。

1_meitu_1.jpg (37.71 KB, 下载次数: 2)

2020-9-22 09:53 上传市面上大多数180°舵机需要的PWM波周期通常为20ms,高电平接收时间通常为0.5 ~ 2.5ms,对应舵机旋转角度为0 ~ 180°。用PWM波控制舵机时,只需将时钟的周期设置为20ms(50Hz),并且通过改变比较值pulse改变PWM波的高电平时间来控制舵机旋转的角度.

STM32CubeMx主要配置

对于STM32,我使用的是STM32CubeIDE + Mx 进行开发。时钟框图为默认配置,如图。

2_meitu_2.jpg (114.98 KB, 下载次数: 1)

2020-9-22 09:53 上传TIMER

由于需要控制6个舵机,我选择了TIM3(4路PWM输出)和TIM9(2路PWM输出)。

PWM输出的频率由时钟APB2决定,由时钟框图可知此处的APB2频率为16MHz;PWM波频率计算公式为:

W = APB2 / (PSC + 1)(ARR + 1)

其中PSC为分频系数,ARR为自动重装载值。这里我将PSE设置为39

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值