Obsah:
- Zásoby
- Krok 1: Naformátujte kartu SD
- Krok 2: Pripravte si Arduino
- Krok 3: Skica Arduino
- Krok 4: Používanie tohto programu
Video: Program kreslenia TFT Arduino: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Tento návod podrobne popisuje kód, ktorý je súčasťou tvorby programu na kreslenie pre obrazovku Arduino TFT. Tento program je však jedinečný, pretože umožňuje uloženie kresby na kartu SD a jej neskoršie načítanie, aby bolo možné vykonávať ďalšie úpravy!
Zásoby
- Arduino Uno - originálny alebo kompatibilný klon
- Dotyková obrazovka TFT - Použil som obrazovku Elegoo, to znamená, že som potreboval ovládače Elegoo.
- Doska čítačky Micro SD - slúži na ukladanie údajov kresby na kartu SD. Moja obrazovka mala vstavanú čítačku pod displejom.
- Stylus - s jedným prišiel aj môj displej. Dobre fungujú aj nechty.
- Karta Micro SD - nie viac ako 32 GB, kvôli obmedzeniam formátovania exFAT (Arduino dokáže čítať karty vo formáte FAT32, ale NIE exFAT. Väčšina väčších kariet je formátovaná exFAT.). Je to druh, ktorý by ste vložili do telefónu s rozšíriteľným úložiskom.
- Počítač s Arduino IDE
- Programovací kábel - USB A na USB B. Moje Arduino bolo dodané s jedným.
- Adaptér karty SD - slúži na konverziu karty Micro SD na normálnu kartu SD, ktorá sa dá vložiť do slotu SD ALEBO na ten, ktorý pripája kartu SD k zásuvke USB.
Krok 1: Naformátujte kartu SD
- Vezmite kartu Micro SD a pripojte ju k počítaču pomocou čítačky kariet SD
- Otvorte Prieskumník a nájdite kartu SD.
- Kliknite naň pravým tlačidlom myši a vyberte položku Formátovať.
- Nastavte možnosti na základe snímky obrazovky.
- Kliknite na tlačidlo Štart.
- Po dokončení postupu kartu vyberte.
Ak nepoužívate Windows, skúste použiť SD Formatter z asociácie SD.
Krok 2: Pripravte si Arduino
- Zatlačte štít obrazovky nadol na Arduino a dbajte na to, aby ste kolíky zoradili.
- Vložte kartu SD do čítačky pod obrazovkou.
Krok 3: Skica Arduino
Napriek tomu, že zoznam dielov bol veľmi jednoduchý, existuje veľa kódu. Tu si to prejdem krok za krokom.
#zahrnúť
#include #include #include #include
Elegantoo_GFX, _TFTLCD a TouchScreen sú špecifické pre hardvér. Ak používate inú obrazovku, použite knižnice dodávané výrobcom.
Na komunikáciu s kartou SD sa používajú SPI a SD. SPI je protokol, ktorý používa radič karty SD.
#ak je definovaný (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
Toto je tiež špecifické pre hardvér.
#define YP A3 // musí byť analógový pin #definovať XM A2 // musí byť analógový pin #definovať YM 9 #define XP 8
// Dotknite sa položky 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
Každý z týchto príkazov #define spôsobuje, že IDE nahradí názov hodnotou. Tu nastavia piny LCD a SD I/O.
// Priradenie názvov niektorým 16-bitovým hodnotám farieb: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define ZELENÁ 0x07E0
Toto je niekoľko farieb použitých v kóde. #ich definovanie uľahčuje čítanie kódu.
#define PENRADIUS 3
Toto definuje veľkosť pera na kreslenie.
#define MINPRESSURE 10#definujte MAXPRESSURE 1000
// Na lepšiu presnosť tlaku potrebujeme poznať odpor
// medzi X+ a X- na jeho prečítanie použite ľubovoľný multimeter // ten, ktorý používam, má 300 ohmov na doske X TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Tieto vyhlásenia definujú tlak potrebný na registráciu dotyku, inicializáciu dotykovej funkcie a spustenie obrazovky.
Úložisko súborov; int storageSize; int stoX = 1; int stoY = 1;
Toto sú premenné pre ukladaciu časť programu.
void setup (void) {Serial.begin (9600); Serial.println („Program na maľovanie“);
tft.reset ();
uint16_t identifier = tft.readID ();
if (identifikátor == 0x0101) {identifikátor = 0x9341; Serial.println (F ("Nalezený ovládač LCD 0x9341")); }
// Spustite obrazovku
tft.begin (identifikátor); tft.setRotation (2);
pinMode (13, VÝSTUP);
// Spustite kartu SD
if (! SD.begin (CSPIN)) {Serial.println ("Inicializácia SD zlyhala"); návrat; } Serial.println ("SD inicializované");
// Nakreslite pozadie
drawBackground (); }
Funkcia nastavenia spustí Serial, ak je k dispozícii, resetuje obrazovku, zistí ovládač TFT, spustí obrazovku, spustí kartu a vyvolá funkciu na kreslenie pozadia.
Preskočím na hlavnú časť funkcie slučky. Všetko ostatné slúži iba na ovládanie dotykovej obrazovky.
// Zistenie stlačenia obrazovky a uloženie do premenných if (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Scale p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - mapa (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// Nakreslite
if (str.y> 21) {// Uloženie údajov na úložisko karty SD = SD.open ("storage.txt", FILE_WRITE); storage.print (str. x); storage.print (","); storage.println (ročne); storage.close ();
// Bodka na dotyk
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// Tlačidlo Odstrániť
if ((str. 198) && (str. x <219)) {deleteStorage (); }
// Akcia tlačidla Načítať
if ((str. 219)) {loadStorage (); }}
Ak je detekovaný lis, nastavte premenné pre umiestnenie lisu.
Potom, ak sa lis nachádza v oblasti kreslenia, uložte bod na kartu SD v úložisku.txt a v stlačenom bode nakreslite kruh s definovanou veľkosťou a farbou.
Potom, ak je stlačenie v mieste tlačidla Odstrániť, spustite funkciu, ktorá odstráni uložený výkres. Ak používate obrazovku inej veľkosti, skúste sa pohrať s hodnotami umiestnenia tlačidiel.
Potom, ak je stlačenie v mieste tlačidla načítania, spustite funkciu, ktorá načíta uložený výkres. Ak používate obrazovku inej veľkosti, skúste sa pohrať s hodnotami umiestnenia tlačidiel.
Teraz vysvetlím funkcie.
Prvá funkcia sa volá v nastavení na kreslenie pozadia a tlačidiel.
void drawBackground () {// Nastavenie pozadia tft.fillScreen (BLACK);
// Maľovanie textu
tft.setTextColor (BIELY); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Maľovať");
// Tlačidlo načítať
tft.fillRect (219, 0, 21, 21, ZELENÁ);
// Tlačidlo Vymazať
tft.fillRect (198, 0, 21, 21, ČERVENÁ); }
Vyplní obrazovku čiernou farbou, napíše slovo Maľovať a nakreslí farebné štvorčeky pre tlačidlá. Ak používate obrazovku inej veľkosti, skúste sa pohrať s hodnotami umiestnenia tlačidiel.
void deleteStorage () {// Odstráni súbor SD.remove ("storage.txt");
// Nastavenie pozadia
tft.fillScreen (ČIERNA);
// Odstránenie textu úspechu
tft.setTextColor (BIELY); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt vymazaný");
// Nech si to užívateľ prečíta
oneskorenie (2000);
// Pokračujte v kreslení
drawBackground (); }
Funkcia deleteStorage odstráni súbor storage.txt, vyplní čiernu obrazovku a poskytne správu o úspešnom odstránení. Potom zavolá funkciu drawBackground, ktorá vám umožní začať maľovať niečo iné.
void loadStorage () {// Vyhnite sa opakovaniu spomaleného oneskorenia prstov (250);
// Vyhľadajte súbor v úložisku
if (! SD.exists ("storage.txt")) {Serial.println ("Žiadny súbor storage.txt"); návrat; }
// Otvorenie súboru v režime iba na čítanie
sklad = SD.open ("storage.txt", FILE_READ);
// Kým existujú údaje, while (stoY> 0) {// Aktualizácia premenných polohy stoX = storage.parseInt (); stoY = storage.parseInt ();
// Nakreslite z úložiska
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Zatvorte súbor storage.close (); }
Nakoniec funkcia loadStorage vyhľadá úložný súbor, otvorí ho v režime iba na čítanie a potom zopakuje túto slučku:
Pokiaľ je k dispozícii viac údajov,
- Aktualizujte premenné polohy analyzovanými údajmi zo súboru storage.txt
- V načítanom bode nakreslite kruh
Keď sa slučka dokončí a už nie sú žiadne údaje, zatvorí úložný súbor.
Kód tohto náčrtu nájdete nižšie. Stačí ho stiahnuť, otvoriť v Arduine a nahrať na tabuľu!
Krok 4: Používanie tohto programu
Jednoducho zapojte Arduino do zdroja napájania - počítača, batérie, nástennej bradavice atď. A začnite kresliť. Ak chcete vymazať kresbu a uložené údaje, stlačte červené tlačidlo. Ak chcete načítať kresbu z úložiska a pokračovať v práci, kliknite na zelené tlačidlo. Týmto spôsobom môžete na výkrese mnohokrát opakovať!
Ako rozšírenie skúste kresbu nakresliť na počítači:
- Pripojte kartu SD s údajmi k počítaču.
- Otvorte storage.txt vo svojom obľúbenom textovom/kódovom editore.
- Skopírujte všetky hodnoty v súbore storage.txt.
- Nasledujte tento odkaz na program vykresľovania bodov.
- Odstráňte dva príklady bodov vľavo.
- Prilepte svoje údaje tam, kde boli ukážkové body.
Toto je úhľadný spôsob, ako predviesť svoje kresby - možno dokonca skúste zmeniť farbu bodu na Arduine alebo v bodovom plotri!
Úpravy sú vítané a rád by som videl niekoľko návrhov v komentároch. Ďakujem, že ste sa na to pozreli, a dúfam, že vo svojich vlastných projektoch nájdete úhľadné využitie!
Odporúča:
Výukový program pre presný výškomer Arduino Nano - MPL3115A2: 4 kroky
Výučba presného výškomera Arduino Nano - MPL3115A2: MPL3115A2 využíva tlakový snímač MEMS s rozhraním I2C, ktorý poskytuje presné údaje o tlaku/nadmorskej výške a teplote. Výstupy senzorov sú digitalizované 24-bitovým ADC s vysokým rozlíšením. Interné spracovanie odstráni úlohy kompenzácie z
Arduino Nano-výukový program 3-osového 12-bitového/8-bitového digitálneho akcelerometra MMA8452Q: 4 kroky
Arduino Nano-trojosový 12-bitový/8-bitový digitálny akcelerometer MMA8452Q Výukový program: MMA8452Q je inteligentný, trojosový, kapacitný, mikroobrábaný akcelerometer s nízkym výkonom a 12 bitovým rozlíšením. Flexibilné programovateľné možnosti pre používateľov sú k dispozícii pomocou vstavaných funkcií v akcelerometri, konfigurovateľných na dve prerušenia
Kalkulačka dotykového displeja TFT LCD Arduino TFT: 3 kroky
Arduino TFT LCD dotyková kalkulačka: Ahoj, chlapci, v tomto návode sa naučíme, ako vytvoriť kalkulačku pomocou Arduino Uno s 3,5 " TFT LCD dotykový displej. Napíšte teda kód a nahrajte ho do arduina, ktoré na displeji zobrazí rozhranie kalkulačky a
Ako vytvoriť hodiny v reálnom čase pomocou displeja Arduino a TFT - Arduino Mega RTC s 3,5 palcovým TFT displejom: 4 kroky
Ako vytvoriť hodiny v reálnom čase pomocou Arduino a TFT displeja | Arduino Mega RTC s 3,5 palcovým TFT displejom: Navštívte môj kanál YouTube. Úvod:- V tomto príspevku urobím „Hodiny v reálnom čase“pomocou 3,5 palcového dotykového TFT LCD displeja, Arduino Mega Modul RTC 2560 a DS3231 …. Pred spustením … si pozrite video z môjho kanála YouTube..Poznámka:- Ak používate Arduin
Výukový program štítu TFT: 4 kroky
Výukový program štítu TFT: Dnes sa naučíte, ako vytvárať a používať tlačidlá vo svojich projektoch dotykovej obrazovky Arduino TFT. Používam Kumanov 2.8 " TFT Shield v kombinácii s Kumanovým Arduino UNO. Bonus: Štít TFT od spoločnosti Kuman je dodávaný s bezplatným stylusom, ktorý môžete používať