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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多自由度人形双足舞蹈机器人
——疯壳·机器人开发系列
整机代码
( ^: `/ r& |+ c" @: d
) p1 D) B5 e4 h0 ~+ J% L

* I% `1 V8 r' G6 {1 [2 X: A6 c3 F2 V0 p) G1 E

$ I) ]0 `+ X# N: x4 s. Q  ~3 ~5 @( ?- N+ q) I( q' j/ T) g; q
    1相关简介7 x/ c3 o3 d& E2 B3 j

$ p/ ^- K- j; i/ x% |    本章将结合前面实验章节,完成机器人的整机代码。8 M2 |) M8 w6 ]$ x5 x- d' |% I
, g; x# e8 S! x; h# @8 b
    我们的机器人由 17 个舵机控制各个关节,拥有在线调试模式和脱机模式两种模式。在脱机模式下,我们的机器人将读取外部 Flash 中的数据,完成相应的动作组。而在线调试模式下,机器人将与我们所提供的上位机软件 robotCtrl 连接,实现在线控制舵机、在线运行动作组以及在线下载动作组等功能。
7 R% l% ^* ?& c' K# b. R    2硬件设计7 [+ F/ J6 n7 g6 K
* U& A3 J. F* n3 p1 j' ?  V' Y# y) Q
    硬件方面,关于外部 Flash 和串口 Uart 部分,可以参照前面的章节。本次将控制 17 个舵机的转动,17 个 IO 口与 3 个 74HC244 相连接,间接控制 17 路舵机的信号。7 G4 w7 c0 c* i

9 V- G2 @% [4 i5 _/ v5 ] 8 U7 I5 ?0 ^2 O
    图 1
# e1 V- h/ v8 T( ^( w    3软件设计$ q9 O: p9 r9 j! E- [* s+ j

/ ^9 r& l* _0 x- a% g8 N    我们整个软件的流程如下:6 g0 _* X4 n* J) |& G

7 @' p! G/ G2 Q    
4 I" e4 X2 ?0 m+ F( K    图2$ M, a0 u6 W( A1 O* f4 |& _
  C6 \1 [% h& @& U+ w5 t8 `
    代码开始运行之后,首先进行初始化。
4 `; C, c. j+ f
- m  X' H2 j$ X  Z$ C    在初始化进程中,我们完成了串口初始化、IO 口初始化、定时器初始化等。关于这三个部分可以查看前面的章节。: d2 n) o- e  l# Y
    初始化完毕之后,就进入一个模式选择。我们的模式选择是通过测量 IO 口P01 的电压开控制机器人的模式,当 P01 为低电平时进入脱机模式,反之进入在线调试模式。如下图所示,两根线接上就是脱机模式,拔掉就是在线调试模式。
7 l% o& T6 r0 M. S, K% S! V5 d+ j, D6 R8 z
% |" T# Z- o8 J* Y: x4 d
图3
0 E) ~( l7 R3 n' J% k3 M$ P    我们先进入在线调试模式。在线调试模式是通过上位机软件 robotCtrl 与我们的 IAP15W4K61S5 单片机通信。其实也就是通过串口通信,如同前面的串口控6 @7 q6 N# Z& N/ {1 s( K  J& Q9 g) J
    制舵机转动章节。但要注意的是,我们上位机软件 robotCtrl 功能对应发送的字符串是固定的,所以我们 IAP15W4K61S5 单片机处理字符程序也必须相对应。( S2 t0 a% |( n$ i" W  h7 X

; K7 ^7 g" I* I/ u 3 e; A4 j6 _8 N* y+ p6 O0 w% U! a
7 L4 _2 A7 c5 P+ ~
3 j3 l) x3 ]0 y
     V4 |( t$ o5 U+ g9 j' k( W
    代码1
$ t/ ^) T; j0 l& ~
( P0 S- l1 w, g8 `) ]3 L% X    void uart_int(void) interrupt 4 using 1 是我们的串口接收中断函数,将上位机; Y9 _9 i: P. W! g" r! _6 S+ [! t
$ m$ {9 ?2 O9 K0 Z4 U0 m: M: ?: x
    软件 robotCtrl 发送的字符进行处理,执行操作命令,存储舵机角度数据到我们所建立的数据缓冲区 PnextBuff[140]里。
5 i) f* p1 N7 N- F# r    当接收到上位机软件发送的下载命令字符时,IAP15W4K61S5 单片机就将缓冲区 PnextBuff[140]中的动作组数据下载到外部 Flash 中。在脱机模式下,单片机就读取外部 Flash 中的动作组数据,然后控制舵机,做出相应的动作。外部 Flash 的读写操作比较简单,可以参考前面的外部 Flash 读写章节。$ D% l! p$ X# O3 ?, Y
    4实验现象# j) X6 m1 |9 Y) ~! ~" X" e, X

# Z2 R6 r1 D9 g' g/ Q5 `: B7 c    首先打开下载软件 STC-ISP。
, b) \0 G) c, }3 b# Y1 F5 s9 i! u& k. G
  . _! K0 _" [1 g9 @0 d- i+ {- r3 |
    图 4
6 c7 c1 x# P0 P2 T* d    (1)点击 Keil 仿真设置,添加 STC 相关的头文件。STC 的相关头文件路径是我们之前安装 Keil C51 的路径,如果之前采用的默认路径,那么选择C 盘 Keil 文件夹。
8 c8 C7 p" c0 n/ }$ N5 I$ ~& B, P  V, C* ^4 z
   3 i4 D  ?8 g1 _+ ]6 {7 w% M
    图 5
/ Y$ [7 P3 e3 z* @    (2)添加完 STC 相关的头文件,点击弹窗中的确定。2 F2 i9 q. {# ^% d  A% r$ M, i
4 D0 g  r, ~, `# P9 {/ Z5 y
             - _$ ?  ~' |. C9 W- q# Y
    图 62 E4 J" S% [! x! c# U0 p

1 Z9 b2 P* j& y' j7 m  @9 \$ R    (3)设置单片机的型号、最低波特率、最高波特率如下图所示,硬件选项等选项默认即可。串口号根据实际情况选择。
# H+ V1 c  I6 N; Q' d9 _) A
1 r( w# ?2 P1 l' {4 l9 }9 Z6 s0 A    
3 ^0 d* w6 r- ]' p, @! j3 i: f    图 7" T, [0 T3 Z# L; h! b" x2 \
    (4)点击打开程序文件,选择我们例程中的.hex 文件。
- X4 Q9 {. t! ~+ s' v
3 @; z8 I* y5 j# ]7 X1 L  Q/ ^$ e    
" Q+ E1 w; \' H; S! j    图 88 a$ @8 n$ g2 {9 Z0 _  B
    (5)点击下载/编程,下载代码。
7 `' k* P; Z; p9 D# p, F% `) |/ e
3 G- }3 q, [* O3 q0 T3 w7 O            - C) j8 N  v$ U- W4 t
    图 9
* ?! [) n- C$ U( o, R& `* p4 h8 e2 I+ J6 A7 B7 s2 F
    (6)按一下电路板上面的 RST 按键,完成下载。
: \0 j" u; E* E( m6 d/ f4 C- W$ ]4 M* t6 e8 r4 o  D: O
   
" D8 }0 |. E  Z- H    图 10$ k) |( B6 X( n5 i0 E* O7 X0 a
& A; G) }& D' D0 c
    代码下载完之后, 最终机器人就完成, 大家可以通过通过上位机软件robotCtrl 下载我们的街舞文件,然后脱机运行,可以看到机器人开始跳舞。6 z+ C9 R( M  b
/ a/ T1 F: R: x6 F5 O
! u9 d1 l. e( N; w

% `: Y* s4 h. \/ ~% D    文件下载请点击: 8_整机代码.pdf (1.1 MB, 下载次数: 0) 7 @, S- F: E" B
1 i1 @( w5 r" O  V4 E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-28 17:42 , Processed in 0.187500 second(s), 28 queries , Gzip On.

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

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

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