步驟1:控制器電路
控制器在引腳2和3中具有BT模塊,在引腳4和2中具有開關(guān)由引腳11和12驅(qū)動的LED。
已保留LED,以表明交換機(jī)正在執(zhí)行其工作。
步驟2:小工具電路
電路中顯示了Arduino Uno,因為它更易于測試,但它可能是另一種類型,例如Nano對于移動小工具會更好。引腳連接將相同。
BT模塊位于2和3中,和以前一樣。
H橋從8,9和10驅(qū)動。
LED分別在11和12上。
電機(jī)應(yīng)該有一個小電容來順利完成操作,H橋連接應(yīng)具有1K電阻器以幫助保護(hù)Arduino。
步驟3:通信
現(xiàn)在可以設(shè)計命令了
數(shù)據(jù)需要有一種固定的格式,以便可以識別命令并知道它是正確的命令,而不僅僅是一些隨機(jī)數(shù)據(jù)。這本身就是一個整個行業(yè),但是可以發(fā)明一個簡單的“協(xié)議”來完成這項工作。
每個命令的長度正好為6個字符,并且參數(shù)最多為6個字符。/p》
每個命令將以“ @”符號開頭,并以“#”符號結(jié)尾。該命令本身當(dāng)然不能包含‘@’或‘#’符號。
因此,現(xiàn)在有效的命令如下所示:
@SPEED 150#
該命令以‘@’開頭,后6個字符為‘SPEED’,然后最多6個字符‘150’以‘#’結(jié)尾。
此項目有四種命令類型,它們的類型分別為可能的參數(shù):
速度,0到255,設(shè)置電動機(jī)速度
LEDRED ,打開或關(guān)閉,變成紅色LED開啟或關(guān)閉
LEDGRN ,打開或關(guān)閉,打開或關(guān)閉綠色LED
DIRECT ,F(xiàn)ORWRD或REVRSE,控件電機(jī)方向
從控制器發(fā)送的數(shù)據(jù)如下:
@SPEED 0#@ LEDREDON#@ LEDGRNOFF#@ DIRECTFORWRD#@ SPEED 120#
依此類推。
步驟4:控制器程序
程序的開頭設(shè)置了一些引腳分配,并啟動了串行監(jiān)視器和BT模塊。
程序的其余部分圍繞讀取開關(guān)和電位器值并將它們發(fā)送到BT模塊。
字符串變量用于構(gòu)建“打印”到BT模塊的命令行。每次發(fā)送命令都會施加延遲。
通信中的重要考慮因素是定時。如果Controller發(fā)送數(shù)據(jù)的速度超過了Gadget接收數(shù)據(jù)的速度,則會丟失信息,并且遙控器將無法正常工作。
程序會循環(huán)循環(huán)并每次發(fā)送所有輸入值,因此4每個循環(huán)發(fā)送命令。這些的總時間可以使用延遲來調(diào)整。程序其他部分所需的時間最少,因為像這樣的簡單指令將在微秒內(nèi)執(zhí)行。
應(yīng)該有一套完整的控制值,每秒大約發(fā)送3次,這將非常快對于我們的簡單控制項目來說足夠了。如果傳輸速度太慢,則可以提高BT模塊的UART速度。在更復(fù)雜的項目中可能會發(fā)生這種情況。兩個模塊都需要設(shè)置為相同的UART值,例如38400。請注意,這與串行監(jiān)視器的9600通訊速率無關(guān)。
第5步:小工具程序
小工具
定義中包含用于保存命令的字符串以及命令的兩個部分“命令類型”和“命令參數(shù)”。
應(yīng)避免延遲在這個程序中。如果程序運行太慢,則可能會丟失一些命令。
程序循環(huán)將執(zhí)行以下步驟:
從BT模塊獲取命令
識別命令類型
執(zhí)行命令
重復(fù)
程序的結(jié)構(gòu)是這樣的,以便主循環(huán)識別該命令,然后調(diào)用一個函數(shù)來對其進(jìn)行處理。這樣可以輕松地將新命令添加到主循環(huán)中,并具有單獨的代碼塊來執(zhí)行該命令。例如,可以添加伺服器。良好的程序結(jié)構(gòu)也使查找錯誤變得更加簡單。
創(chuàng)建了一個名為GetDataFunction的函數(shù),用于從BT模塊讀取命令。
(該函數(shù)調(diào)用等效于BASIC中的gosub GetDataFunction)。
然后將命令分為cmdtype和cmdpara。
該命令必須位于要執(zhí)行的“ if”語句列表。任何無效的命令都將被忽略。例如,無效的命令可能是由于數(shù)據(jù)損壞或通信時序錯誤造成的。
執(zhí)行命令的功能與電機(jī)控制程序中的功能完全一樣。
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187543 -
藍(lán)牙遙控器
+關(guān)注
關(guān)注
0文章
6瀏覽量
7575
發(fā)布評論請先 登錄
相關(guān)推薦
評論