Sadržaj:

Raspberry PI i Arduino - Blynk Stepper Control: 7 koraka (sa slikama)
Raspberry PI i Arduino - Blynk Stepper Control: 7 koraka (sa slikama)

Video: Raspberry PI i Arduino - Blynk Stepper Control: 7 koraka (sa slikama)

Video: Raspberry PI i Arduino - Blynk Stepper Control: 7 koraka (sa slikama)
Video: Полный контроль над двигателем постоянного тока с помощью ESP8266 NodeMCU D1 Mini через Wi-Fi 2024, Novembar
Anonim
Raspberry PI i Arduino - Blynk Stepper Control
Raspberry PI i Arduino - Blynk Stepper Control

Ovaj vodič će vam pokazati kako kontrolirati koračni motor s Arduinom, Raspberry Pi i Blynk aplikacijom.

U ludnici, aplikacija šalje zahtjeve na Raspberry Pi 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: Kreiranje aplikacije na telefonu

Kreiranje aplikacije na vašem telefonu
Kreiranje aplikacije na vašem telefonu
Kreiranje aplikacije na vašem telefonu
Kreiranje aplikacije na vašem telefonu

Preuzmite Blynk iz AppStore -a ili GooglePlay -a

Otvorite aplikaciju i kreirajte korisnika ili se prijavite putem facebooka.

- Kreirajte novi projekat

Imenujte svoj projekat: 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 Kreiraj

Provjerite svoj e -mail za 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 dugmeta

- Dodajte 1 LCD

- Uredite dugme

imenujte prvu Command1, postavite Pin kao Virtual Pin 1 i postavite Mode 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 pinove kao Virtual Pin 4 i Virtual Pin 5 i postavite Mode na PUSH

Korak 2: Pripremite PI

Prvo morate instalirati Node.js. Prije ažuriranja Node.js, obavezno 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 install onoff -g

Korak 3: Kreiranje vašeg projekta

Započnite promjenom direktorija (cd naredba) u pi direktorij

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 kreiranje opisa projekta (package.json)

npm init

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

Kada to učinite, instalirajte Blynk biblioteku, onoff biblioteku i system-sleep biblioteku 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, kreirajte svoju.js datoteku (tu će se nalaziti vaš kôd). U terminal unesite sljedeće

nano MyProject.js

Kada 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še dugme Command1 u aplikaciji

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

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

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

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

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

{

if (param == 1) // Ako je dugme pritisnuto (što je 1), uradite sledeće

{

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

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

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

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

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

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

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

v1.write (0); // Napišite 0 na dugme Command1, čime ćete ga vratiti na položaj OFF

}

});

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

{

if (param == 1) // Ako je dugme pritisnuto (što je 1), uradite sledeće

{

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

}

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

{

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

}

});

v3.on ('write', function (param) // Provjeri CCW dugme u aplikaciji

{

if (param == 1) // Ako je dugme pritisnuto (što je 1), uradite sledeće

{

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

}

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

{

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

}

});

Sačuvajte 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 (najčešće su to Typo greš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 na: blynk-cloud.com 8441

SSL autorizacija …

Ovlašćen

Korak 5: MyProject u Arduinu

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

Sada samo trebamo napisati neki kod za Arduino.

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

#include

#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 Steps2Take;

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 činiti ništa

}

else

{

ExecutionFunction ();

}

if (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

kašnjenje (1);

}

if (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

kašnjenje (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotiranje CCW 1/4 okreta

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Možete zamijeniti Steps2Take bilo kojom vrijednošću između 0 i 2048

kašnjenje (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotirajte CW 1/4 okreta

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Možete zamijeniti Steps2Take bilo kojom vrijednošću između 0 i 2048

kašnjenje (2000);

}

Sastavite i prenesite na svoj Arduino.

Sada provjerite jeste li sve pravilno 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čuje se: