資料介紹
描述
?

我購買了一個 Arduino 101 用于 Arduino 兼容性以及內置藍牙低功耗和 6 軸加速度計/陀螺儀等額外功能。我想用我的 Arduino 101 構建一個基于 Arduino 的遠程控制流動站,但很難找到示例代碼。我發現了許多使用藍牙的 RC 漫游者示例,但沒有一個使用藍牙 LE。
將通信問題分解成小塊,我需要:
- 確定如何創建一個可行的遠程控制以將這些字節發送到流動站的狀態機。
我確實解決了這兩個問題。我很快發現我可以修改 CurieBLE 庫中包含的 LED 和 CallbackLED 示例,以將一個字節傳輸到 Arduino 101,但很難找到可靠、易于使用的遙控器。經過大量的互聯網搜索和一些工作后,我找到了一個新穎的解決方案,在此介紹。
第 1 步:通過 BLE 向 Arduino 101 發送字節

我在 Arduino 論壇上找到了這個基本通信挑戰的答案:Arduino 論壇 > 產品 > Arduino 101。這是解釋。
在名為 CallbackLED 的 Arduino 101 CurieBLE 示例中 - 定義了一個事件處理程序,以便在寫入開關特性時調用。函數中的代碼setup()如下所示:
// assign event handlers for characteristic
switchChar.setEventHandler(BLEWritten, switchCharacteristicWritten);
在switchCharacteristicWritten事件處理函數中,代碼檢查寫入的值是零 (0x00) 還是其他值。如果非零,它將“打開”LED,如果為零,它將“關閉”LED。代碼如下所示:
if (switchChar.value()) {
? ? Serial.println("LED on"); digitalWrite(ledPin, HIGH);
else {
? ? Serial.println("LED off"); digitalWrite(ledPin, LOW); }
要捕獲寫入的字節,只需將其保存到一個變量中,然后在串口監視器上打印出來,代碼如下所示:
if (switchChar.value()) {
? ? Serial.println("LED on");
? ? digitalWrite(ledPin, HIGH);
? ? char state = ? ? switchChar.value();
? ? Serial.print("new value written: ");
? ? Serial.println(state); }
else {
? ? Serial.println("LED off");
? ? digitalWrite(ledPin, LOW); }
我通過 Nordic Semiconductor 的 nRF Connect 應用程序編寫角色來驗證此功能是否有效,該應用程序在 Play Store 和 App Store 中均可用。
以下是安裝應用程序后的詳細步驟:
1.運行nRF Connect應用
2. 按右上角的“掃描”運行掃描儀 - 它通常會自動運行
3. 選擇您的命名服務(在示例中它被命名為“LEDCB”)。
4. 按右側的“連接”。
5. 選擇未知服務(服務列表中的最后一個)。
6. 按右邊的向上箭頭。這會彈出一個寫入值對話框。
7. 按“新值”,輸入一個十六進制字節值,如 61 - 這是 ASCII 文本中的“a”。
8. 按右下角的“發送”,您的字節就被發送了。
按照這些步驟,我們成功地通過藍牙 LE 將字節寫入 Arduino 101。
第 2 步:創建藍牙 LE 遙控器

我喜歡 nRF Connect 應用程序,但我找不到制作可用遙控器的方法。通過 nRF Connect 應用程序手動輸入字節不會讓我有效地控制流動站。為了試用其他 Arduino 101 示例,我下載了另一個名為 nRF 工具箱的 nRF 應用程序。在工具箱中,最后一個應用程序的名稱為“UART”。UART 應用程序有九個用戶可定義的按鈕,可以配置為在按下按鈕時發送命令。按右上角的“編輯”會使所有按鈕變為橙色。觸摸按鈕會彈出一個對話框,將圖標與按鈕相關聯,并定義按下時要發送的命令。
我有一部 Android 手機,可用圖標與我的遙控器完美匹配。在 IOS 設備上,圖標不太適合這種用法,但請選擇您能記住的圖標。我的流動站的運動控制基于使用以下配置的簡單單字節代碼(我使用了 Deba168 教程中用于“智能手機控制的 Arduino 流動站”的控制序列)。這是命令列表和相應的字符:
一個 - 向前
b - 左
c - 停止
d - 右
e - 反轉
1 - 25% 的電機功率
2 - 50% 的電機功率
3 - 75% 的電機功率
4 - 100% 電機功率
當我第一次創建遙控器時,我輸入了字符的 ASCII 值 - 這沒有用。正確的命令是字母/數字本身,而不是它的 ASCII 值。當我輸入所有九個圖標和命令時,我按下“完成”。我完成的遙控器看起來像圖片。
簡單吧?還好沒那么快。當我嘗試將具有 CallbackLED 開關特性的 Arduino 101 BLE 服務連接到 UART 應用程序時,它會抱怨“該設備沒有所需的服務”。我在 Nordic 和 UART 上進行了互聯網搜索。我發現 UART 應用程序希望看到非常具體的服務 UUID 和特征。使用以下信息:https://www.nordicsemi.com/eng/Products/Nordic-mob ...。我將正確的服務名稱、UUID 以及 Tx 和 Rx 特征集成到我的 Arduino 草圖中,然后我進行了一些調整以解決該服務可以傳輸多個字符并因此提供指向第一個元素的指針這一事實一個數組并且它有效。
第 3 步:測試遙控器

Sketch 會將傳輸的字節發送到串行監視器,以驗證 UART 應用程序上的每個按鈕是否發送了所需的字節。
要使用遙控器,請按照下列步驟操作:
1.打開nRF工具箱
2. 選擇串口應用
3. 按“連接”按鈕,然后選擇您的 BLE 服務的名稱 - “BLE_ROV”。
該按鈕現在應顯示為“斷開連接”。您現在已連接,每次按下按鈕都會傳輸該按鈕的命令。
注意:在使用舊 IOS 手機測試此草圖時,我發現我宣傳的本地名稱“BLE_ROV”沒有出現在要連接的列表中。相反,我看到類似“Arduino 101-xxxx”的內容,其中 xxxx 是 BLE 芯片 Mac 地址的最后 4 個十六進制數字 - 顯示在 Arduino 101 板背面的小標簽上。只需選擇要連接的名稱,一切都會正常。
這是我能找到的最簡單的解決方案。當您按下遙控器上的每個鍵然后斷開連接時,包含可供下載的 Arduino 草圖以及串行監視器的圖像。
我希望這是有用的。我將在稍后提供我建造的漫游者的完整說明。
- Project Kong:滿足特殊需求的特殊漫游者
- Arduino101/tinyTILE BLE:配對太陽鏡
- 帶Arduino的紅外遙控器
- 構建結合Azure Sphere安全性和FreeRTOS的漫游者
- 使用Zephyr RTOS的碳漫游者
- 基于Arduino UNO的帶遙控器環境燈 0次下載
- arduino 101 BLE的短信提醒
- 自動駕駛和避障漫游者開源
- 使用Arduino遙控器降低收音機音量
- Alpha V1:開源Arduino基礎遙控器
- 使用Arduino解碼任何遙控器的紅外遙控信號
- 戶外漫游者開源項目
- DIY Arduino nRF24L01遙控器
- 風神遙控器正確拆卸方法步驟 15次下載
- 空調遙控器維修資料下載 19次下載
- 遙控器解碼器怎么使用 4k次閱讀
- 萬能遙控器的設置和使用方法 2.6w次閱讀
- 如何構建一個簡單的基于紅外的車門遙控器 2.4k次閱讀
- 如何創建基于MAXQ的“學習”遙控器 1.8k次閱讀
- 遙控器的組成 1.5w次閱讀
- fireflyAIO-3288J紅外遙控器介紹 2.3k次閱讀
- fireflyAIO-3288C主板紅外遙控器簡介 2.2k次閱讀
- Firefly關于RK3288的紅外遙控器簡介 3.4k次閱讀
- 沁恒股份藍牙智能遙控器方案概述 5.3k次閱讀
- 一文弄懂工業無線遙控器是什么 1.6w次閱讀
- 無線遙控器常見的五個故障及處理辦法 3.1w次閱讀
- 帶你了解遙控器的發展歷史 1.9w次閱讀
- 一文弄懂無線遙控器 1w次閱讀
- 遙控器集成檢測系統檢測CAN總線遙控器操作過程簡介 8.1k次閱讀
- 簡單實用的遙控器檢測儀電路圖 1.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論