資料介紹
描述
概述
我的機(jī)器人由 ArduinoMEGA2560 控制。
使用了 MEGA2560 的所有功能:3 個(gè)串行接口、I2C、SPI、PWM、ADC 和 2 個(gè)中斷。這就是為什么我選擇了提供如此多接口的MEGA2560。但請(qǐng)注意,MEGA2560 在中斷方面有一點(diǎn)限制,因?yàn)槿绻褂?I2C 和 Serial2,則 6 個(gè)中斷中有 4 個(gè)不可用。
MEGA2560 唯一缺少的功能是藍(lán)牙和 WIFI 連接。為此,我添加了一個(gè) nRF52832 來處理藍(lán)牙和一個(gè) ESP8266 來處理 WIFI。第一個(gè)管理從 Android 上運(yùn)行的用戶界面接收到的命令,第二個(gè)將數(shù)據(jù)和圖片發(fā)送到 Raspberry PI。
最初我還使用了一個(gè) ESP8266 來管理從我的 Windows PC 接收到的命令,但是 WIFI 太耗電了,所以我已經(jīng)將這部分遷移到 Android 和 BLE 藍(lán)牙,所以現(xiàn)在命令是從我的手機(jī)發(fā)送的。
設(shè)備
現(xiàn)在讓我們更詳細(xì)地討論所實(shí)施的設(shè)備。在設(shè)備列表下方。
-
nRF52832
-
ESP8266
-
4 motors
-
2 H-bridges
-
2 Contact sensors
-
Sharp IR
-
Servo for IR
-
3 ToF
-
Compass
-
LCD
-
RGB led
-
Buzzer
-
Camera
-
Tilt&Pan servos for Camera
-
SD Card
-
RTC
-
Brightness sensor
-
Temperature & Humidity sensor
-
Motion sensor
-
Sound sensor
首先,有 4 個(gè)電機(jī)由 2 個(gè) H 橋控制,使用 PWM 和數(shù)字引腳進(jìn)行管理。他們有專用的鋰離子電池,以免干擾 MEGA2560,但不要忘記接地,否則 PWM 將無法工作。
為了讓機(jī)器人能夠獨(dú)立運(yùn)行,實(shí)現(xiàn)了以下裝置:
- 3 連接到 I2C 的飛行時(shí)間 TOF 可以非常精確地指示機(jī)器人與潛在障礙物之間的距離(最大 1、20 m)。一個(gè)TOF設(shè)置在機(jī)器人的正面,另外2個(gè)設(shè)置在左右兩側(cè),與正面成45°角。它們的管腳 Shutdown 被管理以便為每個(gè)設(shè)備設(shè)置不同的 I2C 地址。如果需要,它們被配置為允許每 33 毫秒測(cè)量一次。為了避免不穩(wěn)定的措施,只考慮措施樣本的中位數(shù)。
- 一個(gè)連接到 ADC 并安裝在伺服系統(tǒng)上的 IR Sharp 檢查機(jī)器人周圍障礙物(左右)的距離(最大 0.80 米)。請(qǐng)注意,它不如 TOF 精確。伺服由 PWM 控制,允許將 IR Sharp 從 -180° 移動(dòng)到 + 180°,超過靜態(tài)的 TOF。
- 左右兩側(cè)安裝了 2 個(gè)接觸傳感器來檢測(cè)撞擊,以防機(jī)器人沒有及時(shí)檢測(cè)到障礙物!
每 165 毫秒(33*5:nb 樣本測(cè)量),F(xiàn)ront TOF 測(cè)量機(jī)器人與潛在障礙物之間的距離。
如果距離小于Distance minimum,則機(jī)器人向沒有障礙物的方向轉(zhuǎn)45°,如果檢測(cè)到左右兩側(cè)有障礙物則返回。安裝在 Tilt&Pan 上的 IR Sharpis 用于檢查周圍的障礙物。連接到 I2C 的羅盤提供方向以控制轉(zhuǎn)彎。如果接觸傳感器檢測(cè)到提示,機(jī)器人也會(huì)遵循此過程。
如果距離介于 Distanceminimum 和 Distance nominal 之間,則機(jī)器人會(huì)檢查左右 TOF 測(cè)量的距離,并通過加速/減速一側(cè)的電機(jī)將其推向最佳方向。
如果距離大于標(biāo)稱的距離,則機(jī)器人繼續(xù)直線向前運(yùn)行。
機(jī)器人還可以檢查環(huán)境并在異常變化時(shí)發(fā)出警報(bào)。監(jiān)測(cè)的參數(shù)如下:
· 運(yùn)動(dòng)由觸發(fā) MEGA2560 中斷的傳感器檢測(cè)。所以這個(gè)警報(bào)是實(shí)時(shí)的。
· 連接到 Digitalpin 的溫度和濕度可以檢測(cè)溫度或濕度的異常變化
· 亮度也由連接到 I2C 的傳感器監(jiān)控
· 我已經(jīng)嘗試了幾種聲音傳感器,但是沒有一個(gè)是足夠的:當(dāng)我增加揚(yáng)聲器的音量時(shí),它們不會(huì)檢測(cè)到。不要猶豫,推薦一個(gè)!
在出現(xiàn)警報(bào)的情況下,機(jī)器人會(huì)使用安裝在傾斜盤上的相機(jī)拍照。因此相機(jī)可以水平和垂直從-180°到+180°移動(dòng)。相機(jī)連接到 Serial3,Tilt pan 的 2 servos 由 PWM 控制。
圖片存儲(chǔ)在與 SPI 連接的 SD 卡上的 jpeg 文件中。然后 MEGA2560 通過 Serial1 以 38400 波特將它們發(fā)送到 ESP8266 客戶端,然后通過 WIFI 將機(jī)器人捕獲的數(shù)據(jù)發(fā)送到 Raspberry PI
Raspberry PI 上有 PHP 程序,將接收到的數(shù)據(jù)存儲(chǔ)在 TXT 文件和 MySQL 數(shù)據(jù)庫(kù)中。如果出現(xiàn)警報(bào),Raspberry PI 會(huì)發(fā)送包含這些數(shù)據(jù)和相應(yīng)圖片的電子郵件。
除了所有這些設(shè)備之外,還有一些其他組件可以監(jiān)控系統(tǒng):連接到數(shù)字引腳的 RGB LED 和蜂鳴器、連接到 I2C 的實(shí)時(shí)時(shí)鐘 RTC 和 LCD。
主要用于實(shí)時(shí)了解系統(tǒng)在做什么,因?yàn)楫?dāng)機(jī)器人運(yùn)行時(shí)不再連接和記錄到 IDE 標(biāo)準(zhǔn)串口。日志被寫入 SD 卡上的一個(gè)文件中,帶有跟蹤和 RTC 時(shí)間戳,因此可以在以后進(jìn)行分析。
?
命令
該機(jī)器人可以獨(dú)立運(yùn)行,但也可以通過在 Android 或 Windows 上運(yùn)行的用戶界面 UI 進(jìn)行管理。
在 Windows 上,UI 是使用 google widgets 用 HTML/jQuery 編寫的。如前所述,命令通過 WIFI 發(fā)送到專用的 ESP8266 服務(wù)器,該服務(wù)器在通過 Serial2 發(fā)送命令之前中斷 MEGA2650。所以 MEGA2650 不會(huì)阻塞等待命令,但他可以在需要時(shí)盡快管理它。
響應(yīng)被傳輸回 ESP8266,然后傳輸?shù)?UI。請(qǐng)注意,ESP8266 最大的不便之處在于功耗,大約 80mAh。所以幾個(gè)小時(shí)后 LIPO 780mAh 就沒電了,所以我需要在不再需要任何 UI 時(shí)手動(dòng)關(guān)閉 ESP8266 服務(wù)器。
這就是為什么我又建立了一個(gè)基于安卓和藍(lán)牙的界面的原因。
這個(gè) UI 是使用 MIT App Inventor 編寫的,可以輕松地為 Android 創(chuàng)建軟件應(yīng)用程序。命令通過 BLE 藍(lán)牙使用串行服務(wù)發(fā)送到 nRF52832,在通過串行 2 發(fā)送命令之前中斷 MEGA2650。所以 MEGA2650 不會(huì)阻塞等待命令,但他可以在需要時(shí)盡快管理它。
請(qǐng)注意,與 WIFI 相比,藍(lán)牙緩沖區(qū)非常小(20 字節(jié))。
命令如下:
- 測(cè)試物聯(lián)網(wǎng)
- 每n秒檢查一次
- 停止
- 圖片
- 移動(dòng)傾斜和平移
- 四處看看
- 獲取數(shù)據(jù)
- PI通訊方式
與 Raspberry PI 的通信
ESP8266 Client負(fù)責(zé)通過WIFI向樹莓派發(fā)送數(shù)據(jù)和圖片。
為了降低功耗,它始終處于深度睡眠模式,并在通過串行接口發(fā)送任何數(shù)據(jù)或圖片之前,由 Arduino 觸發(fā)的 pinDTR/RTS 的 10ms 低脈沖喚醒。請(qǐng)注意,由于 ESP 啟動(dòng)過程也使用串行來記錄一些信息,ESP 的啟動(dòng)有時(shí)會(huì)被阻止,我在啟動(dòng)后立即交換 ESP 的串行引腳以避免與 Arduino 發(fā)生沖突。
發(fā)送數(shù)據(jù)后,Arduino 立即向 ESP 發(fā)送睡眠命令以返回深度睡眠模式。
?
軟件
在軟件方面,我用 C++ 為每個(gè)設(shè)備編寫了一個(gè)庫(kù),并且有一個(gè)主程序Robot處理 MEGA2560 的核心處理并調(diào)用庫(kù)中的函數(shù)。
最后這個(gè)程序非常大,希望 MEGA 2560 有足夠的內(nèi)存來運(yùn)行它,但你肯定不能在 Uno 上運(yùn)行它。請(qǐng)注意,所有用于記錄的字符串都存儲(chǔ)在閃存中以贏得數(shù)據(jù)存儲(chǔ)器空間。
此外,還有 2 個(gè)主要程序用于ESP 服務(wù)器(基于藍(lán)牙或 WIFI )和ESP 客戶端。
還有一些工具:
- 設(shè)置 RTC 的時(shí)間
- 將 WIFI 憑據(jù)存儲(chǔ)在 ESP 的閃存中(因此它們不會(huì)顯示在 Git 中!)
- 校準(zhǔn)羅盤
大多數(shù)代碼源已在網(wǎng)上找到(感謝開源!),然后進(jìn)行定制/改進(jìn)。一個(gè)關(guān)鍵點(diǎn)是大多數(shù)時(shí)候在網(wǎng)上找到的資源沒有正確處理錯(cuò)誤,所以我完成了這部分,主要是在 I2C 部分。
每個(gè)設(shè)備在集成到核心程序之前都經(jīng)過專用草圖單獨(dú)測(cè)試。這對(duì)于更好地理解行為和了解限制非常有用。例如,有時(shí)設(shè)備會(huì)提供不穩(wěn)定的測(cè)量結(jié)果,因此獲取測(cè)量樣本并計(jì)算中位數(shù)會(huì)更加安全。
初始化部分也非常關(guān)鍵,我在這個(gè)階段為每個(gè)設(shè)備添加了一些測(cè)試用例,以便在開始之前驗(yàn)證一切是否準(zhǔn)備就緒。例如,更改 TOF 的 I2C 地址以避免總線沖突。
我還構(gòu)建了一個(gè)庫(kù)來定義 nRF、ESP 和 Arduino 之間的協(xié)議,以確保串行接口上??的傳輸質(zhì)量良好并避免死鎖。這是強(qiáng)制性的,因?yàn)榇薪涌诓话踩绻芯彌_區(qū)已滿且讀取器未準(zhǔn)備好,一些字節(jié)可能會(huì)丟失。
?
?
- 基于Nordic nRF52832的徽章構(gòu)建
- NRF52832使用說明 4次下載
- NRF52832觸摸開關(guān)2ch開源項(xiàng)目
- NRF52832觸摸開關(guān)1ch開源項(xiàng)目
- nRF52832開發(fā)指南-上冊(cè) 77次下載
- nRF52832開發(fā)指南-下冊(cè) 46次下載
- NRF52832產(chǎn)品規(guī)格書下載 65次下載
- 基于nRF52832無線藍(lán)牙開發(fā)板設(shè)計(jì)資料 18次下載
- nRF52832藍(lán)牙芯片的數(shù)據(jù)手冊(cè) 98次下載
- nRF52832藍(lán)牙模塊的電路原理圖免費(fèi)下載 78次下載
- nRF52832藍(lán)牙芯片的數(shù)據(jù)手冊(cè)免費(fèi)下載 54次下載
- 干貨分享:nRF51822藍(lán)牙模塊和nRF52832藍(lán)牙模塊對(duì)比選型 124次下載
- NRF52832原理圖和PCB 0次下載
- nRF52832數(shù)據(jù)手冊(cè) 669次下載
- nrf52832 datasheet pdf 1028次下載
- 基于ESP32開發(fā)的螞蟻機(jī)器人方案 1234次閱讀
- VASS 標(biāo)準(zhǔn)機(jī)器人的附加功能 873次閱讀
- 面對(duì)疫情 醫(yī)療機(jī)器人能幫上什么忙? 2236次閱讀
- 工業(yè)機(jī)器人與PLC混合編程控制的通訊連接介紹 5186次閱讀
- 工業(yè)機(jī)器人與PLC的通訊連接方式和控制方法 1.5w次閱讀
- 工業(yè)機(jī)器人編程入門_工業(yè)機(jī)器人的編程要求 9787次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 3257次閱讀
- 醫(yī)用機(jī)器人的功能_醫(yī)用機(jī)器人分類 2462次閱讀
- 協(xié)作機(jī)器人的起源_為什么需要協(xié)作機(jī)器人 8322次閱讀
- 機(jī)器視覺的機(jī)器人取代四臺(tái)傳統(tǒng)的火焰處理機(jī)器人 3370次閱讀
- 如何區(qū)分機(jī)器人、協(xié)作機(jī)器人和移動(dòng)機(jī)器人? 7029次閱讀
- 軟體機(jī)器人 前所未見的機(jī)器人 3770次閱讀
- 機(jī)器人的最佳編程語(yǔ)言是什么?機(jī)器人十大流行編程語(yǔ)言匯總 3.5w次閱讀
- 手機(jī)如何連接小米掃地機(jī)器人_小米掃地機(jī)器人怎么連wifi 17.7w次閱讀
- 如何選擇掃地機(jī)器人?怎樣選擇智能掃地機(jī)器人更適合? 2871次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論