01 利用BlocklyDuino玩ATmega328P

(2022/06/02)

前陣子看到大家都在開箱ICShop的Pixel:Bit雙合一的主控板,今天把它跟同樣ICShop的EZ Start Kit+做一結合,先只利用BlocklyDuino來寫ATmega328P晶片上的程式,測試下來有一些成功,有一些不成功,如:溫濕度感測器、光敏電阻、RGB LED燈,我也不知為何會不成功?只有等待官方的積木程式釋出才會比較相容吧!其實這樣也算成功了,下一步再來用BlocklyDuino玩ESP32晶片,感謝吉哥完成IPS LCD的積木,可以顯示彩色畫面及文字。最後再利用BlocklyDuino來把ATmega328P晶片及ESP32晶片做互動!第一部份測試內容如下,供參


一、認識Pixel:Bit

  • 一板雙用:Pixel:Bit 正面有一塊 1.3 吋的彩色 LCD,可讓使用者顯示資訊,或是將鏡頭拍攝到的畫面顯示在 LCD 上。為了解決 I/O 擴充的問題,特別加入了 ATmega328P,與 ESP32 所負責的功能不同,ATmega328P 專注在金手指腳位控制,經由 UART 與 ESP32 相互溝通,實現雙晶片控制的概念。

    • ATmega328P (本文先以此為主)

    • ESP32

    • UART 切換開關

      • 兩顆微控制器將共用一個 Micro USB 插座,經由切換開關,可以決定由誰使用。共有三個模式可切換,分別是 PRO MINI、ESP 與 GO 模式。

      • PRO MINI 模式:可對 ATmega328P 通訊並燒錄程式。

      • ESP 模式:可對 ESP32 通訊並燒錄程式。

      • GO 模式:將 ATmega328P 與 ESP32 互連,使其可互相通訊。

二、Pixel:Bit與EZ Start Kit+ 的結合

  • 為增加Pixel:Bit可控制的元件及感測器,所以讓它與EZ Start Kit+做結合


、Pixel:Bit的ATmega328P測試

  • 先把【UART切換開關】切換到【PRO MINI 模式】

  • 進入BlocklyDuino

  • 測試一:依序點亮及關閉3顆LED燈

    • 紅色LED燈(IO4 ->P13 ->D13)

    • 色LED燈(IO5 ->P14 ->D12)

    • 紅色LED燈(IO6 ->P15 ->D11)

    • 程式如下:

  • 選板子、選埠號後進行燒錄,出現如上的錯誤時

    • 再進入Arduino IDE (執行 BlocklyDuino3\arduino-1.8.5\arduino.exe)

    • 一樣選上面的板子及埠號後,關閉離開Arduino IDE

    • (2022/06/27更新)使用F2版,要選3.3V, 8MHz

  • 再重新燒錄一次

    • 這次就會燒錄成功了 (如下圖)

    • EZ Start Kit+的LED燈要從擴展板上供電才會亮,所以要採用擴展板供電

    • 這時就會看到三顆LED燈依序點亮及滅掉

  • 測試二:在OLED屏幕上顯示中文字

    • OLED程式積木採用【吉哥積木】/【模組】/【OLED 128*64】

    • 測試程式,如下:

  • 測試:在OLED屏幕上顯示溫、濕度及光亮度及可變電阻值

    • DHT11(IO7 ->P16 ->D10)

    • 光感測器(IO1 ->P1 ->A0)

    • 可變電阻器(IO2 ->P2 ->A1)

    • 測試程式,如下:(2022/06/27更新)

  • 測試結果:

    • 溫度、濕度的值已有值顯示了(2022/06/27更新)(之前都是0)

    • 光敏電阻的值會受光影響,但最大值只到約737,完全遮光有時到50幾,有時到150幾,有時值會怪怪的(2022/06/27更新)

    • 可變電阻的值正確,介於0(順時針到底)~1023(時針到底)間

  • 測試:按A鍵亮紅燈、按B鍵亮黃燈、按A+B鍵滅燈

    • A鍵(D4)

    • B(D5)

    • EZ Start Kit+上的A鍵(IO11 ->P5 ->D4)

    • EZ Start Kit+上的B鍵(IO15->P11 ->D5)

    • 由上可知,主板與擴展板上的A、B鍵相同

    • 先取得,按下鍵後的數位值

    • 測試程式,如下:

      • 發現:

        • 未按下時,該腳位的數位值為1

        • 按下時,該腳位的數位值為0

  • 按A鍵亮紅燈、按B鍵亮黃燈、按A+B鍵滅燈

    • 程式如下

  • 同理,按A鍵啟動繼電器、按B鍵關閉繼電器

    • 繼電器(IO13 ->P9 ->D8)

  • 測試:測試蜂鳴器

  • 蜂鳴(IO0 ->P0 ->D3)

  • 播放全家便利商店入店時的音樂

  • 簡譜:3 1 5(低音) 1 / 2 5~ 2 / 3 2 5(低音) 1

  • 結果:每一音調積木下要再多一個等待積木(2022/06/27重試)

  • 測試:測試燈條

  • RGB LED燈(IO16 ->P12 ->D9)

  • 發現:(2022/06/27更新)已能正確顯示顏色了,要選3.3V, 8MHz