산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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 형식)을 볼 수 있는 방법에 대해 이야기하고자 합니다.

먼저 간단한 데모 동영상:

하드웨어

필요한 구성 요소:

<울>
  • 아두이노 나노 R3,
  • <울>
  • 터치스크린이 있는 SPI TFT 디스플레이(320x240),
  • <울>
  • usD 카드>1GB,
  • <울>
  • Arduino Nano용 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 비디오.rgb

    Arduino Nano용 TFT 실드와 함께 작동하는 데 필요한 라이브러리를 다운로드하여 설치하십시오:https://github.com/YATFT/YATFT.

    Arduino Nano에서 다음 스케치를 다운로드하십시오.

    <사전><코드>/************************************************ ************************************ 소프트웨어와 문서는 어떠한 보증도 없이 "있는 그대로" 제공됩니다* 명시적이든 묵시적이든 상품성, 소유권, 비침해 및 특정* 목적에의 적합성에 대한 보증*을 포함하되 이에 국한되지 않습니다. 어떤 경우에도 저자 또는 그의 라이선스 제공자는 계약, 태만, 엄격한 책임, 공헌*, 보증 위반 또는 기타 법적 형평성 이론에 따라 직접적 또는 간접적* 손해에 대해 책임을 지지 않거나 의무를 지지 않습니다. ,* 간접, 징벌적 또는 결과적 손해, 이익 손실 또는 데이터 손실,* 대체 상품, 기술, 서비스 또는 제3자의 모든* 클레임 조달 비용(한도로 제한되지 않음)* .**************************************************** ******************************/#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 (상태 ==0) Serial.println(F("실패.")); else Serial.println(F("성공")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis() + 500;}void 루프(void){ if (total_time 100 &&y<140) { // 정지 모드 =1; Serial.println(F("모드 =1")); } else if (x>140 &&x<180 &&y>100 &&y<140) { // 일시 정지 모드 =2; // 버튼 그리기 tft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/4,GetMaxY()/2,50); tft.SetColor(밝은 노란색); tft.DrawFillRect(GetMaxX()/4-30,GetMaxY()/2-30, GetMaxX()/4+30,GetMaxY()/2+30); tft.SetColor(밝은 빨간색); tft.DrawFillCirc(GetMaxX()/4*3,GetMaxY()/2,50); tft.SetColor(밝은 노란색); for(uint8_t i=0; i<60; i++) { tft.DrawLine(210+i, 90+i/2, 210+i, 150-i/2); } Serial.println(F("모드 =2")); } else if (x>190 &&y>100 &&y<140) { // 재생 모드 =0; Serial.println(F("모드 =0")); } 반환 모드; } SPI.end(); 반환 모드;}

    나는 짧은 기사를 만들고 그 내용의 요점을 설명하려고 노력했습니다. 또한이 프로젝트에는 어려운 것이 없습니다. 그러나 질문이 있으면 주저하지 말고 질문하십시오.;-) 글을 추가해보도록 하겠습니다.

    관심을 가져주셔서 감사합니다!

    계속됩니다.

    이전 기사:

    1) Arduino Uno용 고유 TFT 쉴드 - 시작,

    2) Arduino Uno를 위한 고유한 TFT Shield - OV7670 Cam Live View,

    3) Arduino Uno용 고유 TFT 실드 - Arduino Bluetooth 카메라(ABC),

    4) 아두이노 나노용 TFT 쉴드 - 시작.

    2021년 4월 1일 업데이트:

    다시 안녕! 현재 두 개의 실드와 두 개의 브레이크아웃 보드로 구성된 일련의 화면에 대한 업데이트된 라이브러리가 있습니다. 스케치는 선택한 버전(1~4)과 마이크로 컨트롤러 유형(MegaAVR 또는 ESP-32)에 따라 컴파일됩니다. 사진, 예를 추가했습니다. 자세한 내용은 https://github.com/Ekaburg/EkaTFT에서 확인할 수 있습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • PhotoAndVideoPlay.ino
  • PhotoAndVideoPlay.inoC/C++
    <사전>/************************************************ ******************************** * 소프트웨어와 문서는 어떤 종류의 보증도 없이 "있는 그대로" 제공됩니다. 상품성, 소유권, 비침해성 및 특정 목적에의 적합성에 대한 모든 보증을 포함하되 이에 국한되지 않는 명시적 또는 묵시적 *. 어떤 경우에도 저자 또는 그의 라이선스 제공자는 계약, 과실, 엄격한 책임, 공헌, * 보증 위반 또는 기타 법적 평등 이론에 의거하여 직접적 또는 간접적인 손해에 대해 책임을 지지 않거나 * 의무를 지지 않습니다. , * 간접, 징벌적 또는 결과적 손해, 이익 손실 또는 데이터 손실, * 대체 제품, 기술, 서비스 또는 기타 * 제3자의 클레임 조달 비용(한도로 제한되지 않음) .**************************************************** ******************************/#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 (상태 ==0) Serial.println(F("실패.")); else Serial.println(F("성공")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis() + 500;}void 루프(void){ if (total_time 100 &&y<140) { // 정지 모드 =1; Serial.println(F("모드 =1")); } else if (x>140 &&x<180 &&y>100 &&y<140) { // 일시 정지 모드 =2; // 버튼 그리기 tft.SetColor(BRIGHTRED); tft.DrawFillCirc(GetMaxX()/4,GetMaxY()/2,50); tft.SetColor(밝은 노란색); tft.DrawFillRect(GetMaxX()/4-30,GetMaxY()/2-30, GetMaxX()/4+30,GetMaxY()/2+30); tft.SetColor(밝은 빨간색); tft.DrawFillCirc(GetMaxX()/4*3,GetMaxY()/2,50); tft.SetColor(밝은 노란색); for(uint8_t i=0; i<60; i++) { tft.DrawLine(210+i, 90+i/2, 210+i, 150-i/2); } Serial.println(F("모드 =2")); } else if (x>190 &&y>100 &&y<140) { // 재생 모드 =0; Serial.println(F("모드 =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. 사출 성형 표면 마감:SPI 및 VDI