呈上篇「教師運算思維推動計畫」研習紀錄(第一天) ,這裡紀錄105.0725~0727我參加開放硬體與scracth應用研習的第二天課程(與部分第三天教的功能)。
以下是第二天課程整理(流水帳),這天比較偏理念的東西就放在下一篇~~
承接前一天的題目:設計按一下會亮,按一下又不亮。老師也解釋為什麼昨天他的程式邏輯上是對的,但卻是不會動。
老師說是電腦協調Arduino的能力不夠。uno這塊的處理核心相當於8位元的電腦。而大部分的電腦是64位元。只要在迴圈下面放一個等待0.1秒或是0.01秒,就可以動了。老師舉例,就好像是命令者快,但是做事者慢,命令者太快,所以被命令者選擇忽略,只要給一點緩衝時間等待,就能執行。
硬體介紹
用老師的相片介紹這三天研習的輸出與輸入裝置。相較我用手機拍的,他拍的真清楚啊~
下面是紅外線發射(輸出),紅外線接收(輸入)。目前用不到。S2A用電壓,紅外線用頻率。
下面是單點循跡,紅外線發射與接收。偵測黑白,紅外線遇到白色反射率高,紅外線遇到黑色反射率低。這是類比輸入。
蜂鳴器,輸出裝置,而且這個是無緣的蜂鳴器,"無源"蜂鳴器啦!另二個是LED燈。
下面是水銀開關、按鈕開關、微動開關。
下面是一些類比輸入,旋轉開關(可變電阻)、熱敏電阻、光敏電阻、搖桿(裡頭有二個方向的可變電阻)。
搖桿,XY由可變電阻變化而得,還具有下壓的按鍵功能。所以一般的電阻是三支腳,只有一個訊號。搖桿有三個訊號,五支腳。
類比輸入練習
老師說,PWM要有~(蚯蚓)的。通常按鈕開關在2,而0與1給藍芽。
也講解了插槽的意義,上面一排黑紅藍是由右而左的012345678...。
========= 黑 (相通)
========= 紅 (相通)
========= 藍 (訊號,不相通)
下方的插槽卻是多了A,由左而右依序是A0、A1、A2、A3、A4、A5...這個A代表的是類比腳位。類比腳位只有輸入,於是我們學類比輸入。
將按鈕開關插入A1。如何看到類比A1的值?可以透過變數來看,怕它反應太慢罷工,迴圈中讓它多等待0.1秒。
發現,按下去是1023,放開變成0。數位輸入值是0與1,類比輸入是0與1023,開關不只是數位輸入,也能類比輸入(插槽要多一個A)。
程式不變,把剛才的按鈕開關直接換成旋鈕(可變電阻),數值就會落在0-1023之間,下圖的數值是504。
利用不同輸入元件控制猴子吃香蕉
接著透過現成的猴子接香蕉遊戲來改造。原本的猴子是用鍵盤按鍵控制左右,現在要改成用可變電阻(旋鈕)來控制左右。也就是說,把輸入裝置變成我們手邊的輸入元件。
先利用剛剛接的旋鈕開關。
分析猴子的行為,立正站好與向左右走。一般都認為抓512,>512或<512,但這樣就沒有中間值,所以老師建議抓加減20,也就是>532,<492。
接著是進階,因為我們的輸入裝置已經比鍵盤強太多。如何控制移動速度,例如轉多就跑多一點?轉少就跑少一點?
另一方面,前面用的是相對座標模式,此時也可以再進階到絕對座標模式,利用可變電阻0-1023的範圍來控制猴子左右位置。X座標在-240~240之間,實際上只要抓210因此來換算,這時候就需要數學能力了。輸入:0---1023,猴子移動X座標:-210--210,最後用2.44來換算。
還能利用光敏電阻來控制猴子。手機手電筒提供光源,先找出值的變化,越近越亮值大、遠則暗數值小。我的是950~1000,所以要重新算數學找換算關係。比剛剛還麻煩一點,其實這種換算跟理化在學自製溫標換算很像~ 學生是理化不懂,還是數學不會呢?
改成搖桿輸入如何?搖桿用相對輸入比較好玩。也有老師設計讓猴子可以在X軸移動,也能在Y軸移動,就像會飛一樣。老師建議,這時如果幫猴子加上翅膀就會更貼切。
"是無源,不是無緣"的蜂鳴器
無源的蜂鳴器,念起來就跟音源線(姻緣線)一樣有諧音。它的功能類似喇叭,但更省電。在S4A是插在5、6、9。 啟用數位腳位9為PWM,模擬聲音大小0-255。在S2A則多了音調功能來代替PWM。如果要讓它唱歌,可以配合清單。不過我不會使用清單,但是有老師做出來了。就聽到無源蜂鳴器在唱歌了。 需要二個清單,一個是音調,一個是拍子(時間)。
scratch原本的音效功能比較厲害,現在只是利用開放硬體控制聲音。至於如何關掉音調?有的老師是利用頻率為0,也可以直接關閉該腳位音調。或搭配原本的音樂功能用拍或是更改節奏。
第三天,老師也介紹有源蜂鳴器。這個只有二條線,黑色G,紅色S。而且它是長短腳,就像是會叫的LED。如果搭配光敏電阻由值轉變成時間變數來控制叫聲,就能像倒車雷達一樣,越接近叫越急促或大聲。
Yu-chang Liu老師分享:
連續旋轉伺服機
連續旋轉伺服機,大陸叫舵機。我心想,這不就是馬達嗎?
腳位可接4、7、8,根據經驗法則,它是吃電怪獸,要先連接馬達再接上US,不然易斷線。 如何控制正轉逆轉?控制時仍是用角度伺服機的控制法則, 旋轉90即停止,若90度不會停,可以設定腳位4為0。學到這裡我的腦袋缺氧,學得不太清楚。我發現我的伺服機旋轉時順與逆速度不一樣,有時快有時慢。
老師分享,如果在上面畫黑白圖案,也能搭配"循跡"測出一分鐘轉幾圈。 (如何用scratch紀錄數據呢?這應該也可以寫,但我還不會。)
光敏電阻DIY
第二天下午安排一個DIY體驗。用便宜的物件來做事,老師教我們做光敏電阻DIY,也將三支腳變成二支腳。早期是利用麵包板來接。
從剝電線、接電阻、夾杜邦接頭到熱縮管。
覺得自己做不錯(有天分),但是測試時居然不過電。亮君不認為自己會成功居然成功,而我不認為自己會失敗居然失敗。
有光敏電阻與紅外線發射,這樣就可以是一組光柵開關。好幾組在垂直方向就能做重力加速度,紀錄物體在何時通過,再用距離換算加速度。
老師分享幾個可以用紅外線發設計與光敏電阻做的事, 例如能做二台電腦的溝通,一台用發射紅外線,一台用光敏電阻接收閃爍時間。就像海軍用燈號閃爍(羅斯福電碼) ,產生編碼(幾長幾短)再解碼。讓LED亮多久,光敏電阻就接收多久...
當然要寫出程式來控制才算。