01 認識Arduino與PictoBlox

(2021/07/03)

暑假開始了....今年因疫情的關係,從5月19日停課到昨天(07/02),所有暑假的夏令營活動也都暫停取消了!想說有一些時間再來寫寫教材,近來因micro:bit的親民與便利,國小【硬體控制】教學大都轉移到micro:bit,大都數人漸漸忽視了最初打下江山的Arduino,Arduino真的不好用嗎?不適合國小學生嗎?其實Arduino還有不少好處,我想最大的好處就是便宜,淘寶一塊Uno不到100 元,而且內含眾多功能的擴展板也不到100 元,全班25位小朋友不到5000元就搞定了。那是不是沒有適合國小學生的視覺化積木軟體可用呢?應該也不是,今年貓咪盃就提供了不下5種的積木程式可用!當然如果能跟SCRATCH結合那就更好了,能將學生所學的SCRATCH加深加廣的應用到Arduino的控制。這次我要介紹用來控制Arduino的積木軟體是這次全國貓咪盃都沒有人使用的PictoBlox(我之前曾介紹它用來控制ESP32的小車),這是基於SCRATCH所延伸出來的平台,適用多種硬體,這是印度人(感謝蔡亞柏老師提供正確資訊)設計的也不會有國安疑慮。接下來就讓我們來看看如何利用PictoBlox就能很簡單的來控制Arduino,對了,它也有兩種模式,一種是舞台模式(Stage),可以讓Arduino與舞台上的角色做互動;一種是上傳(upload)模式,可以直接把程式燒錄進去Arduino進行離線控制。我覺得真的很適合國小學生來使用

一、認識Arduino

  • Arduino,是一個開放原始碼的單晶片微控制器,它使用了Atmel AVR單晶片(AVR 是 ATmel 這家公司設計的 8 位元晶片),採用了開放原始碼的軟硬體平台,建構於簡易輸出/輸入(simple I/O)介面板,並且具有使用類似Java、C語言的Processing/Wiring開發環境。

        • 微電腦控制板就像是一個具有大腦和神經線,但是沒有感官和行動能力的物體。

        • 也可以把它想像成一台小電腦(主機)

  • 開發沿革:(取自維基百科)

Arduino的核心開發團隊成員包括:馬西莫·班齊(Massimo Banzi)(Italy)、大衛·奎提耶斯(David Cuartielles)(Spain)、湯姆·伊果(Tom Igor)(USA)、贊布羅塔·馬提諾(Gianluca Martino)(Italy)、大衛·梅利斯(David Mellis)(USA)和尼可拉斯·蘭比提(Nicholas Zambetti)。

  • Arduino創始人Massimo Banzi在TED大會的演講

  • 據說馬西莫·班齊之前是義大利Ivrea一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。2005年冬天,馬西莫·班齊跟大衛·奎提耶斯討論了這個問題。大衛·奎提耶斯是一個西班牙籍晶片工程師,當時在這所學校做存取學者。兩人決定設計自己的電路板,並引入了馬西莫·班齊的學生大衛·梅利斯為電路板設計編程語言。兩天以後,大衛·梅利斯就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino幾乎任何人,即使不懂電腦編程,也能用Arduino做出很酷的東西,比如對感測器作出回應,閃爍燈光,還能控制馬達。隨後馬西莫·班齊、大衛·奎提耶斯和大衛·梅利斯把設計圖放到了網上。保持設計的開放原始碼理念,因為版權法可以監管開源軟體,卻很難用在硬體上,他們決定採用創用CC許可。創用CC是為保護開放版權行為而出現的類似GPL的一種許可(license)。在創用CC許可下,任何人都被允許生產印刷電路板的複製品,還能重新設計,甚至銷售原設計的複製品。你不需要付版稅,甚至不用取得Arduino團隊的許可。然而,如果你重新發布了參照設計,你必須說明原始Arduino團隊的貢獻。如果你調整或改動了電路板,你的最新設計必須使用相同或類似的創用CC許可,以保證新版本的Arduino電路板也會一樣的自由和開放。唯一被保留的只有Arduino這個名字。它被註冊成了商標。如果有人想用這個名字賣電路板,那他們可能必須付一點商標費用給Arduino的核心開發團隊成員。

  • Arduino主板有許多種類:

          • Arduino UNO

          • Arduino MEGA 2560

          • Arduino Nano

          • Arduino Due

          • Arduino Yun

          • ....

      • 認識 Arduino UNO

          • 資料取自Arduino Uno功能簡介(很好的一篇文章)

          • uno 義大利文是【一】的意思

          • 這是絕大多數Arduino入門者第一塊擁有的控制板

          • 原廠 Arduino Uno

  • 大陸相容的 Arduino Uno (兩種板子皆使用Mega328P晶片,只是不同的封裝,相容板並非盜板,因為原廠開源且授權商業用途製造之故)

  • 數位腳位(輸入、輸出):D0、D1... D13

  • 類比輸入腳位(ANALOG IN):A0、A1...A5

  • 類比輸出腳位(PWM腳位):D3、D5、D6、D9、D10、D11(有小蚯蚓的符號,數位模擬類比)

二、認識 LED燈

  • LED燈就是發光二極體,是一種能發光的半導體電子元件

  • 現在的應用很多,如:電燈、車燈、手電筒燈、交通號誌

  • 正負極

  • 點亮LED燈

    • 通路與斷路介紹:

            • 通路:電路形成封閉迴路(電流可流通),電燈亮起來!

            • 斷路:電路形成切斷的電路(電流無法流通),電燈不會亮!

三、利用Tinkercad模擬Arduino環境

  • 老師可以建立班級,方便學生的登入及管理

  • 體驗電路的設計

    • 點亮LED燈

  • 利用程式讓LED燈一亮一滅

    • 直接接D13腳位

    • 如何避免LED燈燒壞呢?

四、認識電流(I)、電阻(R)、電壓(V)

    • 電流(I):

    • 電阻(R):

    • 電壓(V):

    • 電壓(V) = 電流(I) * 電阻 (R) (電壓和電流成正比,電壓和電阻成正比,電流和電阻成反比)

    • PhET 歐姆定律 https://phet.colorado.edu/sims/html/ohms-law/latest/ohms-law_zh_TW.html

  • 利用PhET來進行電路教學

、安裝PictoBlox

  • 下載完後,進行安裝

六、利用PictoBlox寫一簡單程式來讓D13上的LED燈一亮一滅

  • 執行PictoBlox (桌面上會有一【小熊圖示】的捷徑)

  • 環境介紹:

  • 由於我們這次要利用PictoBlox來控制Arduino Uno

    • 先把Arduino Uno開發板利用USB線與電腦連接 (事先已安裝好Arduino的驅動程式了)

    • 點擊PictoBlox上方的Board,並找到Arduino Uno的板子,接著若有找到板子,就可進行連線

  • 從舞台上方看到兩種模式可以選擇

    • Stage(舞台模式):可以讓Arduino與舞台上的角色做互動,但要記得先把舞台模式所使用的韌體燒錄到Arduino開發板去,只要燒一次就可以了,如果改變模式後,下次要使用舞台模式時還要再燒錄一次。

    • Upload(上傳模式):可以直接把程式燒錄進去Arduino進行離線控制。

  • 點亮D13的LED燈

  • 利用【舞台模式】,讓D13的LED燈一亮一滅

  • 利用【上傳模式】,讓D13的LED燈一亮一滅,如此一來就可以離線操作了

  • 利用PictoBlox來寫程式控制Arduino開發板,就跟寫SCRATCH程式一樣,是不是很簡單啊!