INHOUDSOPGAWE:

Framboos PI & Arduino - Blynk Stepper Control: 7 stappe (met foto's)
Framboos PI & Arduino - Blynk Stepper Control: 7 stappe (met foto's)

Video: Framboos PI & Arduino - Blynk Stepper Control: 7 stappe (met foto's)

Video: Framboos PI & Arduino - Blynk Stepper Control: 7 stappe (met foto's)
Video: Полный контроль над двигателем постоянного тока с помощью ESP8266 NodeMCU D1 Mini через Wi-Fi 2024, November
Anonim
Framboos PI & Arduino - Blynk Stepper Control
Framboos PI & Arduino - Blynk Stepper Control

Hierdie handleiding sal u wys hoe u 'n stappermotor kan beheer met 'n Arduino, 'n Raspberry Pi en die Blynk -toepassing.

In 'n neutedop stuur die app versoeke na die Raspberry Pi via virtuele penne, die Pi stuur dan 'n HOOG/LAAG sein na die Arduino en die Arduino handel dan oor die stapmotor.

Ek dink dat dit makliker is om die benadering te gebruik, aangesien die meeste mense gewoond is om met Arduino te werk en nie baie met node.js op die Raspberry Pi nie.

Hiervoor benodig u komponente:

- Framboos PI (ek gebruik die Raspberry Pi 3 model b)

- Arduino (ek gebruik 'n Arduino Nano)

- Servomotor (ek gebruik 'n 28BYJ-48 5VDC met sy kontroleerder)

- 'n Paar springdrade

- Kragbron (5VDC 2A.)

Die Arduino -skets en die Node.js -kode kan afgelaai word. Kyk net na die lêers.

Stap 1: skep die app op u telefoon

Die skep van die app op u telefoon
Die skep van die app op u telefoon
Die skep van die app op u telefoon
Die skep van die app op u telefoon

Laai Blynk af van die AppStore of GooglePlay

Maak die app oop en skep 'n gebruiker of meld aan met facebook.

- Skep 'n nuwe projek

Noem jou projek: MyProject

Kies toestel: Rasapberry Pi 3 B

Verbindingstipe: Wifi (of Ethernet as u Pi aan u netwerk gekoppel is)

- Klik op Skep

Kontroleer u e -pos vir u teken

(lyk so 3aa19bb8a9e64c90af11e3f6b0595b3c)

Hierdie teken is gekoppel aan u huidige app. As u 'n ander app doen, sal u 'n ander teken genereer.

Voeg die volgende widgets in die app (sien prent)

- Voeg 3 knoppies by

- Voeg 1 LCD by

- Wysig die knoppie

noem die eerste een Command1, stel die Pin as Virtual Pin 1 in en stel die Mode as SWITCH

noem die tweede CW, stel die pen as virtuele pen 2 in en stel die modus as PUSH

noem die derde CCW, stel die Pin as Virtual Pin 3 in en stel die Mode as PUSH

- Wysig die LCD

stel die penne in as Virtual Pin 4 en Virtual Pin 5 en stel die modus in op PUSH

Stap 2: Maak die PI gereed

Eerstens moet u Node.js. installeer Voordat u Node.js opdateer, moet u ou weergawes verwyder:

Maak Terminal oop en tik

sudo apt-get purge node nodejs

node.js -ysudo apt -get autoremove

Outomatiese Node.js -installasie Voeg bewaarplekke by:

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

Installeer Node.js

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

sudo apt-get install build-essential nodejs -y

Sodra Node.js geïnstalleer is, installeer Blynk

sudo npm installeer blynk -library -g

sudo npm installeer onoff -g

Stap 3: Skep u projek

Begin deur die gids (cd -opdrag) na die pi -gids te verander

Maak terminale oop en tik:

cd/huis/pi/

Skep dan 'n gids waar u projek sal woon

mkdir MyProject

Verander gids na MyProject, tik die volgende in die Terminal

cd MyProject

Kontroleer die inhoud van die gids (dit moet leeg wees). Tik net die volgende in die Terminal

ls

Tik vervolgens die volgende om u projekbeskrywing te skep (package.json)

npm init

Tik net die projeknaam, outeur, weergawe, ens …

Sodra dit gedoen is, installeer die Blynk-biblioteek, die onoff-biblioteek en die stelsel-slaapbiblioteek in U projekgids. Tik die volgende in u terminale

npm installeer blynk-library --save

npm installeer onoff --save

npm installeer stelsel-slaap-stoor

Uiteindelik, skep u.js -lêer (dit is waar u kode geleë is). Tik die volgende in die Terminal

nano MyProject.js

Sodra u die opdrag uitgevoer het, sal nano (terminale teksredakteur) oopmaak.

Stap 4: MyProject.js

Skryf die volgende reëls kode in nano

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

var AUTH = '******************'; DIT IS JOU TEKEN

var blynk = nuwe Blynk. Blynk (AUTH);

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

command1 = nuwe Gpio (18, 'out'), // Sal gekoppel wees aan Arduino D2

commandCW = nuwe Gpio (23, 'uit'), // Sal gekoppel wees aan Arduino D3

commandCCW = nuwe Gpio (24, 'out'); // Sal gekoppel wees aan Arduino D4

var slaap = vereis ('stelsel-slaap');

var v1 = nuwe blynk. VirtualPin (1); // dit is u Command1 -knoppie in die app

var v2 = nuwe blynk. VirtualPin (2); // dit is u CW -knoppie in die app

var v3 = nuwe blynk. VirtualPin (3); // dit is u CCW -knoppie in die app

var v4 = nuwe blynk. VirtualPin (4); // dit is u LCD -lyn 1 in die app

var v5 = nuwe blynk. VirtualPin (5); // dit is u LCD -lyn 2 in die app

v1.on ('skryf', funksie (param) // Kyk vir die Command1 -knoppie in die app

{

if (param == 1) // As die knoppie ingedruk word (wat 1 is), doen dan die volgende

{

v4.write ("Uitvoer"); // Skryf "Uitvoer" op die eerste reël van die LCD

v5.write ("Command"); // Skryf "Command" op die tweede reël van die LCD

command1.writeSync (1); // Stel die GPIO18 (wat veranderlike opdrag1 is) op 1 (HOOG)

slaap (4000); // Wag vir 4 sekondes

command1.writeSync (0); // Stel die GPIO18 (wat veranderlike opdrag1 is) op 0 (LAAG)

v4.write ("Klaar"); // Skryf "Klaar" op die eerste reël van die LCD

v5.write (""); // Skryf "" (niks) op die tweede reël van die LCD

v1. skryf (0); // Skryf 0 op u Command1 -knoppie, wat dit terugstel na die OFF -posisie

}

});

v2.on ('skryf', funksie (param) // Kyk vir die CW -knoppie in die app

{

if (param == 1) // As die knoppie ingedruk word (wat 1 is), doen dan die volgende

{

commandCW.writeSync (1); // Stel die GPIO23 (wat veranderlike commandCW is) op 1 (HIGH)

}

anders as (param == 0) // As die knoppie nie ingedruk word nie (wat 0 is), doen dan die volgende

{

commadCW.writeSync (0); // Stel die GPIO23 (wat veranderlike commandCW is) op 0 (LOW)

}

});

v3.on ('skryf', funksie (param) // Kyk vir die CCW -knoppie in die app

{

if (param == 1) // As die knoppie ingedruk word (wat 1 is), doen dan die volgende

{

commandCCW.writeSync (1); // Stel die GPIO24 (wat veranderlike commandCCW is) op 1 (HIGH)

}

anders as (param == 0) // As die knoppie nie ingedruk word nie (wat 0 is), doen dan die volgende

{

commandCCW.writeSync (0); // Stel die GPIO24 (wat veranderlike commandCCW is) op 1 (HIGH)

}

});

Stoor dit en verlaat nano

- om CTRL+O te stoor

- om CTRL+X te verlaat

U is klaar met die Raspberry Pi.

Toets dit nou om te sien of daar foute is (meestal is dit typfoute)

Om dit te toets, tik eenvoudig die volgende in u terminale

node MyProject.js

U moet 'n uitset kry wat so lyk

Aan -af -modus

Koppel aan: blynk-cloud.com 8441

SSL -magtiging …

Gemagtig

Stap 5: MyProject in Arduino

Ok, nou het ons 2/3 dinge voltooi!

Nou moet ons net 'n kode vir die Arduino skryf.

- Skep 'n nuwe Arduino -skets en tik die volgende kode.

#insluit

#definieer STEPS_PER_MOTOR_REVOLUTION 32

#definieer STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Die penverbindings moet penne 8, 9, 10, 11 verbind wees

// na motorbestuurder In1, In2, In3, In4

// Dan word die penne hier in die volgorde 1-3-2-4 ingevoer vir die regte volgorde

Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

leemte opstelling ()

{

pinMode (2, INVOER);

pinMode (3, INVOER);

pinMode (4, INVOER);

// (Stepper Library stel penne as uitsette in)

}

leemte lus ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

as (Command1 == 0)

{

//doen niks

}

anders

{

ExecutionFunction ();

}

as (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

vertraging (1);

}

as (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

vertraging (1);

}

}

leegte uitvoering ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Draai CCW 1/4 draai

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // U kan Steps2Take vervang met enige waarde tussen 0 en 2048

vertraging (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Draai CW 1/4 draai

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // U kan Steps2Take vervang met enige waarde tussen 0 en 2048

vertraging (2000);

}

Stel saam en laai op na u Arduino.

Maak nou seker dat u alles korrek verbind! Sien die volgende stap vir bedrading.

Stap 6: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

Koppel Arduino D3 aan RaspberryPi GPIO18 (wat eintlik pen 12 is)

Koppel Arduino D4 aan RaspberryPi GPIO23 (wat eintlik pen 16 is)

Koppel Arduino D4 aan RaspberryPi GPIO24 (wat eintlik pen 18 is)

Koppel Arduino GND aan RaspberryPi GND (pen 6)

Koppel Arduino D8 aan Stepper Controller In1

Koppel Arduino D9 aan Stepper Controller In2

Koppel Arduino D10 aan Stepper Controller In3

Koppel Arduino D11 aan Stepper Controller In4

Koppel 5VDC aan op Arduino, Raspberry Pi en Stepper Controller

Stap 7: Dit is dit

Kyk na die video, en u behoort klaar te wees!

Dankie en geniet!

Aanbeveel: