Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
Tämä opettavainen yksityiskohta kertoo koodin, joka tehdään piirustusohjelman tekemiseen Arduino TFT -näyttöön. Tämä ohjelma on kuitenkin ainutlaatuinen, koska se mahdollistaa piirustuksen tallentamisen SD -kortille ja lataamisen myöhemmin, jotta voit tehdä enemmän muokkauksia!
Tarvikkeet
- Arduino Uno - alkuperäinen tai yhteensopiva klooni
- TFT -kosketusnäyttö - Käytin Elegoo -näyttöä, joten tarvitsin Elegoo -ohjaimia.
- Micro SD -lukulauta - käytetään piirtotietojen tallentamiseen SD -kortille. Näytölläni oli sisäänrakennettu lukija näytön alle.
- Kynä - näytöni mukana tuli yksi. Kynnet toimivat myös hyvin.
- Micro SD -kortti - enintään 32 Gt exFAT -muotoilurajoitusten vuoksi (Arduino voi lukea FAT32 -alustettuja kortteja, mutta EI exFAT. Useimmat suuret kortit on alustettu exFAT: lla.) Tämä on sellainen, jonka laitat puhelimeen, jossa on laajennettava tallennustila.
- Tietokone, jossa on Arduino IDE
- Ohjelmointikaapeli - USB A - USB B. Arduinoni mukana tuli yksi.
- SD -korttisovitin - käytetään Micro SD -kortin muuttamiseen normaaliksi SD -korttipaikaksi TAI sellaiseksi, joka yhdistää SD -kortin USB -paikkaan.
Vaihe 1: Alusta SD -kortti
- Ota Micro SD -kortti ja kiinnitä se tietokoneeseen SD -kortinlukijan avulla
- Avaa File Explorer ja etsi SD -kortti.
- Napsauta sitä hiiren kakkospainikkeella ja valitse Muoto.
- Aseta vaihtoehdot kuvakaappauksen perusteella.
- Napsauta Käynnistä.
- Poista kortti, kun prosessi on valmis.
Jos sinulla ei ole Windows -käyttöjärjestelmää, kokeile SD -yhdistyksen SD Formatter -ohjelmaa.
Vaihe 2: Valmista Arduino
- Paina näytönsuoja alas Arduinoon ja varmista, että nastat ovat linjassa.
- Aseta SD -kortti näytön alla olevaan lukulaitteeseen.
Vaihe 3: Arduino -luonnos
Vaikka osaluettelo oli melko yksinkertainen, koodia on paljon. Käyn sen läpi askel askeleelta täällä.
#sisältää
#Sisällytä #Sisällytä #Sisällytä #Sisällytä
Elegoo_GFX, _TFTLCD ja TouchScreen ovat kaikki laitteistokohtaisia. Jos käytät toista näyttöä, käytä valmistajan toimittamia kirjastoja.
SPI: tä ja SD: tä käytetään kommunikoimaan SD -kortin kanssa. SPI on protokolla, jota SD -kortin ohjain käyttää.
#if määritetty (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
Tämä on myös laitteistokohtaista.
#define YP A3 // on oltava analoginen pin #define XM A2 // on oltava analoginen pin #define YM 9 #define XP 8
// Kosketa kohtaa Uusi ILI9341 TP
#define TS_MINX 120 #define TS_MAXX 900 #define TS_MINY 70 #define TS_MAXY 920
#määrittele CSPIN 10
#define LCD_CS A3
#define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4
Jokainen näistä #define -lauseista saa IDE: n korvaamaan nimen arvolla. Täällä he asettavat LCD- ja SD -I/O -nastat.
// Määritä nimet joillekin 16-bittisille väriarvoille: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
Nämä ovat muutamia koodissa käytettyjä värejä. #niiden määrittäminen helpottaa koodin lukemista.
#määritä PENRADIUS 3
Tämä määrittää piirustuskynän koon.
#define MINPRESSURE 10#define MAXPRESSURE 1000
// Paineen tarkkuuden parantamiseksi meidän on tiedettävä vastus
// X+: n ja X: lue se millä tahansa yleismittarilla // Käyttämässäni sen 300 ohmia X-levyn poikki Kosketusnäyttö ts = Kosketusnäyttö (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Nämä lausunnot määrittävät kosketuksen rekisteröimiseen, kosketustoiminnon alustamiseen ja näytön käynnistämiseen tarvittavan paineen.
Tiedostojen tallennus; int storageSize; int stoX = 1; int stoY = 1;
Nämä ovat muuttujia ohjelman tallennusosalle.
void setup (void) {Serial.begin (9600); Serial.println ("Paint -ohjelma");
tft.reset ();
uint16_t identifier = tft.readID ();
jos (tunniste == 0x0101) {tunniste = 0x9341; Serial.println (F ("Löytyi 0x9341 LCD -ohjain")); }
// Käynnistä näyttö
tft.begin (tunniste); tft.setRotation (2);
pinMode (13, LÄHTÖ);
// Käynnistä SD -kortti
if (! SD.begin (CSPIN)) {Serial.println ("SD -alustus epäonnistui"); palata; } Serial.println ("SD alustettu");
// Piirrä tausta
drawBackground (); }
Asennustoiminto käynnistää Sarjan, jos se on käytettävissä, palauttaa näytön, tunnistaa TFT -ohjaimen, käynnistää näytön, käynnistää kortin ja kutsuu toiminnon piirtämään taustan.
Siirryn pääosaan silmukkafunktiosta. Kaikkea muuta käytetään vain kosketusnäytön ajamiseen.
// Tunnista näytön paina ja tallenna se muuttujille, jos (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Scale p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - kartta (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// Piirrä
if (p.y> 21) {// Tallenna tiedot SD -kortin tallennustilaan = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// Piste kosketusasennossa
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// Poista -painike
if ((p.y 198) && (p.x <219)) {deleteStorage (); }
// Lataa -painikkeen toiminta
if ((s. 219)) {loadStorage (); }}
Jos lehdistö havaitaan, aseta muuttujat puristimen sijaintiin.
Jos sitten puristin on piirustusalueella, tallenna piste SD -kortille tallennustilaan.txt ja piirrä painettuun kohtaan ympyrä, jolla on määritetty koko ja väri.
Jos painat sitten poistopainiketta, suorita toiminto, joka poistaa tallennetun piirustuksen. Jos käytät erikokoista näyttöä, kokeile pelaamista painikkeiden sijainti-arvoilla.
Jos paina sitten latauspainikkeen sijaintia, suorita toiminto, joka lataa tallennetun piirustuksen. Jos käytät erikokoista näyttöä, kokeile pelaamista painikkeiden sijainti-arvoilla.
Nyt selitän toiminnot.
Ensimmäinen toiminto kutsutaan asetuksissa piirtämään tausta ja painikkeet.
void drawBackground () {// Aseta tausta tft.fillScreen (MUSTA);
// Maalaa teksti
tft.setTextColor (VALKOINEN); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Maali");
// Lataa -painike
tft.fillRect (219, 0, 21, 21, VIHREÄ);
// Tyhjennä -painike
tft.fillRect (198, 0, 21, 21, PUNAINEN); }
Se täyttää näytön mustana, kirjoittaa sanan Paint ja piirtää painikkeille värillisiä neliöitä. Jos käytät erikokoista näyttöä, kokeile pelaamista painikkeiden sijainti-arvoilla.
void deleteStorage () {// Poista tiedosto SD.remove ("storage.txt");
// Aseta tausta
tft.fillScreen (MUSTA);
// Poista onnistunut teksti
tft.setTextColor (VALKOINEN); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt poistettu");
// Anna käyttäjän lukea se
viive (2000);
// Jatka piirtämistä
drawBackground (); }
DeleteStorage -toiminto poistaa storage.txt -tiedoston, täyttää näytön mustana ja antaa onnistumisviestin poistettavaksi. Sitten se kutsuu drawBackground -toimintoa, jotta voit aloittaa maalaamisen jotain muuta.
void loadStorage () {// Vältä toistoja hitaista sormista (250);
// Tarkista tallennustiedosto
if (! SD.exists ("storage.txt")) {Serial.println ("Ei storage.txt -tiedostoa"); palata; }
// Avaa tiedosto vain luku -tilassa
tallennus = SD.open ("storage.txt", FILE_READ);
// Vaikka tietoja on, while (stoY> 0) {// Päivitä sijaintimuuttujat stoX = storage.parseInt (); stoY = storage.parseInt ();
// Piirrä varastosta
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Sulje tiedosto storage.close (); }
Lopuksi loadStorage-toiminto tarkistaa tallennustiedoston, avaa sen vain luku -tilassa ja toistaa tämän silmukan:
Niin kauan kuin dataa on enemmän,
- Päivitä sijaintimuuttujat käyttämällä jäsennettyä dataa storage.txt -tiedostosta
- Piirrä ympyrä ladattuun kohtaan
Kun silmukka on valmis eikä tietoja enää ole, se sulkee tallennustiedoston.
Tämän luonnoksen koodi löytyy alta. Lataa se, avaa se Arduinossa ja lataa se taulullesi!
Vaihe 4: Tämän ohjelman käyttö
Liitä Arduino vain virtalähteeseen - tietokoneeseen, akkuun, seinäsyöpään jne. Ja aloita piirtäminen. Voit poistaa piirustuksen ja sen tallennetut tiedot painamalla punaista painiketta. Voit ladata piirustuksen tallennustilasta ja jatkaa sen käsittelyä napsauttamalla vihreää painiketta. Tällä tavalla voit toistaa piirustuksen monta kertaa!
Laajennuksena piirrä piirustus tietokoneellesi:
- Liitä tiedot sisältävä SD -kortti tietokoneeseen.
- Avaa storage.txt suosikki teksti-/koodieditorissasi.
- Kopioi kaikki storage.txt -tiedoston arvot.
- Tästä linkistä pääset pisteytysohjelmaan.
- Poista kaksi esimerkkipistettä vasemmalta.
- Liitä tiedot esimerkkipisteiden sijaintiin.
Tämä on siisti tapa esitellä piirustuksesi - ehkä jopa yrittää muuttaa pisteen väriä Arduinossa tai pisteplotterissa!
Muutokset ovat tervetulleita, ja haluaisin nähdä joitain ehdotuksia kommenteissa. Kiitos, että katselit tätä ja toivon, että löydät sille siistin käyttötarkoituksen omissa projekteissasi!
Suositeltava:
Yksinkertainen ilmanlaadun valvonta TFT-LCD-näytöllä- Ameba Arduino: 3 vaihetta
Yksinkertainen ilmanlaadun valvonta TFT LCD -näytöllä-Ameba Arduino: Johdanto Nyt kun useimmat ihmiset jäävät kotiin välttämään läheistä kosketusta mahdolliseen COVID-19-viruksen kantajaan, ilmanlaadusta tulee tärkeä tekijä ihmisten hyvinvoinnille, etenkin trooppisissa maissa, joissa ilmastointilaitteiden käyttö on pakollista
Arduino TFT -näytönohjain: 4 vaihetta (kuvilla)
Arduino TFT Graphics Shield: a. Artikkelit {font-size: 110,0%; fontin paino: lihavoitu; fontti-tyyli: kursivoitu; tekstin koristelu: ei mitään; taustaväri: punainen;} a. artikkelit: hover {background-color: black;} Tässä ohjeessa kerrotaan, miten voit tehdä 240 x 320 pikselin (QVGA) värigrafiikan
Maagiset vastaukset pallo Arduino Pro Minin ja TFT -näytön avulla: 7 vaihetta
Maagisten vastausten pallo Arduino Pro Minin ja TFT -näytön avulla: Hetki sitten tyttäreni ja minä erotimme Magic 8 -pallon, jotta hän voisi korvata kaksikymmentä vastausta valitsemillaan. Tämä oli lahja ystävälle. Se sai minut miettimään, kuinka tehdä se laajemmassa mittakaavassa. Voisimmeko saada paljon m
Arduino Flappy Bird - Arduino 2,4 "TFT -kosketusnäyttö SPFD5408 Bird Game Project: 3 vaihetta
Arduino Flappy Bird | Arduino 2,4 "TFT -kosketusnäyttö SPFD5408 Bird Game Project: Flappy Bird oli liian suosittu peli siellä muutamassa vuodessa, ja monet ihmiset loivat sen omalla tavallaan, niin minäkin, loin oman versioni flappy birdistä Arduinolla ja halvalla 2,4" TFT: llä Kosketusnäyttö SPFD5408, joten aloitetaan
Reaaliaikaisen kellon tekeminen Arduinon ja TFT -näytön avulla - Arduino Mega RTC 3,5 tuuman TFT -näytöllä: 4 vaihetta
Reaaliaikaisen kellon tekeminen Arduinon ja TFT-näytön avulla | Arduino Mega RTC 3,5 tuuman TFT-näytöllä: Vieraile Youtube-kanavallani. 2560 ja DS3231 RTC-moduuli…. Ennen kuin aloitat… tarkista YouTube-kanavani video. Huomautus:- Jos käytät Arduinia