大家日常生活中通過路口時應該都可以看到一個小綠人走路的燈號,提醒行人紅燈停綠燈行,這樣的小裝置是如何做出來的呢?今天我們用 Ardublock 來實現這個動畫。
Ardublock 是一套輔助Arduino IDE 的圖形化編輯工具,類似 S4A 、mBot 等圖形化程式語言,利用拖拉積木的方式撰寫程式,相當方便,唯一的缺點大概是這套工具只有部分中文化,學生上手會有一段距離。
首先準備好 Arduino 與 MAX7219板子,將arduino 的 5v 接7219的VCC、GND對GND、D5對DIN、D6對CS、D7 接 CLK。
接好線後我們可以啟動 ARDUINO IDE ,先在連接中把 Arduino 的連接埠設定好選擇 工具(TOOLS) ,在工具下拉選單中選取 Ardublock 就可以使用 Ardublock 了。
接下來我們要點選控制方塊,控制方塊展開後選取PROGRAM方塊(方塊旁邊跟著設定、loop),program方塊”設定”對應Arduino IDE 的<void setup>這個部分,有需要定義的變數等等可在這個部分設定。loop 則對應 <void loop>部分,一般來說成是主體主要放在這裡。
接下來點選DuinoEdu Grove Add 這個方塊
然後先選取 Max7219的設定方塊,方塊形狀就長得跟 7219 差不多,很方便吧。設定方塊圖形如下,上頭有定義7219模組數量及連接腳位pin,cs,clk的方跨:
還有一個很類似的,等會繪圖會用到的如下,這個方塊最上面是7219模組編號,一般連接一個時上面維持0,接下來 line0~line7 則是設定顯示的內容,設定方法稍後說明:
現在我們將7219模組方塊放到program方塊的設定欄位並設定 DIN 為D5,CS為D6,CLK為D7。
接下來我們要畫圖了,這時要用到這個方塊
上頭可以看到要利用這個畫圖,就必須計算每一行0101的的二進位值。而且告訴大家一件不幸的事情,這上面輸入0101的數值程式會出現編譯錯誤,還必須要二進位數值轉為十進位才可以,怎麼辦呢?幸好有一個網頁可以進行計算。 請進入以下網址
進入網頁後,我們可以用點的方式來作畫,注意網頁旁邊的Decimal的數值,Decimal是十進位的意思,這網頁協助我們把二進位轉成十進位了,等會每行就是填入對應的十進位數值,line0填入第一行,line1填入第二行以此類推。
畫好之後,將數值填入,並記得在控制方塊中找到 delay(延遲方塊)放在兩個 7219繪圖方塊之間,以控制人物的動作,相關方塊數值可參考下圖:
接著按下上傳,程式就會自動透過 Arduino IDE上傳到Arduino板子,現在我們可以看看程式成果了。
各位也可以試試其他圖形,如底下程式可做出愛心動畫。
大家可以想想看還可以畫出甚麼圖形。
沒有留言:
張貼留言