Innholdsfortegnelse:
- Trinn 1: Opprette appen på telefonen
- Trinn 2: Gjør PI klar
- Trinn 3: Opprette prosjektet
- Trinn 4: MyProject.js
- Trinn 5: MyProject i Arduino
- Trinn 6: Kabling
- Trinn 7: Det er det
Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Denne opplæringen viser deg hvordan du styrer en trinnmotor med en Arduino, en Raspberry Pi og Blynk -applikasjonen.
I et nøtteskall sender appen forespørsler til Raspberry Pi via Virtual Pins, Pi sender deretter HIGH/LOW signal til Arduino og Arduino behandler deretter trinnmotoren.
Jeg tror at det er lettere å bruke denne godkjenningen siden de fleste er vant til å jobbe med Arduino og ikke mye med node.js på Raspberry Pi.
Komponenter som trengs for dette:
- Raspberry PI (jeg bruker Raspberry Pi 3 modell b)
- Arduino (jeg bruker en Arduino Nano)
- Servomotor (jeg bruker en 28BYJ-48 5VDC med kontrolleren)
- Noen hoppetråder
- Strømkilde (5VDC 2A.)
Arduino -skissen og Node.js -koden er tilgjengelig for nedlasting. Bare slå opp filene.
Trinn 1: Opprette appen på telefonen
Last ned Blynk fra AppStore eller GooglePlay
Åpne appen og opprett en bruker eller Logg på med facebook.
- Lag et nytt prosjekt
Gi prosjektet ditt navn: MyProject
Velg Device: Rasapberry Pi 3 B
Tilkoblingstype: Wifi (eller Ethernet hvis Pi er koblet til nettverket ditt)
- Klikk på Opprett
Sjekk e -posten din for å se Token
(ser slik ut 3aa19bb8a9e64c90af11e3f6b0595b3c)
Dette tokenet er knyttet til din nåværende app. Hvis du gjør en annen app, genererer du et nytt token.
Legg til følgende widgets i appen (se bilde)
- Legg til 3 knapper
- Legg til 1 LCD
- Rediger knappen
navngi den første Kommando1, angi PIN -koden som Virtual Pin 1 og sett Mode som SWITCH
navngi den andre CW, sett Pin som Virtual Pin 2 og sett Mode som PUSH
navngi den tredje CCW, sett Pin som Virtual Pin 3 og sett Mode som PUSH
- Rediger LCD -skjermen
sett Pins som Virtual Pin 4 og Virtual Pin 5 og sett Mode til PUSH
Trinn 2: Gjør PI klar
Først må du installere Node.js. Før du oppdaterer Node.js, må du fjerne gamle versjoner:
Åpne Terminal og skriv
sudo apt-get purge node nodejs
node.js -ysudo apt -get autoremove
Automatisk Node.js -installasjon Legg til depoter:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Installer Node.js
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential nodejs -y
Når Node.js er installert, installerer du Blynk
sudo npm install blynk -library -g
sudo npm install onoff -g
Trinn 3: Opprette prosjektet
Start med å endre katalog (cd -kommando) til pi -katalogen
Åpne Terminal og skriv:
cd/home/pi/
Lag deretter en katalog der prosjektet ditt vil ligge
mkdir MyProject
Endre katalog til MyProject, skriv inn følgende i Terminal
cd MyProject
Kontroller innholdet i katalogen (den skal være tom). Bare skriv følgende i terminalen
ls
Deretter skriver du inn følgende for å lage prosjektbeskrivelsen (package.json)
npm init
Bare skriv inn prosjektnavn, forfatter, versjon osv …
Når dette er gjort, installerer du Blynk-biblioteket, onoff-biblioteket og system-sov-biblioteket i DIN prosjektkatalog. Skriv inn følgende i terminalen din
npm installer blynk-library --save
npm installer onoff -lagre
npm installere system-sleep-lagre
Til slutt lager du din.js -fil (Det er her koden vil ligge). Skriv inn følgende i terminalen
nano MyProject.js
Når du har utført denne kommandoen, åpnes nano (terminal tekstredigerer).
Trinn 4: MyProject.js
I nano skriver du følgende kodelinjer
var Blynk = require ('blynk-bibliotek');
var AUTH = '*******************'; DETTE ER DITT TEKEN
var blynk = ny Blynk. Blynk (AUTH);
var Gpio = require ('onoff'). Gpio,
command1 = new Gpio (18, 'out'), // Vil bli koblet til Arduino D2
commandCW = ny Gpio (23, 'out'), // Kobles til Arduino D3
commandCCW = ny Gpio (24, 'out'); // Vil bli koblet til Arduino D4
var søvn = krever ('system-søvn');
var v1 = new blynk. VirtualPin (1); // dette er din Command1 -knapp i appen
var v2 = new blynk. VirtualPin (2); // dette er din CW -knapp i appen
var v3 = new blynk. VirtualPin (3); // dette er CCW -knappen din i appen
var v4 = new blynk. VirtualPin (4); // dette er LCD -linje 1 i appen
var v5 = new blynk. VirtualPin (5); // dette er LCD -linje 2 i appen
v1.on ('skrive', funksjon (param) // Søk etter kommando1 -knappen i appen
{
if (param == 1) // Hvis du trykker på knappen (som er 1), gjør du følgende
{
v4.write ("Utfører"); // Skriv "Executing" på første linje på LCD -skjermen
v5.write ("Command"); // Skriv "Kommando" på den andre linjen på LCD -skjermen
command1.writeSync (1); // Sett GPIO18 (som er variabel kommando1) til 1 (HIGH)
søvn (4000); // Vent i 4 sekunder
command1.writeSync (0); // Sett GPIO18 (som er variabel kommando1) til 0 (LAV)
v4.write ("Ferdig"); // Skriv "Ferdig" på første linje på LCD -skjermen
v5.write (""); // Skriv "" (ingenting) på den andre linjen på LCD -skjermen
v1.write (0); // Skriv 0 til Command1 -knappen din, som vil tilbakestille den til AV -stillingen
}
});
v2.on ('skrive', funksjon (param) // Se etter CW -knappen i appen
{
if (param == 1) // Hvis du trykker på knappen (som er 1), gjør du følgende
{
commandCW.writeSync (1); // Sett GPIO23 (som er variabel kommandoCW) til 1 (HIGH)
}
ellers hvis (param == 0) // Hvis knappen ikke trykkes (som er 0), gjør du følgende
{
commadCW.writeSync (0); // Sett GPIO23 (som er variabel kommandoCW) til 0 (LAV)
}
});
v3.on ('skrive', funksjon (param) // Se etter CCW -knappen i appen
{
if (param == 1) // Hvis du trykker på knappen (som er 1), gjør du følgende
{
commandCCW.writeSync (1); // Sett GPIO24 (som er variabel kommandoCCW) til 1 (HIGH)
}
ellers hvis (param == 0) // Hvis knappen ikke trykkes (som er 0), gjør du følgende
{
commandCCW.writeSync (0); // Sett GPIO24 (som er variabel kommandoCCW) til 1 (HIGH)
}
});
Lagre den og avslutt nano
- for å lagre CTRL+O
- for å avslutte CTRL+X
Du er ferdig med Raspberry Pi.
Test det nå for å se om det er noen form for feil (mesteparten av tiden er skrivefeil)
For å teste det, skriver du bare inn følgende i terminalen din
node MyProject.js
Du bør få en utgang som ser slik ut
Av -modus
Kobler til: blynk-cloud.com 8441
SSL -autorisasjon …
Autorisert
Trinn 5: MyProject i Arduino
Ok, så nå har vi 2/3 ting fullført!
Nå trenger vi bare å skrive noen kode for Arduino.
- Lag en ny Arduino -skisse og skriv inn følgende kode.
#inkludere
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048
// Pin -tilkoblingene må være pin 8, 9, 10, 11 tilkoblet
// til motorfører In1, In2, In3, In4
// Deretter legges pinnene inn her i sekvensen 1-3-2-4 for riktig sekvensering
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
int Steps2Take;
int Command1;
int CommandCW;
int CommandCCW;
ugyldig oppsett ()
{
pinMode (2, INNGANG);
pinMode (3, INNGANG);
pinMode (4, INNGANG);
// (Stepper Library setter pins som utganger)
}
hulrom ()
{
Command1 = digitalRead (2);
CommandCW = digitalRead (3);
CommandCCW = digitalRead (4);
hvis (Kommando1 == 0)
{
//gjør ingenting
}
ellers
{
ExecutionFunction ();
}
hvis (CommandCW == 1)
{
small_stepper.setSpeed (700);
small_stepper.step (-1);
forsinkelse (1);
}
hvis (CommandCCW == 1)
{
small_stepper.setSpeed (700);
small_stepper.step (1);
forsinkelse (1);
}
}
void ExecutionFunction ()
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Roter CCW 1/4 omdreining
small_stepper.setSpeed (700);
small_stepper.step (Steps2Take); // Du kan erstatte Steps2Take med en hvilken som helst verdi mellom 0 og 2048
forsinkelse (500);
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Roter CW 1/4 omdreining
small_stepper.setSpeed (700);
small_stepper.step (Steps2Take); // Du kan erstatte Steps2Take med en hvilken som helst verdi mellom 0 og 2048
forsinkelse (2000);
}
Kompiler og last opp til Arduino.
Sørg for at du kobler alt riktig! Se neste trinn for ledninger.
Trinn 6: Kabling
Koble Arduino D3 til RaspberryPi GPIO18 (som faktisk er pin 12)
Koble Arduino D4 til RaspberryPi GPIO23 (som faktisk er pin 16)
Koble Arduino D4 til RaspberryPi GPIO24 (som faktisk er pin 18)
Koble Arduino GND til RaspberryPi GND (pin 6)
Koble Arduino D8 til Stepper Controller In1
Koble Arduino D9 til Stepper Controller In2
Koble Arduino D10 til Stepper Controller In3
Koble Arduino D11 til Stepper Controller In4
Koble 5VDC til Arduino, Raspberry Pi og Stepper Controller
Trinn 7: Det er det
Sjekk videoen, så skal du være ferdig!
Takk og kos deg!
Anbefalt:
Stepper Speed Control Menu drevet for Arduino: 6 trinn
Stepper Speed Control Menu drevet for Arduino: Dette SpeedStepper -biblioteket er en omskriving av AccelStepper -biblioteket for å tillate hastighetskontroll av trinnmotoren. Med SpeedStepper -biblioteket kan du endre den angitte motorhastigheten og deretter akselerere/senke hastigheten til den nye innstilte hastigheten ved å bruke den samme algoritmen
Totoro Project - IoT & MQTT & ESP01: 7 trinn (med bilder)
Totoro Project - IoT & MQTT & ESP01: Totoro Project er et fint IoT -prosjekt du kan kopiere i mange andre forskjellige former. Ved hjelp av ESP01 -kortet, med MQTT -protokollen, kan du kommunisere statusen til knappen til MQTT -megleren (i min case AdafruitIO). En nyttig guide for MQTT og Ad
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
DIY Stepper Motor Controller: 6 trinn (med bilder)
DIY Stepper Motor Controller: Husk de likestrømsmotorene, alt du trenger å gjøre er å koble til de positive og negative ledningene til et batteri og det begynner å gå. Men da vi begynte å gjøre mer komplekse prosjekter, ser det ikke ut til at disse DC -motorene leverer det du trenger … ja jeg mener
Wi-fi-kontrollert FPV Rover Robot (med Arduino, ESP8266 og Stepper Motors): 11 trinn (med bilder)
Wi-fi-kontrollert FPV Rover Robot (med Arduino, ESP8266 og Stepper Motors): Denne instruksjonen viser hvordan du designer en fjernstyrt tohjulet robotrover over et wi-fi-nettverk, ved hjelp av en Arduino Uno koblet til en ESP8266 Wi-fi-modul og to trinnmotorer. Roboten kan styres fra en vanlig nettleser