今天我們用mPython與掌控板來(lái)做個(gè)更有趣的實(shí)驗(yàn)。這個(gè)實(shí)驗(yàn)讓大家更好地了解掌控板的兩個(gè)強(qiáng)大功能:通信功能以及3D方向感知功能。
當(dāng)掌控板在手中上下左右傾斜時(shí),掌控板芯片是能測(cè)量出來(lái)的,用這個(gè)功能我們可以把掌控板做成指南針、水平儀。以后我們學(xué)習(xí)組裝掌控板小汽車(chē)時(shí),也需要用到這個(gè)功能讓它能夠自動(dòng)跟隨既定軌跡行駛。
現(xiàn)在我們用掌控板的方向功能來(lái)實(shí)現(xiàn)用體感控制發(fā)送信號(hào),另一塊掌控板收到信號(hào)時(shí)控制顯示圖片。當(dāng)掌控板A前后左右傾斜時(shí),發(fā)出前后左右的無(wú)線信號(hào)。另一塊掌控板B收到相應(yīng)信號(hào)會(huì)出現(xiàn)四個(gè)不同方位的箭頭標(biāo)志,當(dāng)掌控板A處于水平靜止的狀態(tài)則B顯示禁止標(biāo)志,如果掌控板A被搖晃則B出現(xiàn)一個(gè)問(wèn)號(hào)的標(biāo)志。
掌控板有無(wú)線廣播功能,它使用2.4GHz的無(wú)線射頻通訊,共13個(gè)頻道??蓪?shí)現(xiàn)一定區(qū)域內(nèi)的簡(jiǎn)易組網(wǎng)通訊。在相同通道下,成員可接收廣播消息,就類(lèi)似對(duì)講機(jī)一樣。我們可以用兩塊掌控板進(jìn)行相互間的收發(fā)消息。
1. 對(duì)發(fā)送端掌控板A編程,設(shè)定無(wú)線廣播頻道為14(如圖1)。
2. 當(dāng)掌控板向前傾斜時(shí),無(wú)線廣播發(fā)送本機(jī)A的方向信號(hào)“forward”,并在本機(jī)A上顯示相應(yīng)提示圖標(biāo)。注意為了正確顯示圖像,需要OLED顯示清空;在坐標(biāo)上顯示內(nèi)置圖像;OLED顯示生效三個(gè)積木依次組合(如圖2)。
3. 其他方向的情況在“如果”后添加“否則如果”判斷,以同樣的形式添加。內(nèi)置圖像種類(lèi)不少,不過(guò)多數(shù)是英文需要在Information目錄下仔細(xì)找一下方向圖標(biāo)。搖晃和靜止的效果也是同樣設(shè)置(如圖3)。
1. 與A板設(shè)置相同頻道。
2. 設(shè)置一個(gè)變量“send”,用于儲(chǔ)存廣播接收到的信號(hào)。
3. 根據(jù)不同的信號(hào)設(shè)置B板收到信號(hào)后顯示的文本或圖片(如圖4)。
總結(jié),今天第一次用mPython編寫(xiě)結(jié)合通信功能的實(shí)驗(yàn),難度并不大,主要目標(biāo)是熟悉軟件和兩塊掌控板的通信。顯示效果:
https://pan.baidu.com/s/1AoWxsbk
b22eP5STc91SYRg
提取碼:p30l