大家好,我是蘇小糖蘇老師。想必同學們對于Scratch還有Arduino都不陌生了。使用scratch可以在電腦上制作游戲動畫等等,使用Arduino可以在現實的環境中制作一個實物作品。本來它們兩個不相干的,得益于國內廠商的努力,我們可以很容易的把Scratch & Arduino進行混合編程。一方面結合scratch在圖像聲音上的優勢,一方面結合Arduino連接現實世界的優勢。
今天的課程是以makeblock童心制物推出的編程軟件慧編程基礎上制作的。先上視頻,然后下面是圖文講解。
01當scratch無法滿足你的時候
慧編程是個不錯的選擇
慧編程的強大功能和便利性,對于老師或者學生都是非常棒的。原版scratch自然有它的優勢,不過當scratch無法滿足你的需求的時候,慧編程是個不錯的選擇。比如我最近就在使用慧編程準備軟硬件結合學編程的課程。
我們今天用到的就是和舞臺實時交互的功能,讓軟件和硬件各自發揮它們的優勢。做Arduino編程,經常用到的就是串口助手去觀測數據,有經驗的老師還會去寫一個上位機。但是這些對于小朋友極度的不友好。慧編程很好的解決了讓小朋友制作上位機實現數據可視化的問題。
02今天制作一個搶答器
scratch去制作一個搶答器非常的簡單,但是會有一個問題,在實際的搶答過程中,讓選手們都圍繞著一個電腦是不現實的。或者使用arduino去制作一個搶答器,功能很好實現。但是在比賽現場,我們更希望觀眾都能看到搶答情況。僅僅使用按鍵和LED指示甚至用上數碼管顯示,乃至語音模塊。也很容易被搶答現場的激動氛圍所淹沒。
所以呢,使用scratch制作一個界面,投放到大屏幕上,再用Arduino制作電路部分把按鍵引到選手座位,這個方式就好多了。當然,今天制作的也就是一個基礎版的搶答器,bug還是有的。有精力的同學可以想一想如何優化。
03硬件電路和程序
Arduino uno的主板、盾板還有四個按鍵就是所用到的電路了,非常的簡單。老師使用白色按鍵,三個同學分別使用黃綠紅按鍵。白黃綠紅按鍵分別接到了數字口10、11、12和13上面。在Arduino使用過程中,端口編號的準確性是編程的基礎。我這里使用到的模塊都是svg插口,有利于快速去搭建作品。總是丟給小學生一堆散件是夠折磨人的。
硬件一切就緒以后,連接軟件,設定為在線模式。只有在線模式才可以做軟硬件的交互。當然,第一次連接Arduino主板的時候會提示更新固件。這個按提示操作就好了。
接下來看一下Arduino部分的編程。Arduino一直檢測老師按鍵是否按下。當按下以后等待釋放。接下來就要一直等待三個選手有一人按下按鍵。直接上程序吧??傊畠删湓挘蠋煕]按,等老師。老師按下,等學生。當然狀態的更新也是伴隨著變量的更新的。
04角色的編程
在舞臺區使用的是教室背景。然后三個選手,一個老師。使用字幕在黑板上進行狀態的顯示。同時使用一個作答標志作為選手搶答有效的指示。
這里重點說一下老師的編程。老師有一個朗讀的功能,去宣讀某位同學搶答成功開始作答。所以朗讀功能需要做初始化。然后就是等著老師按鍵按下。老師按鍵按下,準備狀態等于1以后,就等待選手編號的更新。對的,和Arduino編程的結構非常的相似。
在原版scratch里,硬件的擴展都是作為一項功能擴展來使用的。無論樂高EV3、wedo還是microbit,它們都和畫筆功能語音功能同等級別,都是作為一個功能擴展存在。雖然加入了硬件,但是編程還會依托于角色,把硬件的編程融合到了角色里面。
而在慧編程里面,任何的一種硬件都是和角色同等級別的?;蛘哒f使用在線模式的時候,一個硬件就是一個角色。角色的編程和硬件的編程是相互獨立存在的。并不能把硬件的編程數據采集直接融合到角色里面。不過還是可以使用變量功能作為中間傳導的。
我認為第一種情況,有助于快速的實現效果。但是后面這一種情況更有利于我們理解數據的傳導過程。兩種方式,仁者見仁吧。
編程讓生活更有趣,我是蘇小糖,多謝各位看官捧場。