iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
Modern Web

你渴望連結嗎?將 Web 與硬體連上線吧!系列 第 4

D03 - Hello Firmata

本系列文已改編成書「Arduino 自造趣:結合 JavaScript x Vue x Phaser 輕鬆打造個人遊戲機」,本書改用 Vue3 與 TypeScript 全面重構且加上更詳細的說明,

在此感謝 iT 邦幫忙、博碩文化與編輯小 p 的協助,歡迎大家前往購書,鱈魚在此感謝大家 (。・∀・)。

若想 DIY 卻不知道零件去哪裡買的讀者,可以參考此連結 。( •̀ ω •́ )✧


將 Arduino Uno 插上電腦後,如果順利的話作業系統會自動安裝「USB 轉 COM 晶片」之驅動程式。

這個部分因為已經存在大量的教學,所以不詳細說明與疑難排解。
在此附上關鍵字

接下來要將 Firmata 韌體燒入 Arduino Uno 中,在此有兩種方法:

  1. Arduino Web Editor

    Arduino 官方推出的線上編輯器。

  2. Arduino IDE

    安裝版的程式編輯器。

這次用經典的 Arduino IDE 進行燒入。

在官方網站下載、安裝完成後開啟 IDE,沒有意外的話應該要出現下面這個畫面。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213IQxk5dU87W.png

接著我們要從範例程式中找出 Firmata 韌體,找出「檔案」→「範例」→「Firmata」→「StandarFirmataPlus」選項。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213uSG2LbadRM.png

用力點下去之後,應該會開啟新視窗並跑出一堆火星文。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213po6CYmSi49.png

這些就是 Arduino 官方提供的 Firmata 韌體,我們只要將這個韌體燒入 Uno 中,並遵守 Firmata 協定的內容,便可以控制 Uno 所有的 I/O 功能。

接下來在「工具」設定以下項目:

  • 「開發板」選 Arduino Uno
  • 「序列埠」選擇「正確」的 COM

https://ithelp.ithome.com.tw/upload/images/20240116/201402134kPOtu7MKV.png

在我的電腦中,Arduino 對應的 COM 是「COM8」,您的電腦不一定會是 COM8 喔 (´,,•ω•,,)

如果不知道到底是哪一個 COM,可以將 USB 傳輸線反覆拔插,並觀察哪一個 COM 會消失或新增,就可以找出對應的 COM 了。

以上都設定完成後,就可以按下「上傳」按鈕,開始燒入!

https://ithelp.ithome.com.tw/upload/images/20240116/20140213IaiFHBydwP.png

燒入完成後,IDE 下方會顯示「上傳完畢」。
https://ithelp.ithome.com.tw/upload/images/20240116/20140213g9LBpjgcrz.png

這時候問題來了,所以我們要怎麼知道韌體真有燒進去,還是 IDE 騙我們呢?( ・ิω・ิ)

讓我們打開「串列埠監控視窗」。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213gTesI0OY92.png

「串列埠監控視窗」可以透過 COM 與 Uno 進行串列通訊

打開視窗後,發現跑出一串亂碼,先別緊張,將右下角從右往左邊數來第二個選項,改為「57600 baud」。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213begYVCgkKm.png

「baud」指的是串列通訊每秒鐘要傳輸幾個 bit,後續的章節會有更詳細的說明。

修改完成後,大約 1 秒以內就會跑出以下文字。

https://ithelp.ithome.com.tw/upload/images/20240116/20140213eJytilCRVw.png

仔細看就會發現裡面其實包含了我們燒進去程式的名稱「StandardFirmataPlus」,這樣就表示 Firmata 燒入成功了!

接下來讓我們進入 Firmata 協定的部分吧!

眼尖的朋友們一定會發現「StandardFirmataPlus.ino」每個字母之間都有一個空格,這是為甚麼呢?讓我們到協定裡找答案吧!


上一篇
D02 - 集結硬體小夥伴:準備 Arduino Uno 與其他零件
下一篇
D04 - 從零開始的 Firmata 通訊
系列文
你渴望連結嗎?將 Web 與硬體連上線吧!33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言