Turinys:

Leiskite dainas naudodami žingsninį variklį !!: 11 žingsnių (su nuotraukomis)
Leiskite dainas naudodami žingsninį variklį !!: 11 žingsnių (su nuotraukomis)

Video: Leiskite dainas naudodami žingsninį variklį !!: 11 žingsnių (su nuotraukomis)

Video: Leiskite dainas naudodami žingsninį variklį !!: 11 žingsnių (su nuotraukomis)
Video: Octopus Max EZ v1.0 - EZ2130 2024, Lapkritis
Anonim
Groti dainas naudojant žingsninį variklį !!
Groti dainas naudojant žingsninį variklį !!

Šis projektas yra skirtas sukurti paprastą dinaminę sąsają, kuri leistų sąveikauti su žingsniniu varikliu dviem skirtingais būdais.

Pirmoji sąsaja valdys žingsninio variklio kryptį ir greitį, naudodama paprastą GUI, kurioje yra rodyklės kairėn ir dešinėn, o rodyklės aukštyn ir žemyn - greičiui.

Antroji sąsaja bus labiau muzikinio pobūdžio, o tai leis groti paprastas dainas naudojant žingsninio variklio sukimosi garsus.

1 žingsnis: reikalingos dalys

  1. „Arduino UNO“(arba suderinama plokštė)
  2. „Nextion Enhanced NX4827K043“iš „iTead Studio“.
  3. „Nextion“išplėstinė plokštė, skirta patobulintam „Nextion“ekranui
  4. „Micro SDHC“kortelė
  5. SD kortelių skaitytuvas/rašytojas - perkelti failus iš kompiuterio į SDHC kortelę
  6. Bandomoji Lenta
  7. Žingsninis variklis (42BYGHM809)
  8. „100 uF CapacitorDuinotech“žingsninio variklio tvarkyklė (L298) - [„JayCar“dalis# XC4492].
  9. Išorinis maitinimo šaltinis - pvz. Reguliuojamas laboratorijos maitinimo šaltinis

2 žingsnis: sąsajos kūrimas

Sąsajos kūrimas
Sąsajos kūrimas

Pirmasis žingsnis yra sukurti sąsajas kompiuterio „Nextion“redaktoriuje.

„Nextion“redaktorių galite atsisiųsti čia.

Įkelkite „Nextion“redaktorių ir sukurkite naują projektą. Pradėdami naują projektą, turite įsitikinti, kad iš galimų parinkčių pasirinkote tinkamą „Nextion“įrenginį. Čia naudojamas „Nextion Enhanced NX4827K043“įrenginys.

  1. Pasirinkite Failas → Naujas Pasirinkite projekto pavadinimą ir išsaugokite jį tinkamoje standžiojo disko vietoje.
  2. Iš galimų parinkčių pasirinkite tinkamą „Nextion“įrenginį

    Mano įrenginio ekrano dydis yra 480 x 272 pikselių

3 žingsnis: projekto ištekliai

Projekto ištekliai
Projekto ištekliai
Projekto ištekliai
Projekto ištekliai
Projekto ištekliai
Projekto ištekliai

Turite importuoti visus išteklius (pvz., Paveikslėlius ir šriftus) į savo projektą ir suprojektuoti sąsają, atitinkančią jūsų konkrečius poreikius.

Šriftai

Nenaudojami jokie konkretūs šriftai, tačiau jei norite į ekraną parašyti bet kokį tekstą, turėsite sukurti šriftą „Nextion“redaktoriuje.

A) Įrankiai → Šriftų generatorius

  1. Pasirinkite šrifto aukštį (pvz., 16).
  2. Pasirinkite šrifto kodo tipą (pvz., Iso-8859-2)
  3. Pasirinkite, ar norite, kad jis būtų paryškintas, ar ne
  4. Pasirinkite norimą naudoti šriftą (pvz., „Arial“)
  5. Pasirinkite atstumą (pvz., 0)
  6. Galiausiai suteikite šiam šriftui unikalų pavadinimą (pvz., Arial_16)
  7. Paspauskite mygtuką „Sukurti šriftą“apatiniame dešiniajame lango kampe.

Kai paspausite mygtuką „Sukurti šriftą“, galėsite išsaugoti šriftą naudodami *.zi plėtinį ir automatiškai paklausite, ar norite „Pridėti sukurtą šriftą?“į projektą. Jei esate patenkintas šriftu ir norėtumėte naudoti šį šriftą savo projekte, pasirinkite „Taip“, kitu atveju pasirinkite „Ne“ir pradėkite iš naujo.

Negalite prie projekto pridėti jokio teksto, kol neimportavote ar nepridėjote šrifto. Visi jūsų projekto šriftai bus rodomi šriftų lange.

** Pastaba: kiekvienas šriftas bus automatiškai indeksuojamas, kad prireikus galėtumėte programiškai nurodyti šriftą. Tiesą sakant, visiems prie projekto pridėtiems ištekliams priskiriamas skaičius ir jis padidinamas vienu kiekvienam pridėtam ištekliui. Kai kurių išteklių atveju šį numerį galite pamatyti elemento kairėje. Pvz. Aukščiau esančiame paveikslėlyje kurjerio šrifto indeksas yra 0, o šrifto „Arial“- 1. Jei ištrinsite šaltinį, to elemento indekso numeris gali pasikeisti.

4 veiksmas: vaizdų importavimas

Vaizdų importavimas
Vaizdų importavimas
Vaizdų importavimas
Vaizdų importavimas

„Nextion Enhanced NX4827K043“įrenginyje kiekviena nuotrauka turi būti 480 x 272 pikselių dydžio.

Dabar į „Nextion“redaktorių importuosime šias nuotraukas, kad galėtume jas naudoti projekte. Apatiniame kairiajame „Nextion“redaktoriaus kampe yra išteklių langas „Šriftai ir paveikslėlis“:

  1. Pasirinkite skirtuką Paveikslėlis
  2. Tada pasirinkite piktogramą „+“
  3. Bus atidarytas dialogo langas, kuriame galėsite pasirinkti nuotrauką (-as), kurią (-ias) pridėti prie projekto. Galite pasirinkti daugiau nei vieną nuotrauką, kurią norite importuoti.

„Splash Screen“galite sukurti bet kokį vaizdą pagal savo pasirinkimą.

„Stepper“variklio ir pianino sąsajai galite atsisiųsti aukščiau pateiktą vaizdą.

5 veiksmas: sukurkite GUI

GUI kūrimas
GUI kūrimas

Kiekvienas šaltinis gaus ID pagal jo pridėjimo tvarką, o kiekvienas šaltinis automatiškai gaus pavadinimą.

Galite pakeisti ištekliaus ar objekto pavadinimą, bet negalite redaguoti ID.

Trys puslapiai bus sukurti taip, kad atitiktų aukščiau aprašytus kriterijus.

Norėdami pridėti puslapį, tiesiog pasirinkite „Pridėti“piktogramą „puslapio lange“. Ir toliau pridėkite puslapių, kol iš viso turėsite 3 puslapius (0 puslapis, 1 puslapis ir 2 puslapis).

6 veiksmas: 0 puslapis

Page 0-„Splash“ekranas
Page 0-„Splash“ekranas

Kai „Nextion“yra įjungtas, 3 sekundes bus rodomas rodomasis ekranas, kol bus rodomas žingsninio variklio valdiklio ekranas. Norėdami sukurti pradinį ekraną, naudoju šiuos veiksmus.

Įtraukite ekrano vaizdą į 0 puslapį

  • Puslapio lange pasirinkite „puslapis 0“
  • Įrankių dėžutės lange pasirinkite „Paveikslėlis“
  • Dukart spustelėkite atributą „pic“lange „Atributas“
  • Iš sąrašo pasirinkite pradinio ekrano vaizdą
  • Paspauskite mygtuką Gerai

2. Pridėkite laikmatį prie 0 puslapio

  • Įrankių dėžutės lange pasirinkite Laikmatis
  • Atributų lange pakeiskite „tim“atributą nuo 400 iki 3000
  • Įveskite „puslapio puslapis 1“laikmačio įvykio skiltyje „Vartotojo kodas“(0) Dėl šio laikmačio įvykio „Nextion“po 3 sekundžių pereis į 1 puslapį.

Dėl šio laikmačio įvykio „Nextion“po 3 sekundžių pereis į 1 puslapį.

7 žingsnis: 1 puslapis - žingsninio variklio valdiklis

Šis puslapis skirtas valdyti žingsninio variklio kryptį ir greitį. Bus du krypties mygtukai (kairė ir dešinė) ir du greičio mygtukai (greitesnis ir lėtesnis). Ir dar vienas mygtukas, kad pereitumėte į kitą puslapį (t. Y. „Stepper Motor Piano“puslapį). Šie mygtukai taip pat bus susieti su „Nextion“išplėtimo plokšte. Išplėtimo plokštės lytėjimo mygtukai suteiks alternatyvų variklio valdymo būdą.

1 puslapyje pridėkite žingsninio variklio valdiklio paveikslėlį

  • Puslapio lange pasirinkite „page1“
  • Įrankių dėžutės lange pasirinkite „Paveikslėlis“
  • Dukart spustelėkite atributą „pic“lange „Atributas“
  • Iš sąrašo pasirinkite „Stepper Motor Controller“vaizdą
  • Paspauskite mygtuką Gerai

2. Pridėkite „Hotspots“virš kiekvieno žingsninio variklio valdiklio vaizdo mygtuko

a) Įrankių dėžutės lange pasirinkite „Hotspot“

b) Vilkite ir pakeiskite „Hotspot“dydį, kad jis padengtų mygtuką „Kairė“

  • Tai sritis, kuri reaguos į „kairiojo mygtuko“paspaudimus.
  • Įkėlus į „Nextion“plokštę, jis bus skaidrus

c) Įvykių lange pasirinkite skirtuką „Touch Press Event“

d) Panaikinkite žymės langelio „Siųsti komponento ID“žymėjimą

e) Įveskite šį kodą įvykio lango skiltyje „Vartotojo kodas“:

atspausdinti „L“

f) Pakeiskite viešosios interneto prieigos taško objekto pavadinimą į „Kairė“, atlikdami šiuos veiksmus:

  • Atributų lange pasirinkite obj vardą ir pakeiskite tekstą iš „m0“į „Kairė“
  • Nebūtina keisti viešosios interneto prieigos taško objekto pavadinimo; tačiau tai padės vėliau.

g) Pakartokite 2a – 2f veiksmus su kiekvienu kitu mygtuku tokia tvarka ir kaip nurodyta toliau esančioje lentelėje

  • Teisingai
  • Greičiau
  • Lėtiau
  • Kitas

„L“raidės dešimtainis ASCII kodas yra 76, taigi, kai „Nextion Enhanced“ekranas siunčia raidę L į „Arduino“naudodami spausdinimo komandą „L“, „Arduino“gaus skaičių 76. Paspaudus dešinįjį mygtuką, gaus numerį 82 ir pan. Mygtukas „Kitas“nieko neperduoda „Arduino“, jis tiesiog yra skirtas pereiti prie kitos sąsajos „Nextion Enhanced“ekrane, todėl priežastis, kodėl to mygtuko vartotojo kodas skiriasi.

3. Prijunkite mygtukus prie išplėtimo plokštės

a) Puslapio lange pasirinkite „page0“ir „page1“

b) Event lange pasirinkite skirtuką „Preinitialize Event“

c) Įveskite šį kodą į skirtuką „Preinitialize Event“skirtuką „User Code“:

  • cfgpio 5, 1, kairė
  • cfgpio 2, 1, Teisingai
  • cfgpio 4, 1, Greičiau
  • cfgpio 3, 1, lėčiau
  • cfgpio 1, 1, Kitas

*** Atkreipkite dėmesį: tarp cfgpio ir šalia esančio skaičiaus yra vienas tarpas, tačiau kiekvienoje eilutėje nėra kitų tarpų. Jei įvesite papildomų tarpų, jis nebus sukompiliuotas. Šis kodas susieja išplėtimo plokštės mygtukus su „hotspot“objektais 1 puslapyje. Pavyzdžiui, kai paspaudžiamas išplėtimo plokštės kairysis mygtukas (IO5), jis imituoja veiksmus ar įvykius, susijusius su „hotspot m0/Left“. Tokiu atveju „Arduino“nusiųs „L“vertę (76).

IO numeris yra pažymėtas skliausteliuose išplėtimo plokštėje.

8 žingsnis: 2 puslapis - žingsninis variklio fortepijonas

Puslapis 2 - „Stepper Motor Piano“
Puslapis 2 - „Stepper Motor Piano“
Puslapis 2 - „Stepper Motor Piano“
Puslapis 2 - „Stepper Motor Piano“

jo sąsaja bus sukurta taip, kad atrodytų kaip fortepijonas, ir leis man valdyti žingsninį variklį taip, kad jis išgautų užrašą tuo pačiu klavišu, kurį paspaudžiu „Nextion“ekrane. Žingsninis variklis sukurs natą sukdamasis tam tikru dažniu.

1. Įtraukite „Stepper Motor Piano“paveikslėlį į 2 puslapį.

  • Puslapio lange pasirinkite „page2“
  • Įrankių dėžutės lange pasirinkite „Paveikslėlis“
  • Dukart spustelėkite atributą „pic“lange „Atributas“
  • Iš sąrašo pasirinkite „Stepper Motor Piano“vaizdą
  • Paspauskite OK mygtuką

2. Pridėkite „Hotspots“virš kiekvieno „Stepper Motor Piano“vaizdo klavišo

a) Įrankių dėžutės lange pasirinkite „Hotspot“

b) Vilkite ir pakeiskite „Hotspot“dydį taip, kad jis apimtų „A“klavišą. Tai sritis, kuri reaguos į „A“klavišo paspaudimus. Įkelta į „Nextion“plokštę ji bus skaidri.

c) Įvykių lange pasirinkite skirtuką „Touch Press Event“.

d) Skiltyje „Vartotojo kodas“įveskite:

spausdinti 1

e) Pakartokite 2a – 2d veiksmus kiekvienam kitam klavišui, kaip nurodyta toliau esančioje lentelėje.

** Kai paspaudžiamas konkretus klavišas, „Nextion Enhanced“lenta perduos atspausdintą skaičių, po kurio bus trys 0x00 vertės. Baigiamųjų verčių galima nepaisyti.

3. Mygtukas „Atgal“leis man grįžti prie ankstesnės „Nextion Enhanced“plokštės sąsajos.

a) Sukurkite grįžimo mygtuko viešosios interneto prieigos tašką, atlikdami šiuos veiksmus:

  1. Įrankių dėžutės lange pasirinkite „Hotspot“
  2. Perkelkite/pakeiskite viešosios interneto prieigos taško dydį virš mygtuko „Atgal“

b) Pasirinkite įvykio langą.

c) Įsitikinkite, kad pasirinktas skirtukas „Prispaudimo paspaudimu įvykis“

d) Įveskite: page page1 į User Code skyrių

9 veiksmas: derinimas

Derinimas
Derinimas
Derinimas
Derinimas

Geras „Nextion“redaktoriaus dalykas yra tai, kad prieš įkeldami ją į lentą galite išbandyti sąsajos funkcionalumą.

  1. Išsaugokite projektą paspausdami išsaugojimo mygtuką užduočių juostoje
  2. Tada paspauskite kompiliavimo mygtuką
  3. Tada paspauskite derinimo mygtuką.

Pasirodys „Nextion“emuliatoriaus langas. Įkėlus „Nextion“failą į lentą, šis langas turėtų reaguoti taip pat, kaip „Nextion“modulis. Šis emuliatorius yra puikus būdas išbandyti sąsają ir įsitikinti, kad ji atrodo ir veikia taip, kaip tikėtasi. Kai buvau patenkintas sąsaja (-omis), perkėliau sudarytą „Nextion“failą į SD kortelę:

  1. Paspauskite kompiliavimo mygtuką
  2. Failas → Atidaryti kūrimo aplanką
  3. Pasirinkite *.tft failą tokiu pačiu pavadinimu kaip ir projekto.
  4. Nukopijuokite jį į „micro SDHC“kortelę
  5. Įdėkite SDHC kortelę į SD kortelės angą „Nextion“ekrane
  6. Įjunkite „Nextion“plokštę

Palaukite, kol failas užsidegs „Nextion“lentoje, ir turėtumėte pamatyti tokį pranešimą:

Kitas žingsnis yra išjungti „Nextion“plokštę ir išimti SDHC kortelę.

10 veiksmas: ARDUINO SETUP

„Nextion Enhanced“ekranas paruoštas, ir dabar atėjo „Arduino“eilė. „Arduino“yra užprogramuotas priimti serijinius pranešimus iš „Nextion Enhanced“ekrano ir valdyti žingsninį variklį pagal gautas raides ar skaičius. Unikalios raidės ar skaičiai, perduodami iš „Nextion“plokštės, leidžia „Arduino“suprasti, koks mygtukas yra paspaudžiamas, ir naudoja tuos skaičius ar raides, kad valdytų kodo srautą, kad atliktų konkrečius žingsninio variklio veiksmus.

„SoftwareSerial“biblioteka naudojama serijiniam ryšiui tarp „Arduino“ir „Nextion Enhanced“įjungti. „AccelStepper“biblioteka naudojama supaprastinti žingsninio variklio valdymo procesą.

Nustatykite didžiausią ir mažiausią variklių greitį ir kai kuriuos iš anksto nustatytus klavišus. Galima „sureguliuoti“variklį naudojant pirmąją „Nextion“ekrano sąsają. Tai galite padaryti sukdami variklį greičiau arba lėčiau, kol pasieksite norimą raktą. Čia „Tuner T1 Free“programa iš „iTunes“programų parduotuvės naudojama identifikuoti, KADA variklis gamino užrašą. Kai variklis gamino konkrečią pastabą, aš užsirašiau žingsninio variklio greitį, kuris buvo atspausdintas serijinio monitoriaus lange. Kaskart padidinus arba sumažinus variklio greitį, „Arduino“kodas spausdina greitį į serijinio monitoriaus langą. Tada naudoju šį greitį, norėdamas atnaujinti „Arduino“kodo užrašų masyvą. Užrašų masyvas turi žingsninio variklio greitį, atitinkantį atskiras fortepijono natas. „Nextion“ekranas iš esmės siunčia natos rodyklės numerį iš „Arduino“natų masyvo, taip supaprastindamas kodą, reikalingą varikliui sukti 16 skirtingų greičių.

11 veiksmas: užbaigimas+schemos

Baigimas+schemos
Baigimas+schemos
Baigimas+schemos
Baigimas+schemos
Baigimas+schemos
Baigimas+schemos
Baigimas+schemos
Baigimas+schemos

Kai visos plokštės yra išjungtos, kitas žingsnis yra atlikti visus būtinus aparatūros ryšius su „Arduino“. Yra du pagrindiniai skyriai, į kuriuos reikia atsižvelgti:

  • Žingsninio variklio vairuotojas ir variklis
  • „Nextion Enhanced“lenta.

Turite užtikrinti, kad žingsninis variklis ir „Nextion Enhanced“plokštė būtų maitinami išoriniu energijos šaltiniu. Pati žingsninio variklio vairuotojo plokštė buvo varoma „Arduino“be jokių problemų, tačiau tikram žingsniniam varikliui reikės išorinio maitinimo šaltinio. „Nextion Enhanced“plokštei taip pat reikia išorinio maitinimo šaltinio, nes jai reikia daugiau srovės, nei „Arduino“gali saugiai tiekti.

Atkreipkite dėmesį į naudojamą išorinį maitinimo šaltinį. Įsitikinau, kad turiu pakankamai didelį maitinimo šaltinį, kad galėčiau patenkinti projekto energijos poreikius, ir panaudojau atitinkamus duomenų lapus, kurie padėjo man nustatyti šiuos reikalavimus. Jei planuojate pakartoti šį projektą, būtinai atsižvelkite į konkrečius jūsų variklio, variklio tvarkyklės ir „Nextion“ekrano galios reikalavimus. „Arduino“gali tiekti tik 400 mA srovę iš 5 V kaiščio. Kai viskas buvo prijungta, įjungiau „Nextion“ekraną, tada įjungiau „Arduino“. Žingsninis variklis pradeda suktis automatiškai. Aš naudoju pirmąją sąsają, norėdamas pakeisti variklio kryptį ir (arba) greitį. Atkreipkite dėmesį į maksimalų ir minimalų greitį, nustatytą „Arduino“kode. Tada naudoju mygtuką Kitas, norėdamas pereiti prie antrosios sąsajos „Nextion Enhanced“ekrane. Antroji sąsaja atrodo kaip fortepijonas. Ir kai paspaudžiu klavišą fortepijono ekrane, variklis keičia greitį, kad atitiktų mano paspaustą natą.

Viskas. Dabar baigta.

Tikiuosi jums patiks

Rekomenduojamas: