Arduino Uno 板子沒有銜接網路模組,是無法進行網路連線的,不過 mBlock 具有網路連接功能,兩台電腦分別開啟 mBlock,就可以進行網路通訊,也就是說,你可以透過網路控制另一頭連接的 Arduino,反之亦然。
建立網路連線
要使用 mBlock 建立網路連線,兩台電腦都必須開啟 mBlock,接著在其中一台執行「網路連接/自定義連接」後,輸入另一台電腦的 IP:
按下「連接」按鈕,如果連線成功的話,兩台電腦上的 mBlock 都會呈現「網路連接 已連接」的字樣:
記得!一定要按下「連接」按鈕,直接按下 Enter 鍵是不會有反應 … XD
接下來就可以寫個簡單的通訊啦!例如,在其中一台不斷地發送計時器的訊息:
而另一台不斷接收訊息並顯示:
按下兩個 mBlock 的綠旗,你就會看到另一個 mBlock 接到訊息並顯示出來:
透過網路調節 LED 亮度
接下來示範一下,如果透過網路調節 LED 亮度,在兩台電腦上分別連接上 Arduino,並記得在 mBlock 上分別指定好「串口連接」,當然,也得記得如上透過網路連線兩個 mBlock。
接著,其中一台 Arduino 如下連接一個可變電阻:
另一台 Arduino 如下連接電阻與 LED:
因為要透過 Arduino 調節 LED 亮度,別忘了要接在有 PWM 功能的腳位上,因此在上頭我是接在 D11 腳位。
接著,連接著可變電阻的電腦上,在 mBlock 上撰寫如下的程式:
這會不斷地讀取類比腳位的電壓值並透過網路送出,而在另一台連接著 LED 的電腦上,在 mBlock 中撰寫如下的程式:
別忘了,Arduino 類比腳位的輸入值是 0 ~ 1023,而透過有 PWM 功能的腳位模擬類比電壓時,可指定的值是 0 ~ 255,因此,必須透過計算作轉換,「讀取壹行數據」並不會阻斷程式流程,因此我們必須檢查值是否為 0 到 1023。
在上頭的程式中,「當收到數據時」方塊會在「讀取壹行數據」方塊完成後觸發執行,你也可以將「如果」方塊的部份,直接放在「不停重複」之中,兩種寫法都可以!
接下來分別執行程式,並試著轉動可變電阻,你會發現另一台 Arduino 上的 LED 會隨著可變電阻的轉動而有不同的明亮。