• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      米思齊的手機(jī)藍(lán)牙之路

      2018-07-12 03:03劉曉靜滕永豐
      中國(guó)信息技術(shù)教育 2018年11期
      關(guān)鍵詞:串口列表控制器

      劉曉靜 滕永豐

      以Arduino為基礎(chǔ)的創(chuàng)意電子類創(chuàng)客教育課程正逐步在中小學(xué)推廣開(kāi)來(lái)。然而,由于受到其本身技術(shù)門檻的限制,創(chuàng)意電子類課程的開(kāi)設(shè)對(duì)廣大師生提出了巨大的挑戰(zhàn)(Arduino需要通過(guò)C/C++語(yǔ)言編程實(shí)現(xiàn)創(chuàng)意,這對(duì)低年齡段的學(xué)生來(lái)說(shuō)難度太大)。

      圖形化編程工具可以降低學(xué)習(xí)的難度,Mixly(全稱為Mixly_Arduino,中文名為米思齊)因此應(yīng)運(yùn)而生,它是由北京師范大學(xué)教育學(xué)部創(chuàng)客教育實(shí)驗(yàn)室傅騫教授團(tuán)隊(duì)開(kāi)發(fā)的圖形化編程軟件。

      教師做桌面創(chuàng)客到了一定的階段,難免想嘗試物聯(lián)網(wǎng),想與手機(jī)、WIFI相連,但沒(méi)有一定的C語(yǔ)言功底是不行的,不過(guò)不用灰心。Mixly現(xiàn)有版本,支持手機(jī)藍(lán)牙與Arduino的連接,這里筆者就以安卓手機(jī)結(jié)合Arduino控制器,利用Mixly和App Inventor編程,實(shí)現(xiàn)手機(jī)控制板載LED燈的亮滅。

      思路

      用Mixly為Arduino控制器編程,用App Inventor編寫一款手機(jī)控制軟件,二者通過(guò)藍(lán)牙配對(duì),實(shí)現(xiàn)手機(jī)控制板載LED燈。

      硬件準(zhǔn)備

      (1)Arduino控制器及USB:本例中用Dfrobot公司的Romeo BLE多合一控制器,它自帶了藍(lán)牙模塊的接口APC220,而且這個(gè)主控板可以驅(qū)動(dòng)電機(jī),做藍(lán)牙遙控車也很方便。

      (2)藍(lán)牙模塊:App Inventor里面的藍(lán)牙功能對(duì)應(yīng)的是藍(lán)牙2.0,盡管筆者的Romeo BLE控制器自帶藍(lán)牙4.0,但受App Inventor的限制,必須換用藍(lán)牙模塊2.0標(biāo)準(zhǔn)。

      藍(lán)牙模塊的選擇有兩種:一種是Dfrobot生產(chǎn)的,與Romeo BLE控制器相匹配,連接起來(lái)相當(dāng)省事的DF-BluetoothV3藍(lán)牙串口模塊(如圖1),注意它的藍(lán)牙協(xié)議是Bluetooth Specification v2.0+EDR,符合筆者的要求,缺點(diǎn)是價(jià)格小貴。

      另一種是BT06藍(lán)牙串口模塊(如圖2),兼容HC-06,藍(lán)牙協(xié)議為Bluetooth Specification V2.1+EDR,也符合要求。優(yōu)點(diǎn)是價(jià)格低,缺點(diǎn)是連接要用到四根一頭公、一頭母的杜邦線,還要注意接法,本例用的就是這種普通的BT-06藍(lán)牙串口模塊。

      硬件鏈接

      Romeo BLE多合一控制器上有APC220接口專門用于連接藍(lán)牙接口,BT06藍(lán)牙串口模塊有四個(gè)引腳,其中VCC接5V,GND接GND,TXD接控制器APC220的RX,RXD接控制器APC220的TX,APC220共有七個(gè)接口,用了四個(gè),余下三個(gè)空著即可(如圖3)。

      軟件準(zhǔn)備

      Mixly:0.984版本。

      App Inventor2:安卓手機(jī)端圖形化編程軟件,目前國(guó)內(nèi)已經(jīng)有中文服務(wù)器了,可以在線編程,手機(jī)直接掃描二維碼或使用AI伴侶即可運(yùn)行,比較方便。

      編程

      Mixly的編程如圖4所示。

      App Inventor的編程:從“通信連接”拖入一個(gè)藍(lán)牙客戶端,用于與Arduino通信。拖入一個(gè)列表選擇框,用于選擇需要連接的藍(lán)牙設(shè)備。拖入兩個(gè)標(biāo)簽用于顯示藍(lán)牙狀態(tài)。拖入一個(gè)按鈕用以斷開(kāi)藍(lán)牙,拖入兩個(gè)按鈕用于發(fā)送開(kāi)燈命令和關(guān)燈命令以控制板載的LED燈,界面完成后如圖5所示。組件設(shè)計(jì)完畢,接下來(lái)進(jìn)行程序的編寫,總程序如下頁(yè)圖6所示。

      現(xiàn)在對(duì)程序分別進(jìn)行說(shuō)明。

      當(dāng)screen1初始化的時(shí)候,將“斷開(kāi)連接按鈕”的“啟用”屬性設(shè)置為“false”,由于剛開(kāi)始運(yùn)行時(shí)藍(lán)牙設(shè)備并未連接,因此“斷開(kāi)連接”按鈕需要設(shè)置為假。藍(lán)牙BT06模塊要先成為已配對(duì)設(shè)備,然后就可以打開(kāi)列表進(jìn)行選擇,因此第二句的作用是把已配對(duì)藍(lán)牙列表顯示出來(lái)供用戶選擇。

      藍(lán)牙使用的標(biāo)準(zhǔn)流程即配對(duì)→連接,配對(duì)只在新設(shè)備第一次連接時(shí)用一次,連接則是每次都需要操作的。因此,藍(lán)牙BT06模塊在加電以后,在手機(jī)上先要配對(duì)成功,這樣在“已配對(duì)列表中”就可以找到了(如下頁(yè)圖7、圖8)。

      本例中,藍(lán)牙BT06模塊,從模式、初始密碼1234、串口缺省波特率為9600bps,這三者可根據(jù)所用模塊的資料進(jìn)行相應(yīng)的修改,需要專門的串口調(diào)試模塊,此處不再展開(kāi),本文所用均為缺省值。

      狀態(tài)指示LED:用于指示藍(lán)牙模塊所處狀態(tài),LED燈閃爍方式與藍(lán)牙模塊狀態(tài)對(duì)應(yīng)如下頁(yè)表所示。

      接下來(lái),當(dāng)用戶點(diǎn)擊了列表中的選項(xiàng)后,就需要連接藍(lán)牙了,首先斷開(kāi)原來(lái)連接的藍(lán)牙設(shè)備,接下來(lái)連接用戶選擇的藍(lán)牙設(shè)備,此處有地址、唯一編號(hào)兩個(gè)參數(shù)(如下頁(yè)圖9)?!暗刂贰保篈rduino設(shè)備上的藍(lán)牙模塊對(duì)應(yīng)的MAC地址,也就是上一步操作后的“選中項(xiàng)”;“唯一編號(hào)”:

      00001101-0000-1000-8000-00805F9B34FB。

      此處的唯一編號(hào)即UUID,因?yàn)楣P者使用的是藍(lán)牙串口與Arduino通信,因此使用這個(gè)編號(hào),此編號(hào)不可以變。

      UUID是“Universally Unique Identifier”的縮寫,通用唯一識(shí)別碼的意思。對(duì)于藍(lán)牙設(shè)備,每個(gè)服務(wù)都有一個(gè)與它對(duì)應(yīng)的UUID(唯一的)。連接藍(lán)牙這個(gè)動(dòng)作會(huì)返回連接成功還是失敗,成功即為true,失敗即為false,此處可以使用如果判斷來(lái)判斷藍(lán)牙連接成功或者失敗,如果連接成功就顯示“已連接”,同時(shí)讓“斷開(kāi)連接”按鈕可使用,否則連接失敗就顯示“未連接”,同時(shí)讓“斷開(kāi)連接”按鈕不能使用。

      接下來(lái),筆者介紹一下三個(gè)按鈕的功能:①“斷開(kāi)連接”按鈕點(diǎn)擊后斷開(kāi)連接,同時(shí)設(shè)置一下藍(lán)牙狀態(tài)和按鈕禁用;②開(kāi)燈按鈕點(diǎn)擊后發(fā)送文本“a”,關(guān)燈按鈕點(diǎn)擊后發(fā)送文本“b”,即點(diǎn)擊兩個(gè)按鈕分別發(fā)送不同的字符,那么Arduino程序就可以根據(jù)接收到的文本信息判斷是需要進(jìn)行開(kāi)燈還是關(guān)燈操作(如圖10)。

      App Inventor程序編輯完畢即可打包apk下載到手機(jī)進(jìn)行安裝了。Mixly端程序簡(jiǎn)單,因?yàn)樗{(lán)牙模塊就是串口通信,因此只要設(shè)置藍(lán)牙串口然后讀取串口數(shù)據(jù)進(jìn)行判斷即可。程序編寫完成上傳到Romeo BLE控制板中,注意上傳的時(shí)候需要拔下藍(lán)牙模塊,上傳完畢后再插上藍(lán)牙模塊,此時(shí)模塊上的指示燈快速閃爍即為等待連接狀態(tài),打開(kāi)手機(jī)配對(duì)并連接,指示燈長(zhǎng)亮即為已連接,然后點(diǎn)擊“開(kāi)燈”“關(guān)燈”就可以嘗試控制板載的LED燈。

      猜你喜歡
      串口列表控制器
      南京溧水電子3款控制器產(chǎn)品
      水泥生料立磨壓差變參數(shù)二型模糊控制器設(shè)計(jì)
      擴(kuò)列吧
      基于NFV的分布式SDN控制器節(jié)能機(jī)制
      MCS—51單片機(jī)中的多串口通訊技術(shù)的應(yīng)用
      列表法解分式方程問(wèn)題探索
      列表畫樹(shù)狀圖各有所長(zhǎng)
      全國(guó)計(jì)算機(jī)等級(jí)考試機(jī)房準(zhǔn)備工作探討
      微機(jī)串口的測(cè)試診斷
      智能液位控制器在排水系統(tǒng)中的應(yīng)用
      靖边县| 邛崃市| 崇左市| 梨树县| 冀州市| 合江县| 南雄市| 抚宁县| 株洲市| 睢宁县| 陆川县| 涞水县| 海门市| 连平县| 淳化县| 鞍山市| 五河县| 蕲春县| 五莲县| 南雄市| 涡阳县| 临颍县| 德化县| 文山县| 蒲城县| 南平市| 榕江县| 中牟县| 诸城市| 新巴尔虎右旗| 辽源市| 商城县| 辽宁省| 大安市| 巴东县| 定日县| 周口市| 蒙山县| 西昌市| 泸定县| 勐海县|