要學習做一名創客,從套件搭建多功能機器人不失為一種有效的方法,因為它提供機會學習多個相關領域的知識,包括微控制器、傳感器、電機、軟件開發等。而且,不論對于初學者還是經驗豐富的創客,都有大量的機器人套件、插件和在線幫助供其選擇。
本文討論在基于 DF Robot 的 Devastator 坦克平臺(圖 1)搭建機器人時,應該考慮的一些實用步驟、問題和可能的升級。
圖 1:DFRobot Devastator 是可幫助設計人員和創客學習廣泛的電子和軟件技能的多功能平臺。(圖片來源:DFRobot)
為什么選擇 Devastator?它堅固耐用,采用鋁構造,并具有兩個金屬齒輪有刷直流電機。它能搬運重達 3 kg 的載荷,具有多個可用于安裝傳感器、伺服機構、機器人手和其他配件的安裝孔,而且可兼容所有流行的、適合創客使用的微控制器板。
搭建完整的機器人系統
機器人附帶底座、輪子、履帶和兩個電機,其他組件的選擇則取決于設計人員。完整的系統需要一塊微控制器板、一塊電機驅動器板和一種輸入命令的方法。可選的插件可能包括機器人手、攝像機等組件,或旨在提供一定程度的自主操作的防撞系統。
選擇微控制器平臺
Devastator 機器人可兼容多種流行的微控制器平臺。Arduino 開源開發平臺于 2003 年在意大利問世,并為初學者和專業設計人員廣泛使用。Arduino Uno(圖 2)使用 Microchip Technology(原 Atmel)的 ATmega328P 8 位 RISC 微控制器。
其他標準功能包括:一個受預編程的 ATmega16U2 微控制器控制的 USB 端口、多路數字輸入和輸出、一個模擬輸入端口,以及一個用于軟件更新的在線串行編程 (ICSP) 端口。更新的 Arduino Due 將內核升級為一個 32 位 ARM? Cortex?-M3。此內核還在下文討論的 DFRobot 控制器板中使用,而該控制器板同時具備 Arduino 的兼容性和電機驅動器。
圖 2:Arduino Uno 是創客項目的流行選擇,并且基于 Microchip Technology 的 ATmega328P 8 位 RISC 微控制器。(圖片來源:Arduino)
Raspberry Pi 單板計算機最初在學校用于基礎計算機科學教學,但如今在創客社區變得極為流行。最新的 Raspberry Pi 3 基于以 1.2 GHz 頻率運行的 Broadcom 64 位四核 CPU。它包含 802.11n 無線 LAN、藍牙 4.1 和低功耗藍牙 (BLE)。還包含 1 GB RAM、一個微型 SD 卡插槽、4 個 USB 端口、多個 HDMI 和以太網端口、一個攝像頭接口、40 個 GPIO 引腳,以及其他專用接口。
希望運用其現有經驗的 Windows 專家可以從使用 Devastator 兼容型 LattePanda 控制器板開始,因為該板附帶已安裝并激活的完整版 Windows 10。該板使用一個以 1.8 Ghz 頻率運行且捆綁了一個協處理器的四核 CPU,還使用了 Microchip 的 8 位 Atmega32u4 以實現 Arduino 兼容性。
LattePanda 附帶 2 GB DDR3L RAM 和多達 32 GB 存儲,一個 USB 3.0 和兩個 USB 2.0 端口,Wi-Fi,藍牙 4.0,一個協處理器,以及在兩個處理器之間劃分的合計 22 個 GPIO。
控制電機
確定微控制器內核后,下一步是選擇電機控制板。Devastator 包含兩個以 160 rpm(無負載)速度工作的 6 伏 (V) 電機。每個電機的最大輸出扭矩為 0.8 kgf.cm (0.058 ft-lb.),最大失速電流為 2.8 安 (A)。
Raspberry Pi 需要插件擴展板來實現機器人特定的功能,不過 DFRobot 的 DFR0398 Romeo BLE Quad 板為 Arduino 愛好者提供了同時包含微控制器和電機驅動器的單板選件(圖 3)。該板提供了比 UNO 衍生產品更強大的內核,但仍保持了 Arduino 軟件兼容性。
微控制器為 STMicroelectronics 的 STM32F103RET6:此器件使用以 72 MHz 頻率運行的 ARM? Cortex?-M3 32 位內核,并包含 512 KB 閃存、一個電機控制脈沖寬度調制 (PWM) 模塊、16 個 12 位模數轉換 (ADC) 通道,以及兩個 12 位數模轉換 (DAC) 通道。
圖 3:DFR0398 Romeo BLE Quad 是可兼容 Arduino 的機器人控制板,并帶有藍牙功能和用于四個電機的驅動器。(圖片來源:DFRobot)
電機驅動器由兩個 Microsemi HR8833 器件實現。每個 MOSFET 驅動器包含兩個 H 橋驅動器,用于 Devastator 電機的雙向控制。Romeo BLE Quad 包含四個編碼器接口,而且集成了 Texas Instruments 的 CC2540 射頻收發器,用于實現藍牙 4.0 無線連接。
添加電源
微控制器板本身通用 USB 連接器以 5 伏電壓運行,但電機需要具有更高電壓和電流的便攜式(即電池)電源。許多創客采用最初用于無線電遙控 (RC) 車的廉價可充電電池組。這些電池組通常具有 7 伏或更高的電壓和超過 5000 毫安時 (mAh) 的容量,并且可以輕松更換原始連接器。Romeo BLE Quad 伺服電源端口可接受 7 到 10 伏直流電。
微控制器板編程
在微控制器板上安裝軟件非常簡單,面向創客的供應商在其網站上提供了分步說明。
在確定操作系統 (OS) 時,選擇因平臺而異。LattePanda 板附帶已安裝好的 Windows。Raspberry Pi 提供了多種選項,包括 Windows IoT Core 和各種 Linux 版本。Raspbian 是開源 Debian Linux OS 的變型,也是創客社區中最常見的選擇。
另一方面,Arduino 并不使用傳統的操作系統;Arduino 平臺使用的是一個通過代碼序列重復循環的循環執行程序。開發人員使用開源的 Arduino 集成開發環境 (IDE) 編寫和安裝代碼。它是以 Java 編寫,并且適用于 Windows、Mac OS X 和 Linux 主機的跨平臺應用。在 Arduino 環境中,有幾個項目具有自己的術語。例如,Arduino 兼容型插件板被稱為“盾板”,軟件模塊則被稱為“草圖”。
使用 Romeo BLE Quad 編程
由于 Romeo BLE Quad 板是包含高級外設的單板機器人解決方案,因此后面的討論中將使用該板。
首先,為主機選擇首選操作系統,并從 Arduino 網站下載相應的 IDE。盡管 DF Romeo BLE Quad 沒有使用與標準 Arduino 硬件相同的 Atmega328 處理器,但軟件開發流程是相似的,因為該板與 Arduino IDE 是兼容的。
該 IDE 支持超過 25 款的來自多家制造商的開發板,但 Romeo BLE Quad 不在其中。Romeo BLE Quad 是另一塊 DFRobot 板 Bluno M3 的一個版本,并添加了電機驅動器。要配置 IDE,必須先從開源 GitHub 網站下載 Bluno M3 文件。
要安裝此文件:
-
打開 Arduino IDE 并轉至 File(文件)-> Preferences(偏好)。將 GitHub 鏈接復制到“Additional Boards Manager URLs(更多板管理器 URL)”框中,然后單擊“OK(確定)”。
-
轉至 Tools(工具)-> Board(板)-> Board Manager(板管理器),在搜索框中輸入“Bluno M3”,然后單擊“Install(安裝)”。隨即下載配置文件。
-
從 Tools(工具)-> Board(板)菜單中選擇 Bluno M3 板。
系統現在做好了進行應用開發的準備。標準 IDE 支持 C 和 C++ 編程,并且包含多個代碼示例。開發人員使用文本編輯器編寫草圖(程序)(圖 4)。
圖 4:Arduino IDE 屏幕和文本編輯器:新程序中包含兩個必要的函數。(圖片來源:Arduino)
然后 IDE 對代碼進行調試,交叉編譯,并通過在線串行編程 (ICSP) 端口將結果上傳到微控制器板。Romeo BLE Quad 還可通過其藍牙端口進行編程。
文本編輯器從一個新程序開始,該程序包含兩個預載的必要函數,并且已準備好添加代碼:setup() 用于配置初始條件并且僅執行一次,然后連續運行 loop()。
必須下載并安裝兩個 Arduino 庫,才能使用 Romeo BLE Quad 來運行 Devastator 電機:Motor.h 和 PID_v1.h。
電機代碼首先通過一個 include 語句請求將這兩個庫作為頭文件,并定義 I/O 引腳和一些初始常數,然后在 setup() 部分配置電機(列表 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 的四個 Arduino 電機。(代碼來源:DFRobot)
Setup() 和 loop() 部分用于配置和控制四個電機通道。由于 Devastator 底盤只需要兩個電機,因此可將備件用于下面討論的機器人手等配件。
以無線方式控制機器人
可以將一根 USB 電纜插入控制板,并操縱機器人四處移動,但通過 Wi-Fi 或藍牙使用智能手機、平板電腦或計算機來無線控制它無疑要方便得多。如前所述,Romeo BLE Quad 包含與 Bluno 平臺相同的藍牙 4.0 模塊。GitHub 提供了適用于 iOS 7.0+ 和 Android 4.3+ 的開源應用。利用這些應用,設計人員可以遠程控制機器人并上傳新的草圖。
升級基本設計
組裝基本設計之后,下一步通常是添加配件,使機器人能夠執行一些有用的任務(圖 5)。以下是一些升級嘗試。
圖 5:DFRobot URM37 v4.0 超聲傳感器(左側)和 Adafruit 397 攝像模塊(右側)是兩種流行的配件(圖片來源:DFRobot 和 Adafruit)
檢測并避開障礙物是移動機器人需要的一項功能。DFRobot URM37 v4.0 超聲傳感器輸出與距離成正比的電壓,并且可兼容 Arduino 和 Raspberry Pi。該傳感器可檢測物體或墻壁的存在,然后由代碼執行隨機轉向,機器人繼續在新方向上移動。
將該機器人升級為移動攝像機是另一項流行的升級。Adafruit 397 攝像模塊可以捕獲視頻或靜態圖片。該攝像機及其 CMOS 圖像傳感器能以 30 幀每秒 (fps) 的速度捕獲 640 x 480 像素的圖像,并且具備運動檢測功能。
考慮在機器人手(例如圖 6 所示的 DF05BB 傾斜/平移組件)上安裝攝像機。該套件包含兩個托架和兩個 DF05 伺服電機,適合水平安裝。
圖 6:DFRobot DF05BB 傾斜/平移安裝附帶兩個伺服電機和兩個托架。(圖片來源:DFRobot)
全部組裝到一起
完整的 Devastator 機器人包括底盤、控制器板、擴展板和超聲傳感器(圖 7)。為方便起見,兩個板位于平臺上部,但如果需要一個頂部安裝的可移動攝像機,則也有一個下部安裝平臺。
圖 7:此完整設計示例包括 Devastator 底座、控制器板、電機控制擴展板和超聲傳感器。(圖片來源:DFRobot)
總結
DFRobot 是基于創客的卓越平臺,適合設計人員和創客在有趣且具備良好支持的環境中探索軟件開發、微控制器功能、傳感器選項和電機控制。
-
機器人
+關注
關注
211文章
28632瀏覽量
208049 -
Arduino
+關注
關注
188文章
6477瀏覽量
187640 -
ATMEGA16U2-MU
+關注
關注
1文章
1瀏覽量
3564
發布評論請先 登錄
相關推薦
評論