亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

TFT SPI 显示器上的照片和 RGB 视频

组件和用品

Arduino Nano R3
× 1
2,8" 320x240 SPI TFT 显示屏
× 1
uSD 卡 (>1GB)
× 1
Arduino Nano 的 TFT 屏蔽(突破)
× 1

关于这个项目

简介

你好!

在今天的文章中,我想谈谈如何在TFT SPI显示器(320x240,2.8英寸)的屏幕上查看图片或照片(*.jpg格式)以及视频(RGB565格式)。

首先,一个小演示视频:

硬件

需要的组件:

  • Arduino Nano R3,
  • 带触摸屏的 SPI TFT 显示屏 (320x240),
  • uSD 卡>1GB,
  • Arduino Nano 的 TFT 扩展板。

按照视频中显示的顺序放置所有部件(或者您可以阅读上一篇文章:https://create.arduino.cc/projecthub/alf81010/tft-shield-for-arduino-nano-start-f4391e。

软件

准备Micro SD卡。

micro 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。

在 Arduino Nano 中下载以下草图:

/*********************************************** ************************************ 软件和文档“按原样”提供,不提供任何保证*种类,无论是明示的还是暗示的,包括但不限于对适销性、所有权、非侵权和特定用途适用性的任何保证*。在任何情况下,作者或其许可人均不承担责任或* 因合同、疏忽、严格责任、贡献、* 违反保证或其他法律公平理论而对任何直接或间接* 损害赔偿承担责任,* 间接、惩罚性或后果性损害、利润损失或数据丢失、* 替代品、技术、服务的采购成本或任何* 第三方索赔(包括但不限于任何其他辩护)* .**************************************************** ******************************/#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 模式 =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 初始化...")); uint8_t 状态 =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) Arduino Uno 的独特 TFT 扩展板 - 开始,

2) Arduino Uno 独特的 TFT 扩展板 - OV7670 Cam Live View,

3) Arduino Uno 的独特 TFT 扩展板 - Arduino 蓝牙相机 (ABC),

4) Arduino Nano TFT Shield - 开始。

2021 年 4 月 1 日更新:

再一次问好!有一系列屏幕的更新库,目前由两个屏蔽和两个分线板组成。根据所选版本(从 1 到 4)和微控制器类型(MegaAVR 或 ESP-32)编译草图。添加了照片,示例。更多信息可以在 https://github.com/Ekaburg/EkaTFT 中找到。

代码

  • PhotoAndVideoPlay.ino
PhotoAndVideoPlay.inoC/C++
/**************************************************** ******************************** * 软件和文档“按原样”提供,不提供任何 * 种类的保证明示或暗示,包括但不限于,对适销性、所有权、非侵权和适用于特定用途的任何保证*。在任何情况下,作者或其许可人均不承担责任或 * 根据合同、疏忽、严格责任、贡献、* 违反保证或其他法律公平理论的义务,任何直接或间接 * 损害赔偿责任, * 间接、惩罚性或后果性损害、利润损失或数据丢失,* 替代品、技术、服务或任何 * 第三方索赔的采购成本(包括但不限于任何其他辩护)* .**************************************************** ******************************/#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 模式 =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 初始化...")); uint8_t 状态 =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();返回模式;}

示意图

Arduino Nano 的库 TFT 扩展板
https://github.com/YATFT/YATFT

制造工艺

  1. 制造移动性:数据、语音、视频和位置
  2. 新视频转换器测试 APIX3 汽车信息娱乐显示器
  3. 数据模块:23.1 英寸超拉伸 TFT 显示屏,智能控制
  4. 使用 Raspberry Pi 和 Zabbix Supervisor 读取模拟传感器
  5. Kuman TFT 3.5 RetroPie 2018
  6. K 2019 视频:回收机械和材料的创新
  7. DN 和 PN 在法兰上是什么意思?(视频)
  8. 全息和光场技术生成的实用 3D 显示
  9. ILI9341 TFT 触摸屏显示盾上的位图动画
  10. 3D RGB Arduclock
  11. Arduino 温度。使用 3.2 显示的监视器和实时时钟
  12. 注塑成型表面处理:SPI 和 VDI