——瘋殼·機(jī)器人開(kāi)發(fā)系列 整機(jī)代碼
1相關(guān)簡(jiǎn)介
本章將結(jié)合前面實(shí)驗(yàn)章節(jié),完成機(jī)器人的整機(jī)代碼。
我們的機(jī)器人由 17 個(gè)舵機(jī)控制各個(gè)關(guān)節(jié),擁有在線調(diào)試模式和脫機(jī)模式兩種模式。在脫機(jī)模式下,我們的機(jī)器人將讀取外部 Flash 中的數(shù)據(jù),完成相應(yīng)的動(dòng)作組。而在線調(diào)試模式下,機(jī)器人將與我們所提供的上位機(jī)軟件 robotCtrl 連接,實(shí)現(xiàn)在線控制舵機(jī)、在線運(yùn)行動(dòng)作組以及在線下載動(dòng)作組等功能。
2硬件設(shè)計(jì)
硬件方面,關(guān)于外部 Flash 和串口 Uart 部分,可以參照前面的章節(jié)。本次將控制 17 個(gè)舵機(jī)的轉(zhuǎn)動(dòng),17 個(gè) IO 口與 3 個(gè) 74HC244 相連接,間接控制 17 路舵機(jī)的信號(hào)。
圖 1
3軟件設(shè)計(jì)
我們整個(gè)軟件的流程如下:
圖2
代碼開(kāi)始運(yùn)行之后,首先進(jìn)行初始化。
在初始化進(jìn)程中,我們完成了串口初始化、IO 口初始化、定時(shí)器初始化等。關(guān)于這三個(gè)部分可以查看前面的章節(jié)。
初始化完畢之后,就進(jìn)入一個(gè)模式選擇。我們的模式選擇是通過(guò)測(cè)量 IO 口P01 的電壓開(kāi)控制機(jī)器人的模式,當(dāng) P01 為低電平時(shí)進(jìn)入脫機(jī)模式,反之進(jìn)入在線調(diào)試模式。如下圖所示,兩根線接上就是脫機(jī)模式,拔掉就是在線調(diào)試模式。
圖3
我們先進(jìn)入在線調(diào)試模式。在線調(diào)試模式是通過(guò)上位機(jī)軟件 robotCtrl 與我們的 IAP15W4K61S5 單片機(jī)通信。其實(shí)也就是通過(guò)串口通信,如同前面的串口控
制舵機(jī)轉(zhuǎn)動(dòng)章節(jié)。但要注意的是,我們上位機(jī)軟件 robotCtrl 功能對(duì)應(yīng)發(fā)送的字符串是固定的,所以我們 IAP15W4K61S5 單片機(jī)處理字符程序也必須相對(duì)應(yīng)。
代碼1
void uart_int(void) interrupt 4 using 1 是我們的串口接收中斷函數(shù),將上位機(jī)
軟件 robotCtrl 發(fā)送的字符進(jìn)行處理,執(zhí)行操作命令,存儲(chǔ)舵機(jī)角度數(shù)據(jù)到我們所建立的數(shù)據(jù)緩沖區(qū) PnextBuff[140]里。
當(dāng)接收到上位機(jī)軟件發(fā)送的下載命令字符時(shí),IAP15W4K61S5 單片機(jī)就將緩沖區(qū) PnextBuff[140]中的動(dòng)作組數(shù)據(jù)下載到外部 Flash 中。在脫機(jī)模式下,單片機(jī)就讀取外部 Flash 中的動(dòng)作組數(shù)據(jù),然后控制舵機(jī),做出相應(yīng)的動(dòng)作。外部 Flash 的讀寫操作比較簡(jiǎn)單,可以參考前面的外部 Flash 讀寫章節(jié)。
4實(shí)驗(yàn)現(xiàn)象
首先打開(kāi)下載軟件 STC-ISP。
圖 4
(1)點(diǎn)擊 Keil 仿真設(shè)置,添加 STC 相關(guān)的頭文件。STC 的相關(guān)頭文件路徑是我們之前安裝 Keil C51 的路徑,如果之前采用的默認(rèn)路徑,那么選擇C 盤 Keil 文件夾。
圖 5
(2)添加完 STC 相關(guān)的頭文件,點(diǎn)擊彈窗中的確定。
圖 6
(3)設(shè)置單片機(jī)的型號(hào)、最低波特率、最高波特率如下圖所示,硬件選項(xiàng)等選項(xiàng)默認(rèn)即可。串口號(hào)根據(jù)實(shí)際情況選擇。
圖 7
(4)點(diǎn)擊打開(kāi)程序文件,選擇我們例程中的.hex 文件。
圖 8
(5)點(diǎn)擊下載/編程,下載代碼。
圖 9
(6)按一下電路板上面的 RST 按鍵,完成下載。
圖 10
代碼下載完之后, 最終機(jī)器人就完成, 大家可以通過(guò)通過(guò)上位機(jī)軟件robotCtrl 下載我們的街舞文件,然后脫機(jī)運(yùn)行,可以看到機(jī)器人開(kāi)始跳舞。
如需定制開(kāi)發(fā),請(qǐng)通過(guò)官網(wǎng)“瘋殼”網(wǎng)頁(yè)底部的“聯(lián)系我們”進(jìn)行聯(lián)系
文件下載請(qǐng)點(diǎn)擊:
8_整機(jī)代碼.pdf
(1.1 MB)
2022-8-17 13:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
|