當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 集成電路(ICs) > IC傳感器
發(fā)布日期:2022-05-11 點(diǎn)擊率:53
要學(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ī)器人附帶底座、輪子、履帶和兩個(gè)電機(jī),其他組件的選擇則取決于設(shè)計(jì)人員。完整的系統(tǒng)需要一塊微控制器板、一塊電機(jī)驅(qū)動(dòng)器板和一種輸入命令的方法。可選的插件可能包括機(jī)器人手、攝像機(jī)等組件,或旨在提供一定程度的自主操作的防撞系統(tǒng)。
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。
確定微控制器內(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 伏直流電。
在微控制器板上安裝軟件非常簡單,面向創(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 板是包含高級(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 #include "PID_v1.h" #include "Motor.h" Motor motor[4]; int motorSpeed[4] = {-200,200,400,-400}; const int motorDirPin[4][2] = { //Forward, Backward {8,23}, {7,9}, {24,14}, {4,25} }; //const double motorPidParam[3]={0.6,1,0.03}; //const double motorPidParam[3]={1.5,1,0.05}; const double motorPidParam[3]={1.2,0.8,0.05}; void setup( void ) { Serial1.begin(115200); for(int i=0;i<4;i++){ motor[i].setPid(motorPidParam[0],motorPidParam[1],motorPidParam[2]); motor[i].setPin(motorDirPin[i][0],motorDirPin[i][1]); motor[i].setSampleTime(100); motor[i].setChannel(i); motor[i].ready(); motor[i].setSpeed(motorSpeed[i]); } } void loop( void ) { for(int i = 0; i < 4; i++){ motor[i].calibrate(); } }
列表 1:此 C 代碼示例用于配置和控制 Romeo BLE Quad 的四個(gè) Arduino 電機(jī)。(代碼來源:DFRobot)
Setup() 和 loop() 部分用于配置和控制四個(gè)電機(jī)通道。由于 Devastator 底盤只需要兩個(gè)電機(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ī)器人并上傳新的草圖。
組裝基本設(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)
DFRobot 是基于創(chuàng)客的卓越平臺(tái),適合設(shè)計(jì)人員和創(chuàng)客在有趣且具備良好支持的環(huán)境中探索軟件開發(fā)、微控制器功能、傳感器選項(xiàng)和電機(jī)控制。
此外,Digi-Key 的網(wǎng)站上也提供了許多資源。例如,單擊此處可了解關(guān)于 Arduino 平臺(tái)編程的更多信息。Digi-Key 還提供幫助,使用最流行的 Pi 語言 Python 進(jìn)行 Raspberry Pi 編程。以上討論的所有產(chǎn)品都有廣泛的說明文檔、應(yīng)用說明和教程。
完成此項(xiàng)目后,還可以嘗試許多其他項(xiàng)目。Maker.io 致力于創(chuàng)客運(yùn)動(dòng),提供了大量特色項(xiàng)目、資源、資金來源以及其他支持。
下一篇: 斷路器、隔離開關(guān)、接
上一篇: 索爾維全系列Solef?PV