Raspberry Pi Picoでgithubにあるpico-playground/scanvideoを動かしてみる
github.com/raspberrypiにあるpico-playground/scanvideoを動かしてみたいと思います。
これらはpico-examplesほどにはドキュメントなどが整えられていない、お試しサンプルコードです。
配線
これらは「Hardware design with RP2040.pdf」の”Chapter 3. The VGA, SD Card & Audio Demo board for raspberry Pi Pico“で紹介されている拡張ボードを接続して動かすことを前提にしています。
このボードは「https://datasheets.raspberrypi.org/rp2040/VGA-KiCAD.zip」でKiCad向けファイルがあるので自分で発注もできますが、普通は完成品の「Pico VGA Demo base」などを購入すると思います。
私は安く済ませようかと思い、抵抗器、コネクタを買って配線したのですが、よく考えたら部品代で\2,500くらいかかっていて、だったら素直に「Pico VGA Demo Base」を買えばよかったです涙。
配線は「Hardware design with RP2040.pdf」の”Chapter 3. The VGA, SD Card & Audio Demo board for raspberry Pi Pico”を元に以下のように配線しました。
抵抗をシリアルにいくつも使っているのは購入費を減らすために1種類の抵抗器にしたかったからですが、おかげでかなり見栄えの悪い配線になってしまいました。
わかりづらいですが左上あたりにVGAコネクタがあります。これとディスプレイのVGAコネクタと接続してUSBコネクタから電源を供給します。
写真に写っているスイッチやSDカードアダプターは回路図に準じて付けたものですが、今回は使っていません(使えていません)。
またもう一つのPicoはpicoprobeをインストールして書き込み/Debug用に使用しています。
ファームウェア準備
環境はWindows10です。
まずはpico-sdkを入手します。「pico-sdk入手、pico-examples入手とビルド」を参照ください。今回はpico-examplesはいりません。pico-examplesの代わりにpico-extrasとpico-playgroundをpico-sdkと同じフォルダにcloneします。
「pico-sdk入手、pico-examples入手とビルド」と同様にpico-examplesの代わりに”pico-playground”にchdirしてビルドします。
1 2 3 4 5 |
C:\Users\xxx\pico_work> git clone -b master https://github.com/raspberrypi/pico-extras.git C:\Users\xxx\pico_work> git clone -b master https://github.com/raspberrypi/pico-playground.git C:\Users\xxx\pico_work> cd pico-extras C:\Users\xxx\pico_work\pico-extras> git submodule update --init C:\Users\xxx\pico_work\pico-extras> cd .. |
1 2 3 4 5 |
C:\Users\xxx\pico_work> cd pico-playground C:\Users\xxx\pico_work\pico-playground> mkdir build C:\Users\xxx\pico_work\pico-playground> cd build C:\Users\xxx\pico_work\pico-playground\build> cmake -G "NMake Makefiles" -D "PICO_BOARD=vgaboard" .. C:\Users\xxx\pico_work\pico-playground\build> nmake |
ビルドが成功したらバイナリーファイル(uf2やelf)を書き込みます。
例えば”scanvideo\demo1″を書き込み/実行したいなら、”\pico-playground\build\scanvideo\demo1\demo1.uf2もしくはdemo1.elf”を書き込みます。
uf2ファイルの書き込みにはRaspberry Piを使います。「Raspberry Pi Pico事始め(Lチカ)」を参照ください。
elfファイルの書き込みはもう1台のRaspberry Pi Picoを使います。「MSYS2インストール→OpenOCDインストール・実行」「picoprobeインストール」「PC ⇔ Picoprobe ⇔ Pico 配線」を参照ください。
実行結果
アップしている動画/画像はスマホで撮ったものですが元は640×480のディスプレイ画像です。
scanvideo/demo1
音は出ません。
scanvideo/flash_stream
配線がいい加減なためか砂嵐状態になっていしまいました(動画なし)。
scanvideo/hscroll_dma_tiles
音は出ません。
scanvideo/mandelbrot
音は出ません。
scanvideo/mario_tiles
音は出ません。
scanvideo/scanvido_minimal
静止画です。
scanvideo/sprite_demo
音は出ません。配線がいい加減なためかうまく再生できていません。
scanvideo/test_pattern
静止画です。
scanvideo/textmode
静止画です。
sprite_demoは画像が乱れていますし、flash_streamは砂嵐状態です(動画なし)。
また動かなかったので触れていませんが、「pico-playground\apps\popcorn」も動きませんでした。これらはSDカードを使用しているのでSDカードの問題もあるかもしれません。
それはともかくたかがCorex-M0+くらいでディスプレイ画像が出せるのはすごいですね。dual core + 125MHz clock + pioのおかげでしょう。
2022/1/9 追記
「Pico VGA Demo base」を買ってみて 、 scanvideo/flash_strean、scanvideo/sprite_demo、apps/popcorm を再度やってみましたが結果は全く一緒でうまく動きませんでした。配線が悪いからではなかったんですね。
終わり