Obsah:
- Zásoby
- Krok 1: Naformátujte kartu SD
- Krok 2: Připravte Arduino
- Krok 3: Skica Arduino
- Krok 4: Použití tohoto programu
Video: Kreslicí program Arduino TFT: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Tento návod podrobně popisuje kód, který jde do tvorby kreslicího programu pro obrazovku Arduino TFT. Tento program je však jedinečný, protože umožňuje uložení výkresu na kartu SD a jeho pozdější načtení, aby bylo možné provádět další úpravy!
Zásoby
- Arduino Uno - originální nebo kompatibilní klon
- Dotyková obrazovka TFT - Použil jsem obrazovku Elegoo, což znamená, že jsem potřeboval ovladače Elegoo.
- Deska čtečky karet Micro SD - slouží k ukládání výkresových dat na kartu SD. Moje obrazovka měla pod displejem vestavěnou čtečku.
- Stylus - moje obrazovka přišla s jedním. Nehty také fungují dobře.
- Karta Micro SD - ne více než 32 GB, kvůli omezením formátování exFAT (Arduino umí číst karty formátované FAT32, ale NE exFAT. Většina větších karet je formátována exFAT.). Toto je typ, který byste vložili do telefonu s rozšiřitelným úložištěm.
- Počítač s Arduino IDE
- Programovací kabel - USB A na USB B. My Arduino byl dodán s jedním.
- Adaptér karty SD - slouží k převodu karty Micro SD na normální kartu SD do slotu SD NEBO na kartu, která spojuje kartu SD do slotu USB.
Krok 1: Naformátujte kartu SD
- Vezměte kartu Micro SD a připojte ji k počítači pomocí čtečky karet SD
- Otevřete Průzkumník souborů a najděte kartu SD.
- Klikněte na něj pravým tlačítkem a vyberte Formát.
- Nastavte možnosti na základě snímku obrazovky.
- Klikněte na Start.
- Po dokončení procesu kartu vysuňte.
Pokud nepoužíváte Windows, zkuste použít SD Formatter z přidružení SD.
Krok 2: Připravte Arduino
- Zatlačte štít obrazovky dolů na Arduino a dbejte na to, abyste seřadili kolíky.
- Vložte kartu SD do čtečky pod obrazovkou.
Krok 3: Skica Arduino
Ačkoli byl seznam dílů docela jednoduchý, existuje spousta kódu. Tady to projdu krok za krokem.
#zahrnout
#include #include #include #include
Elegoo_GFX, _TFTLCD a TouchScreen jsou hardwarově specifické. Pokud používáte jinou obrazovku, použijte knihovny poskytnuté výrobcem.
Ke komunikaci s kartou SD slouží SPI a SD. SPI je protokol používaný řadičem karty SD.
#if definováno (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
To je také specifické pro hardware.
#define YP A3 // musí být analogový pin #define XM A2 // musí být analogový pin #definovat YM 9 #define XP 8
// Dotkněte se pro 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 příkazů #define způsobí, že IDE nahradí název hodnotou. Zde nastavují piny LCD a SD I/O.
// Přiřazení názvů některým 16bitovým hodnotám barev: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
Toto je několik barev použitých v kódu. #jejich definování usnadňuje čtení kódu.
#define PENRADIUS 3
Tím je definována velikost kreslícího pera.
#definujte MINPRESSURE 10#definujte MAXPRESSURE 1000
// Pro lepší přesnost tlaku potřebujeme znát odpor
// mezi X+ a X- K přečtení použijte jakýkoli multimetr // Ten, který používám, má 300 ohmů přes desku X TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Tato prohlášení definují tlak potřebný k zaregistrování dotyku, inicializaci dotykové funkce a spuštění obrazovky.
Úložiště souborů; int storageSize; int stoX = 1; int stoY = 1;
Toto jsou proměnné pro úložnou část programu.
void setup (void) {Serial.begin (9600); Serial.println ("Malovací program");
tft.reset ();
uint16_t identifier = tft.readID ();
if (identifikátor == 0x0101) {identifikátor = 0x9341; Serial.println (F ("Nalezen ovladač 0x9341 LCD")); }
// Spusťte obrazovku
tft.begin (identifikátor); tft.setRotation (2);
pinMode (13, VÝSTUP);
// Spusťte SD kartu
if (! SD.begin (CSPIN)) {Serial.println ("inicializace SD se nezdařila"); vrátit se; } Serial.println ("SD inicializováno");
// Nakreslete pozadí
drawBackground (); }
Nastavovací funkce spustí sériové připojení, pokud je k dispozici, resetuje obrazovku, detekuje ovladač TFT, spustí obrazovku, spustí kartu a vyvolá funkci pro vykreslení pozadí.
Přeskočím na hlavní část funkce smyčky. Všechno ostatní slouží pouze k ovládání dotykové obrazovky.
// Detekce obrazovky stiskněte a uložte ji do proměnný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));
//Kreslit
if (p.y> 21) {// Uložení dat na úložiště karty SD = SD.open ("storage.txt", FILE_WRITE); storage.print (str. x); storage.print (","); storage.println (ročně); storage.close ();
// Tečka na místě dotyku
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// Tlačítko Odstranit
if ((str. 198) && (p.x <219)) {deleteStorage (); }
// Akce tlačítka Načíst
if ((str. 219)) {loadStorage (); }}
Pokud je detekován lis, nastavte proměnné pro umístění lisu.
Poté, pokud se lis nachází v kreslicí oblasti, uložte bod na kartu SD v úložišti.txt a nakreslete kruh v stisknutém bodě s definovanou velikostí a barvou.
Poté, pokud je stisknutí v místě tlačítka pro odstranění, spusťte funkci, která odstraní uložený výkres. Pokud používáte obrazovku jiné velikosti, zkuste si pohrát s hodnotami umístění tlačítek.
Poté, pokud je stisk v místě tlačítka pro načtení, spusťte funkci, která načte uložený výkres. Pokud používáte obrazovku jiné velikosti, zkuste si pohrát s hodnotami umístění tlačítek.
Nyní vysvětlím funkce.
První funkce se nazývá v nastavení k vykreslení pozadí a tlačítek.
void drawBackground () {// Nastavení pozadí tft.fillScreen (ČERNÁ);
// Malování textu
tft.setTextColor (BÍLÁ); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Malování");
// Tlačítko Načíst
tft.fillRect (219, 0, 21, 21, ZELENÁ);
// Tlačítko Vymazat
tft.fillRect (198, 0, 21, 21, ČERVENÁ); }
Vyplní obrazovku černě, napíše slovo Malování a nakreslí barevné čtverce pro tlačítka. Pokud používáte obrazovku jiné velikosti, zkuste si pohrát s hodnotami umístění tlačítek.
void deleteStorage () {// Odstraní soubor SD.remove ("storage.txt");
// Nastavení pozadí
tft.fillScreen (ČERNÝ);
// Smazání textu úspěchu
tft.setTextColor (BÍLÁ); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt smazán");
// Nechte to uživatele přečíst
zpoždění (2000);
// Pokračujte v kreslení
drawBackground (); }
Funkce deleteStorage odstraní soubor storage.txt, vyplní obrazovku černou barvou a zobrazí zprávu o úspěšném odstranění. Poté zavolá funkci drawBackground, která vám umožní začít malovat něco jiného.
void loadStorage () {// Vyhněte se opakování kvůli zpoždění pomalých prstů (250);
// Zkontrolujte soubor úložiště
if (! SD.exists ("storage.txt")) {Serial.println ("Žádný soubor storage.txt"); vrátit se; }
// Otevřete soubor v režimu jen pro čtení
úložiště = SD.open ("storage.txt", FILE_READ);
// Zatímco existují data, while (stoY> 0) {// Aktualizace polohových proměnných stoX = storage.parseInt (); stoY = storage.parseInt ();
// Kreslení z úložiště
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Zavřete soubor storage.close (); }
Nakonec funkce loadStorage zkontroluje soubor úložiště, otevře jej v režimu pouze pro čtení a poté tuto smyčku zopakuje:
Dokud je k dispozici více dat,
- Aktualizujte proměnné polohy pomocí analyzovaných dat z storage.txt
- V načteném bodě nakreslete kruh
Když se smyčka dokončí a nejsou k dispozici žádná další data, zavře soubor úložiště.
Kód pro tuto skicu najdete níže. Stačí jej stáhnout, otevřít v Arduinu a nahrát na desku!
Krok 4: Použití tohoto programu
Stačí připojit Arduino ke zdroji napájení - počítači, baterii, bradavici atd. A začít kreslit. Chcete -li kresbu a uložená data vymazat, stiskněte červené tlačítko. Chcete -li načíst výkres z úložiště a pokračovat v práci, klikněte na zelené tlačítko. Tímto způsobem můžete na výkresu mnohokrát iterovat!
Jako rozšíření zkuste kresbu nakreslit do počítače:
- Připojte kartu SD s daty k počítači.
- Otevřete soubor storage.txt ve svém oblíbeném editoru textu/kódu.
- Zkopírujte všechny hodnoty v souboru storage.txt.
- Pomocí tohoto odkazu na program pro vykreslování bodů.
- Odstraňte dva příklady bodů vlevo.
- Vložte data tam, kde byly ukázkové body.
Toto je úhledný způsob, jak předvést své kresby - možná dokonce zkuste změnit barvu bodu na Arduinu nebo v bodovém plotru!
Úpravy jsou vítány a rád bych viděl nějaké návrhy v komentářích. Děkujeme, že jste se na to podívali, a doufám, že to ve svých vlastních projektech najdete úhledně!
Doporučuje:
Kreslicí robot pro Arduino: 18 kroků (s obrázky)
Drawing Robot pro Arduino: Poznámka: Mám novou verzi tohoto robota, který používá desku s plošnými spoji, snáze se staví a má detekci IR překážek! Podívejte se na http://bit.ly/OSTurtle Tento projekt jsem navrhl pro 10hodinový workshop pro ChickTech.org, jehož cílem je
Levný, kreslící robot kompatibilní s Arduino: 15 kroků (s obrázky)
Nízkorozpočtový kreslící robot kompatibilní s Arduino: Poznámka: Mám novou verzi tohoto robota, který používá desku s tištěnými spoji, snáze se staví a má detekci IR překážek! Podívejte se na http://bit.ly/OSTurtle Tento projekt jsem navrhl pro 10hodinový workshop pro ChickTech.org, jehož cílem je
Polargraphový kreslící stroj ve velkém měřítku s výsuvnou hlavou pera: 4 kroky (s obrázky)
Kreslicí stroj Polargraph ve velkém měřítku s výsuvnou hlavou pera: *Instalace tohoto stroje ve velkém měřítku byla koncipována a provedena pomocí Rui Periera. Toto je návrh pro open source kresbu Polargraph (http://www.polargraph.co.uk/) projekt. Je vybaven zatahovací hlavou pera a hardwarem, který umožňuje
Kreslicí stroj: 4 kroky (s obrázky)
Kreslicí stroj: Jak jsem vyrobil svůj kreslící stroj a v důsledku toho zastaral umělce. Když jsem se poprvé přestěhoval do svého nového studia, neměly se rýsovat žádné důležité projekty a nebyl jsem v prostoru ještě pohodlný. Postavil jsem tento " kreslicí stroj " abych mohl být
Opilý kreslící robot!: 4 kroky (s obrázky)
Opilý kreslící robot!: Inspirován kapesním opilým robotem, chtěl jsem dát robotovi práci. Rozhodl jsem se nechat opilého robota udělat nějaké kresby. K vytvoření vlastního budete potřebovat následující: materiály: 3 fixy s plstěným hrotem baterie s knoflíkovými bateriemi