Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Foto's en RGB-video op TFT SPI-display

Componenten en benodigdheden

Arduino Nano R3
× 1
2,8" 320x240 SPI TFT-scherm
× 1
uSD-kaart (>1GB)
× 1
TFT-schild (breakout) voor Arduino Nano
× 1

Over dit project

Inleiding

Hallo!

In het artikel van vandaag wil ik het hebben over hoe u afbeeldingen of foto's (*.jpg-formaat), evenals video (RGB565-formaat) op het scherm van het TFT SPI-display (320x240, 2.8") kunt bekijken.

Eerst een kleine demovideo:

Hardware

Benodigde componenten:

  • Arduino Nano R3,
  • SPI TFT-display (320x240) met touchscreen,
  • uSD-kaart>1GB,
  • TFT-schild voor Arduino Nano.

Alle onderdelen in de volgorde plaatsen die in de video wordt getoond (of je kunt het vorige artikel lezen:https://create.arduino.cc/projecthub/alf81010/tft-shield-for-arduino-nano-start-f4391e.

Software

Voorbereiding Micro SD-kaart.

Een micro SD-kaart moet worden geformatteerd in FAT32. Beelden kunnen direct op de kaart worden opgeslagen (zonder enige bewerking). Het is wenselijk dat de grootte van de afbeeldingen niet groter is dan 2560x1920.

Om video in rgb565-formaat af te spelen, moeten bestanden van tevoren worden voorbereid. Gebruik ffmpeg (http://ffmpeg.org) om video te converteren. Download en installeer op uw computer. Gebruik dan de voorbeeldopdrachtregel ffmpeg, die een video weergeeft die compatibel is met deze demo:

ffmpeg -i video.avi -s 320x240 -pix_fmt rgb565 video.rgb

Download en installeer de bibliotheek die nodig is om met het TFT-schild voor Arduino Nano te werken:https://github.com/YATFT/YATFT.

Download de volgende schets in Arduino Nano:

/******************************************* *********************************** SOFTWARE EN DOCUMENTATIE WORDEN GELEVERD "AS IS" ZONDER ENIGE GARANTIE* SOORT, EXPLICIET OF IMPLICIET, INCLUSIEF MAAR NIET BEPERKT TOT ENIGE GARANTIE* VAN VERKOOPBAARHEID, TITEL, NIET-INBREUK EN GESCHIKTHEID VOOR EEN BEPAALD* DOEL. IN GEEN GEVAL ZULLEN DE AUTEUR OF HAAR LICENTIEGEVERS AANSPRAKELIJK OF* VERPLICHT ZIJN ONDER CONTRACT, NALATIGHEID, STRIKTE AANSPRAKELIJKHEID, BIJDRAGE,* SCHENDING VAN GARANTIE, OF ANDERE JURIDISCHE GELIJKE THEORIE IN ENIGE RECHTSTREEKS OF INDIRECTE* SCHADE INCLUSIEF OF KOSTEN ,* INDIRECTE, BEPAALDE OF GEVOLGSCHADE, WINSTVERLIES OF GEGEVENSVERLIES,* KOSTEN VAN INKOOP VAN VERVANGENDE GOEDEREN, TECHNOLOGIE, DIENSTEN OF ENIGE* CLAIMS VAN DERDEN (INCLUSIEF MAAR NIET BEPERKT TOT ANDERE GELIJKTIJDIGE GOEDEREN) .************************************************** ******************************/#include  // Hardwarespecifieke bibliotheek#include #include #include YATFT tft(0);SDC sdc;#define CS_PIN A0// MOSI=11, MISO=12, SCK=13XPT2046_Touchscreen ts(CS_PIN);/* Als het schild wordt gebruikt, zijn alle besturings- en datalijnen vast en kan optioneel een eenvoudigere declaratie worden gebruikt:*/uint16_t frame =0;uint32_t total_time =0;bool f_first =true;uint8_ t-modus =0;/********************************************* ********************************************** ***/void setup(void){ Serial.begin(115200); // initialiseer de seriële poort Serial.println (F ("voorbeeld van foto en video afspelen!")); tft.begin(0x4391,-8); // initialiseer de weergave tft.SetColor (BLACK); tft.ClearDevice(); // Scherm wissen ts.begin(); // Init Touchscreen SPI.end(); Serial.print(F("FS Init... ")); uint8_t staat =sdc.FSInit(); if (state ==0) Serial.println(F("niet gelukt.")); else Serial.println(F("succes.")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis() + 500;}void loop(void){ if (total_time 100 &&y<140) { // Stopmodus =1; Serial.println(F("modus =1")); } else if (x>140 &&x<180 &&y>100 &&y<140) { // Pauzemodus =2; // Tekenknoppen tft.SetColor (HELDERROOD); tft.DrawFillCirc(GetMaxX()/4,GetMaxY()/2,50); tft.SetColor (HELDERGEEL); tft.DrawFillRect(GetMaxX()/4-30,GetMaxY()/2-30, GetMaxX()/4+30,GetMaxY()/2+30); tft.SetColor (HELDERROOD); tft.DrawFillCirc(GetMaxX()/4*3,GetMaxY()/2,50); tft.SetColor (HELDERGEEL); 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) { // Afspeelmodus =0; Serial.println(F("mode =0")); } retourmodus; } SPI.end(); retourmodus;} 

Ik heb geprobeerd een kort artikel te maken en daarin de belangrijkste punten te beschrijven. Bovendien is er niets moeilijks aan dit project. Maar als je vragen hebt - stel ze, aarzel dan niet.;-) Ik zal proberen een artikel toe te voegen.

Bedankt voor de aandacht!

Wordt vervolgd.

Vorige artikelen:

1) Uniek TFT-schild voor Arduino Uno - Start,

2) Uniek TFT-schild voor Arduino Uno - OV7670 Cam Live View,

3) Uniek TFT-schild voor Arduino Uno - Arduino Bluetooth-camera (ABC),

4) TFT Shield voor Arduino Nano - Start.

Update 01.04.2021:

Welkom terug! Er is een bijgewerkte bibliotheek voor een reeks schermen, die momenteel bestaat uit twee schilden en twee breakout-borden. Afhankelijk van de gekozen versie (van 1 tot 4) en het type microcontroller (MegaAVR of ESP-32) wordt de schets samengesteld. Foto's, voorbeelden toegevoegd. Meer informatie is te vinden op https://github.com/Ekaburg/EkaTFT.

Code

  • PhotoAndVideoPlay.ino
PhotoAndVideoPlay.inoC/C++
/************************************************** ******************************* * SOFTWARE EN DOCUMENTATIE WORDEN GELEVERD "AS IS" ZONDER ENIGE GARANTIE * OFWEL UITDRUKKELIJK OF IMPLICIET, INCLUSIEF MAAR NIET BEPERKT TOT ENIGE GARANTIE * VAN VERKOOPBAARHEID, TITEL, NIET-INBREUK EN GESCHIKTHEID VOOR EEN BEPAALD * DOEL. IN GEEN GEVAL ZULLEN DE AUTEUR OF HAAR LICENTIEGEVERS AANSPRAKELIJK OF * VERPLICHT ZIJN ONDER CONTRACT, NALATIGHEID, STRIKTE AANSPRAKELIJKHEID, BIJDRAGE, * SCHENDING VAN GARANTIE OF ANDERE JURIDISCHE GELIJKE THEORIE, ELKE RECHTSTREEKS OF INDIRECTE SCHADEVERGOEDING OF KOSTEN , * INDIRECTE, BEPAALDE OF GEVOLGSCHADE, WINSTVERLIES OF GEGEVENSVERLIES, * KOSTEN VAN INKOOP VAN VERVANGENDE GOEDEREN, TECHNOLOGIE, DIENSTEN OF ENIGE * CLAIMS DOOR DERDEN (INCLUSIEF MAAR NIET BEPERKT TOT ANDERE GEGEVENS), * VERDEDIGING .************************************************** ******************************/#include  // Hardwarespecifieke bibliotheek#include #include #include YATFT tft(0);SDC sdc;#define CS_PIN A0// MOSI=11, MISO=12, SCK=13XPT2046_Touchscreen ts(CS_PIN);/* Als het schild wordt gebruikt, zijn alle besturings- en datalijnen vast en kan optioneel een eenvoudigere declaratie worden gebruikt:*/uint16_t frame =0;uint32_t total_time =0;bool f_first =true;uint8_t modus =0;/********************************************* ********************************************** ****/void setup(void){ Serial.begin(115200); // initialiseer de seriële poort Serial.println (F ("voorbeeld van foto en video afspelen!")); tft.begin(0x4391,-8); // initialiseer de weergave tft.SetColor (BLACK); tft.ClearDevice(); // Scherm wissen ts.begin(); // Init Touchscreen SPI.end(); Serial.print(F("FS Init... ")); uint8_t staat =sdc.FSInit(); if (state ==0) Serial.println(F("niet gelukt.")); else Serial.println(F("succes.")); sdc.currentFileType =DEMO_FILE_TYPE_RGB; total_time =millis() + 500;}void loop(void){ if (total_time 100 &&y<140) { // Stopmodus =1; Serial.println(F("modus =1")); } else if (x>140 &&x<180 &&y>100 &&y<140) { // Pauzemodus =2; // Tekenknoppen tft.SetColor (HELDERROOD); tft.DrawFillCirc(GetMaxX()/4,GetMaxY()/2,50); tft.SetColor (HELDERGEEL); tft.DrawFillRect(GetMaxX()/4-30,GetMaxY()/2-30, GetMaxX()/4+30,GetMaxY()/2+30); tft.SetColor (HELDERROOD); tft.DrawFillCirc(GetMaxX()/4*3,GetMaxY()/2,50); tft.SetColor (HELDERGEEL); 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) { // Afspeelmodus =0; Serial.println(F("mode =0")); } retourmodus; } SPI.end(); retourmodus;}

Schema's

Bibliotheek TFT-schild voor Arduino Nano
https://github.com/YATFT/YATFT

Productieproces

  1. Mobiliteit produceren:data, spraak, video en locatie
  2. Nieuwe videoconverter test APIX3 automotive infotainmentschermen
  3. DATA MODUL:23,1-inch ultra-uitgerekt TFT-scherm met slimme bediening
  4. Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor
  5. Kuman TFT 3.5 RetroPie 2018
  6. K 2019-video:innovaties in het recyclen van machines en materialen
  7. Wat betekenen DN en PN op flenzen?(Video)
  8. Praktische 3D-weergave gegenereerd door holografie en lichtveldtechnologie
  9. Bitmap-animatie op ILI9341 TFT Touchscreen Display Shield
  10. 3D RGB Arduclock
  11. Injection Molding Surface Finishes:SPI en VDI