電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino 101 BLE漫游者遙控器

Arduino 101 BLE漫游者遙控器

2022-12-22 | zip | 0.26 MB | 次下載 | 免費(fèi)

資料介紹

描述

?

?
poYBAGOibvGAKV5EAACq-oq9nJg578.jpg
?

我購(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é)

?
?
?
?
poYBAGOibvaAfuQjAABsXTEQgT4706.jpg
?
1 / 3
?

我在 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 遙控器

?
?
?
?
poYBAGOifWmAOGTNAABsTxPXnVQ228.jpg
?
1 / 4
?

我喜歡 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è)試遙控器

?
pYYBAGOifWyALdPQAAB_zO7sqeM774.jpg
?

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ō)明。


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

評(píng)論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)