国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

讓掌控板和Scratch無縫連接

2018-12-19 09:37:28謝作如李敦勇唐柳峰
中國信息技術(shù)教育 2018年23期
關鍵詞:滑桿開源黃山

謝作如 李敦勇 唐柳峰

Scratch是一款由美國麻省理工學院(MIT)設計開發(fā)的少兒編程工具。因為其采用了積木式的圖形化編程形式,只要會使用鼠標,就能編寫出各式各樣的作品,大大降低了編程的門檻。目前很多地區(qū)的小學生編程課,大都是基于Scratch進行教學的。Scratch不僅是一款利用積木式工具制作二維動畫的軟件,還是一個學習互動媒體技術(shù)的平臺。Scratch可結(jié)合PicoBoard、樂高WeDo、Arduino、micro:bit等相關硬件,與外部世界進行互動,如讀取傳感器值,驅(qū)動電機等,從而設計出各種有趣的互動作品。

PicoBoard是Scratch開發(fā)團隊設計的傳感器板,通常稱為“Scratch傳感器板”,其功能已經(jīng)內(nèi)置在Scratch的各個版本中。早在2011年,筆者就嘗試用Arduino自制了一款PicoBoard,但因為各種傳感器不好固定,外形也不看,就沒有真正在教學中使用。最近,筆者在拿到掌控板的時候,不禁萌發(fā)一種想法:能不能把掌控板模擬為PicoBoard,讓掌控板和Scratch無縫連接起來呢?

分析規(guī)劃

PicoBoard上有按鍵、光線、聲音、滑桿等傳感器,另外還有四個普通的電阻。這些信息可以從Scratch的擴展功能模塊中看出,以Scratch2.0為例,編程模塊的界面如圖1所示。

掌控板上集成了光線和聲音傳感器,同時有A、B兩個按鈕,分別對應了PicoBoard上的按鍵、光線、聲音這三種傳感器(如圖2)。而滑桿傳感器可以使用六個觸摸按鍵來模擬,這樣就基本上具備了模擬PicoBoard的條件。另外,掌控板的加速度傳感器數(shù)據(jù),可以用阻力(電阻)A、B、C來輸出,這樣學生就能做出更加有趣的交互作品了。

考慮到使用習慣,筆者將掌控板的按鍵B,模擬為PicoBoard的按鈕。加速度傳感器Z軸信息,一般不太容易使用,于是舍棄,留出一個“阻力D”作為擴展接口。確定這些信息后,再對應PicoBoard的協(xié)議,分別進行了通道的編號(如下頁表1)。

代碼編寫

Scratch開發(fā)團隊定義了PicoBoard的協(xié)議。二者采用串口通信,波特率38400bps。當Scratch發(fā)送0x01時,PicoBoard就發(fā)送八路的傳感器數(shù)值。這些信息都是開源的,可以參考sparkfun分享在github的PicoBoard源碼(開源地址:https://github.com/sparkfun/PicoBoard)。

其實有很多人基于各種硬件,編寫了模擬PicoBoard的代碼,如kos Vecsei的Scratchbit,能夠?qū)icro:bit模擬為PicoBoard,用MicroPython編寫。研究這些代碼,很快就能弄明白PicoBoard的通信機制。(Scratchbit的開源地址:https://github.com/vecsei/Scratchbit)

我們采用MicroPython來編寫PicoBoard的代碼,核心代碼如表2所示。

需要說明的是,為了讓交互更加友好,當掌控板和Scratch進行通信時,板子上的RGB燈將會點亮。限于篇幅,這些沒有在上述的核心代碼中體現(xiàn)出來。完整的代碼可以在掌控板的GitHub地址的examples中下載。(掌控板的開源地址:https://github.com/labplus-cn/mPython/)

功能測試

打開mPython軟件,將上述代碼刷入,并設置為默認啟動。掌控板顯示如圖3所示的文字,表示啟動成功。

1.在Scratch1.4測試

打開Scratch1.4,在“偵測”中找到PicoBoard的編程模塊,編寫一個讀取傳感器值的程序,并單擊綠旗運行。等待10秒左右,當三個RGB燈都亮綠燈時,表示連接成功。這時,就能看到掌控板發(fā)來的各種傳感器信息了。

2.在Scratch2.0中測試

打開Scratch2.0,在 “更多積木”中添加擴展板PicoBoard。稍等片刻,軟件界面上出現(xiàn)“PicoBoard”指令模塊,當“PicoBoard”右邊的黃色圖標變成綠色時表示連接成功,同時掌控板上的三個RGB燈為綠色閃爍狀態(tài)[注:可直接使用網(wǎng)頁編程(https://Scratch.mit.edu),也可以使用PicoBoard,但要安裝Web瀏覽器插件]。

應用拓展

下面以Scratch2.0為例,利用“滑桿”來做一個“黃山日出”的效果。

1.前期準備

(1)下載黃山圖片,并利用圖像編輯工具將圖片中的“山”摳出來。

(2)掌控板滑桿數(shù)值取值的測試。

掌控板對應的滑桿為6個觸摸按鍵(p、y、t、h、o、n六個字母),滑桿的初始值約為50.0。按p鍵是0,同時按住py是10,以此類推,剛好把100分為10檔(如表3)。

2.制作過程

(1)硬件連接。將掌控板設置為Scratch傳感器板模式,并與Scratch成功連接。

(2)角色。將黃山圖片設為背景,黃山摳圖為角色1,太陽為角色2。

(3)腳本。

背景:因滑桿的初始值約為50,所以將滑桿傳感器值進行四舍五入,如果其等于50的話一直等待。當觸摸其他按鍵時,返回值將發(fā)生變化,不等于50,進入下面的“重復執(zhí)行”,然后亮度隨著滑桿傳感器值的變化而變化(如圖4)。

角色1(黃山摳圖):開始移至最上層,這樣可以擋住太陽,讓日出效果更佳。同樣在滑桿傳感器值沒有發(fā)生變化時一直等待,然后亮度隨著滑桿傳感器值的變化而變化(如圖5)。

角色2(太陽):開始先將太陽固定在(-20,-20)的坐標位置,同樣在滑桿傳感器值沒有發(fā)生變化時一直等待。為了實現(xiàn)太陽斜向上的效果,將X、Y坐標都隨滑桿傳感器值的變化而變化(如圖6)。這樣當單擊綠旗運行時,用手指從掌控板的p鍵劃向n鍵,這時太陽會慢慢從山的后面升起,天色也慢慢變亮。

當掌控板處在PicoBoard模式時是無法讀取文件和刷入程序的。如果想進入讀取文件或刷入程序的編程模式,得讓掌控板進入REPL模式,具體方法為按下按鍵B不放,然后按下REST鍵,直到OLED顯示屏上顯示“replMode”字樣才松開按鍵B。這時,掌控板又可以恢復到自由編程模式了。

掌控板的價格比市場上通用的Scratch傳感器板便宜不少,還可以隨時恢復到可編程模式,可謂一板多用,價美物廉。相信很快會有更多的教育創(chuàng)客開發(fā)出新的玩法,如利用掌控板的無線通信功能,做網(wǎng)絡版本的Scratch傳感器板等,從而讓更多的孩子愛上Scratch,愛上編程。

猜你喜歡
滑桿開源黃山
一種硅橡膠絕緣子成品的頂出設備
黃山日落
追魂
壹讀(2020年1期)2020-12-08 17:04:34
《登江陰黃山要塞》
中華詩詞(2020年1期)2020-09-21 09:24:24
黃山冬之戀
金橋(2019年2期)2019-09-18 13:03:17
變速器滑桿失效分析
五毛錢能買多少頭牛
黃山
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
白水县| 江口县| 天全县| 班玛县| 冕宁县| 金川县| 临澧县| 阿尔山市| 霍山县| 罗定市| 江山市| 桐梓县| 昌江| 东宁县| 沁阳市| 莱芜市| 绿春县| 弥勒县| 隆德县| 民乐县| 青龙| 福安市| 桃园县| 隆昌县| 锦州市| 苏尼特右旗| 桓仁| 临朐县| 南通市| 云南省| 旌德县| 永川市| 弋阳县| 荆门市| 乌兰县| 奉贤区| 钦州市| 湖北省| 北票市| 镶黄旗| 密山市|