找回密码
 注册
关于网站域名变更的通知
查看: 214|回复: 0
打印 上一主题 下一主题

【疯壳·机器人教程9】人形街舞机器人-整机代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-25 15:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
多自由度人形双足舞蹈机器人
——疯壳·机器人开发系列
整机代码

7 U% ~' d+ u, P1 M; L: @0 P
& J- }1 u/ w- b! _) S* t: C5 L& C& T! r. `/ x

, [& Y9 K- _' A& h2 x& R# b% a( y" |
+ p: a. A+ Z& P: ~  ]3 ^3 s
' q& C2 h; G& g' y/ D  K/ v    1相关简介2 N/ ~- B/ W# T, x2 |# O8 \& ^5 v
# q  x# t; F7 Z( o& T
    本章将结合前面实验章节,完成机器人的整机代码。
) h/ s" e4 t7 z' y* |' E1 }' Z3 }
# \2 s* _- H. ~" I/ n) o    我们的机器人由 17 个舵机控制各个关节,拥有在线调试模式和脱机模式两种模式。在脱机模式下,我们的机器人将读取外部 Flash 中的数据,完成相应的动作组。而在线调试模式下,机器人将与我们所提供的上位机软件 robotCtrl 连接,实现在线控制舵机、在线运行动作组以及在线下载动作组等功能。& M1 m/ s$ D* k9 l* l9 O
    2硬件设计% Y4 w3 ]5 |4 b9 \
# y* r: l- z1 {( h: D# Q' B6 P1 E
    硬件方面,关于外部 Flash 和串口 Uart 部分,可以参照前面的章节。本次将控制 17 个舵机的转动,17 个 IO 口与 3 个 74HC244 相连接,间接控制 17 路舵机的信号。9 J6 @# E$ _( h! K2 T8 M$ Q! g0 ]

9 y$ i* u* Y7 v+ E  M : ]2 J: d' F5 }& h
    图 16 w" q( z* p& `7 s
    3软件设计
8 N! B+ G' X6 [
* u" F  ~2 {) E2 X  F3 X    我们整个软件的流程如下:. c& |, i/ r; z8 t" s
* ]3 k& n7 v7 U1 G( q
   7 c. ?7 k8 \9 r' ], o8 v
    图2
: U8 H5 k0 a# W9 C; r3 ^" E( m0 X+ L/ L. S$ M9 i% C
    代码开始运行之后,首先进行初始化。* o& v' l5 K" z6 \/ t
* F" [7 u0 H1 H( V3 U1 I
    在初始化进程中,我们完成了串口初始化、IO 口初始化、定时器初始化等。关于这三个部分可以查看前面的章节。
% F4 A% G4 s3 c$ Q$ P- {" i4 @- V    初始化完毕之后,就进入一个模式选择。我们的模式选择是通过测量 IO 口P01 的电压开控制机器人的模式,当 P01 为低电平时进入脱机模式,反之进入在线调试模式。如下图所示,两根线接上就是脱机模式,拔掉就是在线调试模式。
3 n/ ^) }% Z1 j. D' F" N$ O" H, Z
6 I3 Y, N6 y, u3 S5 `! {* } 2 V, t: o/ g! }) P4 }- i
图37 j5 |# w6 _5 w
    我们先进入在线调试模式。在线调试模式是通过上位机软件 robotCtrl 与我们的 IAP15W4K61S5 单片机通信。其实也就是通过串口通信,如同前面的串口控
3 U% o6 `" {3 o# p$ D3 `, z2 l$ y4 m    制舵机转动章节。但要注意的是,我们上位机软件 robotCtrl 功能对应发送的字符串是固定的,所以我们 IAP15W4K61S5 单片机处理字符程序也必须相对应。
6 U# q- I# k' Y2 x* D/ T! F( q9 @- C# y. s" }0 n' C# P

& L6 ]5 P; E" m, X$ u8 ?   p5 W9 o4 m5 h$ U
$ _$ q4 i4 @3 ?2 R. E8 {1 i" Y
   : Q* |+ \- o% ~8 [
    代码1
* n2 D& @$ i) g
6 Q5 g9 e( {# J( b    void uart_int(void) interrupt 4 using 1 是我们的串口接收中断函数,将上位机
& S$ c. T8 B3 N2 Z
; h* k8 `: _, P4 d6 {" D, ~& F    软件 robotCtrl 发送的字符进行处理,执行操作命令,存储舵机角度数据到我们所建立的数据缓冲区 PnextBuff[140]里。: S* y5 T- U1 D! E/ Y
    当接收到上位机软件发送的下载命令字符时,IAP15W4K61S5 单片机就将缓冲区 PnextBuff[140]中的动作组数据下载到外部 Flash 中。在脱机模式下,单片机就读取外部 Flash 中的动作组数据,然后控制舵机,做出相应的动作。外部 Flash 的读写操作比较简单,可以参考前面的外部 Flash 读写章节。6 n$ u/ q1 N. g* T
    4实验现象
' Z! D% j+ m+ U
: V7 X" h8 n% c9 q    首先打开下载软件 STC-ISP。
  t! r1 S) z& v. E% g* P; p0 m3 k5 ~% h% c- ~$ i: }* X
  8 |. B  q0 U  ], s' X" V3 i
    图 4& b6 `2 U+ z6 g
    (1)点击 Keil 仿真设置,添加 STC 相关的头文件。STC 的相关头文件路径是我们之前安装 Keil C51 的路径,如果之前采用的默认路径,那么选择C 盘 Keil 文件夹。, \; N( W, a+ V2 H" C

* O0 F! a5 I- |, ]8 `    / O' G" L: t3 n
    图 5
7 s6 V9 A% R2 Z/ |9 O/ O- d    (2)添加完 STC 相关的头文件,点击弹窗中的确定。3 o: d: e5 H% s
9 w$ b" k2 A6 l, ^* r/ D) X7 W, t
            
4 o+ r' w- G/ H    图 65 d9 ^8 i. Z" m1 M1 z" F) n
% h! b/ l& p- s, n! k6 W: ^" }
    (3)设置单片机的型号、最低波特率、最高波特率如下图所示,硬件选项等选项默认即可。串口号根据实际情况选择。2 u, p* K; i% c  m2 W

' ?; D) H5 h$ z& U     . I7 e% ]. w( a) t' Y' v, g, ^1 _
    图 75 |# x: ~* ~2 n# O; W
    (4)点击打开程序文件,选择我们例程中的.hex 文件。
, O0 z, B  Q2 ^6 b+ v( z0 @$ r; R! K7 ^+ ^
     R8 I9 B2 d9 M$ {0 n3 H
    图 8
2 u; I1 r7 H3 W! d$ K5 Q; f1 N- M    (5)点击下载/编程,下载代码。
( W+ r" T5 i& L8 d
- Z" P3 v9 t; g9 `, `9 }            ; {" ?1 m" S* Q, k) E
    图 9( }$ c, j) h+ B
* j5 k+ D( b5 M- |( V
    (6)按一下电路板上面的 RST 按键,完成下载。* q. c0 W" }& g; `5 X) j' E! e
6 f. I( a: R! J( k0 L. L
   
, r3 ?$ S# [+ k3 H+ ]    图 10) O+ ~0 H  H1 J8 b, L7 \! G

. M8 B- |7 M9 v$ C9 v( l! s+ ~    代码下载完之后, 最终机器人就完成, 大家可以通过通过上位机软件robotCtrl 下载我们的街舞文件,然后脱机运行,可以看到机器人开始跳舞。
/ E! ]. b. W7 z" [; E
7 h7 U1 p3 N$ Y, x: z/ F0 o
& ]% a! ?2 m" a, i1 Y/ a# y( _4 Y: y/ y/ K6 c7 E7 I0 I0 |
    文件下载请点击: 8_整机代码.pdf (1.1 MB, 下载次数: 0)
  B3 R2 F7 v# ~
  {5 h$ Q8 Z  D* ]) K- z5 b% Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-26 15:00 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表