寫過程式嗎?像是用Scratch來做製作自己的遊戲或是動畫,或是使用LEGO EV3或是mBot打造自己的機器人系統。其實,寫程式有非常多不同的功用,這本書的目的是協助大家透過LinkIt 7697,搭配一些基本的電子元件跟感測器,再透過自己撰寫編輯的程式,賦予我們的創作品具有智慧,再讓它們連接上網路,成為廣大網際網路中一員,打造自己的雲端服務,聽起來超酷的吧!所以,就請跟著我們,一起透過這本書,來玩一場物聯網的大冒險!
什麼是物聯網?
您可能會想問?剛剛我們一直提到物聯網,到底物聯網是什麼啊?過去我們在網際網路上所瀏覽的內容,不論是文字、圖片、音樂、影片或是小遊戲…等,都是由其他的「人」所提供的。
我們希望未來的世界,環境中的各種裝置、物品,其智慧程度越來越高,讓「物」透過網路,依照我們所建立的規範與方式(其實就是寫程式啦¬),彼此相互溝通、做出決定、予以實行,並適時地通知「人」。
就像哈利波特世界中的家庭小精靈,能在不打擾主人的情況下,默默地讓我們的日常生活維持高品質的運作。
就先舉我們第六章「智慧電風扇」為例子,一般的電風扇我們要自己去啟動或關閉,並調整它的轉速等運作功能;但是連接上網路的智慧電風扇,我們可以透過雲端服務網站,在很遠、很遠的地方就可以控制它,也可以讓這台電風扇自己去感覺房屋內的溫度,然後調整風速跟風向,是不是很厲害呢?
要怎麼開始展開我們的物聯網大冒險呢?
「有好多新的觀念、名詞,我不太懂耶!」沒有關係喔!這些我們在後續的章節都會一點一點、慢慢跟大家解釋,所以大家可以放心。在展開物聯網大冒險之前,我們要先在自己的電腦上,安裝好一個名叫「BlocklyDuino」的程式編輯器,這樣我們之後寫程式就會非常方便喔!但是要怎麼裝呢?
第一章 好涼快喔!自己動手做一個電風扇
圖1 小風扇成品圖
讓直流馬達轉動
我們的第一個程式練習,是要讓直流馬達轉動。
請大家到【類比I/O】分類中,找到第二個「類比寫入」積木。積木上的Pin選4,然後在數字的欄位寫上255,這會讓馬達全速運轉;再拿出同樣一個「類比寫入」積木,Pin選5,然後在數字的欄位寫上0。
圖7
再來按下像撥放鍵的符號來上傳程式。請注意,按下後,必須要看見「The board reboots now」這段英文,才算燒錄成功。
馬達有沒有開始轉動了呢?很棒吧!
菜菜:
那如果我覺得馬達轉得太快了,想讓它轉慢一點的話,我該怎麼做呢?
阿吉老師:
請在「類比寫入」積木上的數字欄位,改為任何一個比255小的數字就可以囉。
第二章 碰!碰!碰!電流急急棒
這一次我們要做的是電流急急棒,希望能夠做出當鐵棒碰到軌道時會發出音樂聲,而且可以透過寫程式改變音樂聲,或是發出尖銳的聲音,讓人嚇一大跳。可以跟家人玩或和朋友一起比賽,看誰的手比較穩。
讓我們用Linklt 7697開發板,還有樂高積木,做出一個實體版的電流急急棒。
琮琮:我一定比你厲害,一下子就可以闖關闖過了。
菜菜:阿~失敗了!但音樂好好聽~。
一起動動手
電流急急棒是由鐵棒和軌道組成,我們要先做這兩個部分,再看看如何用程式與電流急急棒互動。
1. 製作鐵棒
第一步:拿出斜口鉗,剪下適合長度的鐵棒。
圖2
第三章 叮咚!叮咚!自動升降的交通柵欄
大家有沒有在停車場看過像下面這張圖片的電動柵欄呢?如果你沒有繳錢的話,電動柵欄就不會讓你的車子通過喔!
這一章我們會用伺服馬達帶大家做一個交通柵欄,還會帶大家用手機藍牙連線的方法,控制電動柵欄。
圖1
一、什麼是伺服馬達?
在控制伺服馬達之前,我們要先對伺服馬達有基本的認識。伺服馬達大部分被使用在遙控模型,控制模型的移動方向,例如,可以控制模型車前輪轉彎的方向,所以不需要像直流馬達一樣一直的轉動,而是對於角度更有準確的控制。伺服馬達有分成「連續旋轉馬達」和「非連續旋轉馬達」,「連續旋轉馬達」轉動的角度從0到360度之間,而我們用的就是「非連續旋轉馬達」,轉動角度在0到180度之間。
圖2模型車
第四章 看誰按得快!按鈕搶答器好好玩
大家看過電視節目中益智問答遊戲的搶答器嗎?當兩邊的選手差不多同時按下自己的按鈕時,便要透過機器判斷到底誰先按下按鈕。比較快按下的那一邊會亮起LED燈,另外一邊燈就不會亮。
在這一章,我們將介紹用在圓形開關中的極限開關接線。另外,也會運用之前介紹過的「數位輸入」,與BlocklyDuino中的【邏輯】程式積木。
圖1
一起動動手
認識材料
動手做之前,我們先來認識本章的新材料吧!
1. 麵包板
麵包板常被用來連接各種電子元件,請見下圖。中間區域被用來設計電路,直行每5個點互相接通,行和行間彼此不互通,上下兩欄也彼此不互通。最上方和最下方兩區域被稱為匯流排,每列的25個橫點互相接通,列和列間彼此不相通,接線時需特別注意。
圖2
2. Linklt7697擴充板
Linklt 7697擴充板和LinkIt 7697開發板不一樣!因為,擴充板可以接在開發板上,讓開發板功能更強大。LinkIt 7697擴充板可接Grove系列元件和杜邦線,下面圖片中的紅框可以接數位腳位,腳位的對應例如:擴充板上的D2等於P2。
3. 中型微動開關
中型微動開關可用來連接大型按鈕。當按下開關跟放開時,電路接通的位置也會不同,請看下圖:
4. Grove 4 Pin連接線
我們會把這條線接上中型微動開關,使它可以接上Grove接頭,材料的樣子如下圖。
5. 剝線鉗
剝線鉗是一種將電線外的塑膠皮剝開,取出其中金屬線的工具。剝線鉗上會有不同的孔洞,上面標示不同的數字,這是針對著不同粗細規格的電線。請使用會由大到小的數字孔洞進行剝線。
接下來,要教大家如何接線,我們先用Linklt 7697擴充板示範,然後再跟大家解釋麵包板的接線。如果大家只有擴充板或只有麵包板,請依照自己的需求選擇看哪一部分的內容。
第五章 衝啊!看我藍牙遙控車的厲害!
在這一章,我們會介紹馬達轉動的原理,還有如何使用藍牙裝置接收字元;我們也會把手機當成遙控車的方向盤,控制遙控車的方向。
讓我們一起做出一台屬於自己的LinkIt 7697的藍牙遙控車吧!
圖1 藍牙遙控車成品
一起動動手
別急別急,因為LinkIt 7697開發板的電流,沒有辦法直接讓兩顆直流馬達動起來,所以我們要使用「馬達驅動板」。在這一章,我們使用的馬達驅動板名叫「Robot Shield」。
第一步:我們先用手機的藍牙裝置,試著控制一顆直流馬達看看,我們先接上一顆直流馬達。下面的圖片是直流馬達接線圖:
第六章 轉快!轉慢!進化版的智慧風扇
在這一章,我們最後會做出的樂高智慧風扇,是可以換成手動或自動的模式,所以這個智慧風扇會有下面二種功能:
第一種功能:自動模式,可以按照室內溫度來決定風速的大或小。
第二種功能:手動模式,我們可以用雲端的服務控制風速的大或小。
在前面的章節當中,我們有教大家利用開關來控制馬達。開關控制只有「開」和「關」,所以是屬於「數位訊號控制」,來決定馬達的「高電位」和「低電位」。
----------------------------------------------------------------------------------------------------
下面的圖片是完整的網頁控制風扇轉動的版面。所以,我們接下來的目標,就是要在MCS的網頁上,建立好這三個資料通道。
圖15 完整的MCS網頁控制風扇轉動的版面
一起動動腦:
為了要控制風扇轉動,我們會用到黃標1、2、3所代表的,一共三個MCS的資料通道。接下來,我們跟大家一個一個解釋這三個資料通道:
第一個是顯示資料通道
我們做顯示資料通道的原因,是為了要知道溫度感應器的數值,這樣我們就可以知道現在的溫度是多少囉!
圖16
第二個是建立控制通道的分類通道
動動腦人物:這邊我們要做的是自動和手動的分類通道。我們要特別注意設定的Key值很重要喔,因為這是LinkIt 7697開發板所收到的值。
圖17
第三個是建立控制通道的類比通道
動動腦人物:這裡我們做的是類比滑桿,我們可以用類比滑桿來控制風扇轉動的速度喔!而類比滑桿上限和下限的數值,我們就把數值設定為LinkIt 7697開發板的PWM值0~255。
圖18