arduino(Beginner)_ Upload Code.上傳程式碼
Step 1:
遙控器閃爍
準備好上傳簡單程序了嗎? 複製以下程式碼到新的Arduino專案裡並上傳到你的遙控器。 void setup() { pinMode(11, OUTPUT); pinMode(18, OUTPUT); } void loop() { digitalWrite(11, HIGH); digitalWrite(18, LOW); delay(500); digitalWrite(11, LOW); digitalWrite(18, HIGH); delay(500); }
|
Step 2:
難題排除:我的程式碼無法上傳!
如果你成功編寫好程式碼卻無法上傳,以下有幾種原因給你參考:
|
Step 3:
排除更多難題
Smart Inventor Board(智能板)沒有在上傳模式裡
藍芽板沒有在上傳模式裡!
我的遙控器無法進入上傳模式然後LED燈當IR紅外線感應器被蓋住時開啟了!
|
Step 4:
跑程序
如果全部產品都能正常運作了,暗色控制台窗口上方 Arduino 底部會顯示“上傳完成”。而你的程序應該已成功上傳。 將 DIP開關 1 重新放下(並確保其他 2 個也按下)讓遙控器切換到運行模式,然後你會看到 Smart Inventor board(智能板)上的兩個燈來回閃爍。 如果以上描述與你手上產品相符代表你第一個編程已成功上傳! 接下來一起寫些可以與CoDrone正確配對的程式碼吧! |
Arduino( Beginner)_ Communication and Pairing 配對
Step 1:
電腦如何讀取程式碼
學會如何編寫程式碼基本上就像學習如何用電腦專用語言與他溝通。最重要的是讓電腦讀懂你寫的程式語言。 編寫程式代碼時請記住:
|
Step 2:
電腦只能理解特定單詞
當你寫程序時,請確保你使用的字是電腦知道的單詞,例如: 如果你想讓你的CoDorne飛,你會寫出如同以下的程式碼: void setup(){ Takeoff!! Hover for 3 seconds!! Ok, now land. } void loop() { } 問題是: 你的電腦不會懂 Takeoff!! 和Ok, now land.什麼意思! 所以請改成如以下: #include <CoDrone.h> void setup(){ CoDrone.begin(115200); CoDrone.pair(); CoDrone.takeoff(); CoDrone.hover(3); CoDrone.land(); } void loop(){ } 程式碼註解:
如果你不能理解沒關係,後續課程中你會學到所有不同功能和指令的意思,也能學會如何使用他們。 |
Step 3:
電腦從上到下讀取
就像是你閱讀英文書,電腦也是從上到下讀取程式碼。在此份程序中電腦會先讀 #include <CoDrone.h>,而在最後一行中他會讀取CoDrone.land();. #include <CoDrone.h> void setup(){ CoDrone.begin(115200); CoDrone.pair(); CoDrone.takeoff(); CoDrone.hover(3); CoDrone.land(); } void loop(){ } |
Step 4:
電腦一次只讀一行字
雖然電腦讀程式碼比我們快很多(下面會介紹更多) 但它們一次只能讀取一行。這也代表著一次只能執行一條命令。 記住我們剛才教的: 電腦讀取速度極快–比如每秒幾十萬次的速度。這種速度會讓 “閃電俠 “感到羞愧! 雖然它一次只能讀取一行字,但是它讀取程序的速度會讓你感覺像是瞬間發生一樣快。 |
Step 5:
電腦語言注重字的大小寫
文字大小寫很重要! 電腦會解讀出這個 Hello 跟這個hello完全不同意思。如果你現在還是不能理解,,我們會在後兩堂課會介紹更多。就像是學習各種語言你會漸入佳境得心應手的。 |
Step 6:
增加資料庫
在所有CoDrone程序編碼的第一步就是要加入CoDrone資料庫: #include <CoDrone.h> 等等…你問什麼是資料庫? 資料庫包含了一組組的函式、變數和其他你可以用在程式碼中的資源。例如:如果你想要 你的CoDrone總是緩慢催油門3秒後起飛,你可以保存這個函式在CoDrone資料庫中以節省你的時間與記憶。與其每次都要對你的CoDrone發出” 緩慢催油門3秒後起飛”的指令,不如創造或使用在資料庫中的函式讓你的CoDrone ”起飛”。你的CoDrone就會執行”起飛”的函式! 任何程式碼是CoDrone.____開頭都是CoDrone資料庫裡的函式。 還是不確定有沒有了解資料庫? 請瀏覽Arduino網站了解更多。 |
Step 7:
鮑率
一旦你的程式碼的置頂處加入CoDrone資料庫,你就能在你所有的編程裡使用所有CoDrone 函式。 CoDrone.begin();是第一個必須使用的函式,也就能直接連上藍芽板。括號內是每秒傳輸的位元數-鮑率。這行程式碼需要包括在void setup()內,並且波特率應為 115200,因為藍牙板使用該速率依序溝通。 以下是程式碼的內容: #include <CoDrone.h> void setup() { CoDrone.begin(115200); } 冷知識: 鮑率是用法國電信先驅 Émile Baudot,的名字命名的喔! |
Step 8:
配對程式碼
下一件事是配對你的CoDrone! 有很多方法可以配對,我們會在下一堂課詳細解說,現在最簡單的方式是使用函式 CoDrone.pair() 因為下一章節很重要請務必多加研讀! pair() 此函式會連上任何你最後一個連到的CoDrone。但如果這是你首次使用沒有與任何CoDrone連線過的遙控器,它就會與第一個可配對的CoDrone配對並鎖定。從那時起,它將一直嘗試與該CoDrone配對。如果你想和一個新的無人機配對,你可以查看下一課:解除CoDrone配對 因為電腦讀取程式碼有先後順序,因此此函式必須寫在你的波特率函式後面。 void setup() { CoDrone.begin(115200); CoDrone.pair(); } 給學生的話: 以上步驟不會讓你的無人機CoDrone飛起來!他只是建立了藍芽板與你的CoDrone的連結而已喔。 給指導員的話: 如果這是您第一次開課,我們非常的建議您在上課前提前測試整個配對流程。配對成功後該CoDrone會只與特定遙控器配對連線所以其他任何遙控器都會與特定無人機配對。以下是我們建議的課前準備事項:
請記得一次做一組的配對就好。如果你想要解除互相配對鎖定的CoDrone與遙控器,請您遵循下一課:解鎖配對遙控無人機CoDrone的步驟執行。 |
Step 9:
Final code 最終程式碼
以下是最終程式碼的內容: #include <CoDrone.h> void setup() { CoDrone.begin(115200); CoDrone.pair(); } void loop() { } |
Step 10:
挑戰
挑戰: 永遠的朋友 請試著用你剛寫下的程式碼配對你的CoDrone! 如果你程式碼上傳成功到遙控器中,當它搜尋到一個無人機你會聽到一聲嗶,然後配對成功後再一聲。如果無人機後面綠燈閃爍代表沒有配對,如果燈光持續亮綠光就代表配對成功。 給指導員的提示: 請記得,一旦遙控器與一個無人機用pair()(沒有參數的情況下)配對後,它們就會相互鎖定,執行最終程式碼時該遙控器就會與曾經跟它鎖定的CoDrone配對。如果這是第一次配對,遙控器就會與之第一次搜尋到的CoDrone配對並鎖定與之互相配對。如果你想要將遙控器配對其他CoDrone,就必須跑完在解除CoDrone配對之d課程的整個解鎖流程。 |
arduino(Beginner) Unlocking a Remote-CoDrone Pair解除配對
Step 1:
何謂函式
我們在過去幾堂課有提到關於函式,但我們還沒詳細解釋過什麼是函式!函式是一組擁有名字並由多個的步驟組合的程式碼。比如你現在要製作一個起司火腿三明治,指令會如同以下描述: |
Step 2:
將三明治函式化
如果你的四個朋友也要一樣的起司火腿三明治指令會因為沒有函式而一直重複並且會變超長的! 為了縮短它,你可以製作一個起司火腿三明治時存取此指令並命名此函式為”製作三明治”。現在如果你要製作5個起司火腿三明治,指令就會是寫寫五次”製作三明治”,是不是簡單多了? |
Step 3:
與最近的CoDrone進行配對
在CoDrone資料庫中,如同前幾堂課談到的我們用pair()函式來配對CoDrone。如同我們有許多不同方式製作三明治,配對無人機有有不同方式。你已經使用了第一種方法(括弧內空白)運作pair() 。如同我們先前提到的當你要運作pair() 遙控器只會與它最後配對的CoDrone做配對。如果遙控器從來沒有與先前CoDrone配對過,它會先配對第一個它搜尋到的無人機並與之鎖定。 在此情況下如果你要配對不同無人機,你可以用pair()跟Nearest當作範圍(附註: parameter 範圍是函式裡的值)函式就會是 pair(Nearest). 這方法讓 pair() 函式知道你要如何運作此函式。它會與第一個BLE(低功耗藍芽)板找到的第一個 CoDrone 信號配對,而不是用默認配對。它可能會配對倒不是離你最近的CoDrone。
以下是程式碼的內容: #include <CoDrone.h> void setup(){ CoDrone.begin(115200); CoDrone.pair(Nearest); } void loop(){ } 上傳此程式碼至你的遙控器,當它上傳完畢把遙控器切至運作模式。當你運作此程序時,它會與它第一個搜尋到的CoDrone信號配對,所以請確認附近其他無人機都是關機狀態!當你聽到一鳴聲代表你的遙控已經與CoDrone配對完成。你的無人機位址也會存在EEPROM或是在 Smart Inventor Board裡的記憶體,就想作 遙控器在告訴自己”好喔!最新跟我連線的CoDrone就是它了!” |
Step 4:
pair()
現在你會用函式 pair(Nearest)讓你的遙控器與第一個它搜尋到的CoDrone信號配對,它已經把該CoDrone位址儲存於記憶體了。接下來你有一些選項可以做:
如果你選擇選項2請上傳以下程式碼。如果你覺得似曾相識是因為你上一堂課看過此程式碼。 #include <CoDrone.h> void setup() { CoDrone.begin(115200); CoDrone.pair(); } void loop() { } |
Step5:
配對驗證
當你回到運作模式時,請確認你的遙控器與無人機已經配對完成! 以下是成功配對的證明:
但請不要全然相信我們教的!如果你要仔細檢查請開啟一些其他CoDrone並放在附近。再來重置你的遙控器並確認它沒有與其他任何無人機配對上。 給指導員的提示 此時如果你正在配對遙控器到新的無人機,我們建議重新對遙控器何無人機做標籤,使他們能有配對號碼也讓你好分辨已經配對的是那些機台。 |
Step 6: 步驟6 :
Challenge挑戰
Challenge: Find a new friend 挑戰:找個新朋友吧! 找一個遙控器與CoDrone配對,再找第二個無人機。編程遙控器並配對到第二個無人機然後鎖定它。 |