<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用nRF52832連接到Android和ESP826的機器人

使用nRF52832連接到Android和ESP826的機器人

2023-01-03 | zip | 0.65 MB | 次下載 | 免費

資料介紹

描述

概述

我的機器人ArduinoMEGA2560 控制。

使用了 MEGA2560 的所有功能:3 個串行接口、I2C、SPI、PWM、ADC 和 2 個中斷。這就是為什么我選擇了提供如此多接口的MEGA2560。但請注意,MEGA2560 在中斷方面有一點限制,因為如果使用 I2C 和 Serial2,則 6 個中斷中有 4 個不可用。

MEGA2560 唯一缺少的功能是藍牙和 WIFI 連接。為此,我添加了一個 nRF52832 來處理藍牙和一個 ESP8266 來處理 WIFI。第一個管理從 Android 上運行的用戶界面接收到的命令,第二個將數據和圖片發送到 Raspberry PI。

最初我還使用了一個 ESP8266 來管理從我的 Windows PC 接收到的命令,但是 WIFI 太耗電了,所以我已經將這部分遷移到 Android 和 BLE 藍牙,所以現在命令是從我的手機發送的。

設備

現在讓我們更詳細地討論所實施的設備。在設備列表下方。

  • 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 個電機由 2 個 H 橋控制,使用 PWM 和數字引腳進行管理。他們有專用的鋰離子電池,以免干擾 MEGA2560,但不要忘記接地,否則 PWM 將無法工作。

為了讓機器人能夠獨立運行,實現了以下裝置:

  • 3 連接到 I2C 的飛行時間 TOF 可以非常精確地指示機器人與潛在障礙物之間的距離(最大 1、20 m)。一個TOF設置在機器人的正面,另外2個設置在左右兩側,與正面成45°角。它們的管腳 Shutdown 被管理以便為每個設備設置不同的 I2C 地址。如果需要,它們被配置為允許每 33 毫秒測量一次。為了避免不穩定的措施,只考慮措施樣本的中位數。
  • 一個連接到 ADC 并安裝在伺服系統上的 IR Sharp 檢查機器人周圍障礙物(左右)的距離(最大 0.80 米)。請注意,它不如 TOF 精確。伺服由 PWM 控制,允許將 IR Sharp 從 -180° 移動到 + 180°,超過靜態的 TOF。
  • 左右兩側安裝了 2 個接觸傳感器檢測撞擊,以防機器人沒有及時檢測到障礙物!

每 165 毫秒(33*5:nb 樣本測量),Front TOF 測量機器人與潛在障礙物之間的距離。

如果距離小于Distance minimum,則機器人向沒有障礙物的方向轉45°,如果檢測到左右兩側有障礙物則返回。安裝在 Tilt&Pan 上的 IR Sharpis 用于檢查周圍的障礙物。連接到 I2C 的羅盤提供方向以控制轉彎。如果接觸傳感器檢測到提示,機器人也會遵循此過程。

如果距離介于 Distanceminimum 和 Distance nominal 之間,則機器人會檢查左右 TOF 測量的距離,并通過加速/減速一側的電機將其推向最佳方向。

如果距離大于標稱的距離,則機器人繼續直線向前運行。

機器人還可以檢查環境并在異常變化時發出警報。監測的參數如下:

· 運動由觸發 MEGA2560 中斷的傳感器檢測。所以這個警報是實時的。

· 連接到 Digitalpin 的溫度和濕度可以檢測溫度或濕度的異常變化

· 亮度也由連接到 I2C 的傳感器監控

· 我已經嘗試了幾種聲音傳感器,但是沒有一個是足夠的:當我增加揚聲器的音量時,它們不會檢測到。不要猶豫,推薦一個!

在出現警報的情況下,機器人會使用安裝在傾斜盤上的相機拍照。因此相機可以水平和垂直從-180°到+180°移動。相機連接到 Serial3,Tilt pan 的 2 servos 由 PWM 控制。

圖片存儲在與 SPI 連接的 SD 卡上的 jpeg 文件中。然后 MEGA2560 通過 Serial1 以 38400 波特將它們發送到 ESP8266 客戶端,然后通過 WIFI 將機器人捕獲的數據發送到 Raspberry PI

Raspberry PI 上有 PHP 程序,將接收到的數據存儲在 TXT 文件和 MySQL 數據庫中。如果出現警報,Raspberry PI 會發送包含這些數據和相應圖片的電子郵件。

除了所有這些設備之外,還有一些其他組件可以監控系統:連接到數字引腳的 RGB LED 和蜂鳴器、連接到 I2C 的實時時鐘 RTC 和 LCD。

主要用于實時了解系統在做什么,因為當機器人運行時不再連接和記錄到 IDE 標準串口。日志被寫入 SD 卡上的一個文件中,帶有跟蹤和 RTC 時間戳,因此可以在以后進行分析。

?

命令

該機器人可以獨立運行,但也可以通過在 Android 或 Windows 上運行的用戶界面 UI 進行管理。

在 Windows 上,UI 是使用 google widgets 用 HTML/jQuery 編寫的。如前所述,命令通過 WIFI 發送到專用的 ESP8266 服務器,該服務器在通過 Serial2 發送命令之前中斷 MEGA2650。所以 MEGA2650 不會阻塞等待命令,但他可以在需要時盡快管理它。

響應被傳輸回 ESP8266,然后傳輸到 UI。請注意,ESP8266 最大的不便之處在于功耗,大約 80mAh。所以幾個小時后 LIPO 780mAh 就沒電了,所以我需要在不再需要任何 UI 時手動關閉 ESP8266 服務器。

這就是為什么我又建立了一個基于安卓和藍牙的界面的原因。

這個 UI 是使用 MIT App Inventor 編寫的,可以輕松地為 Android 創建軟件應用程序。命令通過 BLE 藍牙使用串行服務發送到 nRF52832,在通過串行 2 發送命令之前中斷 MEGA2650。所以 MEGA2650 不會阻塞等待命令,但他可以在需要時盡快管理它。

請注意,與 WIFI 相比,藍牙緩沖區非常?。?0 字節)。

命令如下:

  • 測試物聯網
  • 每n秒檢查一次
  • 停止
  • 圖片
  • 移動傾斜和平移
  • 四處看看
  • 獲取數據
  • PI通訊方式

與 Raspberry PI 的通信

ESP8266 Client負責通過WIFI向樹莓派發送數據和圖片。

為了降低功耗,它始終處于深度睡眠模式,并在通過串行接口發送任何數據或圖片之前,由 Arduino 觸發的 pinDTR/RTS 的 10ms 低脈沖喚醒。請注意,由于 ESP 啟動過程也使用串行來記錄一些信息,ESP 的啟動有時會被阻止,我在啟動后立即交換 ESP 的串行引腳以避免與 Arduino 發生沖突。

發送數據后,Arduino 立即向 ESP 發送睡眠命令以返回深度睡眠模式。

?

軟件

在軟件方面,我用 C++ 為每個設備編寫了一個庫,并且有一個主程序Robot處理 MEGA2560 的核心處理并調用庫中的函數。

最后這個程序非常大,希望 MEGA 2560 有足夠的內存來運行它,但你肯定不能在 Uno 上運行它。請注意,所有用于記錄的字符串都存儲在閃存中以贏得數據存儲器空間。

此外,還有 2 個主要程序用于ESP 服務器(基于藍牙或 WIFI ESP 客戶端。

還有一些工具:

  • 設置 RTC 的時間
  • 將 WIFI 憑據存儲在 ESP 的閃存中(因此它們不會顯示在 Git 中?。?/font>
  • 校準羅盤

大多數代碼源已在網上找到(感謝開源?。?,然后進行定制/改進。一個關鍵點是大多數時候在網上找到的資源沒有正確處理錯誤,所以我完成了這部分,主要是在 I2C 部分。

每個設備在集成到核心程序之前都經過專用草圖單獨測試。這對于更好地理解行為和了解限制非常有用。例如,有時設備會提供不穩定的測量結果,因此獲取測量樣本并計算中位數會更加安全。

初始化部分也非常關鍵,我在這個階段為每個設備添加了一些測試用例,以便在開始之前驗證一切是否準備就緒。例如,更改 TOF 的 I2C 地址以避免總線沖突。

我還構建了一個庫來定義 nRF、ESP 和 Arduino 之間的協議,以確保串行接口上??的傳輸質量良好并避免死鎖。這是強制性的,因為串行接口不安全,如果串行緩沖區已滿且讀取器未準備好,一些字節可能會丟失。

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>