Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:58
Šioje instrukcijoje išsamiai aprašomas kodas, kuris naudojamas kuriant „Arduino“TFT ekrano piešimo programą. Tačiau ši programa yra unikali, nes ji leidžia išsaugoti piešinį SD kortelėje ir vėliau jį įkelti, kad būtų galima daugiau redaguoti!
Prekės
- „Arduino Uno“- originalus arba suderinamas klonas
- TFT jutiklinis ekranas - naudojau „Elegoo“ekraną, tai reiškia, kad man reikia „Elegoo“tvarkyklių.
- „Micro SD“skaitytuvo lenta - naudojama piešimo duomenims saugoti į SD kortelę. Mano ekrane buvo įmontuotas skaitytuvas po ekranu.
- Rašiklis - mano ekranas buvo su vienu. Pirštų nagai taip pat veikia gerai.
- „Micro SD“kortelė - ne daugiau kaip 32 GB dėl „exFAT“formatavimo apribojimų („Arduino“gali skaityti FAT32 formato korteles, bet NE „exFAT“. Dauguma didesnių kortelių yra suformatuotos naudojant exFAT.). Tai yra tas, kurį įdėtumėte į telefoną su išplėsta saugykla.
- Kompiuteris su „Arduino IDE“
- Programavimo kabelis - USB A į USB B. Mano „Arduino“buvo su vienu.
- SD kortelės adapteris - naudojamas paversti „Micro SD“kortelę į įprastą SD, kad būtų įdėta į SD lizdą ARBA tokią, kuri jungia SD kortelę prie USB lizdo.
1 veiksmas: suformatuokite SD kortelę
- Paimkite „Micro SD“kortelę ir pritvirtinkite ją prie kompiuterio naudodami SD kortelių skaitytuvą
- Atidarykite „File Explorer“ir raskite SD kortelę.
- Dešiniuoju pelės mygtuku spustelėkite jį ir pasirinkite Formatas.
- Nustatykite parinktis pagal ekrano kopiją.
- Spustelėkite Pradėti.
- Baigę procesą, išimkite kortelę.
Jei nenaudojate „Windows“, pabandykite naudoti SD formato programą iš SD asociacijos.
2 žingsnis: Paruoškite „Arduino“
- Paspauskite ekrano skydą žemyn ant „Arduino“, stengdamiesi sujungti kaiščius.
- Įdėkite SD kortelę į skaitytuvą po ekranu.
3 žingsnis: „Arduino“eskizas
Nors dalių sąrašas buvo gana paprastas, yra daugybė kodų. Čia aš eisiu žingsnis po žingsnio.
#įtraukti
#įtraukimas #įtraukimas #įtraukimas #įtraukimas
„Elegoo_GFX“, „_TFTLCD“ir „TouchScreen“yra skirti konkrečiai aparatinei įrangai. Jei naudojate kitą ekraną, naudokite gamintojo pateiktas bibliotekas.
SPI ir SD naudojami bendrauti su SD kortele. SPI yra protokolas, kurį naudoja SD kortelės valdiklis.
#if apibrėžta (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
Tai taip pat būdinga aparatinei įrangai.
#define YP A3 // turi būti analoginis kaištis #apibrėžti XM A2 // turi būti analoginis PIN #define YM 9 #define XP 8
// Palieskite „For New 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
Kiekvienas iš šių #define teiginių priverčia IDE pavadinimą pakeisti reikšme. Čia jie nustato LCD ir SD įvesties/išvesties kaiščius.
// Priskirkite pavadinimus kai kurioms 16 bitų spalvų reikšmėms: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
Tai yra kelios kodo spalvos. #juos apibrėžus, lengviau skaityti kodą.
#define PENRADIUS 3
Tai nustato piešimo rašiklio dydį.
#define MINPRESSURE 10#apibrėžti MAXPRESSURE 1000
// Kad slėgis būtų tikslesnis, turime žinoti pasipriešinimą
// tarp X+ ir X- skaitykite bet kokiu multimetru // Tam, kurį naudoju, jo 300 omų skersmuo per X plokštę Jutiklinis ekranas ts = jutiklinis ekranas (XP, YP, XM, YM, 300);
„Elegoo_TFTLCD tft“(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Šie teiginiai apibrėžia spaudimą, reikalingą prisilietimui užregistruoti, prisilietimo funkcijai inicijuoti ir ekranui paleisti.
Failų saugykla; int storageSize; int stoX = 1; int stoY = 1;
Tai yra programos saugojimo dalies kintamieji.
void setup (void) {Serial.begin (9600); Serial.println („Dažų programa“);
tft.reset ();
uint16_t identifikatorius = tft.readID ();
if (identifikatorius == 0x0101) {identifikatorius = 0x9341; Serial.println (F ("Rasta 0x9341 LCD tvarkyklė")); }
// Pradėti ekraną
tft.begin (identifikatorius); tft.setRotation (2);
pinMode (13, OUTPUT);
// Paleisti SD kortelę
if (! SD.begin (CSPIN)) {Serial.println ("Nepavyko inicijuoti SD"); grįžti; } Serial.println ("SD inicijuota");
// Nubrėžkite foną
drawBackground (); }
Sąrankos funkcija paleidžia serijinį, jei yra, iš naujo nustato ekraną, aptinka TFT tvarkyklę, paleidžia ekraną, paleidžia kortelę ir iškviečia fono piešimo funkciją.
Aš pereisiu prie pagrindinės ciklo funkcijos dalies. Visa kita naudojama tik jutikliniam ekranui vairuoti.
// Aptikti ekrano paspaudimą ir išsaugoti jį kintamajame, jei (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Mastelis p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - žemėlapis (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// Piešti
if (p.y> 21) {// Išsaugoti duomenis į SD kortelės saugyklą = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// Taškas liečiamoje padėtyje
tft.fillCircle (p.x, p.y, PENRADIUS, BALTAS); }
// Ištrinti mygtukas
if ((p.y 198) && (p.x <219)) {deleteStorage (); }
// Įkelti mygtuko veiksmas
if ((p.y 219)) {loadStorage (); }}
Jei aptinkamas spaudas, nustatykite spaudos vietos kintamuosius.
Tada, jei spauda yra piešimo srityje, išsaugokite tašką SD kortelėje, esančioje saugykloje.
Tada, jei spaudžiate ištrynimo mygtuko vietoje, paleiskite funkciją, kuri ištrina išsaugotą piešinį. Jei naudojate kitokio dydžio ekraną, pabandykite žaisti naudodami mygtukų vietos reikšmes.
Tada, jei spaudžiamas įkėlimo mygtuko vietoje, paleiskite funkciją, kuri įkelia išsaugotą piešinį. Jei naudojate kitokio dydžio ekraną, pabandykite žaisti naudodami mygtukų vietos reikšmes.
Dabar paaiškinsiu funkcijas.
Sąrankoje iškviečiama pirmoji funkcija, skirta piešti foną ir mygtukus.
void drawBackground () {// Nustatykite foną tft.fillScreen (BLACK);
// Dažyti tekstą
tft.setTextColor (BALTA); tft.setTextSize (3); tft.setCursor (0, 0); tft.println („Dažai“);
// Įkelti mygtukas
tft.fillRect (219, 0, 21, 21, ŽALIA);
// Išvalymo mygtukas
tft.fillRect (198, 0, 21, 21, RAUDONA); }
Jis užpildo ekraną juodai, rašo žodį „Paint“ir piešia spalvotus mygtukų kvadratus. Jei naudojate kitokio dydžio ekraną, pabandykite žaisti naudodami mygtukų vietos reikšmes.
void deleteStorage () {// Ištrinkite failą SD.remove ("storage.txt");
// Nustatykite foną
tft.fillScreen (JUODAS);
// Ištrinti sėkmės tekstą
tft.setTextColor (BALTA); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt ištrintas");
// Leiskite vartotojui ją perskaityti
vėlavimas (2000 m.);
// Tęsti piešimą
drawBackground (); }
Funkcija „deleteStorage“pašalina „storage.txt“, užpildo ekraną juodai ir pateikia sėkmingą pranešimą ištrinti. Tada ji iškviečia „drawBackground“funkciją, kad galėtumėte pradėti piešti ką nors kita.
void loadStorage () {// Venkite pakartojimų dėl lėto pirštų uždelsimo (250);
// Patikrinkite, ar nėra saugojimo failo
if (! SD.exists ("storage.txt")) {Serial.println ("Nėra storage.txt failo"); grįžti; }
// Atidaryti failą tik skaitymo režimu
saugykla = SD.open ("storage.txt", FILE_READ);
// Kol yra duomenų, while (stoY> 0) {// Atnaujinti padėties kintamuosius stoX = storage.parseInt (); stoY = saugykla.parseInt ();
// Piešti iš saugyklos
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Uždaryti failą storage.close (); }
Galiausiai „loadStorage“funkcija patikrina saugojimo failą, atidaro jį tik skaitymo režimu, tada pakartoja šią kilpą:
Kol yra daugiau duomenų,
- Atnaujinkite pozicijos kintamuosius naudodami išanalizuotus duomenis iš storage.txt
- Nubrėžkite apskritimą įkeltame taške
Kai ciklas baigiamas ir nebėra duomenų, jis uždaro saugojimo failą.
Šio eskizo kodą rasite žemiau. Tiesiog atsisiųskite, atidarykite „Arduino“ir įkelkite į savo lentą!
4 žingsnis: šios programos naudojimas
Tiesiog prijunkite „Arduino“prie maitinimo šaltinio - kompiuterio, akumuliatoriaus, sieninių karpų ir pan. Ir pradėkite piešti. Norėdami ištrinti piešinį ir jo saugomus duomenis, paspauskite raudoną mygtuką. Norėdami įkelti piešinį iš saugyklos ir toliau dirbti su juo, spustelėkite žalią mygtuką. Tokiu būdu jūs galite daug kartų kartoti piešinį!
Kaip plėtinį pabandykite piešti piešinį savo kompiuteryje:
- Prijunkite SD kortelę su duomenimis prie kompiuterio.
- Atidarykite „storage.txt“failą mėgstamiausiame teksto/kodo redaktoriuje.
- Nukopijuokite visas „storage.txt“esančias reikšmes.
- Sekite šią nuorodą į taškų braižymo programą.
- Ištrinkite du pavyzdžius kairėje.
- Įklijuokite duomenis ten, kur buvo pavyzdiniai taškai.
Tai puikus būdas parodyti savo piešinius - galbūt net pabandykite pakeisti taško spalvą „Arduino“arba taškiniame braižytuve!
Pakeitimai yra sveikintini, ir aš norėčiau pamatyti keletą pasiūlymų komentaruose. Dėkojame, kad pažvelgėte į tai ir tikiuosi, kad savo projektuose rasite tinkamų jo panaudojimo būdų!
Rekomenduojamas:
Piešimo šviesa (be „Photoshop“) pradžia: 5 žingsniai (su paveikslėliais)
Šviesaus tapybos pradžia (be „Photoshop“): Neseniai nusipirkau naują fotoaparatą ir tyrinėjau kai kurias jo savybes, kai internete radau šviesią tapybą arba ilgos ekspozicijos fotografiją. Daugelis iš mūsų matėme pagrindinę šviesos tapybos formą su nuotrauka mieste su keliu
„MXY Board“- mažo biudžeto „XY Plotter“piešimo robotų lenta: 8 žingsniai (su paveikslėliais)
„MXY“lenta - mažo biudžeto „XY Plotter“piešimo robotų lenta: Mano tikslas buvo suprojektuoti „mXY“plokštę, kad XY braižytuvo mašina būtų mažo biudžeto. Taigi aš sukūriau lentą, kuri palengvina tiems, kurie nori sukurti šį projektą. Ankstesniame projekte, naudojant 2 vnt. „Nema17“žingsninius variklius, ši plokštė
Piešimo roboto naudojimas „Arduino“su kodo valandos pamokomis: 3 žingsniai
Piešimo roboto naudojimas „Arduino“su kodo valandos pamokomis: Sukūriau „Arduino“piešimo robotą dirbtuvėms, kad padėčiau paauglėms merginoms susidomėti STEM temomis (žr. Https://www.instructables.com/id/Arduino-Drawing-Robot/ ). Robotas buvo sukurtas naudoti vėžlio stiliaus programavimo komandas, tokias kaip priekis (distanc
„Bluetooth“LED piešimo lenta ir „IOS“programa: 9 žingsniai (su paveikslėliais)
„Bluetooth“LED piešimo lenta ir „IOS“programa: šioje pamokoje galėsite sukurti „Bluetooth“LED plokštę, kuri gali piešti nuotraukas iš mūsų sukurtos „iPhone“programos. Šioje programoje vartotojai galės sukurti „Connect 4“žaidimą, kuris taip pat bus rodomas šioje žaidimų lentoje. Tai bus ch
Piešimo ranka, kurią valdo garsas - „Arduino“mokyklos projektas: 4 žingsniai (su nuotraukomis)
Piešimo ranka, kurią valdo garsas - „Arduino“mokyklos projektas: tai pirmas kartas, kai dirbu su „Arduino“ir dirbu su kažkuo panašiu, todėl atsiprašau, jei padariau klaidų! Ši mintis man kilo, kai galvojau apie savo pomėgius - piešimą ir muziką. Taigi aš bandžiau sujungti abu šiuos dalykus! A sel