Raspberry Pi Pico ビデオ出力

TL;DR

Raspberry Pi Picoは信じられないほど小さなマイクロコントローラーだ。より大きなRaspberry Pi Zero / 1 / 2 / 3 / 4 / 400の兄弟のように、ビデオ出力インターフェースは内蔵していないが(HDMI / ダブルHDMI)、 ピコにビデオ出力を追加することができる! (HDMIコネクタ上のVGAまたはDVIとして。)

この記事では、ビデオ出力がマイコンにとって非常に特別な機能である理由と、Pico用にどのようなタイプのビデオ出力を作成または購入できるかを説明します。また、すでにコンパイル済みのサンプルコードもお見せしますので、直接ダウンロードしてください。

姉妹店です、 buyzero.deピコ社では、以下のような様々なピコ・アクセサリーを販売している。 DVIソックスを、そして Pico用VGAキャリアボード.

注:Picoには、PicoのようなLinuxオペレーティングシステムはありません。 Raspberry Pi Zero W 例えば、「Pico!そのため、アプリケーションのコーディングやPicoへのアップロードの方法を学ぶには、もう少し深く潜る必要がありそうだ。それが苦手なら パイ・ゼロW は、🙂のまわりで遊び始めるには、より適しているかもしれない。

DVIソックを使ったピコビデオ出力 - ワイルドなアニメーションが可能。この顔に見覚えはありますか?コメントで教えてください

Raspberry Pi Picoを使って独自のビデオ・プロジェクトを成功させた方は、コメントでお知らせください!

なぜRaspberry Pi Picoビデオ出力の追加は難しいのか?

ラズベリーパイ400例えば、BCM2711 SoCがベースになっている。このシステムオンチップは、ビデオ出力を担当する特別なハードウェアを備えており、特定のビデオインターフェイス(BCM2711の場合は2つのHDMIポート)に指定されたフォーマットでビデオ出力を完璧に準備します。 パイ400.また、ビデオ出力データを保存するための大容量メモリ(4GB)を搭載している。

これをよりよく理解するためには、コンピュータのビデオ出力の基本をいくつか見ておく必要がある:

ビデオの表示と送信

私たちはスクリーン上の表示を "一度に "見る。私たちの脳には超並列配線があり、利用可能なすべての網膜細胞(錐体細胞と桿体細胞)から一度に情報を摂取する。

蝶を連れた猫、私たちがユーザーに見せたいものの一例。
撮影者 カリーナ・ヴォロジェワアンスプラッシュ

(脳への伝達メカニズムは、複数の網膜細胞にまたがる情報を統合するが、多くの情報が並行して伝達されることに変わりはない)。調べる 双極細胞 ご興味があれば)

しかし、脳には遅延がある。 13ミリ秒より速い視覚刺激の変化.(1秒間に約75フレームに1フレーム)。

つまり、本当に滑らかなアニメーションを表示しようと思ったら、1秒間に約60枚の静止画を表示する必要があるということだ。 私たちの脳は、これらの静止画を滑らかで生き生きとした再生として解釈する。

通常、これらの写真はカラーであることが望ましい。

私たちは3つの異なる色の視細胞を持っているので、スクリーンはこれら3つの異なる色だけを異なる明るさで表示する。繰り返しになるが、私たちの脳はこの情報をもとに、その間の色を合成するのである。(余談だが パープル 赤と青の混合色である)。

3原色がある:

  • レッド
  • グリーン

として知られている。 RGB.この3つを足すと白になる。赤と緑を足すと黄色、緑と青を足すとシアン、青と赤を足すとマゼンタになる。

つまり、私たちが本当に出力したいものは、次のようなものなのだ:

  • 3つの異なる色、
  • それぞれ異なる輝度値
  • 理想的には1秒間に約60種類の値(60Hz)
  • 一定の画面解像度 - 例:640 x 480

これが1秒間にどれだけのデータ量になるかを計算してみよう:

  • 3色
  • x 8ビット色深度
  • x 60
  • x 640 x 480

= 442.368.000ビット/秒 = 約422MBit/秒422 MBit/s

(例えば、ピコのUSB v1.1インターフェイスのスループットは約10Mビット/秒であり、約40倍も低いことを考慮してほしい!)

この情報を出力するために、理想的には、この情報をビットマップとしてRAMに保持したいところです。アプリケーションのある部分がRAMの画像を更新し、別の部分がモニターが扱える形式でデータを配信します。私たちは高速で動作しており、小さなレイテンシで確実にデータを読み取る必要があるため、RAMである必要があります。

どれだけのRAMが必要か計算してみよう:

  • 640×480(解像度)
  • x 3 (色)
  • x 8ビット(色深度)

= 7372800ビット=900kバイト(1バイト=8ビットに注意)

のRAMには900kバイトで何倍も収まる。 Raspberry Pi 400, ピコには264KBのRAMしかない.

ご覧のように、ビットマップをRAMに収めたいのであれば、いくつかのパラメータ(解像度、色深度など)を減らす必要がある!

ピコのRP2040 PIOはビデオデータを出力できる

最後に、Raspberry Pi 400をはじめとするRaspberry Piには、これらの情報を処理して確実に出力するための専用ハードウェア回路が搭載されているが、Picoにはビデオ出力専用の特別な回路はない。

RP2040はPIO(プログラマブルIO)をサポートしている!RP2040はPIO(プログラマブルIO)をサポートしているのだ。 PIOは正確なタイミングでさまざまなインターフェースをエミュレートするためのもので、非常に強力です!RAMからの読み出しや高速出力をプログラムできます。

PIOを使用していくつかのGPIOピンにビデオを出力し、Picoを接続したいビデオ出力インターフェースに応じて、いくつかの追加回路(抵抗)を使用して信号を希望の状態にします。

ビデオ出力フォーマットの履歴

Raspberry Pi Picoにビデオ出力を追加する方法の本題に入る前に、ビデオ出力フォーマットの歴史を少し見てみましょう。

すでに述べたように、人間の目は約13ミリ秒より速い画像の変化を検出することができない。そのため、コンピュータ・モニターを作るための最初のアプローチのひとつが CRT(ブラウン管) をモニターしている。

CRTモニターは、複数の光線(2)を使ってスクリーン上に画像を一行ずつ書き込む(4)。 CC BY-SA 3.0 ペオ~コモンズウィキ 

CRTには3つの光線銃があり、ピクセルごとに、ラインごとに掃引する。(その後、スタート地点に戻るのに時間がかかる)。スクリーンにはカラフルな蛍光体があり、光線が通過した後もしばらく発光し続ける。次に光線銃でこのピクセルを掃引すると、光線の強度が変わり、より暗いピクセルとして見えるかもしれない。私たちの脳は、隣接するカラフルな蛍光体ピクセルを1つのピクセルに統合してしまうため、光線掃引の間の明るさの変化に気づくことができない。

CRTのクローズアップ、カラフルな蛍光体のドットを示す:フリーイメージズドットコム/ヒューバートジェレン

こうすることで、動く映像のような錯覚が生まれる。

事実上、画像の最初にすべてのデータが存在する必要はない。 現在のピクセルの輝度値のみ.光線の強さはこれに応じて変化する。例えば、電圧を上げると明るさが増します。

それぞれの光線銃を個別に駆動するために)異なる色用に3つの異なる配線が必要で、新しいラインを開始する必要があるときと、新しい画像を開始する必要があるとき(すべてのラインが表示されたとき)をモニターに知らせる方法が必要だ。

VGA(ビデオグラフィックスアレイ)

VGAは、このようなCRTモニターを念頭に置いて設計されました。完全なデジタル伝送に移行するにつれて時代遅れになりつつあるとはいえ、モニターの入力としては今でもそれなりに一般的だ(これについては後述する)。

これはまた、ピコで動作させるのが最も簡単なビデオ出力規格でもある。

仕様(デフォルトの解像度モード)の次に、VGAコネクターというコネクターが指定された:

VGAポート、ダンカン・リスゴー撮影

ピンは15本:

  1. RED(赤いビデオ)
  2. GREEN(グリーンビデオ)
  3. BLUE(ブルー・ビデオ)
  4. ID2/RES(予約)
  5. GND(グラウンドHSync)
  6. RED_RTN(赤のリターン、赤のアナログ・グラウンド)
  7. GREEN_RTN (緑のリターン、緑のアナロググラウンド)
  8. BLUE_RTN (青色リターン、青色のアナログ・グラウンド)
  9. KEY/PWR (+5 V DC、一部のモニターではEDID EEPROMチップに電力を供給)
  10. GND (グランド VSync、DDC)
  11. ID0/RES(予約)
  12. ID1/SDA(DDC2以降のI2Cデータ)
  13. HSync(水平同期)
  14. VSync(垂直同期)
  15. ID3/SCL(DDC2以降のI2Cクロック)

注:VGAケーブルは、異なる解像度、色深度、リフレッシュ周波数をサポートすることができますが、解像度を指す「VGA」という言葉は通常640×480を意味します。

ご覧のように、次のようなものがある。 画像データを運ぶ3本のワイヤー(各色1本ずつ.信号は0.7Vのピーク(最大)電圧で送信される。電圧が高いほど輝度が高くなり、電圧が0であればそのピクセルは暗い/オフであることを意味する。

PicoでVGA出力を動作させる

つまり、3.3Vのデジタル出力を持つPicoは、VGAケーブル(VGAケーブルは0~0.7Vの電圧を想定している)でこれらのRGBピンを駆動するのに十分な高電圧を持っているということです。実際には、抵抗を使って電圧を下げる必要があります。

いくつかの抵抗とGPIOピンを組み合わせることで、簡単なDAC(デジタル・アナログ・コンバーター)を作ることができる。任意の時点でアクティブになっているGPIOピンの組み合わせによって、異なる電圧レベル(=明るさのレベル)が得られる:

シンプルなVGA DAC。写真は「RP2040によるハードウェア設計」より引用

上の写真でわかるように、5つのGPIO(0~4)が1つのチャンネル(この場合は赤)を駆動し、5ビットの深さを実現している。抵抗は1:2:4:8:16で重み付けされており、例えば赤の最下位ビット(LSB)には8.06Kの抵抗があります。

この回路を作ろうとする場合、次のようにする必要がある。 1 % トレランス抵抗器 良い写真を撮るために

をご参照ください。RP2040によるハードウェア設計"を参照して、抵抗値の計算方法を理解してください。要するに、すべてを一度にドライブすれば、電圧は0.74Vになる。

より具体的には、このリファレンス・デザインが提案しているのは、一般的に使用されている16ビットRGBデータ・フォーマット(RGB-565)をサポートすることで、これは赤と青に5ビット、緑に6ビットを使用します。緑への実際の物理的な出力を、他の色と同様に5つのGPIOピンに減らし、1ピンを節約することができます。

さらに、水平および垂直ブランキングタイミング用に2つのピンが必要です(HSYNCとVSYNC)。

これで、VGA出力を駆動するためのGPIOピンは合計17本になりました。幸運なことに、Picoには26本のGPIOピンがあり、VGA出力を駆動することができます。

前述のように、RP2040のPIO機能(プログラマブルI/O)により、Picoはこれらのピンを必要な周波数と正確なタイミングで駆動することもできます。

Raspberry Pi Pico VGAビデオ出力ハードウェア

Raspberry Pi Pico VGA、SDカード、オーディオ・デモボード - 写真はRP2040のハードウェア設計マニュアルより引用

ラズベリーパイはPico用のキャリアボードを設計し、オープンソース化した:

  • VGA出力
  • ボタン
  • マイクロSDスロット
  • オーディオ出力(アナログPWM、デジタルI2S)

Pico VGA/オーディオ/microSDボードを購入する

我々は(buyzero.de)は現在、このリファレンス・デザイン・ボードを作ってもらい、私たちのために組み立てているところです。 ボードの購入が可能になった時点で、通知を希望される方はご連絡ください。!

のです。 ピコVGAボードは現在弊社で購入可能です。!

一方、ピモロニもこのボードのバージョンを作った。 ピモロニ・ピコVGAデモベース.

余談:15本のRGB出力ピンの各ピンは、それでも約17.58Mビット/秒で駆動する必要がある!

VGA出力の駆動に必要なソフトウェア

Picoで作業しているので、単純にインストールできる "グラフィックドライバ "はありません。自分たちでコードを書く必要がある。

幸運なことに、私たちのためにハードウェア・ボードを設計してくれた人たちが、すでに私たちが使えるコードを提供してくれているので、私たちはプロジェクトに集中することができる。

サンプルコードは pico-playground Repository にあります:

このリポジトリには ポップコーン (カスタムフォーマットで映画を再生する)。A big buck bunny、1.6GBのサイズはこちらからダウンロードできます。.この例では、SDスロットを備えたVGAデモボードを使用していることを想定しています。使用方法 映画の変換 も与えられている。

このコードでは ピコ・スキャンビデオ ライブラリ(pico/scanvideo.h)にある。 ピコ・エキストラ リポジトリにあります。オーディオのサンプルコードもこのリポジトリを見てください!

APIはパラレルRGBデータと同期信号をDPI VGA用のピンに出力する(前述のように抵抗DACを使用)。

きちんとした指摘だ:

  • デフォルトのPIOスキャンライン・プログラムはランレングス・エンコードされたデータを受け付ける。

一般的には pico_scanvideoライブラリ VGA出力コードをゼロから開発する代わりに🙂。

グッドコーディングプラクティス

その他のデモ

をチェックしよう。 pico-playgroundリポジトリのscanvideoディレクトリ:

VGAボードの使用

コンパイル時にCMakeに追加のパラメーターを渡す必要がある:

-DPICO_BOARD=vgaboard

未定:ステップ・バイ・ステップのガイドを追加

DVI:デジタル・ビジュアル・インターフェース

テクノロジーは前進する。人生も進歩する。CRTはますます時代遅れとなり、デジタル・インターフェースを備えた、より現代的なフラットスクリーンに取って代わられた。動くビームはなく、ただのピクセルだ。

しばらくの間、信号はアナログであり続けた。しかし、これはあまり望ましいことではない。デジタル的なものをアナログ的なものに変換し、それをまたデジタル的なものに変換しなければならないからだ。画像はより正確でなくなり、省くことのできる回路が追加されることになる。

DVIの登場だ。DVIは巧みにアナログ信号も伝送するオプションを提供したため、単純なDVI-VGAアダプタやケーブルを作ることができた。もちろん、グラフィックカードはアナログとデジタルの両方のデータを出力する必要がある。しかし、これは規格が受け入れられ、普及するのに役立った。

ここではデジタル信号に興味がある(DVI-D)、Raspberry Pi Picoからビットバンギングしたいからだ。

DVI-Dでは、画像データはシリアル方式で伝送される。

シングルリンク」(最も基本的な)DVI接続は、次のように構成される。 いわゆるTMDSリンク(transition minimized differential signaling):

  • レッド
  • グリーン
  • ピクセルクロック

差動信号は干渉を最小化するために使用される。

ピクセルあたり合計24ビット(8ビット×3色)で、8b10bエンコーディングを使用してデータをエンコードする(DCバランスを達成するために、8ビットを実際の物理ライン上の10ビットのシンボルにマッピングする)。

DVIはVGAと同様にピクセルを扱います。画像が再び「始まる」たびにすべてが再送信され、データは正確にクロックされます。これは電話回線のようなもので、2人が話している間、回線は常に使用されています。

注:これとは対照的である、 DisplayPortはデータをパケットとして扱う - これには多くの利点がある。

前述のVGAの例とは対照的に、データはアナログの輝度値ではなくデジタルで送信されるため、データ量ははるかに多くなる。

ルーク・レンラズベリー・パイのエンジニアであるRP2040(ピコの心臓部)は、やはりPIOを使ってDVI出力を駆動できると考えていた。

その結果が PicoDVIリポジトリ そして ピコDVIソックス.

ルーク・レンが計算したところによると 252 Mbpsシリアル・データ は、GPIOデジタル・パッド(差動シリアル)を通して駆動されなければならないが、これは2つのシングルエンド・パッドでエミュレートされている。

dc_coupling.png
出典 ルーク・レンのリポジトリ (BSD-3 ライセンス)

上の図は、DVI出力を駆動するための回路(HDMIコネクターを使用。 270オーム 抵抗器。

ルーク・レンはさらに進んで、プラグインボードによってPicoDVIレイアウトにデュアルDVI出力を追加した:

2つのディスプレイ.jpg
デモを行うルーク・レン 2つのディスプレイに出力 自身のデザインによる

HDMI:DVIの下位互換

HDMIはコネクタの次の進化形です(DisplayPortと競合しています)。デジタルDVI信号と完全な下位互換性があるため、シンプルで純粋なパッシブDVI/HDMIコンバータを使用することができます。

ピコDVIソックス

Pico DVI SockはPiにデジタルビデオ出力を追加する簡単で低価格なソリューションです。Luke Wrenによって設計されました(上記の説明を参照)。HDMIコネクタ付きのDVI出力です。HDMIはDVIの下位互換なので、HDMIケーブルを使ってPicoをHDMIディスプレイに接続できます:

はんだ付け_04.jpg
撮影者 ルーク・レンCC0-1.0 ライセンス

Pico DVIソックのプログラミング

TL;DR

ダウンロードはこちらから picodvi-test.zip をダウンロードして、.UF2サンプル・コンパイルで遊んでみてください。また、ステップバイステップのガイドを提供するPDFも含まれています。

コード例

ルーク・レン 彼のリポジトリにあるコード例.しかし、Pico DVI Sockでこれらを使うには、正しいコンフィグを設定する必要があります。このミニチュートリアルでその方法を説明します。

インストールの前提条件

sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential

Luke Wren氏のPicoDVIレポをクローンする:

cd ~
mkdir pico
cd pico 
git clone https://github.com/raspberrypi/pico-sdk
cd pico-sdk
git submodule update --init
cd ~/pico
git clone https://github.com/Wren6991/PicoDVI.git

コード・サンプルをPico DVI Sockで使用するには、次のように設定する必要があります。 正しいピン配置 を使用する。次の行を common_dvi_pin_configs.h ちょうど 以前 最初の#ifndef

#define DEFAULT_DVI_SERIAL_CONFIG pico_sock_cfg

例を作る

cd PicoDVI/software/
mkdir build
cd build
export PICO_SDK_PATH=~/pico/pico-sdk
make -j$(nproc)

ピコにサンプルをインストールする

ビルドされたサンプルは、software/build/appsフォルダにあります。

PicoのBOOTSELキーを長押しし、microUSBコネクタを使ってボードをPCに接続します。試したい.uf2ファイル(例:sprite_bounce.uf2)をPicoにコピー&ペーストします。

Picoは自動的に再起動し、HDMIコネクターから出力が確認できるはずです(本当はDVIであることをお忘れなく :-))。

ダウンロード

ダウンロードはこちらから picodvi-test.zip をダウンロードして、.UF2サンプル・コンパイルで遊んでみてください。また、ステップバイステップのガイドを提供するPDFも含まれています。もし スプライト_バウンス.uf2 すべてのモニターがこのビデオ出力に対応しているわけではありません。

ここまで来たら、どんな効果があったか、どんなプロジェクトのアイデアを思いついたか、コメントで教えてください!

ピコDVIソックスを購入する

姉妹ページであるbuyzero.deでは、以下の商品を取り扱っています。 ピコDVIソックス の2種類がある:

参考:DBIとDSIのディスプレイ

余談だが、Raspberry Pi Pico Extrasリポジトリには、DBI(16ビットMIPI DBIディスプレイ - データはパラレルで渡される)とDSI(MIPIシリアルディスプレイ)のプレースホルダーがあるので、将来的にはこれらのディスプレイもサポートされるかもしれない。

20コメント

  1. VanTa on 3月 20, 2021 at 8:27 am となります。

    ゲンロックでのコンポジット出力の例は?

    • PiCaptain on 4月 6, 2021 at 2:47 pm となります。

      コンポジット出力は可能だと思うが、まだそのようなものを見たことがない。

  2. Miroslav Nemecek on 6月 10, 2021 at 10:24 am となります。

    scanvideoの代わりとして、Raspberry Pico用の別のVGA/TVライブラリである'PicoVGA'を実装した: http://www.breatharian.eu/hw/picovga/index_en.html

    • raspi berry on 7月 1, 2021 at 5:20 pm となります。

      図書館の情報を教えてくれてありがとう!

  3. Ashesh Rai on 6月 10, 2021 at 5:39 pm となります。

    ねぇ、このHDMIをINPUTとして使って、データを処理できる?

    • raspi berry on 7月 1, 2021 at 5:20 pm となります。

      抵抗はラズベリーパイの出力信号を制限する働きをする。
      そしてもちろん、出力が入力として機能するようにコードを適合させ、Pico内部でビデオデータを処理できるようにする。

  4. Lorencz on 6月 25, 2021 at 2:25 pm となります。

    しかし、いくつかの実用的なヒントがあります。シリコンの抽選のおかげで、特定のユニットがGPUとCPU部分を同じように比例してオーバークロックするとは限りません。ですから、より高速なグラフィックスを必要としないのであれば、GPUをオーバークロックしないでください。そうすれば、より高いオーバークロックが可能になり、安定したシステムが得られます。また、消費電力と供給電流が少ないほど、安定性が向上します。4つのCPUコアを持つRaspberry Pisは、4つのコアすべてをアクティブにして負荷をかけると、電力供給の壁にぶつかることがあります。内蔵のPMIC(電源管理IC)は、すべてのコアに必要な電流を供給できず、短時間電源を切ってPiを再起動することがあります。PMICも冷やしてください。全コア負荷(カーネルコンパイル、重い数値計算など)が必要な場合は、最大電圧にしすぎないこと。RPI4は、over_voltage=2で全コアをアクティブにして1850MHzで動作させることができますが、over_voltage=3を高くすると、負荷がかかると再起動してしまいます。over_voltageが高いということは、電流も高いということであり、PMIC回路は出力電流に制限がある。PMICとその周囲のインダクタが高温になればなるほど、供給できる電流は少なくなる。これはPMICチップの制限であり、BCMチップセットの制限ではありません。そのため、高負荷で時々再起動する場合は、PMICの過熱が原因かもしれません。もしPiがロックしてしまったら、それはこの特別な問題ではなく、おそらくシリコン抽選の損失でしょう。GPUパーツをアンダークロックすることは、オーバークロッカビリティ(より安定したシステム)を向上させる興味深い方法かもしれませんが、AFAIKでは、古いRaspberry PisはL2キャッシュがGPUに結びついていたので、アンダークロックするとCPUも遅くなるかもしれません。Raspberry Pi 4のPMICがどのように発熱するか、他のチップはすべてヒートシンクで直接冷却されている。この図は下側から見たもので、加熱されたPCBが見える。左下がPMIC。

    • raspi berry on 7月 1, 2021 at 5:18 pm となります。

      実践的なヒントをありがとう!

  5. Bing on 10月 23, 2021 at 7:20 am となります。

    こんにちは。
    私自身は初心者なのですが...。どなたか、cvbsディスプレイ出力の回路図を教えてください。また、ソースコードに必要な変更はありますか?

    • PiCaptain on 10月 23, 2021 at 1:40 pm となります。

      申し訳ないが、CVBについては分からない

  6. farooqkz on 11月 8, 2021 at 8:30 am となります。

    こんにちは
    素敵な記事をありがとう。最初から最後まで読ませてもらったよ。
    しかし、いくつかつまらない質問がある:
    1.RPi PicoにはPWMがあります。PWMで1ピンを使ってアナログ信号を出力し、VGAピンに送ることは可能だろうか?また、回路もシンプルで小さくなる。
    2.PWM を使って、RPi Pico からアナログ AV 出力を得ることは可能でしょうか?ほとんどのテレビはそれをサポートしていると思います。おそらく https://thecaferobot.com/store/pub/media/catalog/product/cache/14d1897c7f1bd4f35a7de1523300314a/l/c/lcd-01-057-1.jpg 地元の店で手に入る。しかし、私が送った写真はArduino用のモジュールだが、Picoでも使えるはずだ。
    3.Picoと組み合わせてVGAやDVIを使いたい場合、VGAやDVIのヘルパーボードを使わなくてもいいのでしょうか?というのも、私の地域ではそれらを購入することができませんし、自分で作成するほど私のスキルは高くないからです。

    • raspi berry on 11月 9, 2021 at 10:29 am となります。

      1.PWMピンは、おそらくビデオ出力に必要なタイミング精度を持ちません(これが、非常に正確なタイミングを持つPIOを使用する理由です)。しかし、試してみてはどうでしょう🙂。
      2.Raspberry Pi PicoからアナログAV出力を生成することは可能だと思います。PWMがこのために「十分」であるかどうかは疑問です(経験豊富な方のご意見をお聞かせいただければ幸いです!)。
      PWMは単に信号のオンとオフを切り替えるだけで、例えばVGAボードで使われている抵抗ラダーは連続的な信号レベルを与えることに注意してください。そのため、PWMソリューションが機能するためには、実際の信号に必要な周波数よりもはるかに高い周波数で動作する必要があります。また、信号が連続的なアナログ信号ではなくPWM信号であることに対して、外部のハードウェアがどのように反応するかもわかりません。
      非常に小さなコンデンサーを使えば平滑化できるかもしれないが、そのためには適切な計算が必要だ。
      3.ヘルパーVGA / DVIボードには、必要なもの(主に抵抗)が含まれています。回路図を見て、ブレッドボード上で独自のセットアップを構築することができます。
      とはいえ、海外発送も行っています:
      https://buyzero.de/products/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412
      ピコDVIソックス @ buyzero.de shop

  7. Nikolay on 12月 18, 2021 at 1:16 pm となります。

    素晴らしい情報だ。ありがとう。
    これも見つけた:ラズベリーピコのコンポジットビデオ出力
    http://www.breakintoprogram.co.uk/projects/pico/composite-video-on-the-raspberry-pi-pico

  8. Marcelo on 4月 23, 2022 at 10:09 pm となります。

    Wren6991のpicoDVIを作り、トリプルADCと統合してRGB 15Khz(640×240)をスキャンすることに成功した。
    1つのコアを使う320×240では、もう1つのコアはHSYNC/VSYNC割り込みの受信とdma転送の準備のために問題なく放置されているが、640×480では2つのコアの使用がシステムの正常な動作を妨げている。
    半分のラインは必要なので、奇数ラインのために常に用意された黒いラインを持つ方法はないだろうか?

    • Ed T on 2月 25, 2023 at 11:25 pm となります。

      空白行を送る必要はないと思う。すべての奇数ラインを送信し、半ラインを追加したvsync信号を送信し、偶数ラインを送信します。インターレースビデオ同期パルス」について調べてみてください。

  9. nix on 6月 9, 2022 at 2:40 pm となります。

    どなたか、お手本ではなく自分で作ったビデオを読み込む方法をご存じですか?よろしくお願いします!

    • Wayne on 7月 30, 2022 at 1:25 pm となります。

      ユニークなオーディオ・ビジュアル・ディスプレイに使いたいと思っています。どなたか教えてください:

      HDMIケーブルからPicoに電源を供給することは可能ですか?

      Rec2100色空間(rec2020 HDR色空間)に設定できますか?

      オーディオ(とrec2020/HDR信号)を送信するために、HDMIに余分なラインを接続することは可能ですか?

      USBビデオ・フォーマット(USB-ピコ・アダプターを通した不変ピコからのビデオ)でビデオを出力できますか?

      Picoワイヤレスを使って、Miracastはできますか?

      通常のビットマップ・ビデオモードが可能で、余ったサイクルでゲームグラフィックス用に操作できるのか?

      SeedstudioはミニRP2040ボードを持っています。 HDMIインターフェイスボードとソフトウェアは、それに対応できますか? また、無線LAN付きのRiscVバージョンもあるので、それ用にリコンパイルできればいいのですが。

      https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html?queryID=31d59a67f7c148df996ba9c1bb7563e3&objectID=5026&indexName=bazaar_retailer_products

      ゲーミングウォッチのようなゲーム用途に興味がある。

      JavaScriptの最小限の実行可能なプラットフォームはありますか?

      お願いすることが多くて申し訳ないが
      最も興味深い。

      ありがとう。

  10. hitech444 on 7月 17, 2022 at 4:20 pm となります。

    GeoffのMMBasicインタプリタと一緒にあなたのカードを使うことはできますか?あなたのカードのために私のプログラムにハードウェアの制限がありますか?

    • Graham on 11月 10, 2022 at 10:00 am となります。

      私もこの線で考えていました!ラズベリー・ピコ・ベースのVGA出力付きMMBASICコンピュータはすでに作ったが、素晴らしいの一言に尽きる!しかし、DVI-D(擬似HDMI)出力は、グラフィック機能を新たなレベルに引き上げます!もちろんMMBASICは、より高い色深度や解像度を完全に利用する必要はないが、例えば64色で640×480で動作するのはかなり素晴らしいだろう。

      とはいえ、私は当面2つの問題を予見している。
      1.VGAソリューションもPIOピンを使用し、コアの1つをスプライト管理やフレームバッファリングなどに使用します。私はそう考えています。少なくとも、VGAのPIO実装を置き換えるためには、コードの変更が必要になるでしょう。APIとして、PIO(VGA)とフレームバッファコアコード間のインターフェースがDVI PIOソリューションと同じであれば、私も驚きますが、間違っているかもしれません。いずれにせよ、コードの変更が必要になるだろう。
      2.RAM。十分な量がないので、高解像度と高色深度が問題になる。しかし、解決策はあると思う。外付けのPSRAMを使い、おそらく1台のRP2040/Picoを「GPU」として使い、専用のPSRAMを接続する。そして、MMBASICを実行している「CPU」またはシステムの頭脳を提供する2番目のRP2040と通信し、最小限のオーバーヘッド(I2Cリンク経由など)でGPUに指示することで、グラフィック資産を操作/移動できる。これが欲しい/必要なんだ😉。

  11. Dave on 12月 30, 2023 at 1:27 pm となります。

    Raspberry Pi Pico VGA Audio SD Expansion Board」が64ユーロ?ゼロを使った方がいい...

コメントを残す