Sisällysluettelo:

Arduino TFT -piirustusohjelma: 4 vaihetta
Arduino TFT -piirustusohjelma: 4 vaihetta

Video: Arduino TFT -piirustusohjelma: 4 vaihetta

Video: Arduino TFT -piirustusohjelma: 4 vaihetta
Video: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Heinäkuu
Anonim
Arduinon TFT -piirustusohjelma
Arduinon TFT -piirustusohjelma
Arduinon TFT -piirustusohjelma
Arduinon TFT -piirustusohjelma
Arduino TFT -piirustusohjelma
Arduino TFT -piirustusohjelma

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

  1. Arduino Uno - alkuperäinen tai yhteensopiva klooni
  2. TFT -kosketusnäyttö - Käytin Elegoo -näyttöä, joten tarvitsin Elegoo -ohjaimia.
  3. Micro SD -lukulauta - käytetään piirtotietojen tallentamiseen SD -kortille. Näytölläni oli sisäänrakennettu lukija näytön alle.
  4. Kynä - näytöni mukana tuli yksi. Kynnet toimivat myös hyvin.
  5. 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.
  6. Tietokone, jossa on Arduino IDE
  7. Ohjelmointikaapeli - USB A - USB B. Arduinoni mukana tuli yksi.
  8. 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

Alusta SD -kortti
Alusta SD -kortti
Alusta SD -kortti
Alusta SD -kortti
  1. Ota Micro SD -kortti ja kiinnitä se tietokoneeseen SD -kortinlukijan avulla
  2. Avaa File Explorer ja etsi SD -kortti.
  3. Napsauta sitä hiiren kakkospainikkeella ja valitse Muoto.
  4. Aseta vaihtoehdot kuvakaappauksen perusteella.
  5. Napsauta Käynnistä.
  6. 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

Valmista Arduino
Valmista Arduino
Valmista Arduino
Valmista Arduino
  1. Paina näytönsuoja alas Arduinoon ja varmista, että nastat ovat linjassa.
  2. 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,

  1. Päivitä sijaintimuuttujat käyttämällä jäsennettyä dataa storage.txt -tiedostosta
  2. 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ö

Tämän ohjelman käyttäminen
Tämän ohjelman käyttäminen

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:

  1. Liitä tiedot sisältävä SD -kortti tietokoneeseen.
  2. Avaa storage.txt suosikki teksti-/koodieditorissasi.
  3. Kopioi kaikki storage.txt -tiedoston arvot.
  4. Tästä linkistä pääset pisteytysohjelmaan.
  5. Poista kaksi esimerkkipistettä vasemmalta.
  6. 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: