基于STM32对于三轴机械臂控制器设计

举报
tsinghuazhuoqing 发表于 2021/12/26 01:05:16 2021/12/26
【摘要】 简 介: 本文使用了STM32对于一款三轴机械臂进行初步驱动,调试他的各个关节的运动情况。 关键词: 机械臂,三轴机械臂,STM32   ➤ 01背景 在 组装肩部带有减...

简 介: 本文使用了STM32对于一款三轴机械臂进行初步驱动,调试他的各个关节的运动情况。

关键词 机械臂三轴机械臂STM32

 

01背景


组装肩部带有减速器双轴机械臂组装与调试 的调试基础上,对于 两轴机械臂+机械爪整体控制板设计与机械爪控制调试 的双轴空集基本定型。除此之外增加了升降步进电机的控制。

这个版本在之前的调试基础之上,将控制器的主要MCUGG换成STM32。考虑到:

  • 将UART增加到三个,可以实现调试、角度传感器、外部RS232通信等方面的功能;
  • 对于输出脉冲进行终端控制。
  • 提高内部RAM容量,为控制功能提供硬件资源。

● 第一版本设计错误

  • MCU缺少DIR1,DIR龙哥485总线方向控制的信号。

 

02硬件设计


为了加速升级,将硬件控制设计成两部分:

  1. 核心板:包括有MCU,调试接口,3.3V电源。
  2. 接口板:对角度传感器 角度编码器 ST-3806-15-RS 读写所使用的MODBUS总线(RS485+MODBUS协议),RS232接口,舵机接口,2003达林顿接口。

1.核心板设计1

▲ 原理图设计

▲ 原理图设计

▲ 单面PCB板图设计

▲ 单面PCB板图设计

2.端口定义

(1) IO口

从左到右:PIN1 ~ 10

PIN1 PIN2 PIN3 PIN4 PIN5 PIN6 PIN7 PIN8 PIN9 PIN10
PS1 PS2 IO0 IO1 IO2 IO3 IO4 IO5 IO6 SERVO1

(2) 串口

从左到右:PIN1~ 6

PIN1 PIN2 PIN3 PIN4 PIN5 PIN6
+5V GND RXD2 TXD2 RXD3 TXD3

(3) 按键接口

从左到右: PIN1 ~ 6

PIN1 PIN2 PIN3 PIN4 PIN5 PIN6
+5V GND KEY1 KEY2 KEY3 KEY4

3.初步焊接与组装

▲ 快速制版的印刷电路板

▲ 快速制版的印刷电路板

▲ 对PCB板线路使用烙铁镀上锡

▲ 对PCB板线路使用烙铁镀上锡

▲ 焊接TQFP48 STM32C103F8C6

▲ 焊接TQFP48 STM32C103F8C6

▲ 焊接TQFP48 STM32C103F8C6

▲ 焊接TQFP48 STM32C103F8C6

▲ 焊接TQFP48 STM32C103F8C6

▲ 焊接TQFP48 STM32C103F8C6

3.接口板设计

(1) 原理图和PCB版图设计2

▲ 原理图

▲ 原理图

▲ PCB板图640

▲ PCB板图640

(2) 焊接组装

▲ 焊接制作后的电路板

▲ 焊接制作后的电路板

▲ 外部接口定义

▲ 外部接口定义

▲ 组装在一起的电路板

▲ 组装在一起的电路板

 

03初步调试3


1.硬件调试

(1) 上电测试

  • 板上电源施加+5V,电流:38mA。
  • U3 AS1117:输出电压 3.292V。

(2) 下载程序

▲ STM32的配置

▲ STM32的配置

▲ 下载程序

▲ 下载程序

(3) 舵机控制脉冲

舵机的信号:

  • 50Hz,脉冲宽度:1ms~2ms
  • 极性是负极性。适合通过外围的反向输出缓冲。

▲ 输出SERVO的脉冲

▲ 输出SERVO的脉冲

▲ 设置输出极性反过来

▲ 设置输出极性反过来

 

04接口板调试


在核心板调试的基础配合下,对接口板进行相应的调试。

1.控制串口

(1) 接口协议

控制协议可以参见 机械臂底层通信协议说明 。通讯底层协议为:

  • 串行通信232逻辑电平
  • 波特率: 115200bps

(2) 接口连线

命令串口连入UART3.

▲ 接口电路图和PCB版图640

▲ 接口电路图和PCB版图640

  • 制作三芯接口对应:
PSEN PIN1 PIN2 PIN3
DB9 PIN5 PIN3 PIN2
定义 GND TXD RXD
  • 三芯接口:白色标记点对应RXD(PIN3)

在上电后对于PSEN中的RXD(PIN3)测量,会有大约-8.9V的输出电压。确认接口芯片MAX202工作正常。

(3) 接口联通测试

▲ 测试UART命令串口

▲ 测试UART命令串口

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2020-10-23
#
# Note:
#============================================================

from head import *
import serial
from _ast import Or
from serial.serialutil import SerialException
sport = serial.Serial()
sport.baudrate = 115200
sport.timeout = 0.05
try:
    sport.port = 'COM10'
except:
    printf('Set sport port COM10 error. ')
try:
    sport.open()
except serial.serialutil.SerialException:
    printf('Open sport port COM10 error.')
else:
    printf('Open sport port COM10 Ok.')

while True:
    sport.write(b'U')
    time.sleep(1)

    ret = sport.read(100)
    printf(ret)

#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

2.角度传感器

根据 角度编码器 ST-3806-15-RS 中给出的接口标准,对于ST-3806-15-RS制作5pins的100mil的接口(Male)。

表格:角度传感器接头定义

红/RD 黑/BK 绿/GN 黄/YE 白/WH
+5~24V 0V 485A+ 485B- SET

 

※ 结论


对于机械臂相关电路设计进行了调试。

 

■ 相关文献链接:


  1. 核心板AD工程文件:AD\XQWF\2020\机械臂\F103C8CNT.SchDoc * ↩︎

  2. 接口板的AD工程文件:AD\XQWF\2020\机械臂\CNTINTERFACE.PcbDoc ↩︎

  3. STM32:STM32\Application\XQWF\2020\CNTSTM103\ ↩︎

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/109174987

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。