繼國際暑期兩日營之後,來自各界的迴響真的很多,於是我們決定撰寫藏寶箱與城堡的教學文章來回應大家的期待啦!!
實際課程可參考: [ 國際暑期兩日營 ] BOSON遇上LinkIt 7697程式大冒險
想要先了解不寫程式版本教學文章可參考:【電子積木好好玩】BOSON城堡內有什麼神奇的機關呢?
作者/攝影 | 陳俊霖 |
時間 | 約1小時 |
難度 |
★★★☆☆ |
材料表 |
|
首先,先把城堡組裝起來,加上一些裝飾。
在動畫或電影裡,我們常常看到許多士兵、帥氣的騎士、還有法師,他們都為了保護城堡而挺身作戰,這次,就讓我們動動小手,從零開始打造一棟結合中古世紀建築風格與現代自動化科技的城堡吧!!
城門用棉線與連動桿連接,連動桿再由伺服馬達控制,下圖城堡內部右側就是城門的開關機構。
城堡建造完成了,但是我不想把城堡開放給所有人。
因此,我需要輸入暗碼才能夠開啟城門,至於關閉城門,就交給守門人按按鈕關閉吧。
那麼我們就會需要一個旋轉感應器跟一個按鈕開關來完成我們所需要的動作。
下一步就開始連接我們的BOSON以及Linkit7697吧。
將BOSON 與NANO擴充板如下圖連接:
將按鈕接到D7,伺服馬達接到D5。
再將旋轉感應器的黃色線連接到A0,
但是記得,旋轉感測器的紅色線與黑色線要接到2.5V的電源,不然就只能轉一半,另一半會一值維持4096唷。
連接完成之後,開啟BlockyDuino,撰寫程式如下:
(還沒下載BlockyDuino的同學可以到這裡下載最新版本)
這裡的程式一開始先定義一個名為Dooropen的布林變數,布林是英文boolean的翻譯,意思是指有是跟非兩種狀況的變數,在這裡代表門的狀態。
接下來再重複執行裡,一開始先判斷旋轉感應器的值是不是在1200~1800之間,同學可以自己更改這個數值來改變自己的暗碼。
如果暗碼輸入正確,就開啟城門迎接主人的歸來。
接著,別忘了把門關起來,不然城堡會遭小偷呀!!
所以,當我們按下按鈕,會把Dooropen這個變數設定為否,那麼門就會關起來了!
但是,明明一個if判別式就可以完成的動作,為甚麼要在新增一個變數呢?
因為如果只用一個if的話,只要條件一不符合,門就會自動關上。
也就是說,會無法維持門開啟的狀態,因此我們才會需要用一個變數來儲存門的狀態。
拉好積木,寫好程式之後,就可以把程式燒錄到Linkit7697上面。
將Linkit7697接上電腦,選取正確的COM埠,按下燒錄按鈕,等待Linkit7697燒錄成功即可。
測試一下自己的城堡是不是能夠正常動作呢?
恭喜你開始建造自己的莊園,下一步可以慢慢的把自己的莊園擴大,製作幾位士兵來保護城堡吧!
像這位同學就在自己的屋頂製作一個防空炮還有戰車呢!!
城門可以透過繩索來開關,是不是很酷呢?
伺服馬達除了能夠作為城堡控制城門的機關之外,也可以當電子鎖的驅動機構,也可以用來做許多東西唷~