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鍵(相當於等於)

    • 最後會把兩數相加起來,並顯示出來

    • 教學影片

    • [作業】同學們可以按照相同的方法再把減法、乘法、除法的功能加入,形成一個功能比較強大的計算機!