資料介紹
描述
?
我購(gòu)買了一個(gè) Arduino 101 用于 Arduino 兼容性以及內(nèi)置藍(lán)牙低功耗和 6 軸加速度計(jì)/陀螺儀等額外功能。我想用我的 Arduino 101 構(gòu)建一個(gè)基于 Arduino 的遠(yuǎn)程控制流動(dòng)站,但很難找到示例代碼。我發(fā)現(xiàn)了許多使用藍(lán)牙的 RC 漫游者示例,但沒(méi)有一個(gè)使用藍(lán)牙 LE。
將通信問(wèn)題分解成小塊,我需要:
- 確定如何創(chuàng)建一個(gè)可行的遠(yuǎn)程控制以將這些字節(jié)發(fā)送到流動(dòng)站的狀態(tài)機(jī)。
我確實(shí)解決了這兩個(gè)問(wèn)題。我很快發(fā)現(xiàn)我可以修改 CurieBLE 庫(kù)中包含的 LED 和 CallbackLED 示例,以將一個(gè)字節(jié)傳輸?shù)?Arduino 101,但很難找到可靠、易于使用的遙控器。經(jīng)過(guò)大量的互聯(lián)網(wǎng)搜索和一些工作后,我找到了一個(gè)新穎的解決方案,在此介紹。
第 1 步:通過(guò) BLE 向 Arduino 101 發(fā)送字節(jié)
我在 Arduino 論壇上找到了這個(gè)基本通信挑戰(zhàn)的答案:Arduino 論壇 > 產(chǎn)品 > Arduino 101。這是解釋。
在名為 CallbackLED 的 Arduino 101 CurieBLE 示例中 - 定義了一個(gè)事件處理程序,以便在寫入開(kāi)關(guān)特性時(shí)調(diào)用。函數(shù)中的代碼setup()
如下所示:
// assign event handlers for characteristic
switchChar.setEventHandler(BLEWritten, switchCharacteristicWritten);
在switchCharacteristicWritten
事件處理函數(shù)中,代碼檢查寫入的值是零 (0x00) 還是其他值。如果非零,它將“打開(kāi)”LED,如果為零,它將“關(guān)閉”LED。代碼如下所示:
if (switchChar.value()) {
? ? Serial.println("LED on"); digitalWrite(ledPin, HIGH);
else {
? ? Serial.println("LED off"); digitalWrite(ledPin, LOW); }
要捕獲寫入的字節(jié),只需將其保存到一個(gè)變量中,然后在串口監(jiān)視器上打印出來(lái),代碼如下所示:
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); }
我通過(guò) Nordic Semiconductor 的 nRF Connect 應(yīng)用程序編寫角色來(lái)驗(yàn)證此功能是否有效,該應(yīng)用程序在 Play Store 和 App Store 中均可用。
以下是安裝應(yīng)用程序后的詳細(xì)步驟:
1.運(yùn)行nRF Connect應(yīng)用
2. 按右上角的“掃描”運(yùn)行掃描儀 - 它通常會(huì)自動(dòng)運(yùn)行
3. 選擇您的命名服務(wù)(在示例中它被命名為“LEDCB”)。
4. 按右側(cè)的“連接”。
5. 選擇未知服務(wù)(服務(wù)列表中的最后一個(gè))。
6. 按右邊的向上箭頭。這會(huì)彈出一個(gè)寫入值對(duì)話框。
7. 按“新值”,輸入一個(gè)十六進(jìn)制字節(jié)值,如 61 - 這是 ASCII 文本中的“a”。
8. 按右下角的“發(fā)送”,您的字節(jié)就被發(fā)送了。
按照這些步驟,我們成功地通過(guò)藍(lán)牙 LE 將字節(jié)寫入 Arduino 101。
第 2 步:創(chuàng)建藍(lán)牙 LE 遙控器
我喜歡 nRF Connect 應(yīng)用程序,但我找不到制作可用遙控器的方法。通過(guò) nRF Connect 應(yīng)用程序手動(dòng)輸入字節(jié)不會(huì)讓我有效地控制流動(dòng)站。為了試用其他 Arduino 101 示例,我下載了另一個(gè)名為 nRF 工具箱的 nRF 應(yīng)用程序。在工具箱中,最后一個(gè)應(yīng)用程序的名稱為“UART”。UART 應(yīng)用程序有九個(gè)用戶可定義的按鈕,可以配置為在按下按鈕時(shí)發(fā)送命令。按右上角的“編輯”會(huì)使所有按鈕變?yōu)槌壬?/font>觸摸按鈕會(huì)彈出一個(gè)對(duì)話框,將圖標(biāo)與按鈕相關(guān)聯(lián),并定義按下時(shí)要發(fā)送的命令。
我有一部 Android 手機(jī),可用圖標(biāo)與我的遙控器完美匹配。在 IOS 設(shè)備上,圖標(biāo)不太適合這種用法,但請(qǐng)選擇您能記住的圖標(biāo)。我的流動(dòng)站的運(yùn)動(dòng)控制基于使用以下配置的簡(jiǎn)單單字節(jié)代碼(我使用了 Deba168 教程中用于“智能手機(jī)控制的 Arduino 流動(dòng)站”的控制序列)。這是命令列表和相應(yīng)的字符:
一個(gè) - 向前
b - 左
c - 停止
d - 右
e - 反轉(zhuǎn)
1 - 25% 的電機(jī)功率
2 - 50% 的電機(jī)功率
3 - 75% 的電機(jī)功率
4 - 100% 電機(jī)功率
當(dāng)我第一次創(chuàng)建遙控器時(shí),我輸入了字符的 ASCII 值 - 這沒(méi)有用。正確的命令是字母/數(shù)字本身,而不是它的 ASCII 值。當(dāng)我輸入所有九個(gè)圖標(biāo)和命令時(shí),我按下“完成”。我完成的遙控器看起來(lái)像圖片。
簡(jiǎn)單吧?還好沒(méi)那么快。當(dāng)我嘗試將具有 CallbackLED 開(kāi)關(guān)特性的 Arduino 101 BLE 服務(wù)連接到 UART 應(yīng)用程序時(shí),它會(huì)抱怨“該設(shè)備沒(méi)有所需的服務(wù)”。我在 Nordic 和 UART 上進(jìn)行了互聯(lián)網(wǎng)搜索。我發(fā)現(xiàn) UART 應(yīng)用程序希望看到非常具體的服務(wù) UUID 和特征。使用以下信息:https://www.nordicsemi.com/eng/Products/Nordic-mob ...。我將正確的服務(wù)名稱、UUID 以及 Tx 和 Rx 特征集成到我的 Arduino 草圖中,然后我進(jìn)行了一些調(diào)整以解決該服務(wù)可以傳輸多個(gè)字符并因此提供指向第一個(gè)元素的指針這一事實(shí)一個(gè)數(shù)組并且它有效。
第 3 步:測(cè)試遙控器
Sketch 會(huì)將傳輸?shù)淖止?jié)發(fā)送到串行監(jiān)視器,以驗(yàn)證 UART 應(yīng)用程序上的每個(gè)按鈕是否發(fā)送了所需的字節(jié)。
要使用遙控器,請(qǐng)按照下列步驟操作:
1.打開(kāi)nRF工具箱
2. 選擇串口應(yīng)用
3. 按“連接”按鈕,然后選擇您的 BLE 服務(wù)的名稱 - “BLE_ROV”。
該按鈕現(xiàn)在應(yīng)顯示為“斷開(kāi)連接”。您現(xiàn)在已連接,每次按下按鈕都會(huì)傳輸該按鈕的命令。
注意:在使用舊 IOS 手機(jī)測(cè)試此草圖時(shí),我發(fā)現(xiàn)我宣傳的本地名稱“BLE_ROV”沒(méi)有出現(xiàn)在要連接的列表中。相反,我看到類似“Arduino 101-xxxx”的內(nèi)容,其中 xxxx 是 BLE 芯片 Mac 地址的最后 4 個(gè)十六進(jìn)制數(shù)字 - 顯示在 Arduino 101 板背面的小標(biāo)簽上。只需選擇要連接的名稱,一切都會(huì)正常。
這是我能找到的最簡(jiǎn)單的解決方案。當(dāng)您按下遙控器上的每個(gè)鍵然后斷開(kāi)連接時(shí),包含可供下載的 Arduino 草圖以及串行監(jiān)視器的圖像。
我希望這是有用的。我將在稍后提供我建造的漫游者的完整說(shuō)明。
- Project Kong:滿足特殊需求的特殊漫游者
- Arduino101/tinyTILE BLE:配對(duì)太陽(yáng)鏡
- 帶Arduino的紅外遙控器
- 構(gòu)建結(jié)合Azure Sphere安全性和FreeRTOS的漫游者
- 使用Zephyr RTOS的碳漫游者
- 基于Arduino UNO的帶遙控器環(huán)境燈 0次下載
- arduino 101 BLE的短信提醒
- 自動(dòng)駕駛和避障漫游者開(kāi)源
- 使用Arduino遙控器降低收音機(jī)音量
- Alpha V1:開(kāi)源Arduino基礎(chǔ)遙控器
- 使用Arduino解碼任何遙控器的紅外遙控信號(hào)
- 戶外漫游者開(kāi)源項(xiàng)目
- DIY Arduino nRF24L01遙控器
- 風(fēng)神遙控器正確拆卸方法步驟 15次下載
- 空調(diào)遙控器維修資料下載 18次下載
- 萬(wàn)能遙控器的設(shè)置和使用方法 1.2w次閱讀
- 如何構(gòu)建一個(gè)簡(jiǎn)單的基于紅外的車門遙控器 1145次閱讀
- 如何創(chuàng)建基于MAXQ的“學(xué)習(xí)”遙控器 922次閱讀
- 遙控器的組成 9432次閱讀
- fireflyAIO-3288J紅外遙控器介紹 1617次閱讀
- fireflyAIO-3288C主板紅外遙控器簡(jiǎn)介 1567次閱讀
- FireflyRK3128主板紅外遙控器介紹 2055次閱讀
- Firefly關(guān)于RK3288的紅外遙控器簡(jiǎn)介 2557次閱讀
- 沁恒股份藍(lán)牙智能遙控器方案概述 4307次閱讀
- 一文弄懂工業(yè)無(wú)線遙控器是什么 1.4w次閱讀
- 無(wú)線遙控器常見(jiàn)的五個(gè)故障及處理辦法 2.7w次閱讀
- 帶你了解遙控器的發(fā)展歷史 1.6w次閱讀
- 一文弄懂無(wú)線遙控器 8884次閱讀
- 遙控器集成檢測(cè)系統(tǒng)檢測(cè)CAN總線遙控器操作過(guò)程簡(jiǎn)介 7039次閱讀
- 簡(jiǎn)單實(shí)用的遙控器檢測(cè)儀電路圖 1.7w次閱讀
下載排行
本周
- 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元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(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開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 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ì)》 溫德?tīng)栔?/a>
- 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)論
查看更多