步驟1:為Android設(shè)備編寫應(yīng)用程序,以將數(shù)據(jù)發(fā)送到藍(lán)牙模塊。
我們使用MIT應(yīng)用程序發(fā)明家2網(wǎng)站來編寫應(yīng)用程序。在此網(wǎng)站上,您無需編程知識即可輕松創(chuàng)建帶有編程塊的應(yīng)用程序。
汽車的基本行駛方向是左,右,前進和后退。要指定4個不同的動作,2位就足夠了。指定汽車的方向移動之后,讓我們設(shè)置汽車的速度。我們可以將速度調(diào)整為4種不同的設(shè)置,而2個二進制位就足夠了。數(shù)據(jù)以8位數(shù)據(jù)包的形式發(fā)送到Bluetooth模塊,而5位數(shù)據(jù)對我們來說就足夠了。
現(xiàn)在,我們可以創(chuàng)建有關(guān)這些計算的應(yīng)用程序。 4個用于定義旋轉(zhuǎn)的按鈕,一個用于設(shè)備和速度控制的列表選擇器以及一個用于連接的按鈕就足夠了。另外,我們必須添加藍(lán)牙客戶端和藍(lán)牙服務(wù)器模塊以建立藍(lán)牙連接。要查看方向按鈕是否對齊,請使用表格排列。
在設(shè)計之后,我們通過單擊塊部分來通過編程。使用Mix Application Inverter 2進行編程非常容易。您可以通過單擊左側(cè)的組件來添加所需的塊。在這一部分中,我們填寫列表選擇器的內(nèi)容,然后將藍(lán)牙設(shè)備排成一行,以便前者與設(shè)備匹配,因此,為了提高速度,我們將數(shù)字排列為“ 1、2、3、4”。您可以在此處找到此Android應(yīng)用程序的項目。
步驟2:從藍(lán)牙模塊獲取數(shù)據(jù)
《用于藍(lán)牙通信的p》 HC06模塊使用UART作為通信協(xié)議。 HC06默認(rèn)發(fā)送1個起始位,8個數(shù)據(jù)位和1個停止位,并且波特率為9600。 Silego GreenPAK具有SPI模塊。我們將對SPI模塊進行一些補充,以允許從HC06模塊獲取數(shù)據(jù)。最初,SPI協(xié)議需要一個外部時鐘。但是,在UART協(xié)議下,數(shù)據(jù)以恒定速率傳輸。另一個區(qū)別是SPI通信中沒有啟動或停止位。我們將使用一個起始位來獲取SPI時鐘。 UART協(xié)議在空閑時處于高功率狀態(tài),在開始通信時(進入低位)進入低功率狀態(tài)。
我們可以使用下降沿檢測器來識別通信的開始。我們將此信號連接到DFF的時鐘引腳,將VDD連接到數(shù)據(jù)引腳,以使連接在連接期間保持活動狀態(tài)。因此,PDLY0塊將在通信開始時通過捕捉下降沿來設(shè)置連接標(biāo)志。 UART協(xié)議具有9600波特率,這意味著它能夠每秒傳輸9600位。要找到一個周期的時間,您必須將1秒除以9600。如果立即開始運行時鐘,則數(shù)據(jù)和時鐘信號將同時更改,這可能會導(dǎo)致數(shù)據(jù)丟失。因此,時鐘信號必須延遲半個周期。我們使用CNT6/DLY6塊應(yīng)用了此延遲。通過將OSC模塊中的RC OSC頻率設(shè)置為2000 kHz,我們獲得了更高的頻率。從中獲得較高頻率的周期具有較短的周期,并且計數(shù)器的絕對定時分辨率提高。因此,我們降低了計數(shù)器的錯誤率。
CNT6塊設(shè)置為延遲半個周期(0,1042/2 = 0,0520 ms)。我們使用另一個計數(shù)器(CNT2)獲得一個周期的持續(xù)時間(0,142 ms)。我們將此計數(shù)器的時鐘設(shè)置為External Clock0。通過應(yīng)用邏輯和處理,我們將來自O(shè)SC的OUT1信號和CLK BEGIN信號連接到OSC的外部Clock0輸入。因此,CNT2僅在連接開始時才開始計數(shù)。為了提供更多細(xì)節(jié),計數(shù)器模塊對時鐘信號的邊沿進行計數(shù)。如果計數(shù)器不斷向CLK引腳發(fā)送高電平或低電平信號,則計數(shù)器停止計數(shù)。在這里,我們將CLK Begin信號與OUT1信號進行“與”運算,并將它們連接到外部CLK0輸入。這樣,在沒有連接的時刻,ANDing CLK Begin信號和OUT1信號將始終等于0,并且CNT2將停止計數(shù)。
但是,當(dāng)提供連接時,CLK Begin信號將為“ 1“,邏輯和運算的結(jié)果將是OUT1信號,并將使CNT2繼續(xù)計數(shù)。我們將CNT2計數(shù)器的輸出(其周期持續(xù)時間已預(yù)先計算)連接到SPI模塊的SCLK引腳。因此,我們?yōu)閬碜訦C06的每個字節(jié)數(shù)據(jù)生成了一個時鐘周期。
最后,我們設(shè)置延遲以計算連接的到期時間并將連接清零。連接開始后,該計數(shù)器將開始測量持續(xù)時間,并在數(shù)據(jù)傳送完成后結(jié)束連接。在測量9個字節(jié)的持續(xù)時間后,我們將連接歸零。在停止字節(jié)期間將連接清零可使SPI模塊在形成新連接之前準(zhǔn)備就緒。否則,如果打算在10個字節(jié)的持續(xù)時間結(jié)束時將其清零,則可能無法捕獲新連接的起始字節(jié)。我們將來自PLY5模塊的SPI引腳的輸出引腳,計算出的1個周期持續(xù)時間的計數(shù)器以及用作連接標(biāo)志的DFF0復(fù)位。但是,與其他信號不同,我們在復(fù)位DFF0之前將信號延遲了一段時間。如果您重置SLG46620V芯片的反延遲模塊,則該模塊的輸出芯片將保持高電平1個周期。如果您同時重置CNT2和DFF0,則CLK Begin信號將保持低電平,從而停止CNT2的時鐘停止。由于CNT2將保持高電平1個周期,并且時鐘將不斷變?yōu)榈碗娖綘顟B(tài),因此CNT2將無法完成1個周期,而是將穩(wěn)定地保持在高電平狀態(tài)。因此,我們首先重置CNT2塊,然后在幾個周期后重置DFF0。
步驟3:電動機/汽車的控制
在此階段,我們通過更改直流電動機的輸出來更改汽車的速度和方向。通過藍(lán)牙接收汽車的方向和速度信息。當(dāng)我們通過SPI模塊接收到來自UART協(xié)議的數(shù)據(jù)時,將在這里使用SPI并行輸出模塊。
UART和SPI通信之間的區(qū)別之一是發(fā)送字節(jié)的順序。當(dāng)最初使用SPI協(xié)議發(fā)送MSB(最高有效位)時,最后使用UART協(xié)議發(fā)送它。因此,我們將以相反的順序接收數(shù)據(jù)的字節(jié)。我們將S1和S0字節(jié)字節(jié)鏈接到PWM0塊。如上所示應(yīng)用了PWM0的設(shè)置后,就配置了CNT8/DLY8模塊。 。 SLG46620V CMIC無法直接驅(qū)動直流電動機。因此,我們將使用電源和電機驅(qū)動器來控制它們。直流電動機驅(qū)動器通過根據(jù)通常稱為M1-A,M1-B,M2-A和M2-B的控制銷向電動機的銷通電來運行電動機。我們在設(shè)計中建立了連接,如表6所示。
LUT為電機驅(qū)動器輸入提供適當(dāng)?shù)倪壿嬓盘?。因此,?dāng)開合信號處于低電平狀態(tài)時,電機輸出引腳將保持低電平,并且電機將不會旋轉(zhuǎn)。
-
Android
+關(guān)注
關(guān)注
12文章
3946瀏覽量
128099 -
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5884瀏覽量
171443
發(fā)布評論請先 登錄
相關(guān)推薦
無線遙控車的電機抖動
OM6621E 低功耗BLE5.1協(xié)議Soc芯片 藍(lán)牙語音遙控器原理應(yīng)用
數(shù)字遙控器
![數(shù)字<b class='flag-5'>遙控</b>器](https://file1.elecfans.com/web3/M00/05/0B/wKgZPGd8iaeAMV6EAACg9PEGnP4202.png)
OM6621E 低功耗BLE5.1協(xié)議Soc芯片 藍(lán)牙語音遙控器原理應(yīng)用
開源項目!打造一款FPV頭部追蹤相機,讓你仿佛置身遙控車之中!
藍(lán)牙語音遙控器方案
![<b class='flag-5'>藍(lán)牙</b>語音<b class='flag-5'>遙控</b>器方案](https://file1.elecfans.com/web2/M00/05/7D/wKgaombQFpSAMenWAAB3LS0qIVk861.png)
第14章-藍(lán)牙遙控小車 藍(lán)牙串口通訊講解藍(lán)牙APP遙控小車 藍(lán)牙串口通訊講解
![第14章-<b class='flag-5'>藍(lán)牙</b><b class='flag-5'>遙控</b>小車 <b class='flag-5'>藍(lán)牙</b>串口通訊講解<b class='flag-5'>藍(lán)牙</b>APP<b class='flag-5'>遙控</b>小車 <b class='flag-5'>藍(lán)牙</b>串口通訊講解](https://file1.elecfans.com/web2/M00/02/F2/wKgZoma-0t2AaDqeAAP7Qe92AFM487.png)
藍(lán)牙自動感應(yīng)模塊BLE HID無感車鑰匙方案
遙控玩具車電機驅(qū)動應(yīng)用中的雙H橋驅(qū)動芯片
![<b class='flag-5'>遙控</b>玩具<b class='flag-5'>車</b>電機驅(qū)動應(yīng)用中的雙H橋驅(qū)動芯片](https://file1.elecfans.com/web2/M00/ED/C1/wKgaomZo9kuAdrl9AADl6hJe78Q431.png)
藍(lán)牙數(shù)字車鑰匙方案
![<b class='flag-5'>藍(lán)牙</b>數(shù)字<b class='flag-5'>車</b>鑰匙方案](https://file1.elecfans.com//web2/M00/E4/D2/wKgaomY97FWAAbjMAACISv79L9M762.jpg)
自制一輛遙控悍馬
基于國民技術(shù)N32WB031的藍(lán)牙語音遙控器解決方案
![基于國民技術(shù)N32WB031的<b class='flag-5'>藍(lán)牙</b>語音<b class='flag-5'>遙控</b>器解決方案](https://file.elecfans.com/web2/M00/55/46/pYYBAGLYxDaAd1VgAAAVtJTI0ms578.jpg)
評論