RPX-LEDART-FUNX

ショップ


製品概要

下記の開発ボードでHUB75仕様のLEDパネルを使用できるようにする拡張ボードです。

  • TRYGEAR-VIZ-RP2350B
  • TRYGEAR-DASH-RP2350A
  • TRYGEAR-DASH-RP2040
  • TRYGEAR-LITE-RP2040

HUB75は信号線が5Vなので、信号線を3.3V->5V変換する回路が搭載されています。

また、開発基板に実装されているタクトスイッチをアプリケーションの操作用に使用することができます。

RPX-LEDART-FUNXはLED マトリックスパネル用拡張基板として以下のような特徴を持っています。

  • HUB75(E) インターフェースを利用した、1/16 または1/32 スキャンのLED マトリックスパネルを制御することができます。
  • 信号電圧が3.3V のTRYGEAR開発基板から信号電圧が5V のHUB75(E) を適切に制御するために、信号電圧の変換回路を備えており、HUB75(E) を安定して制御できます。
  • TRYGEAR開発ボードのデジタルコネクタはすべて占有しますが、アナログコネクタやTFTコネクタはすべて空いているので、センサーや様々な回路を追加して使用することができます。
  • 複数枚のLED マトリックスパネル(RP2040/RP2350のメモリによる枚数制限はあります)を接続 して制御することもできます。
  • 電子工作で広く利用されているCircuitPython などの無償、便利、高機能な開発環境を利用してLED 表示用のソフトウェアを開発できます。
  • LED マトリックスパネルの制御にはCircuitPythonのrgbmatrixライブラリを使用できます。
  • I2C端子を備えており、温度や湿度、加速度などのセンサーを搭載することができ、その計測値をLED 表示に利用することができます。
  • PICO/PICO2接続コネクタ、HUB75用コネクタ、電源ターミナルブロックは、はんだ付けが必要です。

CircuitPythonでのプログラム例

TRYGEAR開発基板には、それぞれに対応したCircuitPythonファームウェアを書き込んでください。さらに、そのファームウェアのバージョンに対応したライブラリbundleのlibフォルダの内容をTRYGEAR開発基板のフラッシュのlibフォルダに書き込んでください。

文字列と図形を交互に表示するプログラム例

始めに、RPX-LEDART-FUNXを64x32ピクセルのLEDパネルに接続して表示を行うプログラム例を示します。

import board
import displayio
import rgbmatrix
import framebufferio
import time

# LEDパネルの初期化
displayio.release_displays()

matrix = rgbmatrix.RGBMatrix(
  width=64, height=32, bit_depth=5,
  rgb_pins=[board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5],
  addr_pins=[board.GP6, board.GP7, board.GP8, board.GP9],
  clock_pin=board.GP11, latch_pin=board.GP12, output_enable_pin=board.GP13)

display = framebufferio.FramebufferDisplay(matrix)

# 文字や図形の表示処理
groupt = displayio.Group() # 文字列表示用のグループ
groups = displayio.Group() # 図形表示用のグループ

# 文字列の表示(登録)を行う
from adafruit_display_text import label
import terminalio

groupt.append(label.Label(terminalio.FONT, text="MicroFan", x=0, y=4, color=0xFFFFFF))
groupt.append(label.Label(terminalio.FONT, text="PICO-LEDART", x=0, y=12, color=0xFFFF00))
groupt.append(label.Label(terminalio.FONT, text="Circuit", x=0, y=20, color=0xFF00FF))
groupt.append(label.Label(terminalio.FONT, text="Python", x=25, y=28, color=0xFF00FF))

# 図形の表示(登録)を行う
from adafruit_display_shapes.rect import Rect
from adafruit_display_shapes.circle import Circle
from adafruit_display_shapes.triangle import Triangle

groups.append(Rect(2, 2, 20, 20, fill=0xFF0000, outline=0xFFFF00))
groups.append(Triangle(30, 5, 20, 25, 40, 25, fill=0x00FF00, outline=0xFFFF00))
groups.append(Circle(50, 20, 10, fill=0x0000FF, outline=0xFFFF00))

while True:
    display.root_group = groupt # 文字列を表示する
    time.sleep(3)
    display.root_group = groups # 図形を表示する
    time.sleep(1)

壁で跳ね返るボール

ボールが動いてLEDパネルの端にぶつかって音を出して跳ね返るプログラム例を示します。

import displayio, picodvi, board, rgbmatrix, framebufferio

displayio.release_displays()

matrix = rgbmatrix.RGBMatrix(
  width=64, height=32, bit_depth=5,
  rgb_pins=[board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5],
  addr_pins=[board.GP6, board.GP7, board.GP8, board.GP9],
  clock_pin=board.GP11, latch_pin=board.GP12, output_enable_pin=board.GP13)

display = framebufferio.FramebufferDisplay(matrix)

group = displayio.Group()
display.root_group = group
# ここまではグラフィックス利用の初期化で今後も共通

import simpleio
from adafruit_display_shapes.circle import Circle

class Ball(Circle):
    # 初期座標、縦横速度、色を与える
    def __init__(self, x0, y0, r, vx, vy, color):
        super().__init__(x0, y0, r, fill=color, outline=0xFFFF00)
        self.vx = vx
        self.vy = vy
    def tick(self):
        # 縦横速度分移動して
        self.x0 += self.vx
        self.y0 += self.vy
        # 画面の端に来たら速度を反転させて跳ね返る
        if self.x0 <= self.r or self.x0 >= (display.width-1)-self.r:
            simpleio.tone(board.GP20, 1000, 0.01)
            self.vx = -self.vx
        if self.y0 <= self.r or self.y0 >= (display.height-1)-self.r:
            simpleio.tone(board.GP20, 500, 0.01)
            self.vy = -self.vy

ball = Ball(20, 20, 3, 1, 2, 0x00FF00)
group.append(ball)

import time

while True:
    group[0].tick()
    time.sleep(0.05)

回路図


関連製品

TRYGEAR-DASH-RP2350A

TRYGEAR-DASH-RP2040