Arduino Nanoで2.8インチTFT SPI液晶にJPEG写真とRGB565動画を表示する
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | |
| 2.8インチ 320×240 SPI TFT液晶 (タッチパネル付き) | 1 | ILI9341等 |
| マイクロSDカード (1GB以上) | 1 | FAT32フォーマット |
| Arduino Nano用TFTシールド (ブレークアウトボード) | 1 | 配線固定用 |
プロジェクト概要
Arduino Nanoと2.8インチSPI TFT液晶を使って、SDカード内のJPEG静止画とRGB565形式の動画を再生するデモです。タッチパネルで再生/一時停止/停止操作も可能です。
ハードウェア接続
TFTシールドをArduino Nanoに装着し、マイクロSDカードをスロットに挿入するだけ。詳細な組み立て手順は前回記事を参照:
TFT Shield for Arduino Nano - Start
ソフトウェア準備
SDカードの準備
- FAT32でフォーマット
- JPEG画像はそのままコピー(推奨サイズ:2560×1920以下)
- 動画は事前にRGB565形式へ変換が必要
動画変換 (ffmpeg使用)
ffmpeg -i input_video.avi -s 320x240 -pix_fmt rgb565 output_video.rgb
必要ライブラリ
YATFTライブラリをインストール:
https://github.com/YATFT/YATFT
スケッチの概要
メインループでSDカード内のファイルを順次スキャンし、拡張子・ヘッダーでJPEGかRGB565かを判別して再生します。
// 主な処理フロー
void loop() {
if (時間になったら) {
if (最初のファイル) FindFirst("*.*");
else FindNext();
if (JPEGファイル) {
YUVモードに切替 → JPEGデコード → 画面表示 (2秒表示)
} else if (RGB565動画) {
RGBモードに切替 → フレーム順次読み込み → 表示
タッチで一時停止/再生/停止操作可能
}
}
}
タッチ操作
- 左エリア (x<130):**停止** → 次のファイルへ
- 中央エリア:**一時停止** → ボタン表示、再タッチで再生
- 右エリア (x>190):**再生**
更新情報 (2021/04/01)
ライブラリが更新され、複数のシールド/ブレークアウトボード、MegaAVR/ESP32に対応。詳細は EkaTFTリポジトリ を参照。
関連記事シリーズ
- Unique TFT Shield for Arduino Uno - Start
- Unique TFT Shield for Arduino Uno - OV7670 Cam Live View
- Unique TFT Shield for Arduino Uno - Arduino Bluetooth Camera (ABC)
- TFT Shield for Arduino Nano - Start (本記事の前回)
製造プロセス
- Raspberry PiとZabbixでアナログセンサーを読み取り - ステップバイステップガイド
- Kuman 3.5インチTFTディスプレイをRetroPieにインストールするステップバイステップガイド
- ILI9341 2.4インチTFTタッチシールドでのビットマップアニメーション実装ガイド
- 3D RGB アルドゥクロック:Bluetooth対応LED時計(RTC内蔵)
- ホログラフィック光場3Dディスプレイ:AR向けクリアで歪みのない視覚体験
- 新HDMI-APIX3コンバーターが自動車ビデオ/ADASテストを強化
- DATA MODUL、スマートWi-Fi制御搭載23.1インチ超薄型TFTディスプレイを発表
- モビリティで製造業を変革:データ、音声、ビデオ、位置情報ソリューション
- フランジのDNとPN表記の理解:総合ガイド
- K 2019、最先端リサイクル機械と持続可能な包装イノベーションを展示
- 射出成形仕上げのマスター: SPI & VDI 規格の解説