pimoroniのRaspberry Pi Pico用VGA demo boardを動かしてみた


以前こちらの記事で触れた、Raspberry Pi PicoのVGA拡張ボードのpimoroni製品を入手したので、さっそく動かしてみました

Pimoroni Pico VGA Demo Base
Built especially to showcase the low cost, feature-rich RP2040 chip on the Raspberry Pi Pico, this board has VGA output,...

ボードの外見はこんな感じです。

よく見ると、Hardware design manualの記述と全く同じではなく、以下のような違いがあります。

・ジャンパ用のピンヘッダは取り付けられていない(VBUS、UARTとSD Cardの選択など)。
 → 自分で必要に応じて取り付けてくださいということですね。

・SD Card脇のジャンパのところに、SWDIO/SWCLKが引き出されていない。
 → これらの信号はPico本体から取れるので、あまり問題にはならないと思います。

・パーツが微妙に違う(機能的には同等)。
 VSYS→3.3Vの三端子レギュレータとか。でも全く問題ないです。

裏面の写真も載せておきます。

このボードのためのデモは、pico-playgroundリポジトリで公開されています。

GitHub - raspberrypi/pico-playground
Contribute to raspberrypi/pico-playground development by creating an account on GitHub.

全てC/C++で書かれており、ビルドに必要なSDKおよび追加ライブラリは必要に応じて(環境変数が設定されていなければ)自動でダウンロードされます。

ビルドの際に、GPIOのピンアサインを指定するために

cmake -B build -D"PICO_BOARD=vgaboard"

のようにオプション指定をすることが必要です。

現時点のソースからビルドしたuf2ファイルをこちらに置いておきます。(zipファイルなのでChromeだとダウンロードがブロックされますが)

pico-playground-uf2s.zip

ただし、デモの内容を確認できていないものもあります。

なお、標準入出力はUSBではなくUARTのほうになっていますので、sine_waveなどキー入力ができる一部のデモについてはUSB-UARTアダプタなどをGP20(TX)GP21(RX)に接続してください。(あるいは、自分でCMakeLists.txtを編集して標準入出力をUSB側へ変更してビルドすることも可能です。)ピンヘッダを付けるか、スルーホール用テストワイヤが使えます。なお前回紹介した「FT234X 超小型USBシリアル変換モジュール」は、残念ながら直結はできません(RXとRX、TXとTXがぶつかるピン配置になっているため)。

以下、デモの内容です。

  • apps/popcorn
  • ムービープレーヤー。SDカードに動画データの入ったディスクイメージの書き込み要。SDカードに相性がある可能性あり。

  • apps/usb_sound_card
  • PicoがUSBサウンドカードになる。出力はI2S側。

  • audio/sine_wave
  • PWM、I2S、S/PDIF経由でのオーディオ出力テスト。音量、音高などをUARTから変更可。(S/PDIFは未確認)

  • net/usb_host_webserver
  • 動作未確認。PicoがNWアダプタとなり、192.168.7.1でHTTPサーバが動いているように(PC側から)見えるらしい。(参考リンク1、参考リンク2

  • reset/hello_reset
  • 動作未確認。

  • scanvideo/demo1
  • イメージファイル(ラズベリーパイのロゴ)を画面上で動かす。

  • scanvideo/flash_stream
  • フラッシュに書き込まれた画像ファイルをスライドショーする。画像の書き込み方法についてはこちらを参照。

  • scanvideo/hscroll_dma_tiles
  • スーパーマリオっぽい横スクロール画面を表示。UART経由でスピード等の変更可。

  • scanvideo/mandelbrot
  • マンデルブロ集合の描画。

  • scanvideo/mario_tiles
  • マリオカートっぽい画面回転・拡大のデモ。UART経由でスピード等の変更可。

  • scanvideo/scanvideo_minimal
  • 画面に縞模様を描く。

  • scanvideo/sprite_demo
  • ラズベリーパイ財団創始者Eben Uptonの顔画像を沢山表示する。

  • scanvideo/test_pattern
  • 7色×32段階のカラースケールを表示する。UART経由でスペースキーで白・黒反転。

  • scanvideo/textmode
  • テキストを表示する。

  • sleep/hello_dormant
  • GPIO10の立ち上がり入力までスリープするらしい(動作未確認)。要UART接続。

  • sleep/hello_sleep
  • スリープして10秒後に復帰する。要UART接続。

  • stdio/pio
  • SDKの標準出力先を追加したり禁止したりするデモ。要UART接続(+PIOでのUART接続。あまりこのボード向きではないかも)

コメント