Sadržaj:

PI i Arduino od maline - Stepenska kontrola Blynk: 7 koraka (sa slikama)
PI i Arduino od maline - Stepenska kontrola Blynk: 7 koraka (sa slikama)

Video: PI i Arduino od maline - Stepenska kontrola Blynk: 7 koraka (sa slikama)

Video: PI i Arduino od maline - Stepenska kontrola Blynk: 7 koraka (sa slikama)
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Studeni
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

Ovaj vodič će vam pokazati kako upravljati koračnim motorom s Arduinom, Raspberry Pi i Blynk aplikacijom.

U lupinastoj ljusci, aplikacija šalje zahtjeve Raspberry Pi -u putem virtualnih pinova, Pi zatim šalje signal VISOKOG/NISKOG na Arduino, a Arduino se zatim bavi koračnim motorom.

Mislim da je lakše koristiti to odobrenje jer je većina ljudi navikla raditi s Arduinom, a ne puno s node.js na Raspberry Pi.

Za to su potrebne komponente:

- Raspberry PI (koristim Raspberry Pi 3 model b)

- Arduino (koristim Arduino Nano)

- Servo motor (koristim 28BYJ-48 5VDC sa svojim kontrolerom)

- Neke kratkospojne žice

- Izvor napajanja (5VDC 2A.)

Arduino skica i kod Node.js dostupni su za preuzimanje. Samo potražite datoteke.

Korak 1: Stvaranje aplikacije na telefonu

Izrada aplikacije na vašem telefonu
Izrada aplikacije na vašem telefonu
Izrada aplikacije na vašem telefonu
Izrada aplikacije na vašem telefonu

Preuzmite Blynk iz AppStore -a ili GooglePlay -a

Otvorite aplikaciju i stvorite korisnika ili se prijavite putem facebooka.

- Izradite novi projekt

Imenujte svoj projekt: MyProject

Odaberite uređaj: Rasapberry Pi 3 B

Vrsta veze: Wifi (ili Ethernet ako je vaš Pi ožičen na vašu mrežu)

- Pritisnite Stvori

Provjerite svoj e -mail za svoj Token

(izgleda ovako 3aa19bb8a9e64c90af11e3f6b0595b3c)

Ovaj je token povezan s vašom trenutnom aplikacijom. Ako napravite drugu aplikaciju, generirat ćete drugi token.

U aplikaciju dodajte sljedeće widgete (pogledajte sliku)

- Dodajte 3 gumba

- Dodajte 1 LCD

- Uredite gumb

imenujte prvu Command1, postavite Pin kao Virtual Pin 1 i postavite način rada kao SWITCH

imenujte drugu CW, postavite pin kao virtualni pin 2 i postavite način rada kao PUSH

trećem imenujte CCW, postavite pin kao virtualni pin 3 i postavite način rada kao PUSH

- Uredite LCD

postavite igle kao virtualni pin 4 i virtualni pin 5 i postavite način rada na PUSH

2. korak: Pripremite PI

Prvo morate instalirati Node.js. Prije ažuriranja Node.js, svakako uklonite stare verzije:

Otvorite Terminal i upišite

sudo apt-get čisti čvor čvor nodejs

node.js -ysudo apt -get autoremove

Automatska instalacija Node.js Dodajte spremišta:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

Instalirajte Node.js

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install build-essential nodejs -y

Nakon što je Node.js instaliran, instalirajte Blynk

sudo npm install blynk -library -g

sudo npm instaliraj onoff -g

Korak 3: Kreiranje vašeg projekta

Počnite promjenom direktorija (naredba cd) u imenik pi

Otvorite terminal i upišite:

cd/home/pi/

Zatim stvorite direktorij u kojem će se nalaziti vaš projekt

mkdir MyProject

Promijenite direktorij u MyProject, upišite sljedeće u terminal

cd MyProject

Provjerite sadržaj direktorija (trebao bi biti prazan). Samo upišite sljedeće u terminal

ls

Zatim upišite sljedeće za izradu opisa projekta (package.json)

npm init

Samo upišite naziv projekta, autora, verziju itd …

Nakon što to učinite, instalirajte Blynk knjižnicu, onoff knjižnicu i knjižnicu sistemskog spavanja u direktorij VAŠEG projekta. Upišite sljedeće u svoj terminal

npm install blynk-library --save

npm install onoff --save

npm install system-sleep --save

Na kraju, stvorite svoju.js datoteku (tu će se nalaziti vaš kôd). U terminal unesite sljedeće

nano MyProject.js

Nakon što izvršite tu naredbu, otvorit će se nano (uređivač teksta terminala).

Korak 4: MyProject.js

U nano, napišite sljedeće redove koda

var Blynk = require ('blynk-library');

var AUTH = '******************'; Ovo je vaš žeton

var blynk = novi Blynk. Blynk (AUTH);

var Gpio = require ('onoff'). Gpio,

command1 = novi Gpio (18, 'out'), // Bit će spojen na Arduino D2

commandCW = novi Gpio (23, 'out'), // Bit će spojen na Arduino D3

commandCCW = novi Gpio (24, 'out'); // Bit će spojen na Arduino D4

var sleep = require ('system-sleep');

var v1 = novi blynk. VirtualPin (1); // ovo je vaš gumb Command1 u aplikaciji

var v2 = novi blynk. VirtualPin (2); // ovo je vaš gumb CW u aplikaciji

var v3 = novi blynk. VirtualPin (3); // ovo je vaš gumb CCW u aplikaciji

var v4 = novi blynk. VirtualPin (4); // ovo je vaš LCD redak 1 u aplikaciji

var v5 = novi blynk. VirtualPin (5); // ovo je vaš LCD red 2 u aplikaciji

v1.on ('write', function (param) // Potražite gumb Command1 u aplikaciji

{

if (param == 1) // Ako je gumb pritisnut (što je 1), učinite sljedeće

{

v4.write ("Izvršavanje"); // Napišite "Izvršavanje" u prvi redak LCD -a

v5.write ("Naredba"); // Napišite "Command" u drugi redak LCD -a

command1.writeSync (1); // Postavite GPIO18 (koji je varijabla command1) na 1 (HIGH)

spavanje (4000); // Pričekajte 4 sekunde

command1.writeSync (0); // Postavite GPIO18 (koji je varijabla command1) na 0 (LOW)

v4.write ("Gotovo"); // Napišite "Gotovo" u prvi redak LCD -a

v5.write (""); // Napišite "" (ništa) u drugi redak LCD -a

v1.pisati (0); // Upišite 0 na gumb Command1, koji će ga vratiti u položaj OFF

}

});

v2.on ('write', function (param) // Provjeri CW gumb u aplikaciji

{

if (param == 1) // Ako je gumb pritisnut (što je 1), učinite sljedeće

{

commandCW.writeSync (1); // Postavite GPIO23 (koji je varijabla commandCW) na 1 (HIGH)

}

else if (param == 0) // Ako gumb nije pritisnut (što je 0), učinite sljedeće

{

commadCW.writeSync (0); // Postavite GPIO23 (čija je varijabla commandCW) na 0 (LOW)

}

});

v3.on ('write', function (param) // Provjerite ima li CCW gumb u aplikaciji

{

if (param == 1) // Ako je gumb pritisnut (što je 1), učinite sljedeće

{

commandCCW.writeSync (1); // Postavite GPIO24 (koji je varijabla commandCCW) na 1 (HIGH)

}

else if (param == 0) // Ako gumb nije pritisnut (što je 0), učinite sljedeće

{

commandCCW.writeSync (0); // Postavite GPIO24 (koji je varijabla commandCCW) na 1 (HIGH)

}

});

Spremite ga i izađite iz nano

- za spremanje CTRL+O

- za napuštanje CTRL+X

Završili ste s Raspberry Pi.

Sada ga isprobajte da vidite ima li kakvih grešaka (većinu vremena greške su tipkarske pogreške)

Da biste ga testirali, jednostavno upišite sljedeće u svoj terminal

čvor MyProject.js

Trebali biste dobiti izlaz koji izgleda ovako

Način OnOff

Povezivanje s: blynk-cloud.com 8441

SSL autorizacija …

Ovlašteni

Korak 5: MyProject u Arduinu

U redu, sada imamo 2/3 stvari dovršene!

Sada samo trebamo napisati neki kod za Arduino.

- Izradite novu Arduino skicu i upišite sljedeći kod.

#uključi

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Pin spojevi moraju biti povezani s pinovima 8, 9, 10, 11

// vozaču motora In1, In2, In3, In4

// Zatim se ovdje unose pinovi u nizu 1-3-2-4 radi pravilnog redoslijeda

Steper mali_korak (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Koraci2Take;

int Command1;

int CommandCW;

int CommandCCW;

void setup ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Stepper Library postavlja pinove kao izlaze)

}

void loop ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

if (Naredba1 == 0)

{

// ne poduzimati ništa

}

drugo

{

ExecutionFunction ();

}

if (CommandCW == 1)

{

small_stepper.setSpeed (700);

mali_korak.korak (-1);

odgoda (1);

}

if (CommandCCW == 1)

{

small_stepper.setSpeed (700);

mali_korak.korak (1);

odgoda (1);

}

}

void ExecutionFunction ()

{

Koraci2Uzmi = STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotirajte CCW 1/4 okreta

small_stepper.setSpeed (700);

mali_korak.korak (Steps2Take); // Steps2Take možete zamijeniti bilo kojom vrijednošću između 0 i 2048

kašnjenje (500);

Koraci2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotiraj CW 1/4 okreta

small_stepper.setSpeed (700);

mali_korak.korak (Steps2Take); // Steps2Take možete zamijeniti bilo kojom vrijednošću između 0 i 2048

odgoda (2000);

}

Sastavite i prenesite na svoj Arduino.

Sada provjerite jeste li sve ispravno povezali! Pogledajte sljedeći korak za ožičenje.

Korak 6: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Spojite Arduino D3 na RaspberryPi GPIO18 (koji je zapravo pin 12)

Spojite Arduino D4 na RaspberryPi GPIO23 (koji je zapravo pin 16)

Spojite Arduino D4 na RaspberryPi GPIO24 (koji je zapravo pin 18)

Spojite Arduino GND na RaspberryPi GND (pin 6)

Spojite Arduino D8 na Stepper Controller In1

Spojite Arduino D9 na Stepper Controller In2

Spojite Arduino D10 na Stepper Controller In3

Spojite Arduino D11 na Stepper Controller In4

Spojite 5VDC na Arduino, Raspberry Pi i Stepper Controller

Korak 7: To je to

Pogledajte video i trebali biste završiti!

Hvala i uživajte!

Preporučeni: