要學(xué)習(xí)做一名創(chuàng)客,從套件搭建多功能機(jī)器人不失為一種有效的方法,因?yàn)樗峁C(jī)會(huì)學(xué)習(xí)多個(gè)相關(guān)領(lǐng)域的知識(shí),包括微控制器、傳感器、電機(jī)、軟件開發(fā)等。而且,不論對(duì)于初學(xué)者還是經(jīng)驗(yàn)豐富的創(chuàng)客,都有大量的機(jī)器人套件、插件和在線幫助供其選擇。
本文討論在基于 DF Robot 的 Devastator 坦克平臺(tái)(圖 1)搭建機(jī)器人時(shí),應(yīng)該考慮的一些實(shí)用步驟、問題和可能的升級(jí)。
圖 1:DFRobot Devastator 是可幫助設(shè)計(jì)人員和創(chuàng)客學(xué)習(xí)廣泛的電子和軟件技能的多功能平臺(tái)。(圖片來源:DFRobot)
為什么選擇 Devastator?它堅(jiān)固耐用,采用鋁構(gòu)造,并具有兩個(gè)金屬齒輪有刷直流電機(jī)。它能搬運(yùn)重達(dá) 3 kg 的載荷,具有多個(gè)可用于安裝傳感器、伺服機(jī)構(gòu)、機(jī)器人手和其他配件的安裝孔,而且可兼容所有流行的、適合創(chuàng)客使用的微控制器板。
搭建完整的機(jī)器人系統(tǒng)
機(jī)器人附帶底座、輪子、履帶和兩個(gè)電機(jī),其他組件的選擇則取決于設(shè)計(jì)人員。完整的系統(tǒng)需要一塊微控制器板、一塊電機(jī)驅(qū)動(dòng)器板和一種輸入命令的方法??蛇x的插件可能包括機(jī)器人手、攝像機(jī)等組件,或旨在提供一定程度的自主操作的防撞系統(tǒng)。
選擇微控制器平臺(tái)
Devastator 機(jī)器人可兼容多種流行的微控制器平臺(tái)。Arduino 開源開發(fā)平臺(tái)于 2003 年在意大利問世,并為初學(xué)者和專業(yè)設(shè)計(jì)人員廣泛使用。Arduino Uno(圖 2)使用 Microchip Technology(原 Atmel)的 ATmega328P 8 位 RISC 微控制器。
其他標(biāo)準(zhǔn)功能包括:一個(gè)受預(yù)編程的 ATmega16U2 微控制器控制的 USB 端口、多路數(shù)字輸入和輸出、一個(gè)模擬輸入端口,以及一個(gè)用于軟件更新的在線串行編程 (ICSP) 端口。更新的 Arduino Due 將內(nèi)核升級(jí)為一個(gè) 32 位 ARM? Cortex?-M3。此內(nèi)核還在下文討論的 DFRobot 控制器板中使用,而該控制器板同時(shí)具備 Arduino 的兼容性和電機(jī)驅(qū)動(dòng)器。
圖 2:Arduino Uno 是創(chuàng)客項(xiàng)目的流行選擇,并且基于 Microchip Technology 的 ATmega328P 8 位 RISC 微控制器。(圖片來源:Arduino)
Raspberry Pi 單板計(jì)算機(jī)最初在學(xué)校用于基礎(chǔ)計(jì)算機(jī)科學(xué)教學(xué),但如今在創(chuàng)客社區(qū)變得極為流行。最新的 Raspberry Pi 3 基于以 1.2 GHz 頻率運(yùn)行的 Broadcom 64 位四核 CPU。它包含 802.11n 無線 LAN、藍(lán)牙 4.1 和低功耗藍(lán)牙 (BLE)。還包含 1 GB RAM、一個(gè)微型 SD 卡插槽、4 個(gè) USB 端口、多個(gè) HDMI 和以太網(wǎng)端口、一個(gè)攝像頭接口、40 個(gè) GPIO 引腳,以及其他專用接口。
希望運(yùn)用其現(xiàn)有經(jīng)驗(yàn)的 Windows 專家可以從使用 Devastator 兼容型 LattePanda 控制器板開始,因?yàn)樵摪甯綆б寻惭b并激活的完整版 Windows 10。該板使用一個(gè)以 1.8 Ghz 頻率運(yùn)行且捆綁了一個(gè)協(xié)處理器的四核 CPU,還使用了 Microchip 的 8 位 Atmega32u4 以實(shí)現(xiàn) Arduino 兼容性。
LattePanda 附帶 2 GB DDR3L RAM 和多達(dá) 32 GB 存儲(chǔ),一個(gè) USB 3.0 和兩個(gè) USB 2.0 端口,Wi-Fi,藍(lán)牙 4.0,一個(gè)協(xié)處理器,以及在兩個(gè)處理器之間劃分的合計(jì) 22 個(gè) GPIO。
控制電機(jī)
確定微控制器內(nèi)核后,下一步是選擇電機(jī)控制板。Devastator 包含兩個(gè)以 160 rpm(無負(fù)載)速度工作的 6 伏 (V) 電機(jī)。每個(gè)電機(jī)的最大輸出扭矩為 0.8 kgf.cm (0.058 ft-lb.),最大失速電流為 2.8 安 (A)。
Raspberry Pi 需要插件擴(kuò)展板來實(shí)現(xiàn)機(jī)器人特定的功能,不過 DFRobot 的 DFR0398 Romeo BLE Quad 板為 Arduino 愛好者提供了同時(shí)包含微控制器和電機(jī)驅(qū)動(dòng)器的單板選件(圖 3)。該板提供了比 UNO 衍生產(chǎn)品更強(qiáng)大的內(nèi)核,但仍保持了 Arduino 軟件兼容性。
微控制器為 STMicroelectronics 的 STM32F103RET6:此器件使用以 72 MHz 頻率運(yùn)行的 ARM? Cortex?-M3 32 位內(nèi)核,并包含 512 KB 閃存、一個(gè)電機(jī)控制脈沖寬度調(diào)制 (PWM) 模塊、16 個(gè) 12 位模數(shù)轉(zhuǎn)換 (ADC) 通道,以及兩個(gè) 12 位數(shù)模轉(zhuǎn)換 (DAC) 通道。
圖 3:DFR0398 Romeo BLE Quad 是可兼容 Arduino 的機(jī)器人控制板,并帶有藍(lán)牙功能和用于四個(gè)電機(jī)的驅(qū)動(dòng)器。(圖片來源:DFRobot)
電機(jī)驅(qū)動(dòng)器由兩個(gè) Microsemi HR8833 器件實(shí)現(xiàn)。每個(gè) MOSFET 驅(qū)動(dòng)器包含兩個(gè) H 橋驅(qū)動(dòng)器,用于 Devastator 電機(jī)的雙向控制。Romeo BLE Quad 包含四個(gè)編碼器接口,而且集成了 Texas Instruments 的 CC2540 射頻收發(fā)器,用于實(shí)現(xiàn)藍(lán)牙 4.0 無線連接。
添加電源
微控制器板本身通用 USB 連接器以 5 伏電壓運(yùn)行,但電機(jī)需要具有更高電壓和電流的便攜式(即電池)電源。許多創(chuàng)客采用最初用于無線電遙控 (RC) 車的廉價(jià)可充電電池組。這些電池組通常具有 7 伏或更高的電壓和超過 5000 毫安時(shí) (mAh) 的容量,并且可以輕松更換原始連接器。Romeo BLE Quad 伺服電源端口可接受 7 到 10 伏直流電。
微控制器板編程
在微控制器板上安裝軟件非常簡(jiǎn)單,面向創(chuàng)客的供應(yīng)商在其網(wǎng)站上提供了分步說明。
在確定操作系統(tǒng) (OS) 時(shí),選擇因平臺(tái)而異。LattePanda 板附帶已安裝好的 Windows。Raspberry Pi 提供了多種選項(xiàng),包括 Windows IoT Core 和各種 Linux 版本。Raspbian 是開源 Debian Linux OS 的變型,也是創(chuàng)客社區(qū)中最常見的選擇。
另一方面,Arduino 并不使用傳統(tǒng)的操作系統(tǒng);Arduino 平臺(tái)使用的是一個(gè)通過代碼序列重復(fù)循環(huán)的循環(huán)執(zhí)行程序。開發(fā)人員使用開源的 Arduino 集成開發(fā)環(huán)境 (IDE) 編寫和安裝代碼。它是以 Java 編寫,并且適用于 Windows、Mac OS X 和 Linux 主機(jī)的跨平臺(tái)應(yīng)用。在 Arduino 環(huán)境中,有幾個(gè)項(xiàng)目具有自己的術(shù)語。例如,Arduino 兼容型插件板被稱為“盾板”,軟件模塊則被稱為“草圖”。
使用 Romeo BLE Quad 編程
由于 Romeo BLE Quad 板是包含高級(jí)外設(shè)的單板機(jī)器人解決方案,因此后面的討論中將使用該板。
首先,為主機(jī)選擇首選操作系統(tǒng),并從 Arduino 網(wǎng)站下載相應(yīng)的 IDE。盡管 DF Romeo BLE Quad 沒有使用與標(biāo)準(zhǔn) Arduino 硬件相同的 Atmega328 處理器,但軟件開發(fā)流程是相似的,因?yàn)樵摪迮c Arduino IDE 是兼容的。
該 IDE 支持超過 25 款的來自多家制造商的開發(fā)板,但 Romeo BLE Quad 不在其中。Romeo BLE Quad 是另一塊 DFRobot 板 Bluno M3 的一個(gè)版本,并添加了電機(jī)驅(qū)動(dòng)器。要配置 IDE,必須先從開源 GitHub 網(wǎng)站下載 Bluno M3 文件。
要安裝此文件:
-
打開 Arduino IDE 并轉(zhuǎn)至 File(文件)-> Preferences(偏好)。將 GitHub 鏈接復(fù)制到“Additional Boards Manager URLs(更多板管理器 URL)”框中,然后單擊“OK(確定)”。
-
轉(zhuǎn)至 Tools(工具)-> Board(板)-> Board Manager(板管理器),在搜索框中輸入“Bluno M3”,然后單擊“Install(安裝)”。隨即下載配置文件。
-
從 Tools(工具)-> Board(板)菜單中選擇 Bluno M3 板。
系統(tǒng)現(xiàn)在做好了進(jìn)行應(yīng)用開發(fā)的準(zhǔn)備。標(biāo)準(zhǔn) IDE 支持 C 和 C++ 編程,并且包含多個(gè)代碼示例。開發(fā)人員使用文本編輯器編寫草圖(程序)(圖 4)。
圖 4:Arduino IDE 屏幕和文本編輯器:新程序中包含兩個(gè)必要的函數(shù)。(圖片來源:Arduino)
然后 IDE 對(duì)代碼進(jìn)行調(diào)試,交叉編譯,并通過在線串行編程 (ICSP) 端口將結(jié)果上傳到微控制器板。Romeo BLE Quad 還可通過其藍(lán)牙端口進(jìn)行編程。
文本編輯器從一個(gè)新程序開始,該程序包含兩個(gè)預(yù)載的必要函數(shù),并且已準(zhǔn)備好添加代碼:setup() 用于配置初始條件并且僅執(zhí)行一次,然后連續(xù)運(yùn)行 loop()。
必須下載并安裝兩個(gè) Arduino 庫,才能使用 Romeo BLE Quad 來運(yùn)行 Devastator 電機(jī):Motor.h 和 PID_v1.h。
電機(jī)代碼首先通過一個(gè) include 語句請(qǐng)求將這兩個(gè)庫作為頭文件,并定義 I/O 引腳和一些初始常數(shù),然后在 setup() 部分配置電機(jī)(列表 1)。
Copy/*!*@fileRemeoBLEQuadDrive.ino*@briefRemeoBLEQuadDrive.inoPIDcontrolsystemofDCmotor**RemeoBLEQuadDrive.inoUsePIDcontrol4wayDCmotordirectionandspeed**@authorlinfeng(490289303@qq.com)*@versionV1.0*@date2016-4-14*/#include"PID_v1.h"#include"Motor.h"Motormotor[4];intmotorSpeed[4]={-200,200,400,-400};/*Set4speedmotor*//*Speed=motorSpeed/(32*(setSampleTime/1000))(r/s)*/constintmotorDirPin[4][2]={//Forward,Backward/*Motor-drivenIOports*/{8,23},{7,9},{24,14},{4,25}};//constdoublemotorPidParam[3]={0.6,1,0.03};/*DCMOTOR,Yellow??180degree*///constdoublemotorPidParam[3]={1.5,1,0.05};/*DCMOTOR,Yellow??90degree*/constdoublemotorPidParam[3]={1.2,0.8,0.05};/*EncoderV1.0,160rd/min;19500/min;32:1,Kr=3.5*/voidsetup(void){Serial1.begin(115200);for(inti=0;i<4;i++){????????????????????????????????motor[i].setPid(motorPidParam[0],motorPidParam[1],motorPidParam[2]);/*Tuning?PID?parameters*/????????????????????????????????motor[i].setPin(motorDirPin[i][0],motorDirPin[i][1]);/*Configure?IO?ports*/????????????????????????????????motor[i].setSampleTime(100);/*Sets?the?sampling?period*/????????????????motor[i].setChannel(i);/*Sets?the?motor?channel?*/????????????????????????????????motor[i].ready();/*Motor?enable*/????????????????motor[i].setSpeed(motorSpeed[i]);/*Set?motor?speed*/????????????????}}?void?loop(?void?){????????????????for(int?i?=?0;?i?4;?i++){????????????????????????????????motor[i].calibrate();/*motor?PID?calibrate*/????????????????}?}
列表 1:此 C 代碼示例用于配置和控制 Romeo BLE Quad 的四個(gè) Arduino 電機(jī)。(代碼來源:DFRobot)
Setup() 和 loop() 部分用于配置和控制四個(gè)電機(jī)通道。由于 Devastator 底盤只需要兩個(gè)電機(jī),因此可將備件用于下面討論的機(jī)器人手等配件。
以無線方式控制機(jī)器人
可以將一根 USB 電纜插入控制板,并操縱機(jī)器人四處移動(dòng),但通過 Wi-Fi 或藍(lán)牙使用智能手機(jī)、平板電腦或計(jì)算機(jī)來無線控制它無疑要方便得多。如前所述,Romeo BLE Quad 包含與 Bluno 平臺(tái)相同的藍(lán)牙 4.0 模塊。GitHub 提供了適用于 iOS 7.0+ 和 Android 4.3+ 的開源應(yīng)用。利用這些應(yīng)用,設(shè)計(jì)人員可以遠(yuǎn)程控制機(jī)器人并上傳新的草圖。
升級(jí)基本設(shè)計(jì)
組裝基本設(shè)計(jì)之后,下一步通常是添加配件,使機(jī)器人能夠執(zhí)行一些有用的任務(wù)(圖 5)。以下是一些升級(jí)嘗試。
圖 5:DFRobot URM37 v4.0 超聲傳感器(左側(cè))和 Adafruit 397 攝像模塊(右側(cè))是兩種流行的配件(圖片來源:DFRobot 和 Adafruit)
檢測(cè)并避開障礙物是移動(dòng)機(jī)器人需要的一項(xiàng)功能。DFRobot URM37 v4.0 超聲傳感器輸出與距離成正比的電壓,并且可兼容 Arduino 和 Raspberry Pi。該傳感器可檢測(cè)物體或墻壁的存在,然后由代碼執(zhí)行隨機(jī)轉(zhuǎn)向,機(jī)器人繼續(xù)在新方向上移動(dòng)。
將該機(jī)器人升級(jí)為移動(dòng)攝像機(jī)是另一項(xiàng)流行的升級(jí)。Adafruit 397 攝像模塊可以捕獲視頻或靜態(tài)圖片。該攝像機(jī)及其 CMOS 圖像傳感器能以 30 幀每秒 (fps) 的速度捕獲 640 x 480 像素的圖像,并且具備運(yùn)動(dòng)檢測(cè)功能。
考慮在機(jī)器人手(例如圖 6 所示的 DF05BB 傾斜/平移組件)上安裝攝像機(jī)。該套件包含兩個(gè)托架和兩個(gè) DF05 伺服電機(jī),適合水平安裝。
圖 6:DFRobot DF05BB 傾斜/平移安裝附帶兩個(gè)伺服電機(jī)和兩個(gè)托架。(圖片來源:DFRobot)
全部組裝到一起
完整的 Devastator 機(jī)器人包括底盤、控制器板、擴(kuò)展板和超聲傳感器(圖 7)。為方便起見,兩個(gè)板位于平臺(tái)上部,但如果需要一個(gè)頂部安裝的可移動(dòng)攝像機(jī),則也有一個(gè)下部安裝平臺(tái)。
圖 7:此完整設(shè)計(jì)示例包括 Devastator 底座、控制器板、電機(jī)控制擴(kuò)展板和超聲傳感器。(圖片來源:DFRobot)
總結(jié)
DFRobot 是基于創(chuàng)客的卓越平臺(tái),適合設(shè)計(jì)人員和創(chuàng)客在有趣且具備良好支持的環(huán)境中探索軟件開發(fā)、微控制器功能、傳感器選項(xiàng)和電機(jī)控制。
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28129瀏覽量
205894 -
Arduino
+關(guān)注
關(guān)注
187文章
6461瀏覽量
186528 -
ATMEGA16U2-MU
+關(guān)注
關(guān)注
1文章
1瀏覽量
3541
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論