Inhoudsopgave:

Nummers afspelen met stappenmotor !! 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Nummers afspelen met stappenmotor !! 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Nummers afspelen met stappenmotor !! 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Nummers afspelen met stappenmotor !! 11 stappen (met afbeeldingen) Antwoorden op al uw
Video: 🇳🇱 FUNCTIES EN SCOPES - Arduino theorie #3 2024, November
Anonim
Speel nummers af met behulp van de stappenmotor !!
Speel nummers af met behulp van de stappenmotor !!

Dit project gaat over het ontwerpen van een eenvoudige dynamische interface, die het mogelijk maakt om op twee verschillende manieren met een stappenmotor te communiceren.

De eerste interface regelt de richting en snelheid van de stappenmotor door het gebruik van een eenvoudige GUI, die pijlen naar links en rechts heeft voor de richting, en pijlen omhoog en omlaag voor de snelheid.

De tweede interface zal meer muzikaal van aard zijn, waardoor eenvoudige liedjes kunnen worden afgespeeld met behulp van de roterende geluiden van de stappenmotor.

Stap 1: Benodigde onderdelen

  1. Arduino UNO (of compatibel bord)
  2. Nextion Verbeterde NX4827K043 van iTead Studio.
  3. Nextion Uitbreidingskaart voor Nextion Enhanced-display
  4. Micro SDHC-kaart
  5. SD-kaartlezer/schrijver - om bestanden over te zetten van computer naar SDHC-kaart
  6. Breadboard
  7. Stappenmotor (42BYGHM809)
  8. 100 uF condensator Duinotech stappenmotorstuurprogramma (L298) - [JayCar-onderdeel # XC4492].
  9. Externe voeding - b.v. Gereguleerde laboratoriumvoeding

Stap 2: Interface maken

Interface maken
Interface maken

De eerste stap is het maken van de interfaces in de Nextion Editor op uw pc.

U kunt de Nextion Editor hier downloaden.

Laad de Nextion Editor en maak een nieuw project aan. Wanneer u een nieuw project start, moet u ervoor zorgen dat u het juiste Nextion-apparaat selecteert uit de beschikbare opties. Hier wordt het apparaat "Nextion Enhanced NX4827K043" gebruikt.

  1. Selecteer Bestand → NieuwSelecteer een naam voor het project en sla het op een geschikte plaats op de harde schijf op.
  2. Selecteer het juiste Nextion-apparaat uit de beschikbare opties

    Mijn apparaat heeft een schermgrootte van 480 x 272 pixels

Stap 3: Projectbronnen

Projectbronnen
Projectbronnen
Projectbronnen
Projectbronnen
Projectbronnen
Projectbronnen

U moet alle bronnen (bijv. afbeeldingen en lettertypen) in uw project importeren en vervolgens de interface ontwerpen om aan uw specifieke behoeften te voldoen.

Lettertypen

Er worden geen specifieke lettertypen gebruikt, maar als u tekst naar het scherm wilt schrijven, moet u een lettertype genereren in de Nextion Editor.

A)Extra → Lettertypegenerator

  1. Selecteer de hoogte van het lettertype (bijv. 16).
  2. Selecteer het type lettertypecode (bijv. iso-8859-2)
  3. Selecteer of je het vetgedrukt wilt hebben of niet
  4. Kies het lettertype dat u wilt gebruiken (bijv. Arial)
  5. Kies de afstand (bijv. 0)
  6. En geef dit lettertype tot slot een unieke naam (bijv. Arial_16)
  7. Druk op de knop "Lettertype genereren" rechtsonder in het venster.

Zodra u op de knop Lettertype genereren drukt, wordt het lettertype opgeslagen met een *.zi-extensie en wordt u automatisch gevraagd of u het gegenereerde lettertype wilt toevoegen? naar het project. Als u tevreden bent met het lettertype en dit lettertype in uw project wilt gebruiken, selecteert u "Ja", anders selecteert u "Nee" en begint u opnieuw.

U kunt pas tekst aan uw project toevoegen als u een lettertype heeft geïmporteerd of toegevoegd. Al uw projectlettertypen worden weergegeven in het lettertypenvenster.

**Opmerking: elk lettertype wordt automatisch geïndexeerd, zodat u indien nodig grammaticaal naar het lettertype kunt verwijzen. In feite krijgen alle resources die u aan uw project toevoegt, een nummer en wordt ze met één verhoogd voor elke toegevoegde resource. Voor sommige bronnen zie je dit nummer links van het item. bijv. In de bovenstaande afbeelding heeft het Courier-lettertype een index van 0, terwijl het lettertype Arial een index van 1 heeft. Als u een bron verwijdert, kan het indexnummer voor dat item veranderen.

Stap 4: Afbeeldingen importeren

Afbeeldingen importeren
Afbeeldingen importeren
Afbeeldingen importeren
Afbeeldingen importeren

Op het Nextion Enhanced NX4827K043-apparaat moet elke afbeelding 480 x 272 pixels groot zijn.

We zullen nu de volgende afbeeldingen importeren in de Nextion Editor, zodat we ze in het project kunnen gebruiken. In de linkerbenedenhoek van de Nextion-editor bevindt zich het bronvenster "Lettertypen en afbeeldingen":

  1. Selecteer het tabblad Afbeelding
  2. Selecteer vervolgens het pictogram "+"
  3. Dit opent een dialoogvenster waarin u de afbeelding(en) kunt selecteren die u aan het project wilt toevoegen. U kunt meer dan één afbeelding selecteren om te importeren.

Voor Splash Screen kunt u elke gewenste afbeelding maken.

En voor stappenmotor en piano-interface kun je de bovenstaande afbeelding downloaden.

Stap 5: GUI maken

GUI maken
GUI maken

Elke resource krijgt een ID op basis van de volgorde waarin deze is toegevoegd, en elke resource krijgt automatisch een naam.

U kunt de naam van de resource of het object wijzigen, maar u kunt de ID niet bewerken.

Er zullen drie pagina's worden ontworpen om aan de hierboven beschreven criteria te voldoen.

Om een pagina toe te voegen, selecteert u eenvoudig het pictogram "Toevoegen" in het "paginavenster". En blijf pagina's toevoegen totdat je in totaal 3 pagina's hebt (pagina0, pagina1 en pagina2).

Stap 6: Pagina 0-Splash-scherm

Pagina 0-splash-scherm
Pagina 0-splash-scherm

Wanneer de Nextion wordt ingeschakeld, wordt het opstartscherm 3 seconden weergegeven voordat het scherm Stappenmotorcontroller wordt weergegeven. Ik heb de volgende stappen gebruikt om het opstartscherm te maken.

Voeg de afbeelding van het opstartscherm toe aan pagina 0

  • Selecteer "pagina 0" in het paginavenster
  • Selecteer "Afbeelding" in het Toolbox-venster
  • Dubbelklik op het attribuut "pic" in het venster Attribuut
  • Selecteer de afbeelding van het opstartscherm in de lijst
  • Druk op de OK-knop

2. Voeg een timer toe aan pagina 0

  • Selecteer Timer in het Toolbox-venster
  • Wijzig het attribuut "tim" van 400 in 3000 in het venster Attributen
  • Voer "pagina pagina1" in het gedeelte Gebruikerscode van de Timer-gebeurtenis in(0) Deze timer-gebeurtenis zorgt ervoor dat de Nextion na 3 seconden naar pagina 1 springt.

Deze timergebeurtenis zorgt ervoor dat de Nextion na 3 seconden naar pagina 1 springt.

Stap 7: Pagina 1 - Stappenmotorcontroller

Deze pagina is ontworpen om de richting en snelheid van de stappenmotor te regelen. Er zijn twee knoppen voor de richting (links en rechts) en twee knoppen voor de snelheid (sneller en langzamer). En nog een knop om naar de volgende pagina te gaan (d.w.z. de Stepper Motor Piano-pagina). Deze knoppen worden ook toegewezen aan het Nextion-uitbreidingsbord. De voelbare knoppen van de uitbreidingskaart bieden een alternatieve methode om de motor te besturen.

Voeg de afbeelding van de stappenmotorcontroller toe aan pagina1

  • Selecteer "pagina1" in het paginavenster
  • Selecteer "Afbeelding" in het Toolbox-venster
  • Dubbelklik op het attribuut "pic" in het venster Attribuut
  • Selecteer de afbeelding "Stappenmotorcontroller" uit de lijst
  • Druk op de OK-knop

2. Voeg hotspots toe boven elke knop op de afbeelding van de stappenmotorcontroller

a)Selecteer “Hotspot” in het Toolbox-venster

b)Sleep en wijzig de grootte van de hotspot zodat deze de knop "Links" bedekt

  • Dit is het gebied dat reageert op het indrukken van de "Linkerknop".
  • Het zal transparant zijn wanneer het wordt geüpload naar het Nextion-bord

c)Selecteer het tabblad "Touch Press Event" in het gebeurtenisvenster

d)Deselecteer het selectievakje "Onderdeel-ID verzenden"

e) Typ de volgende code in het gedeelte "Gebruikerscode" van het gebeurtenisvenster:

druk "L" af

f) Wijzig de objectnaam van de hotspot in "Links" met behulp van het volgende proces:

  • Selecteer objname in het attributenvenster en verander de tekst van "m0" in "Left"
  • Het is niet verplicht om de naam van het hotspotobject te wijzigen; maar het zal later helpen.

g)Herhaal stap 2a-2f voor elk van de andere knoppen in de volgende volgorde en volgens onderstaande tabel:

  • Rechts
  • Sneller
  • Langzamer
  • Volgende

De decimale ASCII-code voor de letter "L" is 76, dus wanneer het Nextion Enhanced-display de letter L naar de Arduino stuurt met het print "L" -commando, ontvangt de Arduino het nummer 76. Wanneer de rechterknop wordt ingedrukt, wordt krijgt het nummer 82, enzovoort. De knop "Volgende" verzendt niets naar de Arduino, hij is er gewoon om naar de volgende interface op het Nextion Enhanced-display te springen, vandaar de reden waarom de gebruikerscode voor die knop anders is.

3. Wijs de knoppen toe aan het uitbreidingsbord

a)Selecteer "pagina0" en vervolgens "pagina1" in het paginavenster

b)Selecteer het tabblad "Evenement vooraf initialiseren" in het gebeurtenisvenster

c)Voer de volgende code in het veld "Gebruikerscode" van het tabblad Gebeurtenis vooraf initialiseren in:

  • cfgpio 5, 1, Links
  • cfgpio 2, 1, rechts
  • cfgpio 4, 1, Sneller
  • cfgpio 3, 1, Langzamer
  • cfgpio 1, 1, Volgende

***Let op: er is één spatie tussen cfgpio en het nummer ernaast, maar er zijn geen andere spaties op elke regel. Als u extra spaties invoert, wordt het niet gecompileerd. Deze code wijst de knoppen op het uitbreidingsbord toe aan de hotspot-objecten op pagina 1. Wanneer bijvoorbeeld de linkerknop (IO5) op de uitbreidingskaart wordt ingedrukt, worden de acties of gebeurtenissen gesimuleerd die zijn gekoppeld aan hotspot m0/Left. In dit geval zal het een waarde van "L" (76) naar de Arduino sturen.

Het IO-nummer staat tussen haakjes op de uitbreidingskaart.

Stap 8: Pagina 2 - Stappenmotorpiano

Pagina 2 - Stappenmotor Piano
Pagina 2 - Stappenmotor Piano
Pagina 2 - Stappenmotor Piano
Pagina 2 - Stappenmotor Piano

zijn interface zal worden ontworpen om eruit te zien als een piano, en zal me in staat stellen de stappenmotor zo te besturen dat hij een noot produceert in dezelfde toets als die ik indruk op het Nextion-display. De stappenmotor produceert de noot door op een specifieke frequentie te draaien.

1. Voeg de afbeelding van de stappenmotorpiano toe aan pagina 2.

  • Selecteer "pagina2" in het paginavenster
  • Selecteer "Afbeelding" in het Toolbox-venster
  • Dubbelklik op het attribuut "pic" in het venster Attribuut
  • Selecteer de afbeelding "Stappenmotor Piano" uit de lijst
  • Druk op de OK-knop

2. Voeg hotspots toe over elke toets op de afbeelding van de stappenmotorpiano

a)Selecteer “Hotspot” in het Toolbox-venster

b)Sleep en verklein de hotspot zodat deze de "A"-toets bedekt. Dit is het gebied dat zal reageren op het indrukken van de "A-toets". Het zal transparant zijn wanneer het wordt geüpload naar het Nextion-bord.

c)Selecteer het tabblad "Touch Press Event" in het gebeurtenisvenster.

d)Typ het volgende in het gedeelte "Gebruikerscode":

afdrukken 1

e) Herhaal stap 2a-2d voor elk van de andere toetsen volgens onderstaande tabel.

**Wanneer de specifieke toets wordt ingedrukt, verzendt het Nextion Enhanced-bord het afgedrukte nummer, gevolgd door drie 0x00-waarden. De eindwaarden kunnen worden genegeerd.

3. Met de knop "Terug" kan ik teruggaan naar de vorige interface op het Nextion Enhanced-bord.

a)Maak een hotspot voor de terugknop met behulp van het volgende proces:

  1. Selecteer Hotspot in het Toolbox-venster
  2. Verplaats/wijzig de grootte van de hotspot via de knop "Terug"

b) Selecteer het gebeurtenisvenster.

c)Zorg ervoor dat het tabblad "Touch press event" is geselecteerd

d) Typ: pagina pagina1 in het gedeelte Gebruikerscode

Stap 9: Debuggen

Debuggen
Debuggen
Debuggen
Debuggen

Het goede aan de Nextion Editor is dat je de functionaliteit van de interface kunt testen voordat je deze naar het bord uploadt.

  1. Sla het project op door op de knop Opslaan op de taakbalk te drukken
  2. Druk vervolgens op de compileerknop
  3. Druk vervolgens op de debug-knop.

Er verschijnt een Nextion-emulatorvenster. Dit venster zou op dezelfde manier moeten reageren als de Nextion-module nadat het Nextion-bestand naar het bord is geüpload. Deze emulator is een geweldige manier om uw interface te testen en ervoor te zorgen dat deze eruitziet en werkt zoals verwacht. Toen ik eenmaal tevreden was met de interface(s), zette ik het gecompileerde Nextion-bestand over op een SD-kaart:

  1. Druk op de compileerknop
  2. Bestand → Bouwmap openen
  3. Selecteer het *.tft-bestand met dezelfde naam als die van het project.
  4. Kopieer het naar een micro SDHC-kaart
  5. Plaats de SDHC-kaart in de SD-kaartsleuf op het Nextion-scherm
  6. Zet het Nextion-bord aan

Wacht tot het bestand op het Nextion-bord knippert en je zou een bericht moeten zien dat er als volgt uitziet:

De volgende stap is om het Nextion-bord uit te schakelen en de SDHC-kaart te verwijderen.

Stap 10: ARDUINO-INSTELLING

Het Nextion Enhanced-display is klaar en nu is het de beurt aan de Arduino. De Arduino is geprogrammeerd om seriële berichten van het Nextion Enhanced-display te ontvangen en de stappenmotor te besturen op basis van de ontvangen letters of cijfers. De unieke letters of cijfers die worden verzonden vanaf het Nextion-bord, stellen de Arduino in staat te begrijpen op welke knop wordt gedrukt, en het gebruikt die cijfers of letters om de codestroom te regelen om specifieke stappenmotoracties uit te voeren.

De SoftwareSerial-bibliotheek wordt gebruikt om seriële communicatie tussen de Arduino en het Nextion Enhanced-display mogelijk te maken. De AccelStepper-bibliotheek wordt gebruikt om het proces van stappenmotorbesturing te vereenvoudigen.

Stel een maximum en minimum toerental in voor de motoren, en enkele voorgedefinieerde toetsen. Het is mogelijk om de motor te "tunen" met behulp van de eerste interface van het Nextion-display. Dit kunt u doen door de motor sneller of langzamer te laten draaien totdat u de gewenste sleutel bereikt. Hier wordt de "Tuner T1 Free"-app uit de iTunes App Store gebruikt om te identificeren WANNEER de motor een toonsoort aan het produceren was. Wanneer de motor een specifieke noot produceerde, noteerde ik de snelheid van de stappenmotor die op het seriële monitorvenster werd afgedrukt. Elke keer dat de motorsnelheid wordt verhoogd of verlaagd, drukt de Arduino-code de snelheid af naar het seriële monitorvenster. Vervolgens gebruik ik deze snelheden om de notes-array in de Arduino-code bij te werken. De noten-array bevat de stappenmotorsnelheden die overeenkomen met de individuele noten op de piano. Het Nextion-display stuurt in wezen het indexnummer van de te spelen noot vanuit de notenreeks op de Arduino, waardoor de code die nodig is om de motor met 16 verschillende snelheden te laten draaien, wordt vereenvoudigd.

Stap 11: Finaliseren + Schema's

Afronden+Schema's
Afronden+Schema's
Afronden+Schema's
Afronden+Schema's
Afronden+Schema's
Afronden+Schema's
Afronden+Schema's
Afronden+Schema's

Met alle kaarten uitgeschakeld, is de volgende stap om alle benodigde hardwareverbindingen met de Arduino te maken. Er zijn twee belangrijke secties om te overwegen:

  • De stappenmotor driver en motor
  • Het Nextion Enhanced-bord.

U moet ervoor zorgen dat u een externe voedingsbron gebruikt om zowel de stappenmotor als het Nextion Enhanced-bord van stroom te voorzien. Het stappenmotorstuurbord zelf werd zonder problemen aangedreven door de Arduino, maar de eigenlijke stappenmotor heeft een externe voeding nodig. Het Nextion Enhanced-bord heeft ook een externe voeding nodig omdat het meer stroom nodig heeft dan de Arduino veilig kan leveren.

Noteer de gebruikte externe voeding. Ik zorgde ervoor dat ik een voldoende grote stroomvoorziening had om aan de stroomvereisten van het project te voldoen, en gebruikte de relevante datasheets om me te helpen die vereisten te identificeren. Als u van plan bent dit project te repliceren, zorg er dan voor dat u rekening houdt met de specifieke stroomvereisten van uw motor, uw motorstuurprogramma en uw Nextion-display. De Arduino kan slechts 400mA stroom leveren vanaf de 5V-pin. Met alles aangesloten, zette ik het Nextion-display aan en vervolgens de Arduino. De stappenmotor begint automatisch te draaien. Ik gebruikte de eerste interface om de richting en/of snelheid van de motor te veranderen. Let op de maximale en minimale snelheden die zijn ingesteld in de Arduino-code. Vervolgens gebruikte ik de knop Volgende om naar de tweede interface op het Nextion Enhanced-display te springen. De tweede interface ziet eruit als een piano. En als ik op een toets op het pianodisplay druk, verandert de snelheid van de motor om overeen te komen met de noot die ik indrukte.

Dat is het. Nu ben je klaar.

Ik hoop dat je het leuk zal vinden

Aanbevolen: