01为什么制作整体控制板?
原因1:更换了大力矩步进电机
在实验室样品自动上样 双轴机械臂 调试之后,出现了的肩关节 运动力矩不足 的问题。为此将原来的驱动肩关节的 42HS48步进电机 更换成 57HSXXXXEIS步进电机 。力矩有原来的0.4N·M,增加到2.0N·M。
实际上对于57HS电机的控制与原来42HS48控制接口都是相同的,基本上是由脉冲(PULSE)、方向(DIR)、使能(EN)开关量控制组成。
原因2:增加机械爪
为了抓取试剂瓶,使用了 开关闭合式两爪机械爪 ,并配合以 FSR402电阻式薄膜压力传感器 来感知机械爪抓取的力度。
3. 整体控制板的功能
- 具有两路步进电机驱动脉冲端口。需要有6组IO口;
- 具有两路485总结结构,读取肩关节、肘关节角度传感器 BH38绝对位置角度传感器 数值。
- 具有一路舵机控制端口,输出50Hz, 1.0~2ms时间宽度的脉冲。
- 具有一路ADC,读取来自于FSR压力数值。
此外为了调试方便,具有程序下载串口。使用 制作新版STC单片机WiFi下载器 对开发板进行程序下载和调试。
设计参考 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器 中的方案,在它的基础上增加ADC端口。
02控制电路板设计1
1.原理图设计
电路核心还是基于STC8H来设计的。其中主要接口(485,步进电机脉冲等)都与 基于STC8H1K28的双轴机械臂驱动模块 的设计一致。
(1) 主要改动:
- 将原来的ULC2003达林顿驱动隔离IC省去了。直接由STC8H1K28进行驱动。建议,在只有的设计中,在所有的IO1-6的增加100Ω电阻,在一定意义上可以保护MCU的IO端口。
- 将BEEP端口移动到P2.5。
- 使用P2.0(PWM1_P)作为舵机(扩展的PWM端口)驱动信号。同样将来的设计中,增加100Ω作为保护电阻;
- 使用P1.4(ADC4)读取FSR的变化电阻。
对于最后两部分,增加对外的端口以及FSR的上拉电阻。
(2) SCH图
2.PCB设计
PCB各个端口定义如下图所示:
实验电路板使用单面覆铜板通过 一分钟制版法 制作。焊接完之后形成测试实验电路板。
3.单片机软件2
单片机软件在原来 双轴机械臂调试模块 基础上进行修改。
在8H基础上增加对于PWM的输出控制。
设置STC8H1K28的宏定义,启动Advance PWM 功能。
#define ADVANCE_PWM1_EN 1
1
//------------------------------------------------------------------------------
#if ADVANCE_PWM1_EN
void AdvancePWM1Init(void) {
//----------------------------------------------------------------------
_push_(P_SW2);
P_SW2 = 0x80;
PWM1_CCER1 = 0x00; // Clear CCERx before write CCMRx
PWM1_CCMR1 = 0x60; // Set CC1 as PWM1 output mode
PWM1_CCER1 = 0x01; // Enable CC1 channel
PWM1_CCR1 = 1500; // Set duty 1500us
PWM1_ARR = 19999; // Set Period
PWM1_ENO = 0x01; // Set PWM1P as output: ENO1P,1N....,ENO4P,4N
PWM1_IOAUX = 0x0; //
PWM1_BKR = 0x80; // Enable main output
PWM1_CR1 = 0x01; // Begin counter
PWM1_PSCR = 34; // 35MHz as pre clock divide : clock 1us
PWM1_PS = 0x1; // B01: PWM1P1.0, 2.0....
_pop_(P_SW2);
}
#endif // ADVANCE_PWM1_EN
03控制板调试
1.调试机械爪
在初始状态,将机械爪设置成如下的最大张开的状态。
在调试过程中,为了能够使得整体控制板输出驱动舵机的电功率,使用了 STC单片机功率控制下载板 作为中间过渡板,从而使得舵机的运动不会影响WiFi下载电路的电源波动。
2.增加FSR传感器
为了控制机械爪对于试剂瓶的夹持压力,在机械爪一个手指增加FSR传感器。
修改电路中的上拉电阻RCL=51k,这样使用手指压按FSR,测量得到的CLAWPRESS的电压在1.5 ~ 4.6V的变化。
3.测试加持力
使用机械爪抓取试剂瓶,同时测量FSR对应的ADC值。
下面是两次测量到的FSR分压后的电压ADC转换值。由于机械运动出现抖动,所以压力出现抖动。
▲ 设置舵机的指令与读取FSR的AD值
▲ 设置舵机的指令与读取FSR的AD值
▲ 设置多级指令与压力传感器FSR读数
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2020-09-05
#
# Note:
#============================================================
from headm import *
from tsmodule.tsstm32 import *
setv = linspace(1000, 1500, 100, endpoint=False)
printf(setv)
stm32cmd('servo 1000')
time.sleep(1)
fsrdim = []
for v in setv:
stm32cmd('servo %d'%int(v))
stm32cmd('CLEAR')
time.sleep(.25)
while True:
stm32cmd('fsr')
val = stm32memo(1)
if len(val) > 0: break
time.sleep(.25)
fsrdim.append(val[0])
printff(v, val[0])
tspsave('fsrdata', setv=setv, fsr=fsrdim)
stm32cmd('servo 1000')
plt.plot(setv, fsrdim)
plt.xlabel("SETV")
plt.ylabel("FSR")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
※ 结论
设计了双轴机械臂以及机械爪的驱动方案。同时调试初步完成了在原来 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器 没有调试的机械爪的控制部分。
01为什么制作整体控制板?
原因1:更换了大力矩步进电机
在实验室样品自动上样 双轴机械臂 调试之后,出现了的肩关节 运动力矩不足 的问题。为此将原来的驱动肩关节的 42HS48步进电机 更换成 57HSXXXXEIS步进电机 。力矩有原来的0.4N·M,增加到2.0N·M。
实际上对于57HS电机的控制与原来42HS48控制接口都是相同的,基本上是由脉冲(PULSE)、方向(DIR)、使能(EN)开关量控制组成。
原因2:增加机械爪
为了抓取试剂瓶,使用了 开关闭合式两爪机械爪 ,并配合以 FSR402电阻式薄膜压力传感器 来感知机械爪抓取的力度。
3. 整体控制板的功能
- 具有两路步进电机驱动脉冲端口。需要有6组IO口;
- 具有两路485总结结构,读取肩关节、肘关节角度传感器 BH38绝对位置角度传感器 数值。
- 具有一路舵机控制端口,输出50Hz, 1.0~2ms时间宽度的脉冲。
- 具有一路ADC,读取来自于FSR压力数值。
此外为了调试方便,具有程序下载串口。使用 制作新版STC单片机WiFi下载器 对开发板进行程序下载和调试。
设计参考 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器 中的方案,在它的基础上增加ADC端口。
02控制电路板设计1
1.原理图设计
电路核心还是基于STC8H来设计的。其中主要接口(485,步进电机脉冲等)都与 基于STC8H1K28的双轴机械臂驱动模块 的设计一致。
(1) 主要改动:
- 将原来的ULC2003达林顿驱动隔离IC省去了。直接由STC8H1K28进行驱动。建议,在只有的设计中,在所有的IO1-6的增加100Ω电阻,在一定意义上可以保护MCU的IO端口。
- 将BEEP端口移动到P2.5。
- 使用P2.0(PWM1_P)作为舵机(扩展的PWM端口)驱动信号。同样将来的设计中,增加100Ω作为保护电阻;
- 使用P1.4(ADC4)读取FSR的变化电阻。
对于最后两部分,增加对外的端口以及FSR的上拉电阻。
(2) SCH图
2.PCB设计
PCB各个端口定义如下图所示:
实验电路板使用单面覆铜板通过 一分钟制版法 制作。焊接完之后形成测试实验电路板。
3.单片机软件2
单片机软件在原来 双轴机械臂调试模块 基础上进行修改。
在8H基础上增加对于PWM的输出控制。
设置STC8H1K28的宏定义,启动Advance PWM 功能。
#define ADVANCE_PWM1_EN 1
1
//------------------------------------------------------------------------------
#if ADVANCE_PWM1_EN
void AdvancePWM1Init(void) {
//----------------------------------------------------------------------
_push_(P_SW2);
P_SW2 = 0x80;
PWM1_CCER1 = 0x00; // Clear CCERx before write CCMRx
PWM1_CCMR1 = 0x60; // Set CC1 as PWM1 output mode
PWM1_CCER1 = 0x01; // Enable CC1 channel
PWM1_CCR1 = 1500; // Set duty 1500us
PWM1_ARR = 19999; // Set Period
PWM1_ENO = 0x01; // Set PWM1P as output: ENO1P,1N....,ENO4P,4N
PWM1_IOAUX = 0x0; //
PWM1_BKR = 0x80; // Enable main output
PWM1_CR1 = 0x01; // Begin counter
PWM1_PSCR = 34; // 35MHz as pre clock divide : clock 1us
PWM1_PS = 0x1; // B01: PWM1P1.0, 2.0....
_pop_(P_SW2);
}
#endif // ADVANCE_PWM1_EN
03控制板调试
1.调试机械爪
在初始状态,将机械爪设置成如下的最大张开的状态。
在调试过程中,为了能够使得整体控制板输出驱动舵机的电功率,使用了 STC单片机功率控制下载板 作为中间过渡板,从而使得舵机的运动不会影响WiFi下载电路的电源波动。
2.增加FSR传感器
为了控制机械爪对于试剂瓶的夹持压力,在机械爪一个手指增加FSR传感器。
修改电路中的上拉电阻RCL=51k,这样使用手指压按FSR,测量得到的CLAWPRESS的电压在1.5 ~ 4.6V的变化。
3.测试加持力
使用机械爪抓取试剂瓶,同时测量FSR对应的ADC值。
下面是两次测量到的FSR分压后的电压ADC转换值。由于机械运动出现抖动,所以压力出现抖动。
▲ 设置舵机的指令与读取FSR的AD值
▲ 设置舵机的指令与读取FSR的AD值
▲ 设置多级指令与压力传感器FSR读数
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2020-09-05
#
# Note:
#============================================================
from headm import *
from tsmodule.tsstm32 import *
setv = linspace(1000, 1500, 100, endpoint=False)
printf(setv)
stm32cmd('servo 1000')
time.sleep(1)
fsrdim = []
for v in setv:
stm32cmd('servo %d'%int(v))
stm32cmd('CLEAR')
time.sleep(.25)
while True:
stm32cmd('fsr')
val = stm32memo(1)
if len(val) > 0: break
time.sleep(.25)
fsrdim.append(val[0])
printff(v, val[0])
tspsave('fsrdata', setv=setv, fsr=fsrdim)
stm32cmd('servo 1000')
plt.plot(setv, fsrdim)
plt.xlabel("SETV")
plt.ylabel("FSR")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
※ 结论
设计了双轴机械臂以及机械爪的驱动方案。同时调试初步完成了在原来 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器 没有调试的机械爪的控制部分。
举报