2017年12月8日 星期五

Scratch小教室(入門) - 第4課 : 往上跳


學習目標 : 利用觸控開關控制Scratch小貓讓他垂直跳躍
預估時間 : 25min
使用模組 : (1) faya brickNano
                 (2) faya搖桿模組
                 (3) faya觸控開關模組
工具 : 積木組 / 積木底板


=====================相關知識====================
第3課我們讓小貓能夠如同動畫般的左右移動,使其左右移動的硬體介面是[搖桿模組],在這一課,我們要用另一個硬體介面[觸控開關]模組,當按下觸控開關模組時,小貓會跳到空中,聽頓一會兒,在降落到地面。

S4A畫面右上角的一堆跳來跳去的數字中,其中有一個Digital2,用來偵測數位第2腳的狀態,在第一課硬體安裝中,我們將Arduino的數位第2腳連到觸控該關的輸出,因此Digital2等同在偵測觸控開關的狀態。
 

因此當我們按下/放開觸控開關時,會產生以下關係:

  • 未按下觸控開關時,Digital2狀態為false
  • 按下觸控開關時,Digital2狀態為true
補充:
Arduino數位輸入腳位的特性- 當接收到大於3.3V的電壓會視為HIGH,小於1.5V的電壓視為LOW。針對此特性,fayalab將觸控開關模組設計成,當碰觸到兩半圓銅薄時,會輸出接近VCC (5V)電壓,當兩銅薄片未被碰觸時,會輸出接近GND (0V)電壓。此操作符合按下開關輸出HIGH,放開開關輸出LOW的直覺關係。有興趣了解故觸控開關運作的人,可以參考faya觸控開關模組


=====================小貓往上跳====================
程式:L4_jump.sb

第3課我們完成了小貓左右走的程式,如下所示:



我們可以舉一反三的再拉一個[如果]判別區,判斷當觸控該關按下時,小貓會呈現縱向的移動(往+Y軸方向移動100個單位),我們在空中讓小貓停留0.5秒,然後再往下降若到地面,程式如下:



完成後,按一下綠色旗子啟動,然後按下觸控開關再放開,程式無誤的話,小貓會往上跳,停頓0.5秒後再降回地面。

======================製作地面==================== 
程式:L4_jump_background.sb

剛剛提到降回地面,在結束這堂課之前,我們在背景加一個地面,一來讓小貓看起來像在地面上跑,二來加一堂課需要透過這個地面來做程式的判別,步驟如下:

首先點選右下角的[舞台],然後點選 [背景]頁面,最後按下[編輯]按鈕


我們在整片空白的舞台的最底端,加入一單色長方形地面,用單色的原因是讓未來的程式好判斷,畫圖的方式類似小畫家,在此就不贅述了,請自行加入喜歡的地面顏色


完成後,按下確定,此時S4A的舞台區就會多了地面,大家可以用滑鼠拖曳小貓,讓他站在地面上,類似以下的畫面。



試試看:
重複按著觸控開關,觀察小貓的動作?  

當我們壓著觸控開關不放的時候,小貓會重複執行跳躍的動作,原因在於我們把三個[如果]的判斷放在永久回圈內,當按下綠色旗幟時,程式就一直輪流偵測這三個判別式,偵測的順序為[右移 -> 左移 -> 跳躍],因此當執行過一次跳躍後,程式會回到偵測左右的移動,當搖桿沒有動作,且手指頭還留在觸控開關上時,程式就會再次執行跳躍的動作。

大家可以在S4A的選單選擇[編輯]/[開始單步執行],會發現3個如果區塊一直輪流閃黃燈,接著在按下觸控按鈕不放,會發現每次判斷跳躍時,就會進入此區塊執行跳躍動作。


======================心得======================

我們在這一課學到如何透過觸控開關讓小貓往上跳,另外我們修改了背景,在背景下方加入了不同顏色的地面,方便在未來的程式加入判別的條件,我們在下一堂課就會用到。

<< 第3課 : 向右走
>> 第5課 : 重力跳
====================================
fayalab 粉絲團


沒有留言:

張貼留言