INHOUDSOPGAWE:

Speel liedjies met stappermotor !!: 11 stappe (met foto's)
Speel liedjies met stappermotor !!: 11 stappe (met foto's)

Video: Speel liedjies met stappermotor !!: 11 stappe (met foto's)

Video: Speel liedjies met stappermotor !!: 11 stappe (met foto's)
Video: #LikeMe | Het is over [officiële clip] 2024, November
Anonim
Speel liedjies met stappermotor !!
Speel liedjies met stappermotor !!

Hierdie projek gaan oor die ontwerp van 'n eenvoudige dinamiese koppelvlak waarmee u op twee verskillende maniere met 'n stapmotor kan omgaan.

Die eerste koppelvlak beheer die rigting en spoed van die stapmotor deur middel van 'n eenvoudige GUI, met pyltjies links en regs vir die rigting, en op en af pyle vir die snelheid.

Die tweede koppelvlak is meer musikaal van aard, waardeur u eenvoudige liedjies kan speel deur die roterende klanke van die stapmotor te gebruik.

Stap 1: Onderdele benodig

  1. Arduino UNO (of versoenbare bord)
  2. Nextion Verbeterde NX4827K043 van iTead Studio.
  3. Nextion -uitbreidingskaart vir Nextion Enhanced -skerm
  4. Mikro SDHC kaart
  5. SD -kaartleser/skrywer - om lêers van rekenaar na SDHC -kaart oor te dra
  6. Broodbord
  7. Stapmotor (42BYGHM809)
  8. 100 uF -kondensatorDuinotech -stapmotorbestuurder (L298) - [JayCar -onderdeelnr. XC4492].
  9. Eksterne kragtoevoer - bv. Gereguleerde laboratoriumkragvoorsiening

Stap 2: Skep koppelvlak

Skep koppelvlak
Skep koppelvlak

Die eerste stap is om die koppelvlakke in die Nextion Editor op u rekenaar te skep.

U kan die Nextion Editor hier aflaai.

Laai die Nextion Editor op en skep 'n nuwe projek. As u met 'n nuwe projek begin, moet u seker maak dat u die korrekte Nextion -toestel uit die beskikbare opsies kies. Hier word 'Nextion Enhanced NX4827K043' toestel gebruik.

  1. Kies File → New Kies 'n naam vir die projek en stoor dit op 'n geskikte plek op die hardeskyf.
  2. Kies die toepaslike Nextion -toestel uit die beskikbare opsies

    My toestel het 'n skermgrootte van 480 x 272 pixels

Stap 3: Projekbronne

Projekhulpbronne
Projekhulpbronne
Projekhulpbronne
Projekhulpbronne
Projekhulpbronne
Projekhulpbronne

U moet al die hulpbronne (bv. Foto's en lettertipes) in u projek invoer en die koppelvlak ontwerp om aan u spesifieke behoeftes te voldoen.

Lettertipes

Daar word geen spesifieke lettertipes gebruik nie, maar as u teks op die skerm wil skryf, moet u 'n lettertipe in die Nextion Editor skep.

A) Gereedskap → Font Generator

  1. Kies die Hoogte van die lettertipe (bv. 16).
  2. Kies die tipe fontkode (bv. Iso-8859-2)
  3. Kies of u dit vetgedruk wil hê of nie
  4. Kies die lettertipe wat u wil gebruik (bv. Arial)
  5. Kies die afstand (bv. 0)
  6. En gee hierdie font uiteindelik 'n unieke naam (bv. Arial_16)
  7. Druk die knoppie "Genereer lettertipe" regs onder in die venster.

Sodra u op die knoppie Genereer lettertipe gedruk het, kan u die lettertipe stoor met 'n *.zi -uitbreiding en u outomaties vra of u die gegenereerde lettertipe wil byvoeg? aan die projek. As u tevrede is met die lettertipe en hierdie lettertipe in u projek wil gebruik, kies dan 'Ja', anders kies 'Nee' en begin weer.

U kan geen teks by u projek voeg totdat u 'n lettertipe ingevoer of bygevoeg het nie. Al u projek lettertipes word in die lettertipe venster vertoon.

** Opmerking: elke lettertipe word outomaties geïndekseer, sodat u die lettertipe grammaties kan verwys indien nodig. Aan alle hulpbronne wat u by u projek voeg, word 'n nommer toegeken en met een toegeneem vir elke bron wat bygevoeg word. Vir 'n paar hulpbronne kan u hierdie nommer links van die item sien. Bv. In die prent hierbo het die Courier Font 'n indeks van 0, terwyl die Arial -lettertipe 'n indeks van 1. As u 'n bron uitvee, kan die indeksnommer vir die item verander.

Stap 4: Die invoer van beelde

Invoer van beelde
Invoer van beelde
Invoer van beelde
Invoer van beelde

Op die Nextion Enhanced NX4827K043 -toestel moet elke prentjie 480 x 272 pixels groot wees.

Ons sal nou die volgende foto's in die Nextion Editor invoer sodat ons dit in die projek kan gebruik. In die onderste linkerhoek van die Nextion -redakteur is die bronvenster “Lettertipes en prentjies”:

  1. Kies die prentjie -oortjie
  2. Kies dan die "+" -ikoon
  3. Dit sal 'n dialoogkassie oopmaak sodat u die prentjie (s) kan kies wat u by die projek wil voeg. U kan meer as een prentjie kies om in te voer.

Vir Splash Screen kan u enige beeld volgens u keuse maak.

En vir die stapmotor- en klavier -koppelvlak kan u die prent hierbo aflaai.

Stap 5: Maak GUI

Maak GUI
Maak GUI

Elke bron kry 'n ID op grond van die volgorde waarin dit bygevoeg word, en elke bron kry outomaties 'n naam.

U kan die naam van die bron of voorwerp verander, maar u kan nie die ID wysig nie.

Drie bladsye sal ontwerp word om aan die bogenoemde kriteria te voldoen.

Om 'n bladsy by te voeg, kies u die "Voeg" -ikoon in die "bladsyvenster". En hou aan om bladsye by te voeg totdat u altesaam 3 bladsye (bladsy0, bladsy1 en bladsy2) het.

Stap 6: Bladsy 0-Splash Screen

Bladsy 0-spatskerm
Bladsy 0-spatskerm

As die Nextion aangeskakel word, word die spatskerm vir 3 sekondes vertoon voordat dit die Stepper Motor Controller -skerm vertoon. Ek het die volgende stappe gebruik om die spatskerm te skep.

Voeg die spatskermprent by bladsy 0

  • Kies "bladsy 0" in die bladsyvenster
  • Kies "Beeld" in die venster van die gereedskapkas
  • Dubbelklik op die "pic" -kenmerk in die venster Kenmerk
  • Kies die spatskerm uit die lys
  • Druk die OK -knoppie

2. Voeg 'n tydopnemer by bladsy 0

  • Kies Timer in die Toolbox -venster
  • Verander die kenmerk "tim" van 400 na 3000 in die venster Kenmerk
  • Tik "bladsy bladsy1" in die afdeling Gebruikerskode van die tydopname (0) Hierdie tydgebeurtenis laat die Nextion na 3 sekondes na bladsy 1 spring.

Hierdie timer -gebeurtenis laat die Nextion na 3 sekondes na bladsy 1 spring.

Stap 7: Bladsy 1 - Stepper Motor Controller

Hierdie bladsy is ontwerp om die rigting en spoed van die stapmotor te beheer. Daar sal twee knoppies wees vir die rigting (links en regs) en twee knoppies vir die spoed (vinniger en stadiger). En nog 'n knoppie om na die volgende bladsy te gaan (dit wil sê die Stepper Motor Piano -bladsy). Hierdie knoppies word ook op die Nextion -uitbreidingskaart gekarteer. Die tasbare knoppies van die uitbreidingskaart bied 'n alternatiewe metode om die motor te beheer.

Voeg die prentjie van die stapmotorbeheerder by bladsy 1

  • Kies "bladsy1" in die bladsyvenster
  • Kies "Beeld" in die venster van die gereedskapkas
  • Dubbelklik op die "pic" -kenmerk in die venster Kenmerk
  • Kies die "Stepper Motor Controller" -beeld uit die lys
  • Druk die OK -knoppie

2. Voeg hotspots by oor elke knoppie op die Stepper Motor Controller -beeld

a) Kies 'Hotspot' in die Toolbox -venster

b) Sleep en verander die grootte van die hotspot sodat dit die knoppie "Links" dek

  • Dit is die gebied wat sal reageer op die druk op die linkerknoppie.
  • Dit sal deursigtig wees wanneer dit na die Nextion -bord opgelaai word

c) Kies die oortjie "Touch Press Event" in die gebeurtenisvenster

d) Verwyder die vinkje in die boks “Stuur komponent-ID”

e) Tik die volgende kode in die afdeling "Gebruikerskode" van die gebeurtenisvenster:

druk “L”

f) Verander die voorwerpnaam van die hotspot na "Links" deur die volgende proses te gebruik:

  • Kies objname in die kenmerkvenster en verander die teks van "m0" na "Links"
  • Dit is nie verpligtend om die naam van die hotspot -voorwerp te verander nie; dit sal egter later help.

g) Herhaal stappe 2a-2f vir elk van die ander knoppies in die volgende volgorde en volgens die tabel hieronder

  • Reg
  • Vinniger
  • Stadiger
  • Volgende

Die desimale ASCII -kode vir die letter "L" is 76, dus wanneer die Nextion Enhanced -skerm die letter L na die Arduino stuur met die opdrag "L", kry die Arduino die nommer 76. As die regterknoppie ingedruk word, sal die nommer 82 ontvang, ensovoorts. Die knoppie "Volgende" stuur niks na die Arduino nie; dit is eenvoudig daar om na die volgende koppelvlak op die Nextion Enhanced -skerm te spring, vandaar die rede waarom die gebruikerskode vir die knoppie anders is.

3. Gee die knoppies na die uitbreidingskaart

a) Kies “page0” en dan “page1” in die venster Page

b) Kies die oortjie "Gebeurtenis pre -initialiseer" in die gebeurtenisvenster

c) Tik die volgende kode in die veld "Gebruikerskode" van die oortjie Pre -initialiseer gebeurtenis:

  • cfgpio 5, 1, links
  • cfgpio 2, 1, regs
  • cfgpio 4, 1, vinniger
  • cfgpio 3, 1, stadiger
  • cfgpio 1, 1, Volgende

*** Let wel: daar is een spasie tussen cfgpio en die nommer daarby, maar daar is geen ander spasies op elke reël nie. As u ekstra spasies bekendstel, word dit nie saamgestel nie. Hierdie kode karteer die knoppies op die uitbreidingskaart na die hotspot -voorwerpe op bladsy 1. As u byvoorbeeld op die linkerknoppie (IO5) op die uitbreidingskaart druk, simuleer dit die aksies of gebeure wat verband hou met hotspot m0/links. In hierdie geval stuur dit 'n waarde van "L" (76) na die Arduino.

Die IO -nommer word tussen hakies op die uitbreidingskaart aangedui.

Stap 8: Bladsy 2 - Stepper Motor Piano

Bladsy 2 - Stapmotorklavier
Bladsy 2 - Stapmotorklavier
Bladsy 2 - Stapmotorklavier
Bladsy 2 - Stapmotorklavier

sy koppelvlak sal ontwerp word om soos 'n klavier te lyk, en sal my toelaat om die stepper motor so te beheer dat dit 'n noot in dieselfde sleutel produseer as die een wat ek op die Nextion -skerm druk. Die stapmotor sal die noot produseer deur op 'n spesifieke frekwensie te draai.

1. Voeg die Stepper Motor Piano -prent by bladsy 2.

  • Kies 'page2' in die bladsyvenster
  • Kies "Beeld" in die venster van die gereedskapkas
  • Dubbelklik op die "pic" -kenmerk in die venster Kenmerk
  • Kies die prentjie "Stepper Motor Piano" uit die lys
  • Druk die OK -knoppie

2. Voeg hotspots by oor elke sleutel op die Stepper Motor Piano -beeld

a) Kies 'Hotspot' in die Toolbox -venster

b) Sleep en verander die grootte van die hotspot sodat dit die "A" -sleutel dek. Dit is die gebied wat sal reageer op "A-sleutel" druk.

c) Kies die oortjie "Touch Press Event" in die gebeurtenisvenster.

d) Tik die volgende in die afdeling "Gebruikerskode"

druk 1

e) Herhaal stappe 2a-2d vir elk van die ander sleutels volgens die onderstaande tabel.

** As die spesifieke sleutel ingedruk word, sal die Nextion Enhanced -bord die gedrukte nommer stuur, gevolg deur drie 0x00 waardes. Die eindwaardes kan geïgnoreer word.

3. Met die "Terug" -knoppie kan ek teruggaan na die vorige koppelvlak op die Nextion Enhanced -bord.

a) Skep 'n hotspot vir die terugknoppie deur die volgende proses te gebruik:

  1. Kies Hotspot in die Toolbox -venster
  2. Beweeg/verander die hotspot oor die "Terug" -knoppie

b) Kies die gebeurtenisvenster.

c) Maak seker dat die blad "Raakpersgebeurtenis" gekies is

d) Tik: bladsy bladsy1 in die afdeling Gebruikerskode

Stap 9: Ontfout

Ontfouting
Ontfouting
Ontfouting
Ontfouting

Die goeie ding met die Nextion Editor is dat u die koppelvlakfunksionaliteit kan toets voordat u dit na die bord laai.

  1. Stoor die projek deur op die stoor -knoppie op die taakbalk te druk
  2. Druk dan op die kompileringsknoppie
  3. Druk dan op die ontfoutknoppie.

'N Nextion -emulatorvenster verskyn. Hierdie venster moet op dieselfde manier reageer as die Nextion -module nadat die Nextion -lêer op die bord gelaai is. Hierdie emulator is 'n uitstekende manier om u koppelvlak te toets en seker te maak dat dit lyk en werk soos verwag. Toe ek tevrede was met die koppelvlak (s), het ek die saamgestelde Nextion -lêer na 'n SD -kaart oorgedra:

  1. Druk die kompileerknoppie
  2. Lêer → Maak die boumap oop
  3. Kies die *.tft -lêer met dieselfde naam as die van die projek.
  4. Kopieer dit na 'n mikro -SDHC -kaart
  5. Plaas die SDHC -kaart in die SD -kaartgleuf op die Nextion -skerm
  6. Skakel die Nextion -bord aan

Wag totdat die lêer op die Nextion -bord flits, en u moet 'n boodskap sien wat so lyk:

Die volgende stap is om die Nextion -bord uit te skakel en die SDHC -kaart te verwyder.

Stap 10: ARDUINO INSTELLING

Die Nextion Enhanced -skerm is gereed, en nou is die Arduino aan die beurt. Die Arduino is geprogrammeer om reeksboodskappe van die Nextion Enhanced -skerm te ontvang en die stapmotor te beheer op grond van die letters of syfers wat ontvang is. Die unieke letters of syfers wat vanaf die Nextion -bord oorgedra word, laat die Arduino toe om te verstaan op watter knoppie daar gedruk word, en dit gebruik die syfers of letters om die vloei van kode te beheer om spesifieke stapmotoriese aksies uit te voer.

Die SoftwareSerial -biblioteek word gebruik om seriële kommunikasie tussen die Arduino en die Nextion Enhanced -skerm moontlik te maak. Die AccelStepper -biblioteek word gebruik om die proses van stappermotorbeheer te vereenvoudig.

Stel 'n maksimum en minimum snelheid vir die motors en 'n paar vooraf gedefinieerde sleutels in. Dit is moontlik om die motor te "stem" met die eerste koppelvlak van die Nextion -skerm. U kan dit doen deur die motor vinniger of stadiger te laat draai totdat u die gewenste sleutel bereik. Hier word die "Tuner T1 Free" -program van die iTunes -appwinkel gebruik om te identifiseer WANNEER die motor 'n sleutelbrief produseer. As die motor 'n spesifieke noot lewer, skryf ek die stappermotorsnelheid neer wat op die seriële monitorvenster gedruk is. Elke keer as die motorsnelheid verhoog of verlaag word, druk die Arduino -kode die snelheid na die seriële monitorvenster. Ek gebruik dan hierdie snelhede om die notas -reeks in die Arduino -kode op te dateer. Die note -reeks bevat die stepper motor snelhede wat ooreenstem met die individuele note op die klavier. Die Nextion -skerm stuur in wese die indeksnommer van die noot om uit die note -reeks op die Arduino te speel, en vereenvoudig sodoende die kode wat nodig is om die motor teen 16 verskillende snelhede te draai.

Stap 11: Finalisering+skema's

Finalisering+skema's
Finalisering+skema's
Finalisering+skema's
Finalisering+skema's
Finalisering+skema's
Finalisering+skema's
Finalisering+skema's
Finalisering+skema's

As alle borde afgeskakel is, is die volgende stap om al die nodige hardewareverbindings met die Arduino te maak. Daar is twee hoofafdelings wat u moet oorweeg:

  • Die stapmotorbestuurder en motor
  • Die Nextion Enhanced -bord.

U moet seker maak dat u 'n eksterne kragbron gebruik om die stappermotor en die Nextion Enhanced -bord aan te dryf. Die bestuurderbord van die stapmotor self is sonder probleme deur die Arduino aangedryf, maar die werklike stapmotor benodig 'n eksterne kragtoevoer. Die Nextion Enhanced -bord het ook 'n eksterne kragtoevoer nodig omdat dit meer stroom benodig as wat die Arduino veilig kan verskaf.

Let op die eksterne kragtoevoer wat gebruik word. Ek het seker gemaak dat ek 'n groot genoeg kragtoevoer het om die kragbehoeftes van die projek te hanteer, en ek het die relevante gegewensblaaie gebruik om my te help om die vereistes te identifiseer. As u van plan is om hierdie projek te herhaal, moet u die spesifieke kragvereistes van u motor, u motorbestuurder en u Nextion -skerm in ag neem. Die Arduino kan slegs 400mA stroom verskaf vanaf die 5V -pen. Met alles aangeskakel, het ek die Nextion -skerm aangeskakel en daarna die Arduino aangeskakel. Die stapmotor begin outomaties draai. Ek het die eerste koppelvlak gebruik om die rigting en/of snelheid van die motor te verander. Let op die maksimum en minimum snelhede wat in die Arduino -kode opgestel is. Ek gebruik dan die Volgende -knoppie om na die tweede koppelvlak op die Nextion Enhanced -skerm te spring. Die tweede koppelvlak lyk soos 'n klavier. En as ek op 'n sleutel op die klavier vertoon, verander die motor die spoed wat ooreenstem met die noot wat ek gedruk het.

Nou is jy klaar.

Hoop jy sal daarvan hou

Aanbeveel: