相關文章

8d8cb3fe2dcaf29549b5aad0554eae17 在T客邦舉辦的Maker Club已經累積相當多場了,過去我們邀請了老師來教我們做過自走車、四軸飛行器、遙控車、機械手臂,也用過多種不同的開發板,不過每次都是專案式的教學,針對單一主題來實作。雖然覺得學的有趣,不過有時會有「自己的基本功顯得有點匱乏,如果再把底子打好一點可能會更好」的想法。

因此,基於上面的想法,我們決定回歸初心,邀請了與Maker Club合作相當多次課程的Motoduino 團隊,開發了這一堂最基礎的入門課程。這次的課程從上午九點半開始,到下午五點半結束,課程相當紮實。Motoduino 團隊設計了11個主題,藉由這些主題,可以帶領學員從課程中認識Arduino的基本驅動,輸出入的應用,並且進一步理解Arduino如何搭配LED燈光、馬達、蜂鳴器等各主題來活用。

Motoduino 團隊介紹

Motoduino 團隊成員包括 Dennis Chen, M.B. Lee, Sam Lin,本身都是資深 Maker,並長期投入開放硬體的研發及教學,專長包括網路應用程式開發、彩色影像處理、色彩管理及影像辨識、Android 手持裝置應用設計、開放硬體相關設計(Arduino/Raspberry Pi)。

三位老師已在 T客邦 Maker Club 開過 Arduino 手機藍牙遙控車實作坊Intel Edison Wi-Fi 無線遙控攝影車實作坊,為了讓更多人無痛進入 Arduino 開發板的領域,因此再度與 T客邦合作,開設完全學會的入門實作課程。

基本功,認識Arduino

你可能已經用Arduino 套件自己做過了一些成品出來,但是可能對於這個Arduino 開發板到底有什麼功能還一知半解。因此,上午的課程首先是帶領大家認識Arduino 開發板。

(圖片提供:Motoduino)

上面的圖示是以Arduino UNO為例說明,一塊Arduino板子基本上是以Atmega328p晶片為主,然後提供有類比輸入以及數位輸出/入的接腳,一般來說,數位輸出入的接腳會是開發者主要用到的地方。可以透過USB Port去與電腦進行連線,並且供電。不過USB Port的供電電力很小,因此如果有額外電力的需求,則還要透過外接的電源來供電。

有些人或許會搞不清楚 Arduino 的念法怎麼念?由於Arduino是由義大利人開發的,念法為「”ARRR-DWEE-NO(阿- 丟 - 諾)」。不過,因為最近當初開發者鬧分家,因此現在在美國以外的地區,也會稱為「Genuino」,事實上與Arduino是一樣的。

Arduino開發板主要的特色就是可以幫助開發者快速設計原型機,也適用於小量的產品生產。開發環境簡單,使用許多程式設計師都常用的C/C++ 語言就可以開發,或是如果對程式不是那麼熟的人,或像是中小學生,也可以使用視覺化程式語言 Scrtach來應用。

 

開發板、相容板、擴充板有何不同?

Arduino原廠有針對不同的目的用途,設計了不同種類的開發板,像是下面這些就是:

不過因為Arduino是開源的架構,因此除了原廠外,其它廠商也可以生產相同功能的東西,只是名字不能叫「Arduino」,這些就叫做「相容板」。通常開發相容板的廠商,除了會參考Arduino的板子功能之外,還會另外再加上一些需求,生產出自己的板子,下面這些就是比較知名的相容板。

而我們這次上課所用的開發板,就是由Motoduino以Arduino UNO為基礎,再加上特別的輸出入需求,所開發的Motoduino U1為教材。

 

 

我們前面說過,一塊Arduino板子有提供類比輸入以及數位輸出/入的接腳,一般來說,數位輸出入的接腳會是開發者主要用到的地方。而這些腳位的位置是固定的,你可以直接在上面安插電子電路元件,或是自己用麵包板來連接電路。

不過,有些人可能會有一些大部分的、共通的需求。比方說你可能需要控制蜂鳴器、加一個小螢幕、控制某些感測器元件等等,那麼如果你覺得自己插線太麻煩,也有一些人提供了現成的擴充套件,集合了某方面常用的元件做成一塊擴充板,讓你買來插上去就能用。

很多擴充板採用堆疊式的設計,讓你可以一直往上擴充,就像積木一樣可以無限擴充能力。

而在這次的課程上,我們會用到的是Motoduino 團隊所開發的S4A互動板,透過這個可以學習到基本的LED控制、光感測器、滑桿、伺服馬達的控制等等的功能。

認識Arduino IDE開發環境

講完硬體之後,接下來就是開始瞭解整個Arduino的開發環境,Arduino的程式開發流程基本上可以分為四個步驟:撰寫程式、編譯程式、上傳到板子、執行。

 

▲這次上課的硬體材料包所附的所有內容。左上角的板子為Motoduino U1、右下角的板子為S4A互動板。

接下來就是基礎的硬體課程,首先要瞭解怎麼樣安裝Arduino IDE的開發環境,在這個部分主要就是透過USB連接線與電腦連接,然後安裝Arduino USB驅動程式,並且在電腦的裝置管理員裡頭檢視看看是否有抓到硬體驅動。基本上與一般硬體插入電腦的過程沒有兩樣,只要成功驅動之後大概就成功了一半了。

▲安裝驅動程式。

▲安裝順利的話,會在裝置管理員看到板子的名稱(電腦不同可能抓到的名稱也不同)。

完全了驅動並且抓到了板子之後,接下來的步驟就簡單了。現在啟動Arduino IDE的環境,可以開始準備編寫程式了。

上面這個就是Arduino IDE的介面,我們使用的是1.6.5的版本。你可以在這裡進行程式的編寫,然後將寫好的程式上傳(燒錄)到Arduino板子上,觀察程式執行的成果。

▲Arduino IDE的介面說明(圖片來源:Motoduino)

之後則是搭配S4A擴充板來練習操作一些外接I/O的實作,這時就要把擴充板插上Motoduino U1。你可以看到S4A的腳位設計,與下方的Motoduino U1的接腳設計是一致的,因此基本上也只有一種插法,反過來應該也插不下去,也算是防呆的一種設計吧!

 

實作與練習

這次老師準備了11個主題來協助學員理解以及學習怎麼樣控制Arduino的I/O,基本上就是幫助學員理解需要控制什麼腳位,並且要引用什麼函數傳送變數,來控制包括蜂鳴器、馬達、LED燈號、光敏電阻等的輸出入裝置。

在這個部分,主要的課程如下:

在這個過程中,小編也跟著一起學習,彷彿回到了學生時代的電子實習課,忙著在電路板上插插拔拔,把馬達、LED不停的更換電路,然後上傳程式觀察變化,再依照老師的指示來修改變數以及程式碼,看看電路是否會依照我們所想像的有所變化。

對於如果已經有了程式設計基礎的朋友來說,大概這個過程並不會太過困難,只要你懂得基本的C語言,知道if then else基本語法,再加上一點點的陣列觀念,整個課程聽下來可以說毫無難度,只要注意到怎麼樣去宣告資料型態,對應去呼叫控制IO的函數就可以了。

不過如果你不是電子科系、沒有相關經驗,也從來沒有碰過程式的朋友的話,這堂課程可能還算是有點難度,不過其實很多觀念也都很簡單,在現場也有老師會提供基本的指導,還是可以臨陣磨槍學到一些基本的程式觀念,不過如果要深入瞭解,可能就需要事後在找相關的資料來研讀了。

 

學員心得

在這次的課程中,有一位謝先生帶著他就讀國一的兒子謝小弟來上課,兩人都沒有程式撰寫的經驗,我們也採訪了他們詢問課程的難易度。

▲謝先生與謝小弟製作的簡易電子琴

▲謝先生與謝小弟

謝先生表示他本身是從事販賣電子零件的工作,而兒子目前就讀國一,主要是想要帶兒子來體驗程式語言學習的部分。不過由於完全對於這方面沒有概念,因此在過程中講述關於C語言的部分,會顯得有點吃力。不過跟著範例一直輸入、執行,大概也有點稍微瞭解整個開發的過程,還是學到了許多概念。

而謝先生表示,對於他這種毫無經驗的人來說,或許Scratch這種圖像化的程式語言會更適合新手上手。他未來也會考慮帶著兒子去學習有關於Scratch方面的課程。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則