ショップ

取扱説明書(準備中)


製品概要

PICO-HDMI-PLUS - PicoDVI
PICO-HDMI-PLUS

PICO-HDMI-PLUSは、Raspberry Pi PICO/PICO WにHDMIコネクタを接続し、PC用のモニタなどに画像を出力できるようにする拡張ボードです。あなたのPICOを超小型のテレビゲーム機や、PCモニタ出力付きのArduino/CircuitPython実験基板に変身させることができます。

PICO-HDMI-PLUSはRaspberry Pi PICO/PICO Wを使用し、PCモニタへの画像出力なども利用した様々な応用に取り組みたい人に最適な開発ボードです。


PICO-HDMI-PLUSは以下のような特徴を持っています。

  • Raspberry Pi PICO/PICO WにHDMI出力機能を追加します。
  • HDMIコネクタが装備されており、PC用モニタなどに接続して画像を出力することができます。
  • HDMIを使用するプログラムは、PicoDVIから派生したライブラリ等を使用し、ArduinoやCircuitPythonで作成することができます。
  • 基板上に、タクトスイッチx4と圧電スピーカーが搭載されており、Raspberry Pi PICO/PICO WとPICO-HDMI-PLUSのみで、ゲームなどのアプリケーションを作成することができます。
  • GPIO0-7,22, ADC0-2が自由に使用できるため、様々な入出力装置やセンサーを接続し、多様な応用が可能です。

HDMIを使用した画像出力

PICO-HDMI-PLUSを接続したPICOでは、HDMIの画像出力は[PicoDVI - picodvi]と呼ばれているライブラリを使用して行うことができます。

Arduino

PICO用に構成したArduino環境で、ライブラリマネージャを使用して[picodvi]を検索して、ライブラリを導入してください。デモスケッチも用意されているので、それらを選択してコンパイル、書き込みを行うと、HDMIで接続されたモニターに画像を出力することができます。

デモスケッチを使用する際には、DVIGFX16, DVIGFX8, DVIGFX1などで定義されているdisplayの最後の引数を[pico_sock_cfg]に書き換えてください。

文字と図形を表示し、スイッチで文字の色を変え、音を出す簡単なスケッチ例を以下に示します。

#include <PicoDVI.h>

// display()の最後の引数をpico_sock_cfgに設定
DVIGFX16 display(DVI_RES_320x240p60, pico_sock_cfg);

void setup() {
  display.begin();
  // スイッチのプルアップ機能を有効化
  pinMode(9,OUTPUT) ;
  digitalWrite(9,HIGH) ;
  // 右側の2つのスイッチを有効化
  pinMode(21,INPUT) ;
  pinMode(20,INPUT) ;
}

void loop() {
  if (digitalRead(21)) // 一番右のスイッチ
    display.setTextColor(0xFFFF) ;
  else
    display.setTextColor(0xFF00) ; // 押されたら文字色が黄色に

  if (digitalRead(20)) // 右から2番目のスイッチ
    noTone(8) ;
  else
    tone(8, 1000) ; // 押されたら音が鳴る

  display.fillScreen(0);
  display.setFont();
  display.setCursor(0, 0);
  display.setTextSize(3);
  display.println(F("MicroFan"));
  display.setTextSize(2,4);
  display.println(F("PICO-HDMI-PLUS"));
  display.print(analogReadTemp()); // MCUの内部温度
  display.print(F("'C, "));
  display.print(millis()/1000);
  display.println(F(" sec."));
  delay(300);

  for (int y = 70; y < 240; y += 8)
    display.drawLine(0, 90, 319, y, 0x07E0) ;
  delay(300);

  display.fillCircle(80, 180, 50, 0xF800);
  display.drawCircle(80, 180, 50, 0xFF00);
  display.fillRect(200, 100, 100, 100, 0x001F);
  display.drawRect(200, 100, 100, 100, 0xFF00);
  delay(400);
}

ArduinoでのPicoDVIプログラミングの詳細は以下のページをご参照ください。

CircuitPython

RP2040-UNO-HDMIは、その形状はRaspberry Pi PICOと大きく変わりますが、MicroPythonやCircuitPythonを使用する場合には、Raspberry Pi PICO用のファームウェアを使用することができます。

PythonでHDMI出力機能を使用したい場合には、下記のページからRaspberry Pi PICO用のCircuitPythonのファームウェアをダウンロードしてRP2040-UNO-HDMIに書き込んでください。

また、下記のページから[Bundle for Version 9.x]というライブラリの圧縮ファイルをダウンロードしてください。

ダウンロードするファイルの名前は現時点では次のようなものです。

  • adafruit-circuitpython-bundle-9.x-mpy-日付.zip

この圧縮ファイルの中のlibディレクトリを、PCにマウントされたRP2040-UNO-HDMIのファイルシステムにコピーしてください。libディレクトリの中にはたくさんのライブラリが収められているため、コピーには結構時間がかかります。

この圧縮ファイルの中のlibディレクトリを、PCにマウントされたRP2040-UNO-HDMIのファイルシステムにコピーしてください。libディレクトリの中にはたくさんのライブラリが収められているため、コピーには結構時間がかかります。

RP2040-UNO-HDMIでモニタ画面に文字と簡単な図形を表示するプログラム例を以下に示します。

# 表示システムの初期化を行う
import displayio, picodvi, board, framebufferio

displayio.release_displays()

fb = picodvi.Framebuffer(
    width=320, height=240, color_depth=8,
    clk_dp=board.GP14, clk_dn=board.GP15, # 端子の配置はPICO-HDMI-PLUS用
    red_dp=board.GP12, red_dn=board.GP13,
    green_dp=board.GP18, green_dn=board.GP19,
    blue_dp=board.GP16, blue_dn=board.GP17)

display = framebufferio.FramebufferDisplay(fb)

group = displayio.Group()
display.root_group = group

# 文字列の表示を行う
from adafruit_display_text import label
import terminalio

group.append(label.Label(terminalio.FONT, text="MicroFan", x=0, y=10, scale=2, color=0xFFFFFF))
group.append(label.Label(terminalio.FONT, text="RP2040-UNO-HDMI:PicoDVI", x=0, y=30, scale=2, color=0xFFFFFF))

# 図形の表示を行う
from adafruit_display_shapes.line import Line
from adafruit_display_shapes.rect import Rect
from adafruit_display_shapes.circle import Circle
from adafruit_display_shapes.triangle import Triangle

group.append(Line(0, 80, 320, 80, 0xFF00FF))
group.append(Rect(0, 120, 100, 100, fill=0xFF0000, outline=0xFFFF00))
group.append(Circle(160, 170, 50, fill=0x00FF00, outline=0xFFFF00))
group.append(Triangle(260, 120, 210, 220, 310, 220, fill=0x0000FF, outline=0xFFFF00))

CircuitPythonでのPicoDVIプログラミングの詳細は以下のページをご参照ください。


回路図


関連製品

RP2040-UNO-HDMI

UNO形状のRP2040開発ボードにHDMIコネクタを搭載し、PicoDVIでPCモニタに画像出力を行うことができる開発ボードです。

RP2040-UNO-HDMI
RP2040-UNO-HDMI