68 凱斯KSB039之遙控器計算機
小小機器人的專題製作,任務八:遙控器計算機
一、設備
KSB039的擴展板及遙控器
二、紅外線遙控器介紹
擴展板上有一個「紅外線接收器」,可接收由遙控器發射出來的訊號
接收器本身是連接到micro:bit的P14腳位
由於makecode 中沒有「紅外線遙控」積木,因此要另外擴充「KS Robot 遙控器」的積木,擴展積木網址 https://github.com/kaise-ksrobot/pxt-ksrobot-ir
遙控器功能測試
作品說明:按遙控器的A鍵,micro:bit屏幕會顯示A;按遙控器的向上鍵,micro:bit屏幕會顯示向上箭頭;按遙控器的1鍵,micro:bit屏幕會顯示1,利用不同按鍵,做簡易的測試。
程式說明:
教學影片
三、陣列的使用
認識陣列
在電腦科學中,陣列資料結構(array data structure),簡稱陣列(Array)
是由相同類型的元素(element)的集合所組成的資料結構,資料可以是數字、布林數(booleans)或字串等。
其長度是它們所包含的項目數。當資料儲存在陣列中時,個別資料通常藉由索引數字(索引位置)來選取。
MakeCode陣列為一維陣列,其第一個元素的索引數字為0,可用如下的方式來創建一個陣列
相當於:分數(0)=95、分數(1)=85、分數(2)=90、分數(3)=100 (0、1、2、3為索引數字)
「陣列」與「變數」的關係,陣列可以說是變數的延伸,將同性質的變數可整合成一個陣列,例如計算學生各科分數時,我們可以用如下兩種表示法來計算。
上表的國語、數學、自然、社會為變數名稱,成績為陣列名稱。
四、遙控器計算機的實作
請同學想一想:
紅外線遙控器除了做遙控外,還能做什麼應用呢?
遙控器上面有數字鍵,能不能用來當計算機呢?
如果用來當計算機,會遇到什麼問題呢?如何解決呢?
將遙控器輸入的數字轉化為一個數值
演算法一:
將輸入的值乘以所代表位數(百位數為100、十位數為10、個位數為1)再加起來就是所要的數值。有沒有更簡單的方法?
演算法二:
有關演算法一是以「數」的方式來看待輸入的數字,那可不可以用「文字」的方式來看待輸入的數字呢?
MakeCode陣列有兩種宣告方式,按內含的元素,可分數字與文字,這邊採用文字陣列。所以一開始的陣列宣告部份要採用文字陣列。
補充說明:上圖的上面為數字陣列,下方為文字陣列。
當輸入完數字後,當按下A鍵時,會求得所要的數值的程式
每輸入一個數字,就把該數字放入【文字陣列】中
上圖只列出0、1;其他數字比照辦理
按A鍵後,會顯示所得的數值
教學影片
簡易加法計算機說明:
先按第一個數後按A鍵(相當於加號)
再按第二個數後,再按B鍵(相當於等於)
最後會把兩數相加起來,並顯示出來
教學影片
[作業】同學們可以按照相同的方法再把減法、乘法、除法的功能加入,形成一個功能比較強大的計算機!