Cuprins:

Redați melodii folosind motorul pas cu pas !!: 11 pași (cu imagini)
Redați melodii folosind motorul pas cu pas !!: 11 pași (cu imagini)

Video: Redați melodii folosind motorul pas cu pas !!: 11 pași (cu imagini)

Video: Redați melodii folosind motorul pas cu pas !!: 11 pași (cu imagini)
Video: Cum scrii când începi un caiet nou 2024, Noiembrie
Anonim
Redă melodii folosind motorul pas cu pas !!
Redă melodii folosind motorul pas cu pas !!

Acest proiect vizează proiectarea unei interfețe dinamice simple, care să permită interacțiunea cu un motor pas cu pas în două moduri diferite.

Prima interfață va controla direcția și viteza motorului pas cu pas prin utilizarea unui GUI simplu, care are săgeți stânga și dreapta pentru direcție și săgeți sus și jos pentru viteză.

A doua interfață va avea un caracter mai muzical, ceea ce va permite redarea melodiilor simple folosind sunetele de rotație ale motorului pas cu pas.

Pasul 1: Piese necesare

  1. Arduino UNO (sau placa compatibilă)
  2. Nextion Îmbunătățit NX4827K043 de la iTead Studio.
  3. Placă de expansiune Nextion pentru afișaj Nextion Enhanced
  4. Card Micro SDHC
  5. SD Card Reader / Writer - pentru a transfera fișiere de pe computer pe cardul SDHC
  6. Pană de pâine
  7. Motor pas cu pas (42BYGHM809)
  8. Condensator 100 uF Driver pentru motorul pas cu pas Duinotech (L298) - [JayCar parte # XC4492].
  9. Alimentare externă - de ex. Alimentare de laborator reglementată

Pasul 2: Crearea interfeței

Crearea interfeței
Crearea interfeței

Primul pas este să creați interfețele în Editorul Nextion de pe computer.

Puteți descărca Editorul Nextion aici.

Încărcați Editorul Nextion și creați un proiect nou. Când începeți un proiect nou, trebuie să vă asigurați că selectați dispozitivul Nextion corect dintre opțiunile disponibile. Aici este utilizat dispozitivul „Nextion Enhanced NX4827K043”.

  1. Selectați Fișier → Nou Selectați un nume pentru proiect și salvați-l într-un loc adecvat de pe hard disk.
  2. Selectați dispozitivul Nextion adecvat din opțiunile disponibile

    Dispozitivul meu are o dimensiune a ecranului de 480 x 272 pixeli

Pasul 3: Resurse de proiect

Resurse de proiect
Resurse de proiect
Resurse de proiect
Resurse de proiect
Resurse de proiect
Resurse de proiect

Trebuie să importați toate resursele (de exemplu, imagini și fonturi) în proiectul dvs. și apoi să proiectați interfața pentru a se potrivi nevoilor dvs. specifice.

Fonturi

Nu sunt utilizate fonturi specifice, dar dacă doriți să scrieți orice text pe ecran, va trebui să generați un font în Editorul Nextion.

A) Instrumente → Generator de fonturi

  1. Selectați Înălțimea fontului (de exemplu, 16).
  2. Selectați tipul de cod Font (de ex. Iso-8859-2)
  3. Selectați dacă doriți să fie în caractere aldine sau nu
  4. Alegeți fontul pe care doriți să îl utilizați (de exemplu, Arial)
  5. Alegeți spațiul (de exemplu, 0)
  6. Și, în cele din urmă, dați acestui font un nume unic (de exemplu, Arial_16)
  7. Apăsați butonul „Generați font” din partea dreaptă jos a ferestrei.

După ce apăsați butonul Generați fontul, vă va determina să salvați fontul utilizând o extensie *.zi și vă va întreba automat dacă doriți să „Adăugați fontul generat?” la proiect. Dacă sunteți mulțumit de font și doriți să utilizați acest font în proiectul dvs., selectați „Da”, altfel selectați „Nu” și începeți din nou.

Nu puteți adăuga niciun text la proiect până nu importați sau adăugați un font. Toate fonturile proiectului dvs. vor fi afișate în fereastra fonturilor.

** Notă: fiecare font va fi automat indexat, astfel încât să puteți referi fontul la nivel de program, dacă este necesar. De fapt, tuturor resurselor pe care le adăugați la proiectul dvs. li se atribuie un număr și se incrementează cu unul pentru fiecare resursă adăugată. Pentru unele resurse, puteți vedea acest număr în stânga articolului. De exemplu. În imaginea de mai sus, Font Courier are un index de 0, în timp ce fontul Arial are un index de 1. Dacă ștergeți o resursă, numărul de index se poate modifica pentru acel element.

Pasul 4: Importul imaginilor

Importul de imagini
Importul de imagini
Importul de imagini
Importul de imagini

Pe dispozitivul NX4827K043 Nextion Enhanced, fiecare imagine trebuie să aibă dimensiunea de 480 x 272 pixeli.

Acum vom importa următoarele imagini în Editorul Nextion, astfel încât să le putem folosi în proiect. În colțul din stânga jos al editorului Nextion se află fereastra de resurse „Fonturi și imagine”:

  1. Selectați fila Imagine
  2. Apoi selectați pictograma „+”
  3. Aceasta va deschide o casetă de dialog pentru a vă permite să selectați imaginea (imaginile) de adăugat la proiect. Puteți selecta mai multe imagini de importat.

Pentru Splash Screen puteți face orice imagine în funcție de alegerea dvs.

Și pentru interfața cu motor Stepper și pian puteți descărca imaginea de mai sus.

Pasul 5: Realizarea GUI

Realizarea GUI
Realizarea GUI

Fiecare resursă va primi un ID în funcție de ordinea în care este adăugată și fiecare resursă va primi automat un nume.

Puteți schimba numele resursei sau obiectului, dar nu puteți edita ID-ul.

Trei pagini vor fi proiectate pentru a îndeplini criteriile descrise mai sus.

Pentru a adăuga o pagină, trebuie doar să selectați pictograma „Adăugați” din „fereastra paginii”. Și continuați să adăugați pagini până când aveți un total de 3 pagini (pagina0, pagina1 și pagina2).

Pasul 6: Pagina 0-Splash Screen

Pagina 0-Splash Screen
Pagina 0-Splash Screen

Când Nextion este pornit, ecranul de vizualizare va fi afișat timp de 3 secunde înainte de a afișa ecranul Controllerului motorului pas cu pas. Am folosit următorii pași pentru a crea ecranul de pornire.

Adăugați imaginea ecranului de pornire la pagina 0

  • Selectați „pagina 0” din fereastra Paginii
  • Selectați „Imagine” din fereastra Casetei de instrumente
  • Faceți dublu clic pe atributul „pic” din fereastra Atribut
  • Selectați imaginea ecranului de pornire din listă
  • Apăsați butonul OK

2. Adăugați un temporizator la pagina 0

  • Selectați Cronometru din fereastra Casetă de instrumente
  • Schimbați atributul „tim” de la 400 la 3000 în fereastra Atribut
  • Introduceți „pagina pagină1” în secțiunea Cod utilizator a evenimentului Timer (0) Acest eveniment temporizator va face Nextion să sară la pagina 1 după 3 secunde.

Acest eveniment cu temporizator va face Nextion să sară la pagina 1 după 3 secunde.

Pasul 7: Pagina 1 - Controler motor pas cu pas

Această pagină este concepută pentru a controla direcția și viteza motorului pas cu pas. Vor exista două butoane pentru direcție (stânga și dreapta) și două butoane pentru viteză (mai rapidă și mai lentă). Și încă un buton pentru a trece la pagina următoare (adică pagina cu pian cu motor pas cu pas). Aceste butoane vor fi mapate și pe placa de expansiune Nextion. Butoanele tactile ale plăcii de expansiune vor oferi o metodă alternativă de control al motorului.

Adăugați imaginea Controllerului motorului pas cu pas la pagina 1

  • Selectați „pagina1” din fereastra Paginii
  • Selectați „Imagine” din fereastra Casetei de instrumente
  • Faceți dublu clic pe atributul „pic” din fereastra Atribut
  • Selectați imaginea „Stepper Motor Controller” din listă
  • Apăsați butonul OK

2. Adăugați puncte fierbinți peste fiecare buton de pe imaginea controlerului motorului pas cu pas

a) Selectați „Hotspot” din fereastra Toolbox

b) Trageți și redimensionați Hotspotul astfel încât să acopere butonul „Stânga”

  • Aceasta este zona care va răspunde la apăsările „Buton stâng”.
  • Va fi transparent atunci când va fi încărcat pe placa Nextion

c) Selectați fila „Touch Press Event” din fereastra Event

d) Debifați caseta de selectare „Trimiteți ID componentă”

e) Tastați următorul cod în secțiunea „Cod utilizator” a ferestrei evenimentului:

tipărește „L”

f) Schimbați numele obiectului hotspotului la „Stânga” utilizând următorul proces:

  • Selectați denumirea din fereastra atributului și schimbați textul din „m0” în „Stânga”
  • Nu este obligatoriu să schimbați numele obiectului hotspot; cu toate acestea va ajuta mai târziu.

g) Repetați pașii 2a-2f pentru fiecare dintre celelalte butoane în următoarea ordine și conform tabelului de mai jos

  • Dreapta
  • Mai repede
  • Mai lent
  • Următorul

Codul ASCII zecimal pentru litera „L” este 76, prin urmare, atunci când afișajul Nextion Enhanced trimite litera L către Arduino folosind comanda de tipărire „L”, Arduino va primi numărul 76. Când este apăsat butonul din dreapta, va primi numărul 82 și așa mai departe. Butonul „Următorul” nu transmite nimic către Arduino, este pur și simplu acolo pentru a trece la următoarea interfață de pe afișajul Nextion Enhanced, de unde și motivul pentru care codul de utilizator este diferit pentru acel buton.

3. Hartați butoanele pe placa de expansiune

a) Selectați „pagina0” și apoi „pagina1” din fereastra Paginii

b) Selectați fila „Preinitializați evenimentul” din fereastra evenimentului

c) Introduceți următorul cod în câmpul „User Code” din fila Preinitialize Event:

  • cfgpio 5, 1, Stânga
  • cfgpio 2, 1, Drept
  • cfgpio 4, 1, Mai repede
  • cfgpio 3, 1, Mai lent
  • cfgpio 1, 1, Next

*** Vă rugăm să rețineți: Există un spațiu între cfgpio și numărul de lângă acesta, dar nu există alte spații pe fiecare linie. Dacă introduceți spații suplimentare, acesta nu se va compila. Acest cod mapează butoanele de pe placa de expansiune la obiectele hotspot de la pagina 1. De exemplu, când butonul Stânga (IO5) de pe placa de expansiune este apăsat, acesta simulează acțiunile sau evenimentele asociate cu hotspot m0 / Stânga. În acest caz, va trimite o valoare „L” (76) către Arduino.

Numărul IO este marcat între paranteze pe placa de expansiune.

Pasul 8: Pagina 2 - Pian cu motor pas cu pas

Pagina 2 - Pian cu motor pas cu pas
Pagina 2 - Pian cu motor pas cu pas
Pagina 2 - Pian cu motor pas cu pas
Pagina 2 - Pian cu motor pas cu pas

interfața sa va fi concepută pentru a arăta ca un pian și îmi va permite să controlez motorul pas cu pas astfel încât să producă o notă în aceeași tastă ca cea pe care o apăs pe afișajul Nextion. Motorul pas cu pas va produce nota prin rotirea la o frecvență specifică.

1. Adăugați imaginea Piano cu motor pas cu pas la pagina 2.

  • Selectați „pagina2” din fereastra Paginii
  • Selectați „Imagine” din fereastra Casetei de instrumente
  • Faceți dublu clic pe atributul „pic” din fereastra Atribut
  • Selectați imaginea „Stepper Motor Piano” din listă
  • Apăsați butonul OK

2. Adăugați puncte fierbinți peste fiecare tastă de pe imaginea pianului cu motor pas cu pas

a) Selectați „Hotspot” din fereastra Toolbox

b) Trageți și redimensionați Hotspot-ul astfel încât să acopere tasta „A”. Aceasta este zona care va răspunde la apăsările „A-key”. Acesta va fi transparent atunci când este încărcat pe placa Nextion.

c) Selectați fila „Touch Press Event” din fereastra Event.

d) Tastați următoarele în secțiunea „Cod utilizator”

tipăriți 1

e) Repetați pașii 2a-2d pentru fiecare dintre celelalte taste conform tabelului de mai jos.

** Când se apasă tasta specifică, placa Nextion Enhanced va transmite numărul tipărit, urmat de trei valori 0x00. Valorile de terminare pot fi ignorate.

3. Butonul „Înapoi” îmi va permite să mă întorc la interfața anterioară de pe placa Nextion Enhanced.

a) Creați un hotspot pentru butonul Înapoi utilizând următorul proces:

  1. Selectați Hotspot din fereastra Casetă de instrumente
  2. Mutați / Redimensionați hotspotul peste butonul „Înapoi”

b) Selectați fereastra Eveniment.

c) Asigurați-vă că este selectată fila „Eveniment de presare tactilă”

d) Tastați: pagina pagina1 în secțiunea Cod utilizator

Pasul 9: Depanare

Depanare
Depanare
Depanare
Depanare

Partea bună a Editorului Nextion este că puteți testa funcționalitatea interfeței înainte de a o încărca pe tablă.

  1. Salvați proiectul apăsând butonul de salvare de pe bara de activități
  2. Apoi apăsați butonul de compilare
  3. Apoi apăsați butonul de depanare.

Va apărea o fereastră de emulator Nextion. Această fereastră ar trebui să răspundă în același mod ca modulul Nextion după ce fișierul Nextion este încărcat pe tablă. Acest emulator este o modalitate excelentă de a vă testa interfața și de a vă asigura că arată și funcționează conform așteptărilor. Odată ce am fost mulțumit de interfață, am transferat fișierul Nextion compilat pe un card SD:

  1. Apăsați butonul de compilare
  2. Fișier → Deschideți folderul Build
  3. Selectați fișierul *.tft cu același nume ca cel al proiectului.
  4. Copiați-l pe un card micro SDHC
  5. Introduceți cardul SDHC în slotul cardului SD de pe afișajul Nextion
  6. Porniți placa Nextion

Așteptați ca fișierul să clipească placa Nextion și ar trebui să vedeți un mesaj care arată astfel:

Următorul pas este să opriți placa Nextion și să scoateți cardul SDHC.

Pasul 10: ARDUINO SETUP

Afișajul Nextion Enhanced este gata, iar acum este rândul Arduino. Arduino este programat să primească mesaje seriale de pe afișajul Nextion Enhanced și să controleze motorul pas cu pas pe baza literelor sau numerelor primite. Literele sau numerele unice transmise de pe placa Nextion, permit Arduino să înțeleagă ce buton este apăsat și folosește acele numere sau litere pentru a controla fluxul de cod pentru a efectua acțiuni specifice ale motorului pas cu pas.

Biblioteca SoftwareSerial este utilizată pentru a permite comunicarea serială între Arduino și afișajul Nextion Enhanced. Biblioteca AccelStepper este utilizată pentru a simplifica procesul de control al motorului pas cu pas.

Configurați o viteză maximă și minimă pentru motoare și câteva taste predefinite. Este posibil să „reglați” motorul utilizând prima interfață a afișajului Nextion. Puteți face acest lucru făcând motorul să se rotească mai repede sau mai lent până când ajungeți la tasta dorită. Aici aplicația „Tuner T1 Free” din magazinul de aplicații iTunes este utilizată pentru a identifica CÂND motorul produce o notă în cheie. Când motorul producea o notă specifică, aș nota viteza motorului pas cu pas care a fost tipărită în fereastra monitorului serial. De fiecare dată când viteza motorului crește sau scade, codul Arduino imprimă viteza în fereastra monitorului serial. Apoi folosesc aceste viteze pentru a actualiza matricea de note din codul Arduino. Matricea de note deține viteza motorului pas cu pas care corespunde notelor individuale de pe pian. Afișajul Nextion trimite în esență numărul de index al notei pentru a fi redat din matricea de note de pe Arduino, simplificând astfel codul necesar rotirii motorului la 16 viteze diferite.

Pasul 11: Finalizarea + Scheme

Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme
Finalizare + Scheme

Cu toate plăcile oprite, următorul pas este de a face toate conexiunile hardware necesare la Arduino. Există două secțiuni majore de luat în considerare:

  • Șoferul motorului Stepper și motorul
  • Placa îmbunătățită Nextion.

Trebuie să vă asigurați că utilizați o sursă de alimentare externă pentru a alimenta atât motorul pas cu pas, cât și placa Nextion Enhanced. Placa driverului motorului pas cu pas a fost alimentată de Arduino fără probleme, însă motorul pas cu pas real va avea nevoie de o sursă de alimentare externă. De asemenea, placa Nextion Enhanced are nevoie de o sursă de alimentare externă, deoarece necesită mai mult curent decât poate furniza Arduino în siguranță.

Notați sursa de alimentare externă utilizată. M-am asigurat că am o sursă de alimentare suficient de mare pentru a face față cerințelor de energie ale proiectului și am folosit fișele tehnice relevante pentru a mă ajuta să identific acele cerințe. Dacă intenționați să reproduceți acest proiect, asigurați-vă că luați în considerare cerințele specifice de putere ale motorului, driverului și afișajului Nextion. Arduino poate furniza doar 400mA de curent de la pinul de 5V. Cu totul conectat, am alimentat afișajul Nextion, apoi am alimentat Arduino. Motorul pas cu pas începe să se rotească automat. Am folosit prima interfață pentru a schimba direcția și / sau viteza motorului. Vă rugăm să rețineți viteza maximă și minimă setată în codul Arduino. Am folosit apoi butonul Next pentru a trece la a doua interfață de pe ecranul Nextion Enhanced. A doua interfață arată ca un pian. Și când apăs o tastă de pe afișajul pianului, motorul schimbă viteza pentru a se potrivi cu nota pe care am apăsat-o.

Asta e. Acum ai terminat.

Sper să vă placă

Recomandat: