卡片式電腦

電腦不一定又大又昂貴。市面上已出現各類小巧便宜的電腦,這些卡片式電腦能讓學生學習程式編寫、電子及電路的基礎知識,並且輕易製作出屬於自己的電子裝置。世界各地[1](如美國[2]、英國[3][4]、台灣[5])的中小學生紛紛運用卡片式電腦來學習編寫程式和製作自己的發明。

Arduino[6] 和樹莓派(Raspberry Pi)[7]是其中兩種最流行的卡片式電腦,適合程式編寫初學者建立屬於自己的發明。

Arduino

Arduino [6] 是一套易用且建基於開放源碼平台的硬件和軟件。Arduino底板(圖1)能夠讀取各種輸入如:感應器偵測到光線、手指按動按鈕、或一個Twitter訊息;並把它變成一個輸出如:啟動摩打、點亮LED燈或在網上發佈信息等。你只需要把指令轉送到Arduino上的微控制器便可一一操控。

https://www.arduino.cc/en/Main/ArduinoBoardUno
圖 1: Arduino 板
(來源: https://www.arduino.cc/en/Main/ArduinoBoardUno)

你或會疑惑一個對程式編寫一無所知的人何以寫出複雜的指令,但其實編寫 Arduino 程式並不如想像般困難。它備有自己的程式語言[7]和開發環境[8](圖2),對於初學者來說簡單易用,其靈活介面使進階用家同樣受惠。

https://www.arduino.cc/en/Guide/Windows
圖 2: Arduino 的開發環境
(來源: https://www.arduino.cc/en/Guide/Windows)

舉例來說,要讓一顆 LED 燈閃爍,首先組裝一個簡易的電路(如圖3):

https://www.arduino.cc/en/uploads/Tutorial/ExampleCircuit_bb.png
圖 3: 利用 Arduino 組裝的電路
(來源: https://www.arduino.cc/en/uploads/Tutorial/ExampleCircuit_bb.png)

接著,你只要在 Arduino 軟件編寫以下程式碼驅動閃燈:

  void setup() {
    pinMode(13, OUTPUT);
  }
  void loop() {
    digitalWrite(13, HIGH); 
    delay(1000);            
    digitalWrite(13, LOW);
    delay(1000);
  }

只需這幾行指令,連接著 Arduino 板的LED 燈便會閃爍。

你是否仍然覺得程式碼很難明白?不用灰心,還有更容易、更具視覺的方法。圖像編輯器 Scratch for Arduino (S4A)[9] 是一個尤為適合小學生和初學者使用的基礎工具,讓他們可以利用拖放方式來編寫 Arduino 程式(圖 4)。

https://blog.arduino.cc/2015/05/11/scratch-extension-for-arduino/
圖 4: S4A 界面
(來源: https://blog.arduino.cc/2015/05/11/scratch-extension-for-arduino/)

如上述LED 閃爍這樣的例子,可以通過放置動作方塊來構成(如圖5)。

http://www.instructables.com/file/FTLPMWGHCV97K30
圖 5: 利用 S4A 令LED 閃爍
(來源: http://www.instructables.com/file/FTLPMWGHCV97K30)

Raspberry Pi

樹莓派[6]是一款低成本的卡片式電腦(圖6),可接駁電腦顯示器、電視機、標準鍵盤和滑鼠。這是一部適合各年齡層探索電子計算的小裝置,並由此學習如 Scratch 或 Python 等程式語言。它能勝任一般桌面電腦所能運行的工作,如瀏覽互聯網、播放高清影片、製作試算表、文字處理和玩遊戲等。


圖 6: 樹莓派 (型號:Raspberry Pi 2 B)
(來源: http://hken.rs-online.com/web/p/processor-microcontroller-development-kits/8326274/)

就以同一例子,看看如何使用樹苺派令 LED 燈閃爍。首先,將 LED 燈連接到樹苺派(如圖7)。

http://simplesi.net/scratchgpio/scratchgpio-1st-project/
圖 7: LED 燈連接到樹苺派
(來源: http://simplesi.net/scratchgpio/scratchgpio-1st-project/)

編寫指令只需以下幾行程式碼:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT) 

while True:
  GPIO.output(7,True)
  time.sleep(1000)
  GPIO.output(7,False)
  time.sleep(1000)

如果你覺得以上程式碼仍是太複雜,樹苺派同樣提供以拖放方式來編寫程式的圖像編輯器 Scratch[11] (with ScratchGPIO expansion package[12])。

http://simplesi.net/scratchgpio/scratchgpio-1st-project/
圖 8: Raspberry Pi with ScratchGPIO 程式
(來源: http://simplesi.net/scratchgpio/scratchgpio-1st-project/)

利用卡片式電腦製作校園發明

利用 Arduino 或 樹莓派,你可以通過既簡單又易用的程式語言和開發環境來自製各種電子裝置。你可以自製裝置來探測課室是否有人,或者寫一個程式來演奏校歌,又或者製作一些教材工具……你還想到什麼校園電子裝置呢?來參加我們的校園發明大賽,將你的想法實現出來吧!

參考


Use standard-compliant browswers such as Firefox (multiplatform) or Safari on Mac OS X for best experience.