Innholdsfortegnelse:

Raspberry PI & Arduino - Blynk Stepper Control: 7 trinn (med bilder)
Raspberry PI & Arduino - Blynk Stepper Control: 7 trinn (med bilder)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 trinn (med bilder)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 trinn (med bilder)
Video: Урок 102: Использование двойного драйвера двигателя постоянного тока ZK-5AD 4A TA6586 4A 14V Лучший драйвер двигателя (новый продукт) 2024, November
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

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

Opprette appen på telefonen din
Opprette appen på telefonen din
Opprette appen på telefonen din
Opprette appen på telefonen din

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

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
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: