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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多自由度人形双足舞蹈机器人
——疯壳·机器人开发系列
整机代码
- M3 l5 m  s0 [* l

1 M: Q5 D. N' H/ ^/ U7 ^7 n5 n  B8 i  d6 M1 x5 ]& i" U$ O7 s

( k# t: [- M8 R% ]4 A' c
- |* o/ X* a; j1 d) }9 ]7 }: q) |  _1 t1 y
    1相关简介- }/ |1 {" a7 M# n1 t
& l, j; t' w5 _* e  }# R
    本章将结合前面实验章节,完成机器人的整机代码。
* d0 M' T! f# z( P& m
; y7 d" p/ k6 N7 z. ^# E3 P2 j0 s. N    我们的机器人由 17 个舵机控制各个关节,拥有在线调试模式和脱机模式两种模式。在脱机模式下,我们的机器人将读取外部 Flash 中的数据,完成相应的动作组。而在线调试模式下,机器人将与我们所提供的上位机软件 robotCtrl 连接,实现在线控制舵机、在线运行动作组以及在线下载动作组等功能。  C7 I- \8 [; R& y5 @! ^: y
    2硬件设计
* }4 x6 m7 |2 Y# O3 R$ E
- q. A% L$ \* Z4 v* P    硬件方面,关于外部 Flash 和串口 Uart 部分,可以参照前面的章节。本次将控制 17 个舵机的转动,17 个 IO 口与 3 个 74HC244 相连接,间接控制 17 路舵机的信号。& K, A0 E! W: ?+ N7 _5 i! ]
7 Q5 ~5 o  p% X6 R/ T/ S2 a

1 b! L1 E( }1 @# X! e    图 1
) _9 K9 m: u- {    3软件设计
2 `0 D; r1 i+ @& y" }( W$ \, l; \0 y' z. g. l6 g
    我们整个软件的流程如下:1 D- p8 W" x  {% T9 }

" V: i4 L% n5 {( u    
" U+ T# O- J  @8 V# X- L, J    图27 L2 I. H/ _7 Z: t* `* w

* P& r( F# {- S* z    代码开始运行之后,首先进行初始化。  x/ a& @9 g( G! N

2 K" i, R% C# c4 g    在初始化进程中,我们完成了串口初始化、IO 口初始化、定时器初始化等。关于这三个部分可以查看前面的章节。
, |6 B6 ^1 O. [/ r& h8 X    初始化完毕之后,就进入一个模式选择。我们的模式选择是通过测量 IO 口P01 的电压开控制机器人的模式,当 P01 为低电平时进入脱机模式,反之进入在线调试模式。如下图所示,两根线接上就是脱机模式,拔掉就是在线调试模式。" O$ B7 _) W3 \) r, a

% S) P2 r- z8 r; L* T' |
+ j8 Z6 a! p3 D/ W图3
1 }6 X& H( _# I& Y8 Z4 w& ?    我们先进入在线调试模式。在线调试模式是通过上位机软件 robotCtrl 与我们的 IAP15W4K61S5 单片机通信。其实也就是通过串口通信,如同前面的串口控
( H4 y3 o/ _7 d. K0 ^    制舵机转动章节。但要注意的是,我们上位机软件 robotCtrl 功能对应发送的字符串是固定的,所以我们 IAP15W4K61S5 单片机处理字符程序也必须相对应。& S- s* ]' O# K# C9 P+ t

: h" C1 Y# R6 X
" O9 ^# H3 T2 j+ W 9 X$ i" Q# N, D  [; w) ]

! \" m  N6 I- u$ n    % w1 {+ @' b; P' |
    代码1
3 |+ [2 P" I$ V! t6 {6 s4 D0 _% x* h; E
* Z# k' d+ D4 A7 l( r    void uart_int(void) interrupt 4 using 1 是我们的串口接收中断函数,将上位机# R/ }9 W% B$ I$ ?0 P+ C3 M* p
1 J6 x4 Q0 `; x9 p1 T: c
    软件 robotCtrl 发送的字符进行处理,执行操作命令,存储舵机角度数据到我们所建立的数据缓冲区 PnextBuff[140]里。+ L& Z4 C+ L! E& H
    当接收到上位机软件发送的下载命令字符时,IAP15W4K61S5 单片机就将缓冲区 PnextBuff[140]中的动作组数据下载到外部 Flash 中。在脱机模式下,单片机就读取外部 Flash 中的动作组数据,然后控制舵机,做出相应的动作。外部 Flash 的读写操作比较简单,可以参考前面的外部 Flash 读写章节。  F0 L$ E6 ?* T6 r
    4实验现象
* j) N" t( B% g; c2 f% T3 K, N% s$ V1 O; R0 a
    首先打开下载软件 STC-ISP。
; b% m% K8 R% Z+ u- n4 l$ P! M& H% e$ c8 @. ?
  
: [/ g* z6 G+ [# a& w0 ]7 [    图 4
! m/ `% m. c4 u! m    (1)点击 Keil 仿真设置,添加 STC 相关的头文件。STC 的相关头文件路径是我们之前安装 Keil C51 的路径,如果之前采用的默认路径,那么选择C 盘 Keil 文件夹。
% _3 A6 B/ T1 `/ ^6 H
; w& _1 ~+ i8 D8 \% m* f, y    
2 r# A6 e  q( a3 N& g. I    图 5  C& ^6 \: h" u
    (2)添加完 STC 相关的头文件,点击弹窗中的确定。
+ }6 i3 R1 ^+ |" ~9 V2 Z/ R$ N9 }6 d2 ~8 ^
             # D3 y" {3 f' [- L7 v
    图 61 f+ V+ r: i% |% T
0 v3 D" a, x+ x6 c- ~/ [
    (3)设置单片机的型号、最低波特率、最高波特率如下图所示,硬件选项等选项默认即可。串口号根据实际情况选择。
; N4 L3 k5 K7 M) @$ I* M0 h
4 W/ g6 D0 c4 o( `/ P' X4 ^     2 Q$ Q8 ~9 o- D
    图 7+ I- R. I; g/ k* P
    (4)点击打开程序文件,选择我们例程中的.hex 文件。
6 P; n" [5 G. P/ E+ h( q5 W$ J& B, `" Y) W, ?3 ^! w
   ! w) w$ z' E0 T
    图 8- ^7 g% X3 a5 S4 [7 G) X
    (5)点击下载/编程,下载代码。# c6 ~" h3 r  \% u' S1 p
: W+ A) E; _" J( ]5 z: l9 ~
           ! ^  ?) j2 b2 D; K. [, [( q3 X0 N
    图 98 u! W3 q" y$ k& f

6 Q. i# S8 h' ?( D! p7 b    (6)按一下电路板上面的 RST 按键,完成下载。
8 ^* D' x6 J3 A7 t" I
, _+ S1 I4 @1 Q: H0 A& W    * d$ K9 S7 u: u7 Z/ z
    图 101 Y8 R0 _7 F! P- g5 w3 V5 X
1 h8 a% ^$ W" S7 u
    代码下载完之后, 最终机器人就完成, 大家可以通过通过上位机软件robotCtrl 下载我们的街舞文件,然后脱机运行,可以看到机器人开始跳舞。0 l* h$ y* j( y" i& G6 c2 ?

2 T0 h. l, G- s  V, t7 P  i$ w  W
0 r& P* D1 z# t& b0 R
- |) }7 D+ k% X& q/ T' P4 S    文件下载请点击: 8_整机代码.pdf (1.1 MB, 下载次数: 0) ' g. l# H5 R$ C6 O
; n0 F5 J7 G% D. j% g; x8 T6 ^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 00:12 , Processed in 0.156250 second(s), 28 queries , Gzip On.

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

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

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