Kazalo:
- Zaloge
- 1. korak: Formatirajte kartico SD
- Korak: Pripravite Arduino
- 3. korak: Arduino skica
- 4. korak: Uporaba tega programa
Video: Arduino TFT risalni program: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Ta navodila podrobno opisujejo kodo, ki je potrebna za izdelavo risalnega programa za Arduino TFT zaslon. Ta program pa je edinstven, saj omogoča shranjevanje risbe na kartico SD in poznejše nalaganje za več popravkov!
Zaloge
- Arduino Uno - izviren ali združljiv klon
- TFT zaslon na dotik - uporabil sem zaslon Elegoo, kar pomeni, da potrebujem gonilnike Elegoo.
- Bralna plošča Micro SD - uporablja se za shranjevanje risb na kartico SD. Moj zaslon je imel pod zaslonom vgrajen bralnik.
- Stylus - moj zaslon je prišel z enim. Tudi nohti dobro delujejo.
- Kartica Micro SD - največ 32 GB, zaradi omejitev oblikovanja exFAT (Arduino lahko bere kartice v formatu FAT32, NE pa tudi exFAT. Večina večjih kartic je formatiranih z exFAT.). To je tisto, kar bi dali v telefon z razširljivim pomnilnikom.
- Računalnik z Arduino IDE
- Programski kabel - USB A do USB B. Moj Arduino je prišel z enim.
- Adapter za kartico SD - uporablja se za pretvorbo kartice Micro SD v običajno kartico SD za vstavljanje v režo SD ALI tisto, ki povezuje kartico SD z režo USB.
1. korak: Formatirajte kartico SD
- Vzemite kartico Micro SD in jo z bralnikom kartic SD pritrdite na računalnik
- Odprite File Explorer in poiščite kartico SD.
- Z desno miškino tipko kliknite in izberite Oblika.
- Nastavite možnosti na podlagi posnetka zaslona.
- Kliknite Start.
- Ko je postopek končan, odstranite kartico.
Če ne uporabljate sistema Windows, poskusite uporabiti SD Formatter iz združenja SD.
Korak: Pripravite Arduino
- Pritisnite zaslon na zaslon navzdol na Arduino in pazite, da poravnate zatiče.
- Kartico SD vstavite v bralnik pod zaslonom.
3. korak: Arduino skica
Čeprav je bil seznam delov precej preprost, obstaja ogromno kode. Tukaj bom šel korak za korakom.
#vključi
#include #include #include #include
Elegoo_GFX, _TFTLCD in TouchScreen so vsi specifični za strojno opremo. Če uporabljate drug zaslon, uporabite knjižnice, ki jih zagotovi proizvajalec.
SPI in SD se uporabljata za komunikacijo s kartico SD. SPI je protokol, ki ga uporablja krmilnik kartice SD.
#if definirano (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
To je tudi specifično za strojno opremo.
#define YP A3 // mora biti analogni pin #define XM A2 // mora biti analogni pin #define YM 9 #define XP 8
// Dotaknite se za nov ILI9341 TP
#define TS_MINX 120 #define TS_MAXX 900 #define TS_MINY 70 #define TS_MAXY 920
#define CSPIN 10
#define LCD_CS A3
#define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4
Zaradi vsakega od teh stavkov #define IDE zamenja ime z vrednostjo. Tu nastavijo vhodno/izhodne zatiče LCD in SD.
// Dodelite imena nekaterim 16-bitnim barvnim vrednostim: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
To je nekaj barv, ki se uporabljajo v kodi. #njihovo definiranje olajša branje kode.
#define PENRADIUS 3
To določa velikost risalnega peresa.
#define MINPRESSURE 10#define MAXPRESSURE 1000
// Za boljšo natančnost pritiska moramo poznati upor
// med X+ in X- Za branje uporabite kateri koli multimeter // Za tistega, ki ga uporabljam, je njegovih 300 ohmov na plošči X TouchScreen ts = Zaslon na dotik (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Te izjave določajo pritisk, potreben za registracijo dotika, inicializacijo funkcije dotika in zagon zaslona.
Shranjevanje datotek; int storageSize; int stoX = 1; int stoY = 1;
To so spremenljivke za shranjevalni del programa.
void setup (void) {Serial.begin (9600); Serial.println ("program za barvanje");
tft.reset ();
uint16_t identifikator = tft.readID ();
if (identifikator == 0x0101) {identifikator = 0x9341; Serial.println (F ("Najdeno 0x9341 gonilnik LCD")); }
// Zaženite zaslon
tft.begin (identifikator); tft.setRotation (2);
pinMode (13, OUTPUT);
// Zagon kartice SD
if (! SD.begin (CSPIN)) {Serial.println ("Inicializacija SD ni uspela"); vrnitev; } Serial.println ("SD inicializirano");
// Narišite ozadje
drawBackground (); }
Nastavitvena funkcija zažene serijsko, če je na voljo, ponastavi zaslon, zazna gonilnik TFT, zažene zaslon, zažene kartico in pokliče funkcijo za risanje ozadja.
Preskočil bom na večji del funkcije zanke. Vse ostalo se uporablja samo za pogon zaslona na dotik.
// Zaznamo zaslonski pritisk in ga shranimo v spremenljivke if (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Lestvica p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - zemljevid (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// Nariši
if (p.y> 21) {// Shranite podatke v pomnilnik kartice SD = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// Točka na položaju na dotik
tft.fillCircle (p.x, p.y, PENRADIUS, BELO); }
// Gumb za brisanje
if ((p.y 198) && (p.x <219)) {deleteStorage (); }
// Dejanje gumba za nalaganje
if ((p.y 219)) {loadStorage (); }}
Če zaznate stiskalnico, nastavite spremenljivke za lokacijo stiskalnice.
Nato, če je tisk v območju risanja, shranite točko na kartico SD v datoteko storage.txt in na pritisnjeni točki narišite krog z določeno velikostjo in barvo.
Nato, če je pritisk na mestu gumba za brisanje, zaženite funkcijo, ki izbriše shranjeno risbo. Če uporabljate zaslon druge velikosti, se poskusite igrati z vrednostmi lokacije gumbov.
Nato, če je pritisk na mestu gumba za nalaganje, zaženite funkcijo, ki naloži shranjeno risbo. Če uporabljate zaslon druge velikosti, se poskusite igrati z vrednostmi lokacije gumbov.
Zdaj bom razložil funkcije.
Prva funkcija se pokliče v nastavitvah za risanje ozadja in gumbov.
void drawBackground () {// Nastavite ozadje tft.fillScreen (BLACK);
// Barvanje besedila
tft.setTextColor (BELO); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Barva");
// Gumb za nalaganje
tft.fillRect (219, 0, 21, 21, ZELENO);
// Gumb za brisanje
tft.fillRect (198, 0, 21, 21, RDEČA); }
Zaslon zapolni črno, napiše besedo Paint in za gumbe nariše barvne kvadrate. Če uporabljate zaslon druge velikosti, se poskusite igrati z vrednostmi lokacije gumbov.
void deleteStorage () {// Izbrišite datoteko SD.remove ("storage.txt");
// Nastavitev ozadja
tft.fillScreen (ČRNO);
// Izbriši besedilo uspeha
tft.setTextColor (BELO); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("shranjevanje.txt izbrisano");
// Naj uporabnik prebere
zamuda (2000);
// Nadaljuj z risanjem
drawBackground (); }
Funkcija deleteStorage odstrani datoteko storage.txt, napolni zaslon črno in pošlje sporočilo o uspehu brisanja. Nato pokliče funkcijo drawBackground, ki vam omogoča, da začnete slikati kaj drugega.
void loadStorage () {// Izogibajte se ponovitvam zaradi počasne zakasnitve prstov (250);
// Preveri shranjevalno datoteko
if (! SD.exists ("storage.txt")) {Serial.println ("Ni datoteke storage.txt"); vrnitev; }
// Odpiranje datoteke v načinu samo za branje
pomnilnik = SD.open ("storage.txt", FILE_READ);
// Čeprav obstajajo podatki, while (stoY> 0) {// Posodobi spremenljivke položaja stoX = storage.parseInt (); stoY = storage.parseInt ();
// Izvleci iz pomnilnika
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Zaprite datoteko storage.close (); }
Nazadnje funkcija loadStorage preveri shranjevalno datoteko, jo odpre v načinu samo za branje in nato ponovi to zanko:
Dokler je več podatkov,
- Posodobite spremenljivke položaja z razčlenjenimi podatki iz storage.txt
- Narišite krog na naloženi točki
Ko se zanka zaključi in ni več podatkov, zapre datoteko za shranjevanje.
Kodo za to skico najdete spodaj. Prenesite ga, odprite v Arduinu in naložite na svojo tablo!
4. korak: Uporaba tega programa
Arduino preprosto priključite na vir napajanja - računalnik, baterijo, stensko bradavico itd. In začnite risati. Če želite izbrisati risbo in shranjene podatke, pritisnite rdeči gumb. Če želite naložiti risbo iz shrambe in nadaljevati z njo, kliknite zeleni gumb. Na ta način lahko večkrat ponovite risbo!
Kot razširitev poskusite risbo narisati v računalniku:
- Priključite kartico SD s podatki v računalnik.
- Odprite datoteko storage.txt v svojem najljubšem urejevalniku besedil/kod.
- Kopirajte vse vrednosti v datoteko storage.txt.
- Sledite tej povezavi do programa za načrtovanje točk.
- Izbrišite dve vzorčni točki na levi.
- Prilepite svoje podatke tja, kjer so bile vzorčne točke.
To je lep način, da pokažete svoje risbe - morda celo poskusite spremeniti barvo točke na Arduinu ali v risalniku točk!
Spremembe so dobrodošle in v komentarjih bi rad videl nekaj predlogov. Hvala, ker ste si to ogledali in upam, da boste to našli v svojih projektih!
Priporočena:
Risalni robot za Arduino: 18 korakov (s slikami)
Risalni robot za Arduino: Opomba: Imam novo različico tega robota, ki uporablja tiskano vezje, ga je lažje sestaviti in ima zaznavanje IR ovir! Preverite na http://bit.ly/OSTurtleTa projekt sem zasnoval za 10-urno delavnico za ChickTech.org, katere cilj je
Arduino CNC ploter (RISALNI STROJ): 10 korakov (s slikami)
Arduino CNC ploter (RISALNI STROJ): Hej fantje! Upam, da ste že uživali v mojem prejšnjem navodilu " Kako narediti svojo lastno platformo za usposabljanje Arduino " in pripravljeni ste na novo, kot ponavadi sem naredil to vadnico, ki vas bo vodila korak za korakom, hkrati pa naredila tovrstno super neverjetno
Polargraph risalni stroj velikega obsega z zložljivo glavo peresa: 4 koraki (s slikami)
Polargraph risalni stroj velikega obsega z zložljivo glavo peresa: *Obsežna namestitev tega stroja je bila zasnovana in izvedena z Rui Periera To je zasnova za odprtokodno risbo Polargraph (http://www.polargraph.co.uk/) projekt. Vsebuje zložljivo glavo peresa in strojno opremo, ki omogoča
Risalni stroj: 4 koraki (s slikami)
Risalni stroj: Kako sem naredil svoj risalni stroj in pri tem umetnike zastaral. Ko sem se prvič preselil v svoj novi studio, nisem imel grozljivih pomembnih projektov in še nisem bil udoben v prostoru. Zgradil sem ta " risalni stroj " da bi lahko bil
Pijani risalni robot!: 4 koraki (s slikami)
Pijani risalni robot!: Navdihnjen z žepnim pijanim robotom sem želel robotu dati nalogo. Odločil sem se, da bom pijanemu robotu pustil nekaj risb. Za izdelavo svojega boste potrebovali naslednje: materiale: 3 označevalca s konico iz filca lepilna baterija