Sadržaj:
- Pribor
- Korak 1: Formatirajte SD karticu
- Korak 2: Pripremite Arduino
- Korak 3: Arduino skica
- Korak 4: Korištenje ovog programa
Video: Arduino TFT program crtanja: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Ovo uputstvo detaljno opisuje kôd koji se koristi za izradu programa za crtanje za Arduino TFT ekran. Međutim, ovaj je program jedinstven jer omogućuje spremanje crteža na SD karticu i njegovo kasnije učitavanje radi dodatnih uređivanja!
Pribor
- Arduino Uno - izvorni ili kompatibilni klon
- TFT zaslon osjetljiv na dodir - koristio sam zaslon Elegoo, što znači da su mi potrebni upravljački programi Elegoo.
- Ploča čitača Micro SD - koristi se za spremanje podataka o crtanju na SD karticu. Moj ekran je imao ugrađen čitač ispod zaslona.
- Stylus - moj ekran je došao s jednim. Nokti također dobro funkcioniraju.
- Mikro SD kartica - ne više od 32 GB, zbog ograničenja formatiranja exFAT (Arduino može čitati kartice u formatu FAT32, ali NE i exFAT. Većina većih kartica formatirane su s exFAT.). Ovo je vrsta koju biste stavili u telefon s proširivom memorijom.
- Računalo s Arduino IDE
- Kabel za programiranje - USB A na USB B. Moj Arduino je došao s jednim.
- Adapter za SD karticu - koristi se za pretvaranje Micro SD kartice u normalnu SD karticu za umetanje u SD ILI onu koja spaja SD karticu u USB utor.
Korak 1: Formatirajte SD karticu
- Uzmite Micro SD karticu i pričvrstite je na računalo pomoću čitača SD kartica
- Otvorite File Explorer i pronađite SD karticu.
- Desnom tipkom miša kliknite i odaberite Oblikovanje.
- Postavite opcije na temelju snimke zaslona.
- Pritisnite Start.
- Izbacite karticu kad je proces dovršen.
Ako ne koristite Windows, pokušajte upotrijebiti SD Formatter iz SD asocijacije.
Korak 2: Pripremite Arduino
- Pritisnite štitnik zaslona prema dolje na Arduino, pazeći da poravnate pinove.
- Umetnite SD karticu u čitač ispod zaslona.
Korak 3: Arduino skica
Iako je popis dijelova bio prilično jednostavan, postoji gomila koda. Ovdje ću proći korak po korak.
#uključi
#include #include #include #include
Elegoo_GFX, _TFTLCD i TouchScreen svi su hardverski specifični. Ako koristite drugi zaslon, upotrijebite knjižnice koje je osigurao proizvođač.
SPI i SD se koriste za komunikaciju sa SD karticom. SPI je protokol koji koristi kontroler SD kartice.
#if definirano (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
Ovo je također specifično za hardver.
#define YP A3 // mora biti analogni pin #define XM A2 // mora biti analogni pin #define YM 9 #define XP 8
// Dodirnite Za novi ILI9341 TP
#define TS_MINX 120 #define TS_MAXX 900 #define TS_MINY 70 #define TS_MAXY 920
#definirajte CSPIN 10
#define LCD_CS A3
#define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4
Svaki od ovih izraza #define natjera IDE da zamijeni ime s vrijednošću. Ovdje postavljaju LCD i SD U/I pinove.
// Dodijelite imena nekim 16-bitnim vrijednostima boje: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define PLAVO 0x001F #define ZELENO 0x07E0
Ovo su neke od boja koje se koriste u kodu. #njihovo definiranje olakšava čitanje koda.
#define PENRADIUS 3
Time se definira veličina olovke za crtanje.
#define MINPRESSURE 10#define MAXPRESSURE 1000
// Za bolju preciznost pritiska moramo znati otpor
// između X+ i X- Za čitanje upotrijebite bilo koji multimetar // Za ovaj koji koristim, njegovih 300 ohma na X ploči TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Ove izjave definiraju pritisak potreban za registriranje dodira, inicijalizaciju funkcije dodira i pokretanje zaslona.
Pohrana datoteka; int storageSize; int stoX = 1; int stoY = 1;
Ovo su varijable za dio programa za pohranu.
void setup (void) {Serial.begin (9600); Serial.println ("Program za bojenje");
tft.reset ();
uint16_t identifikator = tft.readID ();
if (identifikator == 0x0101) {identifikator = 0x9341; Serial.println (F ("Pronađeno 0x9341 LCD upravljački program")); }
// Pokretanje zaslona
tft.begin (identifikator); tft.setRotation (2);
pinMode (13, OUTPUT);
// Pokretanje SD kartice
if (! SD.begin (CSPIN)) {Serial.println ("SD inicijalizacija nije uspjela"); povratak; } Serial.println ("SD inicijaliziran");
// Nacrtajte pozadinu
drawBackground (); }
Funkcija postavljanja pokreće serijski ako je dostupna, resetira zaslon, otkriva TFT upravljački program, pokreće zaslon, pokreće karticu i poziva funkciju za crtanje pozadine.
Preskočit ću na veći dio funkcije petlje. Sve ostalo služi samo za pogon zaslona osjetljivog na dodir.
// Otkrivanje pritiska na ekranu i spremanje u varijable if (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Skala p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - karta (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
//Crtati
if (p.y> 21) {// Spremanje podataka na memoriju SD kartice = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); skladištenje.println (p.y); skladištenje.close ();
// Točka na položaju dodira
tft.fillCircle (p.x, p.y, PENRADIUS, BIJELO); }
// Gumb za brisanje
if ((p.y 198) && (p.x <219)) {deleteStorage (); }
// Radnja gumba Učitaj
if ((p.y 219)) {loadStorage (); }}
Ako se otkrije preša, postavite varijable za mjesto preše.
Zatim, ako je tisak unutar područja za crtanje, spremite točku na SD karticu u storage.txt i nacrtajte krug na pritisnutoj točki, s definiranom veličinom i bojom.
Zatim, ako je pritisak na mjestu gumba za brisanje, pokrenite funkciju koja briše pohranjeni crtež. Ako koristite zaslon druge veličine, pokušajte se igrati s vrijednostima položaja gumba.
Zatim, ako je pritisak na mjestu gumba za učitavanje, pokrenite funkciju koja učitava pohranjeni crtež. Ako koristite zaslon druge veličine, pokušajte se igrati s vrijednostima položaja gumba.
Sada ću objasniti funkcije.
Prva funkcija poziva se u postavljanju za crtanje pozadine i gumba.
void drawBackground () {// Postavi pozadinu tft.fillScreen (BLACK);
// Bojanje teksta
tft.setTextColor (BIJELO); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Boja");
// Gumb za učitavanje
tft.fillRect (219, 0, 21, 21, ZELENO);
// Gumb za brisanje
tft.fillRect (198, 0, 21, 21, CRVENO); }
Crno ispunjava zaslon, upisuje riječ Boja i iscrtava kvadrate u boji za gumbe. Ako koristite zaslon druge veličine, pokušajte se igrati s vrijednostima položaja gumba.
void deleteStorage () {// Izbrišite datoteku SD.remove ("storage.txt");
// Postavljanje pozadine
tft.fillScreen (CRNO);
// Brisanje uspješnog teksta
tft.setTextColor (BIJELO); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt obrisan");
// Neka korisnik to pročita
odgoda (2000);
// Nastavak crtanja
drawBackground (); }
Funkcija deleteStorage uklanja storage.txt, ispunjava zaslon crnom bojom i daje poruku o uspjehu za brisanje. Zatim poziva funkciju drawBackground koja vam omogućuje da počnete slikati nešto drugo.
void loadStorage () {// Izbjegavajte ponavljanja zbog sporog odgode prstiju (250);
// Provjera datoteke za pohranu
if (! SD.exists ("storage.txt")) {Serial.println ("No storage.txt file"); povratak; }
// Otvaranje datoteke u načinu samo za čitanje
pohrana = SD.open ("storage.txt", FILE_READ);
// Iako postoje podaci, while (stoY> 0) {// Ažuriraj varijable položaja stoX = storage.parseInt (); stoY = storage.parseInt ();
// Izvlačenje iz skladišta
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Zatvorite datoteku storage.close (); }
Na kraju, funkcija loadStorage provjerava ima li datoteke za pohranu, otvara je u načinu samo za čitanje, a zatim ponavlja ovu petlju:
Sve dok ima više podataka,
- Ažurirajte varijable položaja s raščlanjenim podacima iz storage.txt
- Nacrtajte krug na učitanoj točki
Kad se petlja dovrši i nema više podataka, zatvara datoteku za pohranu.
Kôd za ovu skicu možete pronaći ispod. Samo ga preuzmite, otvorite u Arduinu i postavite na svoju ploču!
Korak 4: Korištenje ovog programa
Samo priključite svoj Arduino na izvor napajanja - računalo, bateriju, zidne bradavice itd. I počnite crtati. Za brisanje crteža i pohranjenih podataka pritisnite crveni gumb. Za učitavanje crteža iz pohrane i nastavak rada na njemu kliknite zeleni gumb. Na ovaj način možete mnogo puta ponavljati crtež!
Kao proširenje, pokušajte iscrtati crtež na računalu:
- Priključite SD karticu s podacima u računalo.
- Otvorite storage.txt u svom omiljenom uređivaču teksta/koda.
- Kopirajte sve vrijednosti u datoteku storage.txt.
- Slijedite ovu vezu do programa za crtanje točaka.
- Izbrišite dvije primjere točke s lijeve strane.
- Zalijepite svoje podatke tamo gdje su bile točke primjera.
Ovo je uredan način da pokažete svoje crteže - možda čak i pokušate promijeniti boju točke na Arduinu ili u crtaču točaka!
Izmjene su dobrodošle i volio bih vidjeti neke prijedloge u komentarima. Hvala vam što ste ovo pogledali i nadam se da ćete to pronaći u vlastitim projektima!
Preporučeni:
Arduino Uno Tutorial #1 - Osnovni program treptanja: 4 koraka
Arduino Uno Tutorial #1 - Osnovni Blink program: Pozdrav svima! Drago mi je što mogu objaviti svoju prvu instrukciju! Ova ideja mi je pala na pamet kad sam se borio da mi Arduino Uno radi, pa sam imao nekih poteškoća pa ću objasniti svim noobijima ovdje da takvi kao što ja ne znam mnogo
Kako prenijeti program Arduino Pro Mini 328P pomoću Arduino Uno: 6 koraka
Kako prenijeti program Arduino Pro Mini 328P pomoću Arduino Uno: Arduino Pro Mini je najmanja iverica koja ima 14 U/I pinova, radi na 3,3 V - 5 V DC i lako je učitati kôd u uređaj za programiranje. Specifikacija: 14 digitalni ulazi/izlazi RX, TX, D2 ~ D13, 8 analognih ulaza A0 ~ A7 1
Kako prenijeti program ili kôd u Arduino Pro Mini pomoću kabela za serijski pretvarač CH340 UART: 4 koraka
Kako prenijeti program ili kôd u Arduino Pro Mini pomoću kabela za serijski pretvarač CH340 UART: USB TTL serijski kabeli su niz USB kabela za serijski pretvarač koji omogućuju povezivanje između USB i serijskog UART sučelja. Dostupan je niz kabela koji nude povezivanje na 5 V, 3,3 V ili razine signala koje je odredio korisnik sa
Kako napraviti sat u stvarnom vremenu pomoću Arduino i TFT zaslona - Arduino Mega RTC s 3,5 -inčnim TFT zaslonom: 4 koraka
Kako napraviti sat u stvarnom vremenu koristeći Arduino i TFT zaslon | Arduino Mega RTC sa 3,5-inčnim TFT zaslonom: Posjetite moj Youtube kanal. Uvod:- U ovom postu napravit ću "Sat u stvarnom vremenu" koristeći 3,5-inčni TFT LCD zaslon osjetljiv na dodir, Arduino Mega 2560 i DS3231 RTC modul … .Prije početka … provjerite videozapis s mog YouTube kanala..Napomena:- Ako koristite Arduin
Program Arduino s telefonom: 3 koraka
Program Arduino s telefonom: U ovom nerješivom ću vam pokazati kako programirati Arduino pomoću vašeg Android telefona. Koristit ću ženski USB na ženski USB kabel jer sam imao dva USB proširenja, pa sam odlučio napraviti ovo umjesto da koristim OTG kabel. Dakle u osnovi w