Pico Breakout Garden BaseでLED Dot Matrix Breakoutを2つ使って、99:59まで測れるタイマーを作成しました。
なお、Pico Breakout Garden Baseは日本の通販で買えるところが見つからなかったので、Pimoroni (英国)にから直接購入しました。
今回使用している商品の紹介ページはこちらになります。
PimoroniのPimoroniのPico Breakout Garden Baseの紹介ページはこちらです。
LED Dot Matrix Breakoutの紹介ページはこちらです。
LED Dot Matrix Breakoutを使用するにあたり、参考にさせていただいたページはこちらです。
まず、始めにLED Dot Matrix Breakoutを2つ使うにあたり、片方のアドレスの変更を行います。
LED Dot Matrix Breakoutのデフォルトのアドレスは0X61になっているのですが、LED Dot Matrix Breakoutの背面のADDR2の真ん中がつながっている部分をカッターなどで削ってカットアウトすることにより0X63へ、ADDR2の真ん中がつながっている部分のカットアウトに加えてADDR1の分かれているところをはんだ付けしてつなぐと0X62へ変更できます。
今回は赤色のLED Dot Matrix Breakout方のアドレスを0X62へ変更しました。
Breakoutの背面の加工をしていない状態
Breakoutの背面のADDR2の真ん中がつながっている部分を削ってカットアウトし、ADDR1の分かれているところをはんだ付けした状態
上記の作業が終わったら、BreakoutとRaspberryPiPicoをアドオンボード差し込みます。
LED Dot MatrixはI2C interfaceなので、I2Cのところに差し込んでください。
続いて、Raspberry Pi Picoのファームウエアの設定を行います。
PimoroniでMicroPythonを使うときの設定方法についてはこちらをご覧ください。
設定が終わったら、プログラムを用意します。
今回は、breakout_dotmatrixのtimer.pyのサンプルプログラムを参考に下記の通りにプログラムを作成しました。
参考にしたプログラム
https://github.com/pimoroni/pimoroni-pico/blob/main/micropython/examples/breakout_dotmatrix/timer.py
実際に作成したプログラム
import time
from pimoroni_i2c import PimoroniI2C
from breakout_dotmatrix import BreakoutDotMatrix
PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}
i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
address_1 = 0x61
display_1 = BreakoutDotMatrix(i2c, address=address_1)
display_1.clear()
display_1.show()
address_2 = 0x62
display_2 = BreakoutDotMatrix(i2c, address=address_2)
display_2.clear()
display_2.show()
start_time = time.time()
while True:
second = str((time.time() - start_time) % 60)
minite = str(int(((time.time() - start_time)/60)%100))
if len(second) == 1:
left = '0'
right = second[0]
else:
left = second[0]
right = second[1]
display_2.set_character(0, ord(left))
display_2.set_character(5, ord(right))
display_2.show()
if minite == '0':
left = '0'
right = '0'
elif len(minite) == 1:
left = '0'
right = minite[0]
else:
left = minite[0]
right = minite[1]
display_1.set_character(0, ord(left))
display_1.set_character(5, ord(right))
display_1.show()
上記プログラムを実行したのがこちらになります。
Comments