TFTSPIディスプレイの写真とRGBビデオ
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
はじめに
こんにちは!
今日の記事では、TFT SPIディスプレイ(320x240、2.8 ")の画面で写真や写真(* .jpg形式)およびビデオ(RGB565形式)を表示する方法について説明します。
>まず、小さなデモビデオ:
ハードウェア
必要なコンポーネント:
- Arduino Nano R3、
- タッチスクリーン付きSPITFTディスプレイ(320x240)
- uSDカード> 1GB、
- ArduinoNano用のTFTシールド。
ビデオに示されている順序ですべてのパーツを配置します(または前の記事を読むことができます:https://create.arduino.cc/projecthub/alf81010/tft-shield-for-arduino-nano-start-f4391e。
ソフトウェア
マイクロSDカードの準備。
マイクロSDカードはFAT32でフォーマットする必要があります。画像はカードに直接記録できます(処理なし)。画像のサイズは2560x1920以下であることが望ましいです。
rgb565形式のビデオを再生するには、ファイルを事前に準備する必要があります。ビデオを変換するには、ffmpeg(http://ffmpeg.org)を使用します。コンピューターにダウンロードしてインストールします。次に、このデモと互換性のあるビデオを表示するコマンドラインffmpegの例を使用します。
ffmpeg -i video.avi -s 320x240 -pix_fmt rgb565 video.rgb
Arduino NanoのTFTシールドを操作するために必要なライブラリをダウンロードしてインストールします:https://github.com/YATFT/YATFT。
ArduinoNanoで次のスケッチをダウンロードしてください:
/ ******************************************* ************************************ソフトウェアとドキュメントは「現状有姿」で提供され、いかなる保証もありません*明示または黙示を問わず、商品性、権原、非侵害、および特定の*目的への適合性の保証*を含むがこれに限定されない種類。いかなる場合も、著者またはそのライセンサーは、契約、過失、無過失責任、貢献*、保証違反、またはその他の法定責任理論に基づいて責任を負わないものとします。 、*間接的、懲罰的または結果的な損害、利益の損失またはデータの損失、*代替商品、技術、サービス、または第三者による*請求(それらの防御を含むがこれに限定されない)*またはその他のSIMの調達費用。************************************************* ****************************** /#include //ハードウェア固有のライブラリ#include #include #include YATFT tft(0); SDC sdc; #define CS_PIN A0 // MOSI =11、MISO =12、SCK =13XPT2046_Touchscreen ts(CS_PIN); / *シールドを使用する場合、すべての制御ラインとデータラインが固定され、オプションでより単純な宣言を使用できます。* / uint16_t frame =0; uint32_t total_time =0; bool f_first =true; uint8_t mode =0; / ***************************************** ************************************************** ****** / void setup(void){Serial.begin(115200); //シリアルポートを初期化しますSerial.println(F( "Photo And Video Play example!")); tft.begin(0x4391、-8); //表示を初期化しますtft.SetColor(BLACK); tft.ClearDevice(); //画面をクリアしますts.begin(); //タッチスクリーンを初期化しますSPI.end(); Serial.print(F( "FS Init ...")); uint8_t state =sdc.FSInit(); if(state ==0)Serial.println(F( "unsuccess。")); else Serial.println(F( "success。")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis()+ 500;} void loop(void){if(total_time 100 &&y <140){//停止モード=1; Serial.println(F( "mode =1")); } else if(x> 140 &&x <180 &&y> 100 &&y <140){//一時停止モード=2; //ボタンを描画しますtft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/ 4、GetMaxY()/ 2,50); tft.SetColor(BRIGHTYELLOW); tft.DrawFillRect(GetMaxX()/ 4-30、GetMaxY()/ 2-30、GetMaxX()/ 4 + 30、GetMaxY()/ 2 + 30); tft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/ 4 * 3、GetMaxY()/ 2,50); tft.SetColor(BRIGHTYELLOW); for(uint8_t i =0; i <60; i ++){tft.DrawLine(210 + i、90 + i / 2、210 + i、150-i / 2); } Serial.println(F( "mode =2")); } else if(x> 190 &&y> 100 &&y <140){//再生モード=0; Serial.println(F( "mode =0")); }リターンモード; } SPI.end();リターンモード;}
短い記事を作って、その要点を説明してみました。さらに、このプロジェクトには難しいことは何もありません。ただし、ご不明な点がございましたら、お気軽にお問い合わせください。;-)記事を追加しようと思います。
ご清聴ありがとうございました!
続く。
以前の記事:
1)ArduinoUno用のユニークなTFTシールド-開始
2)ArduinoUno用のユニークなTFTシールド-OV7670Cam Live View、
3)Arduino Uno用のユニークなTFTシールド-Arduino Bluetoothカメラ(ABC)、
4)ArduinoNano用のTFTシールド-開始。
アップデート01.04.2021:
またあったね!一連の画面用に更新されたライブラリがあり、現在2つのシールドと2つのブレークアウトボードで構成されています。スケッチは、選択したバージョン(1から4)およびマイクロコントローラーのタイプ(MegaAVRまたはESP-32)に応じてコンパイルされます。写真、例を追加しました。詳細については、https://github.com/Ekaburg/EkaTFTをご覧ください。
コード
- PhotoAndVideoPlay.ino
PhotoAndVideoPlay.ino C / C ++
/ ********************************************** ******************************** *ソフトウェアとドキュメントは「現状有姿」で提供され、いかなる種類の保証もありません。明示または黙示を問わず、商品性、権原、非侵害、および特定の目的への適合性の保証を含みますが、これに限定されません。いかなる場合も、著者またはそのライセンサーは、契約、過失、無過失責任、貢献、*保証違反、またはその他の法定責任理論に基づいて責任を負わないものとします。 、*間接的、懲罰的または結果的な損害、利益の損失またはデータの損失、*代替商品、技術、サービス、または*第三者による請求(それらの防御を含むがこれに限定されない)、*またはその他のSIMの調達コスト。************************************************* ****************************** /#include//ハードウェア固有のライブラリ#include #include #include YATFT tft(0); SDC sdc; #define CS_PIN A0 // MOSI =11、MISO =12、SCK =13XPT2046_Touchscreen ts(CS_PIN); / *シールドを使用する場合、すべての制御ラインとデータラインが固定され、オプションでより単純な宣言を使用できます。* / uint16_t frame =0; uint32_t total_time =0; bool f_first =true; uint8_t mode =0; / **************************************** ************************************************** ******* / void setup(void){Serial.begin(115200); //シリアルポートを初期化しますSerial.println(F( "Photo And Video Play example!")); tft.begin(0x4391、-8); //表示を初期化しますtft.SetColor(BLACK); tft.ClearDevice(); //画面をクリアしますts.begin(); //タッチスクリーンを初期化しますSPI.end(); Serial.print(F( "FS Init ...")); uint8_t state =sdc.FSInit(); if(state ==0)Serial.println(F( "unsuccess。")); else Serial.println(F( "success。")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis()+ 500;} void loop(void){if(total_time 100 &&y <140){//停止モード=1; Serial.println(F( "mode =1")); } else if(x> 140 &&x <180 &&y> 100 &&y <140){//一時停止モード=2; //ボタンを描画しますtft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/ 4、GetMaxY()/ 2,50); tft.SetColor(BRIGHTYELLOW); tft.DrawFillRect(GetMaxX()/ 4-30、GetMaxY()/ 2-30、GetMaxX()/ 4 + 30、GetMaxY()/ 2 + 30); tft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/ 4 * 3、GetMaxY()/ 2,50); tft.SetColor(BRIGHTYELLOW); for(uint8_t i =0; i <60; i ++){tft.DrawLine(210 + i、90 + i / 2、210 + i、150-i / 2); } Serial.println(F( "mode =2")); } else if(x> 190 &&y> 100 &&y <140){//再生モード=0; Serial.println(F( "mode =0")); }リターンモード; } SPI.end();リターンモード;}
回路図
ArduinoNano用のライブラリTFTシールド
https://github.com/YATFT/YATFT製造プロセス
- 製造モビリティ:データ、音声、ビデオ、場所
- 新しいビデオコンバーターはAPIX3自動車インフォテインメントディスプレイをテストします
- データモジュール:スマートコントロールを備えた23.1インチの超伸縮TFTディスプレイ
- RaspberryPiとZabbixスーパーバイザーで読み取るアナログセンサー
- Kuman TFT 3.5 RetroPie 2018
- K 2019ビデオ:リサイクル機械および材料の革新
- DNとPNはフランジで何を意味しますか?(ビデオ)
- ホログラフィーとライトフィールドテクノロジーによって生成された実用的な3Dディスプレイ
- ILI9341TFTタッチスクリーンディスプレイシールドのビットマップアニメーション
- 3D RGB Arduclock
- 射出成形の表面仕上げ:SPI および VDI