このページの目次
ショップ
- https://store.shopping.yahoo.co.jp/microfan/rp2040-uno-hdmi-r1.html
- https://www.amazon.co.jp/dp/B0D9VKHF8K/
取扱説明書(準備中)
製品概要
汎用的なUNO形状の開発ボードとして使用できるだけでなく、PicoDVIを使用してPCモニタ等に画像を出力することができます。
![RP2040-UNO-HDMI - PicoDVI](https://www.microfan.jp/wp-content/uploads/2024/07/RP2040-UNO-HDMI-R1-1-1024x745.jpg)
RP2040-UNO-HDMIは、Raspberry Pi PICOに搭載されているRP2040を搭載し、Arduino UNOと同様な取り扱いができる開発ボードとして開発されました。また、RP2040-UNOでは拡張用に多く用意されていた信号線をRP2040-UNO-HDMIではHDMIコネクタに割り当てることにより、PC用のモニタなどに画像を出力できるようにしました。
RP2040-UNO-HDMIはRP2040 を使用し、モニタへの画像出力なども利用した様々な応用に取り組みたい人に最適な開発ボードです。
RP2040-UNO-HDMIは以下のような特徴を持っています。
- RP2040の機能と性能をArduino UNO形状にまとめた開発ボードです。
- RP2040は264KBのRAMを内蔵しており、MicroPythonでは200KB以上のヒープ領域を確保できるため、MicroPythonの利用時でも余裕をもってプログラミングを行うことができます。
- HDMIコネクタが装備されており、PicoDVIを用いてPC用モニタなどに接続して画像を出力することができます。
- PicoDVIを用いてHDMIコネクタにDVIの映像信号を生成するプログラムは、ArduinoやCircuitPythonで作成することができます。
- 様々な情報を表示できるOLED ディスプレイ(別売) を搭載することができます。
- MicroPythonやCircuitPythonのファームウエアを書き込むことにより、Python を利用してソフトウェアを開発できます。
- RP2040-UNOの機能を効果的に利用できるように構成した専用のMicroPythonファームウェアを利用できます。
なお、RP2040-UNO-HDMIの稼働電圧や信号電圧は3.3Vで、Arduino UNOの5Vとは異なりますので、特にArduino UNO用に提供されているシールドの利用時には、端子の電圧にご注意ください。RP2040-UNO-HDMIに、単純にArduino UNOのシールドを取り付けたり5Vの信号線を接続すると、RP2040-UNO-HDMIが壊れます。
HDMIコネクタへのDVI画像信号出力
RP2040-UNO-HDMIには、画像出力用のHDMIコネクタが組み込まれており、PCモニタなどに画像を出力することができます。HDMIの画像出力は[PicoDVI]と呼ばれているライブラリを使用して行うことができます。
Arduino
PICO用に構成したArduino環境で、ライブラリマネージャを使用して[picodvi]を検索して、ライブラリを導入してください。デモスケッチも用意されているので、それらを選択してコンパイル、書き込みを行うと、HDMIで接続されたモニターに画像を出力することができます。RP2040-UNO-HDMIでは、デモスケッチを変更することなくそのまま実行することができます。
デモスケッチとは別に、RP2040-UNO-HDMIでモニタに文字と図形を表示する簡単なスケッチ例を以下に示します。
#include <PicoDVI.h>
DVIGFX16 display(DVI_RES_320x240p60, adafruit_feather_dvi_cfg);
void setup() {
display.begin();
}
void loop() {
display.fillScreen(0);
display.setFont();
display.setCursor(0, 0);
display.setTextSize(3);
display.println(F("MicroFan"));
display.setTextSize(2,4);
display.println(F("RP2040-UNO-HDMI"));
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ディレクトリの中にはたくさんのライブラリが収められているため、コピーには結構時間がかかります。
RP2040-UNO-HDMIでモニタ画面に文字と簡単な図形を表示するプログラム例を以下に示します。
# 表示システムの初期化を行う
import displayio, picodvi, board, framebufferio
displayio.release_displays()
fb = picodvi.Framebuffer(
width=320, height=240, color_depth=8,
clk_dp=board.GP17, clk_dn=board.GP16, # 端子の配置はRP2040-UNO-HDMI用
red_dp=board.GP19, red_dn=board.GP18,
green_dp=board.GP21, green_dn=board.GP20,
blue_dp=board.GP23, blue_dn=board.GP22)
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プログラミングの詳細は以下のページをご参照ください。
回路図
![](https://www.microfan.jp/wp-content/uploads/2024/07/RP2040-UNO-HDMI-R1-SCH-1024x643.png)
関連製品
CONSOLE-STACK
入力機能のないRP2040-UNO-HDMIにスイッチ、圧電ブザー、各種センサーを追加します。
PICO-HDMI-PLUS
Raspberri Pi PICO/PICO WにHDMIコネクタとタクトスイッチx4、圧電スピーカーを追加する拡張ボードです。PICOが超小型のテレビゲーム機やPCモニタ出力付きのArduino実験ボードに変身します。