SHR8S调试说明书51系列文档格式.docx
《SHR8S调试说明书51系列文档格式.docx》由会员分享,可在线阅读,更多相关《SHR8S调试说明书51系列文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
如此的一个大环境下,致使森汉科技生产的小型人形机械人与日本品牌的小型人形机械人制造工艺十分相似。
实际生产进程中,由模具制造先进行,然后再生产全数的零件。
其中包括金属零件和塑料零件。
SHR-8S人形机械人全身共需19付模具完成零件生产。
二、机械人电路板硬件基础
除机械人机体本身之外,还有很重要的一个部份确实是机械人的操纵器系统。
森汉科技生产的操纵板具有专门好的操作性。
目前市面上利用最普遍的是51系列单片机,咱们的操纵板采纳STC12C5A60S2单片机,大部份元器件采纳全表贴工艺。
此操纵板设计合理,扩展了STC12C5A60S2系列单片机的所有外接端口。
1.STC12C5A60S2操纵板实物图
STC12C5A60S2操纵板
电路板上面的要紧元件:
CPU:
STC12C5A60S2,48pinLQFP封装,60KBFlash,内置2KBEEPROM
EEPROM:
两片电可擦除存储芯片AT24C512,存储空间共128KB,使机械人程序存储器空间扩充至190KB。
欠压爱惜:
带欠压爱惜电路,系统供电低于6V时,系统将无穷制的复位,且爱惜电压可调。
RS232接口:
4pinRS232接口,带“CTS”判定位,可同时输出RS232电平和TTL电平。
红外接收器:
接收遥控器的红外信号,与用户进行信息交互;
此接口同时能够做外部中断接收利用。
蜂鸣器:
发出响声,与用户进行信息交互;
IO口:
此电路板共扩展35个IO口,其中:
24个专业舵机操纵口(),
11个全能口;
注:
全能接口能够选择或5V电压供电,上拉电阻或下拉电阻可选。
可用于各类传感器和扩展舵机。
编程接口:
采纳STC标准的串口ISP编程方式;
2.STC12C5A60S2操纵板原理图
此操纵板设计合理,功能壮大,操作简单。
咱们为用户开发了底层程序,并做成子程序。
通过简单了解以后,咱们就能够够编制自己的程序。
那个地址需要强调几个注意:
(1)电源的正负问题,一样情形下,红色线是正极,黑色线是负极,操纵板上正负极已经用“+”“—”号标明。
(2)舵机接线统一遵守标准:
在操纵板上靠内侧即靠近单片机的一端是操纵信号线,中间是电源(一样是正端),最外面的是地(GND)。
如以下图所示:
三、SHR-8S人形机械人机体参数
SHR-8S人形机械人是17自由度小型人形机械人。
全身包括17个伺服电机(舵机)。
每一个舵机扭矩为,全数采纳金属齿轮传动。
四、机械人操纵端口概念
由于机械人的机械体与运算机系统相接,因此确信需要定端口协议。
事实上,依照加藤一郎的结构划分,人形机械人分为3个坐标平面。
1.机械人坐标平面的划分
平面概念X平面(侧平面)舵机
Y平面(面平面)舵机
平面(顶平面)舵机
2.机械人各坐标平面舵机的划分
3.机械人各舵机与操纵口的概念
程序中命名概念接口平面命名电路板接口
position[0]━━━━━>
>
x1舵机J0x轴
position[1]━━━━━>
x2舵机J1
position[2]━━━━━>
x3舵机J2
position[3]━━━━━>
x4舵机J3
position[4]━━━━━>
x5舵机J4
position[5]━━━━━>
x6舵机J5
position[6]━━━━━>
x7舵机J6
position[7]━━━━━>
x8舵机J7
position[8]━━━━━>
y1舵机J16y轴
position[9]━━━━━>
y2舵机J17
position[10]━━━━━>
y3舵机J18
position[11]━━━━━>
y4舵机J19
position[12]━━━━━>
y5舵机J20
position[13]━━━━━>
y6舵机J21
position[14]━━━━━>
y7舵机J22
position[15]━━━━━>
y8舵机J23
position[16]━━━━━>
z1舵机J8z轴
position[17]━━━━━>
position[18]━━━━━>
position[19]━━━━━>
position[20]━━━━━>
position[21]━━━━━>
position[22]━━━━━>
position[23]━━━━━>
4.机械人各舵机操纵散布
五、舵机PWM信号介绍
1.PWM信号的概念
PWM信号为脉宽调制信号,其特点在于他的上升沿与下降沿之间的时刻宽度。
具体的时刻宽窄协议参考以下讲述。
咱们目前利用的舵机要紧依托于模型行业的标准协议,随着机械人行业的渐渐独立,有些厂商已经推出全新的舵机协议,这些舵机只能应用于机械人行业,已经不能够应用于传统的模型上面了。
目前,北京森汉的SH14-M舵机采纳传统的PWM协议,优缺点一目了然。
优势是已经产业化,本钱低,旋转角度大(目前所生产的都可达到185度);
缺点是操纵比较复杂。
可是它是一款数字型的舵机,其对PWM信号的要求较低:
(1)不用随时接收指令,减少CPU的疲劳程度;
(2)能够位置自锁、位置跟踪,这方面超越了一般的步进电机;
其PWM格式注意的几个要点:
(1)上升沿最少为,为之间;
(2)SH14-M数字舵机下降沿时刻没要求,目前采纳就行;
也确实是说PWM波形能够是一个周期1mS的标准方波;
(3)SH0680为塑料齿轮模拟舵机,其要求持续供给PWM信号;
它也能够输入一个周期为1mS的标准方波,这时表现出来的跟从性能专门好、很紧密。
2.PWM信号操纵精度制定
1DWT=8uS;
250DWT=2mS
时基寄放器内的数值为:
(#01H)01——(#0FAH)250。
共185度,分为250个位置,每一个位置叫1DWT。
那么:
185÷
250=度/DWT
PWM上升沿函数:
+N×
DWT
0uS≤N×
DWT≤2mS
≤+N×
DWT≤
六、单舵机拖动及调速算法
1.舵机为随动机构
(1)当其未转到目标位置时,将全速向目标位置转动。
(2)当其抵达目标位置时,将自动维持该位置。
因此关于数字舵机而言,PWM信号提供的是目标位置,跟踪运动要靠舵机本身。
(3)像SH-0680如此的模拟舵机需要时刻供给PWM信号,舵机自己不能锁定目标位置。
因此咱们的操纵系统是一个目标计划系统。
(1)SH14-M舵机的位置操纵方式
舵机的转角达到185度,由于采纳8为CPU操纵,因此操纵精度最大为256份。
目前通过实际测试和计划,分了250份。
具体划分参见“PWM信号操纵精度制定”。
将0—185分为250份,每份度。
操纵所需的PWM宽度为—,宽度2ms。
2ms÷
250=8us;
因此得出:
PWM信号高电平持续的时刻=度数/8μs+500μs;
角度
45
90
135
185
N
62
125
187
250
PWM
1ms
2ms
(2)SH14-M舵机的运动协议
运动时可之外接较大的转动负载,舵机输出扭矩较大,而且抗抖动性专门好,电位器的线性度较高,达到极限位置时也可不能偏离目标。
2.目标计划系统的特点
(1)舵机的跟随特性
①舵机稳固在A点不动;
②CPU发出B点位置坐标的PWM信号;
③舵机全速由A点转向B点;
④CPU发出B点PWM信号后,应该等待一段时刻,利用现在刻舵机才能转动至B点。
那么,具体的维持(等待)时刻如何来计算,如下讲解:
令:
维持时刻为Tw
当Tw≥△T时,舵性能够抵达目标,并有剩余时刻;
当Tw≤△T时,舵机不能抵达目标;
理论上:
当Tw=△T时,系统最连贯,而且舵机运动的最快。
实际进程中由于2个因素:
①1个机械人身上有多个舵机,负载个不相同,因此ω不同;
②某个舵机在不同时刻的外界环境负载也不同,因此ω不同;
那么连贯运动时的极限△T难以计算出来。
目前采取的方式是体会选取ω值。
(2)舵机ω值测定
舵机的ω值随时转变,因此只能测定一个平均值,或称显现概率最高的点。
依据:
①厂商的体会值;
②采纳SH14-M具体进行测试;
测试实验:
①将CPU开通,并开始延时Tw;
②当延时Tw抵达后,观看舵机是不是抵达目标;
测按时采纳一段双摆程序,伴随示波器用肉眼观看Tw与△T的关系。
(3)舵机ω值计算
一样舵机定为秒/60度;
取秒/60度>>秒/360度>>秒/185度
则ω为360度/秒,2Π/秒
ω=300度/秒
那么185度转动的时刻为185度÷
360度*秒=秒。
(4)采纳双摆实验验证
3.DWA的概念
将185度的转角分为250个平均小份。
每小份为度。
概念如下:
DWA=度
由于:
ω=秒/60度
运行1DWA所需时刻为:
度*秒/60度=mS;
4.DWT的概念
舵机电路支持的PWM信号为—,总距离为2mS。
假设分为250小份,那么2mS÷
250=mS=8uS
DWT=8uS
5.单舵机调速算法
测试内容:
将后手下降沿的时刻拉至30ms没有问题,舵机照样工作。
将后手下降沿的时刻拉至10ms没有问题,舵机照样工作。
将后手下降沿的时刻拉至没有问题,舵机照样工作。
将后手下降沿的时刻拉至500us没有问题,舵机照样工作。
实践查验出:
下降沿时刻参数能够做的很小。
目前实验降至500uS,仍然工作正常。
缘故是:
(1)舵机电路自动检测上升沿,遇上升沿就触发,以此监测PWM脉宽“头”。
(2)舵机电路自动检测下降沿,遇下降沿就触发,以此监测PWM脉宽“尾”。
(1)舵机转动时的极限下降沿PWM脉宽
△T:
舵机运转1DWA(度)所需要的最小时刻,目前计算出的数值为;
△T前面的20mS等待时刻能够省略,舵机仍然工作;
而且得出舵机跟从的最快驱动方式。
舵机Tw数据实验表格
Tw值
舵机运转特性
Tw与△T关系
该程序可行度
备注
500us
不能跟随
Tw<
△T
不可行
800us
跟随
Tw≈△T
可行
最快、平滑
Tw>
10ms
较慢、平滑
20ms
30ms
40ms
可以
较慢、微抖
50ms
很慢、微抖
70ms
不可以
很慢、较抖
100ms
令人质疑的地址为时的表现,得出的Tw≈△T;
也确实是说=,显然存在问题。
通过考虑从头观看PWM波形图发觉,电机真正的启动点如以下图:
事实上由A到B的运动时刻为:
△T=Tw+(B点的)PWM?
?
七、8舵机联动单周期PWM指令算法
1.操纵要求
要求同时发给8个舵机位置目标值,该指令的执行周期尽可能短,目的有2个:
其一,是为了以后扩充至24舵机;
其二,目标越快,舵机的转动速度越快;
咱们以8路为1组或称1个单位,持续发出目标位置,形成持续的目标计划曲线,电机在跟从进程中自然形成了位置与速度的双指标曲线,实现8路舵机联动。
2.注意事项
从24个端口,P0、P1到P2,单DWT循环的最小时刻只有8us,因此串行运算是不行的,那么就采纳并行运算。
目前采纳的并行算法是—为一个大体单位,8位一并。
实际案例:
P0口的8个位置各不相同;
例如:
端口
N寄存器
目标位置(度)
N数值(整数)
PWM宽度(ms)
position[0]
position[1]
1
position[2]
10
position[3]
37
50
position[4]
74
100
position[5]
111
150
position[6]
148
200
position[7]
T为一个周期,分为2部分
1.PWM宽
2.延时等待
3.8路PWM信号发生算法解析
①概念数组:
arr[8];
pick_up[8];
arr
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
120
60
89
20
12
201
36
102
pick_up
0xFE
0xFD
0xFB
0xF7
0xEF
0xDF
0xBF
0x7F
arr[8]内为P0口的8路N数值,这些数值是依照舵机状态定的,没有规律。
pick_up[8]内为固定的一组逻辑参数。
②将数组arr内的数据由大到小排列,pick_up内的数据也数之转变,变成:
0xDF
0xFE
0x7F
0xFB
③将N值做减法,求得:
arr[0]=arr[0]-arr[1]=81
arr[1]=arr[1]-arr[2]=18
arr[2]=arr[2]-arr[3]=13
arr[3]=arr[3]-arr[4]=29
arr[4]=arr[4]-arr[5]=24
arr[5]=arr[5]-arr[6]=16
arr[6]=arr[6]-arr[7]=8
arr[7]=arr[7]=12
④咱们将每8路输出的高电平常刻限制在一个的中断内,开启中断。
⑤将全数的8路输出置为高电平,并延时500ms作为目标位置为0的基础。
⑥循环8次,每次延时arr内的值个8us,再将P0口“与”相应的逻辑参数,
N差值
延时时间
(N差值*8us)
对应“与”的值
相应输出0的位
相继变成低电平的顺序
arr[7]
96us
0xEF(0B)
第四位置“0”
4
arr[6]
8
64us
0XF7(0B)
第三位置“0”
3
arr[5]
16
128us
0xBF(0B)
第六位置“0”
6
arr[4]
24
192us
0xFD(0B)
第一位置“0”
arr[3]
29
232us
0xFB(0B)
第二位置“0”
2
arr[2]
13
104us
0x7F(0B01111111)
第七位置“0”
7
arr[1]
18
144us
0xFE(0B)
第零位置“0”
arr[0]
81
648us
0xDF(0B)
第五位置“0”
5
⑦最终输出顺序如以下图所示:
Tw
4.24路单周期子程序
EX”INTEL二进制文件。
有了那个文件,咱们才能利用STC提供的软件进行烧写单片机的操作。
(1).在KEILC下成立工程(project)
在“project”菜单下选择“Newproject”,这时会有对话框询问你将工程保留在什么目录下,并询问工程名称,那个名称将使系统相关的文件都已那个名字为开头,包括咱们将要用到HEX文件。
如下图:
(2).选择开发芯片类型
在设置好文件名和目录以后,系统会询问你所利用的芯片类型。
咱们那个地址只利用标准的Intel8052AH即可。
以下图是咱们的选择。
点击“确信”完成工程向导。
(3).添加程序文件到工程
将制作好的C程序加入到新的工程中去。
咱们能够在以下图中的对应位置,点击右键并左键点击对应选项添加文件。
(4).设置工程属性
每一个工程的要求不一样,在KEILC中为这些属性做了一个属性选项。
咱们能够设置好工程属性以方便开发。
第一在“project”菜单下选择“optionsforFile‘xxxxx’”。
以后就会弹出工程属性对话框,在第三页“Output”选项卡下,将生成HEX文件的选项打上对勾,如以下图所示:
点击确信完成工程属性的调整,如此咱们在以后生成的进程中就会生成HEX文件。
关于下面的烧录软件来讲,需要的确实是HEX文件。
咱们能够选择完全编译,在系统信息区看看是不是生成了HEX文件。
如以下图所示;
如此咱们就能够够利用工程中的HEX文件通过STC烧录软件烧录STC12C5A60S2了。
是由STC开发的程序烧写测试综合软件。
它能够通过一般的串口(COM)烧写单片机的程序。
软件运行稳固。
操作相对方便。
软件的操作界面如下:
下面给出操作的具体步骤:
1.选择芯片类型;
2.选择要烧写的HEX文件;
3.设置串行端口和波特率,那个地址要注意端口号,依如实际连接的串口选择。
波特率的选择一样为默许的115200;
4.选择外部晶振;
仍为RESET;
YES;
High;
与下载无关;
NO;
5.RESET2脚低于复位,选YES;
6.点击下载按钮后,打开单片机供电电源。
在上电后单片机遇自动进入编程状态。
通过提示能够判定是不是下载完成。
7.此两项选中时表示每次下载时选择的都是打开文件的最新更新结果,及每次打开的hex文件发生改变时,软件自动执行下载命令。
注意:
1.在选择芯片时必然要看清型号,很容易选错。
2.应选择外部晶振,若是选择内部晶振,单片能够工作,可是舵机的操纵会显现问题。
3.必然要先点编程按钮,然后在开操纵板上的电源,不然下载就会失败。
十二、注意事项
1.调试注意事项
(1)在调试进程中,舵机不要长时刻处在被机械结构阻挡的情形下,也确实是说,若是舵机不能达到给定的角度值,是因为被机械结构阻挡了,那么现在舵机通电的时刻不要太长,最多20秒,不然舵机内部的芯片就会烧掉了,舵机就会“冒烟”而且发烫。
若是在调试进程中不能在20秒内完成全数下载进程,最好讲那个舵机的插口从电路板上拔下,下载完毕以后,再插上舵机插口,若是仍是有问题,应该再次拔掉,再次改程序,直到舵机的角度在能够达到的机械范围内为止。
(2)若是舵机被烧坏,换舵机时,只要将新舵机的后盖打开,将黒、红、白三条线从电路板焊下来,坏掉的舵机一样如此,换上新舵机以后,直接把三条线焊到新舵机的电路板上就能够够了。
焊线进程中要注意,不要短路。
若是关于在如此小的电路板上焊接没有信心,能够将三条线在临近舵机时把线剪断,直接焊三条线的连接就能够够了。
2.其它注意事项
(1)关于电池充电问