Innholdsfortegnelse:

Spill sanger med trinnmotor !!: 11 trinn (med bilder)
Spill sanger med trinnmotor !!: 11 trinn (med bilder)

Video: Spill sanger med trinnmotor !!: 11 trinn (med bilder)

Video: Spill sanger med trinnmotor !!: 11 trinn (med bilder)
Video: Idyll (Postgirobygget) Lær og Spill med Kim Lervik 2024, November
Anonim
Spill sanger med trinnmotor !!
Spill sanger med trinnmotor !!

Dette prosjektet handler om å designe et enkelt dynamisk grensesnitt, som gjør det mulig å samhandle med en trinnmotor på to forskjellige måter.

Det første grensesnittet vil kontrollere retningen og hastigheten til trinnmotoren ved bruk av en enkel GUI, som har venstre og høyre pil for retningen, og pil opp og ned for hastigheten.

Det andre grensesnittet vil være mer musikalsk, noe som gjør det mulig å spille enkle sanger ved hjelp av rotasjonslydene til trinnmotoren.

Trinn 1: Deler påkrevd

  1. Arduino UNO (eller kompatibelt brett)
  2. Nextion Forbedret NX4827K043 fra iTead Studio.
  3. Nextion utvidelseskort for Nextion Enhanced display
  4. Micro SDHC -kort
  5. SD -kortleser/-skriver - for å overføre filer fra datamaskin til SDHC -kort
  6. Brødbrett
  7. Trinnmotor (42BYGHM809)
  8. 100 uF kondensatorDuinotech trinnmotor driver (L298) - [JayCar del# XC4492].
  9. Ekstern strømforsyning - f.eks. Regulert strømforsyning for laboratorier

Trinn 2: Opprette grensesnitt

Opprette grensesnitt
Opprette grensesnitt

Det første trinnet er å lage grensesnittene i Nextion Editor på din PC.

Du kan laste ned Nextion Editor her.

Last inn Nextion Editor og lag et nytt prosjekt. Når du starter et nytt prosjekt, må du sørge for at du velger riktig Nextion -enhet blant de tilgjengelige alternativene. Her brukes enheten "Nextion Enhanced NX4827K043".

  1. Velg Fil → Ny Velg et navn på prosjektet og lagre det på et passende sted på harddisken.
  2. Velg riktig Nextion -enhet fra de tilgjengelige alternativene

    Enheten min har en skjermstørrelse på 480 x 272 piksler

Trinn 3: Prosjektressurser

Prosjektressurser
Prosjektressurser
Prosjektressurser
Prosjektressurser
Prosjektressurser
Prosjektressurser

Du må importere alle ressursene (f.eks. Bilder og fonter) til prosjektet ditt, og deretter designe grensesnittet for å passe dine spesifikke behov.

Skrifter

Det er ingen spesifikke fonter som brukes, men hvis du vil skrive tekst til skjermen, må du generere en skrift i Nextion Editor.

A) Verktøy → Skriftgenerator

  1. Velg høyden på skriften (f.eks. 16).
  2. Velg skrifttype (f.eks. Iso-8859-2)
  3. Velg om du vil at den skal være fet eller ikke
  4. Velg skriften du vil bruke (f.eks. Arial)
  5. Velg mellomrom (f.eks. 0)
  6. Og til slutt gi denne skrifttypen et unikt navn (f.eks. Arial_16)
  7. Trykk på knappen "Generer skrift" nederst til høyre i vinduet.

Når du trykker på Generer skrift -knappen, får du deg til å lagre skrifttypen ved hjelp av en *.zi -utvidelse, og vil automatisk spørre deg om du vil "Legg til den genererte skriften?" til prosjektet. Hvis du er fornøyd med skrifttypen, og vil bruke denne skriften i prosjektet ditt, velger du "Ja", ellers velger du "Nei" og starter på nytt.

Du kan ikke legge til tekst i prosjektet ditt før du har importert eller lagt til en skrift. Alle prosjektfontene dine vil vises i skriftvinduet.

** Merk: Hver skrift blir automatisk indeksert, slik at du kan referere skriften til den grammatisk om nødvendig. Faktisk får alle ressurser du legger til i prosjektet et nummer og økes med én for hver ressurs som legges til. For noen ressurser kan du se dette nummeret til venstre for elementet. F.eks. På bildet ovenfor har Courier Font en indeks på 0, mens Arial -fonten har en indeks på 1. Hvis du sletter en ressurs, kan indeksnummeret endres for det elementet.

Trinn 4: Importere bilder

Importere bilder
Importere bilder
Importere bilder
Importere bilder

På Nextion Enhanced NX4827K043 -enheten må hvert bilde være 480 x 272 piksler stort.

Vi vil nå importere følgende bilder til Nextion Editor slik at vi kan bruke dem i prosjektet. I nedre venstre hjørne av Nextion -editoren er ressursvinduet "Skrifter og bilde":

  1. Velg kategorien Bilde
  2. Velg deretter "+" - ikonet
  3. Dette åpner en dialogboks der du kan velge bildene du vil legge til i prosjektet. Du kan velge mer enn ett bilde som skal importeres.

For Splash Screen kan du lage et hvilket som helst bilde i henhold til ditt valg.

Og for trinnmotor og piano -grensesnitt kan du laste ned bildet ovenfor.

Trinn 5: Lag GUI

Lag GUI
Lag GUI

Hver ressurs vil få en ID basert på rekkefølgen den er lagt til, og hver ressurs vil automatisk få et navn.

Du kan endre navnet på ressursen eller objektet, men du kan ikke redigere ID -en.

Tre sider vil bli designet for å oppfylle kriteriene beskrevet ovenfor.

For å legge til en side, velger du ganske enkelt "Legg til" -ikonet fra "sidevinduet". Og fortsett å legge til sider til du har totalt 3 sider (side0, side1 og side2).

Trinn 6: Side 0-Splash-skjerm

Side 0-Splash-skjerm
Side 0-Splash-skjerm

Når Nextion slås på, vil sprutskjermen vises i 3 sekunder før den viser skjermbildet Stepper Motor Controller. Jeg brukte følgende trinn for å lage sprutskjermen.

Legg til sprutskjermbildet på side 0

  • Velg "side 0" fra sidevinduet
  • Velg "Bilde" fra verktøykassen
  • Dobbeltklikk på "pic" -attributtet fra attributtvinduet
  • Velg sprutskjermbildet fra listen
  • Trykk på OK -knappen

2. Legg til en tidtaker på side 0

  • Velg Timer fra Verktøykasse -vinduet
  • Endre “tim” -attributtet fra 400 til 3000 i attributtvinduet
  • Skriv inn "side side1" i delen Brukerkode i Timer -hendelsen (0) Denne timeren vil få Nextion til å gå til side1 etter 3 sekunder.

Denne timerhendelsen får Nextion til å hoppe til side 1 etter 3 sekunder.

Trinn 7: Side 1 - Stepper Motor Controller

Denne siden er designet for å kontrollere retningen og hastigheten til trinnmotoren. Det vil være to knapper for retningen (venstre og høyre), og to knapper for hastigheten (raskere og langsommere). Og en knapp til for å hoppe til neste side (dvs. Stepper Motor Piano -siden). Disse knappene vil også bli kartlagt til Nextion -utvidelseskortet. De taktile knappene på ekspansjonskortet vil gi en alternativ metode for å kontrollere motoren.

Legg til Stepper Motor Controller -bildet på side 1

  • Velg "side1" fra sidevinduet
  • Velg "Bilde" fra verktøykassen
  • Dobbeltklikk på "pic" -attributtet fra attributtvinduet
  • Velg "Stepper Motor Controller" -bildet fra listen
  • Trykk på OK -knappen

2. Legg til hotspots over hver knapp på Stepper Motor Controller -bildet

a) Velg "Hotspot" fra verktøykassen

b) Dra og endre størrelsen på hotspot slik at det dekker “Venstre” -knappen

  • Dette er området som vil svare på "Venstre knapp" -trykk.
  • Det vil være gjennomsiktig når det lastes opp til Nextion -brettet

c) Velg kategorien "Touch Press Event" i hendelsesvinduet

d) Fjern merket i avmerkingsboksen "Send komponent-ID"

e) Skriv inn følgende kode i delen "Brukerkode" i hendelsesvinduet:

skrive ut "L"

f) Endre objektnavnet til hotspot til “Left” ved å bruke følgende prosess:

  • Velg objname fra attributtvinduet og endre teksten fra "m0" til "Left"
  • Det er ikke obligatorisk å endre navnet på hotspot -objektet; men det vil hjelpe senere.

g) Gjenta trinn 2a-2f for hver av de andre knappene i følgende rekkefølge og i henhold til tabellen nedenfor

  • Ikke sant
  • Raskere
  • Saktere
  • Neste

Den desimale ASCII -koden for bokstaven “L” er 76, derfor når Nextion Enhanced -displayet sender bokstaven L til Arduino ved hjelp av kommandoen “L”, vil Arduino motta tallet 76. Når den høyre knappen trykkes, vil den vil få nummeret 82, og så videre. "Neste" -knappen sender ikke noe til Arduino, den er rett og slett der for å hoppe til neste grensesnitt på Nextion Enhanced -skjermen, derav grunnen til at brukerkoden er annerledes for den knappen.

3. Kart knappene til utvidelseskortet

a) Velg “side0” og deretter “side1” fra sidevinduet

b) Velg kategorien “Forinitialiser hendelse” fra hendelsesvinduet

c) Skriv inn følgende kode i "Brukerkode" -feltet i kategorien Forinitialiser hendelse:

  • cfgpio 5, 1, Venstre
  • cfgpio 2, 1, Høyre
  • cfgpio 4, 1, Raskere
  • cfgpio 3, 1, tregere
  • cfgpio 1, 1, Neste

*** Vær oppmerksom på: Det er ett mellomrom mellom cfgpio og tallet ved siden av det, men det er ingen andre mellomrom på hver linje. Hvis du introduserer ekstra mellomrom, vil det ikke kompilere. Denne koden tilordner knappene på utvidelseskortet til hotspot -objektene på side1. Når du for eksempel trykker på Venstre -knappen (IO5) på utvidelseskortet, simulerer det handlingene eller hendelsene knyttet til hotspot m0/Left. I dette tilfellet vil den sende verdien "L" (76) til Arduino.

IO -nummeret er merket innenfor parentes på ekspansjonskortet.

Trinn 8: Side 2 - Stepper Motor Piano

Side 2 - Stepper Motor Piano
Side 2 - Stepper Motor Piano
Side 2 - Stepper Motor Piano
Side 2 - Stepper Motor Piano

grensesnittet hans vil være utformet for å se ut som et piano, og vil tillate meg å kontrollere trinnmotoren slik at den produserer en tone i samme tast som den jeg trykker på Nextion -displayet. Steppermotoren produserer notatet ved å rotere med en bestemt frekvens.

1. Legg til Stepper Motor Piano -bildet på side 2.

  • Velg "side2" fra sidevinduet
  • Velg "Bilde" fra verktøykassen
  • Dobbeltklikk på "pic" -attributtet fra attributtvinduet
  • Velg "Stepper Motor Piano" -bildet fra listen
  • Trykk på OK -knappen

2. Legg til hotspots over hver tast på Stepper Motor Piano -bildet

a) Velg "Hotspot" fra verktøykassen

b) Dra og endre størrelsen på hotspot slik at det dekker "A" -tasten. Dette er området som vil svare på "A-tast" -trykk. Det vil være gjennomsiktig når det lastes opp til Nextion-brettet.

c) Velg kategorien "Touch Press Event" i hendelsesvinduet.

d) Skriv inn følgende i delen "Brukerkode"

skrive ut 1

e) Gjenta trinn 2a-2d for hver av de andre tastene i henhold til tabellen nedenfor.

** Når du trykker på den spesifikke tasten, sender Nextion Enhanced -kortet det trykte nummeret, etterfulgt av tre 0x00 -verdier. Avslutningsverdiene kan ignoreres.

3. “Tilbake” -knappen lar meg hoppe tilbake til forrige grensesnitt på Nextion Enhanced -kortet.

a) Opprett et hotspot for tilbakeknappen ved å bruke følgende prosess:

  1. Velg Hotspot fra verktøykassen
  2. Flytt/endre størrelsen på hotspot over "Tilbake" -knappen

b) Velg hendelsesvinduet.

c) Sørg for at kategorien "Trykk på hendelse" er valgt

d) Skriv: side side1 i delen Brukerkode

Trinn 9: Feilsøking

Feilsøking
Feilsøking
Feilsøking
Feilsøking

Det som er bra med Nextion Editor, er at du kan teste grensesnittfunksjonaliteten før du laster den opp til brettet.

  1. Lagre prosjektet ved å trykke på lagre -knappen på oppgavelinjen
  2. Trykk deretter på kompileringsknappen
  3. Trykk deretter på feilsøkingsknappen.

Et Nextion -emulatorvindu vises. Dette vinduet skal svare på samme måte som Nextion -modulen etter at Nextion -filen er lastet opp til brettet. Denne emulatoren er en fin måte å teste grensesnittet på og sørge for at det ser ut og fungerer som forventet. Når jeg var fornøyd med grensesnittet (e), overførte jeg den kompilerte Nextion -filen til et SD -kort:

  1. Trykk på kompileringsknappen
  2. Fil → Åpne Bygg mappe
  3. Velg *.tft -filen med samme navn som prosjektet.
  4. Kopier den til et micro SDHC -kort
  5. Sett inn SDHC -kortet i SD -kortsporet på Nextion -skjermen
  6. Slå på Nextion -kortet

Vent til filen blinker på Nextion -brettet, og du bør se en melding som ser slik ut:

Det neste trinnet er å slå av Nextion -kortet og fjerne SDHC -kortet.

Trinn 10: ARDUINO SETUP

Nextion Enhanced -skjermen er klar, og nå er det Arduino sin tur. Arduino er programmert til å motta serielle meldinger fra Nextion Enhanced -displayet og kontrollere trinnmotoren basert på mottatte bokstaver eller tall. De unike bokstavene eller tallene som overføres fra Nextion -brettet, lar Arduino forstå hvilken knapp det trykkes på, og den bruker disse tallene eller bokstavene til å kontrollere kodeflyten for å utføre spesifikke trinnmotorhandlinger.

SoftwareSerial -biblioteket brukes til å aktivere seriell kommunikasjon mellom Arduino og Nextion Enhanced -skjermen. AccelStepper -biblioteket brukes til å forenkle prosessen med trinnmotorstyring.

Sett opp en maksimal og minimumshastighet for motorene, og noen forhåndsdefinerte taster. Det er mulig å "stille" motoren ved å bruke det første grensesnittet på Nextion -displayet. Du kan gjøre dette ved å få motoren til å snu raskere eller langsommere til du når ønsket nøkkel. Her brukes “Tuner T1 Free” -appen fra iTunes App Store for å identifisere NÅR motoren produserte en seddel i nøkkel. Når motoren produserte et spesifikt notat, ville jeg skrive ned trinnmotorhastigheten som ble skrevet ut på vinduet Serial monitor. Hver gang motorhastigheten økes eller reduseres, skriver Arduino -koden ut hastigheten til det serielle monitorvinduet. Jeg bruker deretter disse hastighetene til å oppdatere notatene i Arduino -koden. Notatene inneholder trinnmotorhastighetene som tilsvarer de enkelte notene på pianoet. Nextion -displayet sender i hovedsak indeksnummeret til notatet for å spille fra notatmatrisen på Arduino, og forenkler derved koden som kreves for å snurre motoren med 16 forskjellige hastigheter.

Trinn 11: Avslutte+skjemaer

Avslutter+skjemaer
Avslutter+skjemaer
Avslutter+skjema
Avslutter+skjema
Avslutter+skjemaer
Avslutter+skjemaer
Avslutter+skjemaer
Avslutter+skjemaer

Med alle brettene slått av, er neste trinn å lage alle nødvendige maskinvaretilkoblinger til Arduino. Det er to hoveddeler å vurdere:

  • Stepper motor driver og motor
  • Nextion Enhanced -brettet.

Du må sørge for at du bruker en ekstern strømkilde for å drive både trinnmotoren og Nextion Enhanced -kortet. Selve trinnmotordriverkortet ble drevet av Arduino uten problemer, men den faktiske trinnmotoren trenger en ekstern strømforsyning. Nextion Enhanced -kortet trenger også en ekstern strømforsyning fordi den krever mer strøm enn Arduino trygt kan levere.

Legg merke til den eksterne strømforsyningen som brukes. Jeg sørget for at jeg hadde en stor nok strømforsyning til å håndtere kravene til prosjektet, og brukte de relevante databladene for å hjelpe meg med å identifisere disse kravene. Hvis du planlegger å replikere dette prosjektet, må du ta hensyn til de spesifikke kravene til motoren din, motordriveren og Nextion -skjermen. Arduino kan bare levere 400mA strøm fra 5V -pinnen. Da alt var koblet til, satte jeg på Nextion -skjermen og deretter på Arduino. Trinnmotoren begynner å spinne automatisk. Jeg brukte det første grensesnittet for å endre motorens retning og/eller hastighet. Vær oppmerksom på maksimums- og minimumshastighetene som er satt opp i Arduino -koden. Jeg brukte deretter Neste -knappen for å hoppe til det andre grensesnittet på Nextion Enhanced -skjermen. Det andre grensesnittet ser ut som et piano. Og når jeg trykker på en tast på pianodisplayet, endrer motoren hastigheten for å matche notatet jeg trykket på.

Det er det. Nå er du ferdig.

Håper du vil like det

Anbefalt: