Indholdsfortegnelse:

Raspberry PI & Arduino - Blynk Stepper Control: 7 trin (med billeder)
Raspberry PI & Arduino - Blynk Stepper Control: 7 trin (med billeder)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 trin (med billeder)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 trin (med billeder)
Video: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, November
Anonim
Hindbær PI & Arduino - Blynk Stepper Control
Hindbær PI & Arduino - Blynk Stepper Control

Denne vejledning viser dig, hvordan du styrer en trinmotor med en Arduino, en Raspberry Pi og Blynk -applikationen.

I en nøddeskal sender appen anmodninger til Raspberry Pi via Virtual Pins, Pi sender derefter HIGH/LOW signal til Arduino, og Arduino behandler derefter trinmotoren.

Jeg tror, at det er lettere at bruge denne godkendelse, da de fleste mennesker er vant til at arbejde med Arduino og ikke meget med node.js på Raspberry Pi.

Nødvendige komponenter til dette:

- Raspberry PI (jeg bruger Raspberry Pi 3 model b)

- Arduino (jeg bruger en Arduino Nano)

- Servomotor (jeg bruger en 28BYJ-48 5VDC med sin controller)

- Nogle jumperwires

- Strømkilde (5VDC 2A.)

Arduino -skitsen og Node.js -koden kan downloades. Bare søg filerne.

Trin 1: Oprettelse af appen på din telefon

Oprettelse af appen på din telefon
Oprettelse af appen på din telefon
Oprettelse af appen på din telefon
Oprettelse af appen på din telefon

Download Blynk fra AppStore eller GooglePlay

Åbn appen, og opret en bruger, eller log ind med facebook.

- Opret et nyt projekt

Navngiv dit projekt: MyProject

Vælg enhed: Rasapberry Pi 3 B

Forbindelsestype: Wifi (eller Ethernet, hvis din Pi er tilsluttet dit netværk)

- Klik på Opret

Tjek din e -mail for dit Token

(ligner denne 3aa19bb8a9e64c90af11e3f6b0595b3c)

Dette Token er knyttet til din nuværende app. Hvis du laver en anden app, genererer du et andet token.

Tilføj følgende widgets i appen (se billede)

- Tilføj 3 knapper

- Tilføj 1 LCD

- Rediger knappen

navngiv den første Kommando1, indstil Pin som Virtual Pin 1 og indstil Mode som SWITCH

navngiv den anden CW, indstil Pin som Virtual Pin 2 og indstil Mode som PUSH

navngiv den tredje CCW, indstil Pin som Virtual Pin 3 og indstil Mode som PUSH

- Rediger LCD -skærmen

indstil Pins som Virtual Pin 4 og Virtual Pin 5 og indstil Mode til PUSH

Trin 2: Gør PI klar

Først skal du installere Node.js. Før du opdaterer Node.js, skal du sørge for at fjerne gamle versioner:

Åbn Terminal og skriv

sudo apt-get purge node nodejs

node.js -ysudo apt -get autoremove

Automatisk Node.js -installation Tilføj lagre:

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 installeret, skal du installere Blynk

sudo npm installer blynk -library -g

sudo npm install onoff -g

Trin 3: Oprettelse af dit projekt

Start med at ændre bibliotek (cd -kommando) til pi -biblioteket

Åbn Terminal og skriv:

cd/home/pi/

Opret derefter et bibliotek, hvor dit projekt vil ligge

mkdir MyProject

Skift bibliotek til MyProject, skriv følgende i Terminalen

cd MyProject

Kontroller telefonens indhold (det skal være tomt). Indtast blot følgende i Terminalen

ls

Skriv derefter følgende for at oprette din projektbeskrivelse (package.json)

npm init

Skriv bare projektnavn, forfatter, version osv …

Når dette er gjort, skal du installere Blynk-biblioteket, onoff-biblioteket og system-sleep-biblioteket i DIT projektkatalog. Indtast følgende i din Terminal

npm installer blynk-library --save

npm installer onoff --save

npm installer system-sleep-gem

Til sidst skal du oprette din.js -fil (det er her din kode vil opholde sig). Indtast følgende i terminalen

nano MyProject.js

Når du har udført denne kommando, åbnes nano (terminal tekst editor).

Trin 4: MyProject.js

I nano skal du skrive følgende kodelinjer

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

var AUTH = '*******************'; DETTE ER DIN TOKEN

var blynk = ny Blynk. Blynk (AUTH);

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

command1 = ny Gpio (18, 'out'), // Vil blive forbundet til Arduino D2

commandCW = ny Gpio (23, 'out'), // Vil blive forbundet til Arduino D3

commandCCW = ny Gpio (24, 'out'); // Vil blive tilsluttet Arduino D4

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

var v1 = ny blynk. VirtualPin (1); // dette er din Command1 -knap i appen

var v2 = ny blynk. VirtualPin (2); // dette er din CW -knap i appen

var v3 = ny blynk. VirtualPin (3); // dette er din CCW -knap i appen

var v4 = ny blynk. VirtualPin (4); // dette er din LCD -linje 1 i appen

var v5 = ny blynk. VirtualPin (5); // dette er din LCD -linje 2 i appen

v1.on ('skriv', funktion (param) // Søg efter kommando1 -knappen i appen

{

hvis (param == 1) // Hvis der trykkes på knappen (hvilket er 1), skal du gøre følgende

{

v4.write ("Udfører"); // Skriv "Executing" på LCD -skærmens første linje

v5.write ("Kommando"); // Skriv "Kommando" på LCD -skærmens anden linje

command1.writeSync (1); // Indstil GPIO18 (som er variabel kommando1) til 1 (HIGH)

søvn (4000); // Vent i 4 sekunder

command1.writeSync (0); // Indstil GPIO18 (som er variabel kommando1) til 0 (LAV)

v4.write ("Udført"); // Skriv "Udført" på LCD -skærmens første linje

v5.write (""); // Skriv "" (ingenting) på LCD -skærmens anden linje

v1.skriv (0); // Skriv 0 til din Command1 -knap, der nulstiller den til OFF -positionen

}

});

v2.on ('skriv', funktion (param) // Kontroller for CW -knappen i appen

{

hvis (param == 1) // Hvis der trykkes på knappen (hvilket er 1), skal du gøre følgende

{

commandCW.writeSync (1); // Indstil GPIO23 (som er variabel kommandoCW) til 1 (HIGH)

}

ellers hvis (param == 0) // Hvis der ikke trykkes på knappen (hvilket er 0), skal du gøre følgende

{

commadCW.writeSync (0); // Indstil GPIO23 (som er variabel kommandoCW) til 0 (LAV)

}

});

v3.on ('skriv', funktion (param) // Kontroller for CCW -knappen i appen

{

hvis (param == 1) // Hvis der trykkes på knappen (hvilket er 1), skal du gøre følgende

{

commandCCW.writeSync (1); // Indstil GPIO24 (som er variabel kommandoCCW) til 1 (HIGH)

}

ellers hvis (param == 0) // Hvis der ikke trykkes på knappen (hvilket er 0), skal du gøre følgende

{

commandCCW.writeSync (0); // Indstil GPIO24 (som er variabel kommandoCCW) til 1 (HIGH)

}

});

Gem det og afslut nano

- for at gemme CTRL+O

- for at afslutte CTRL+X

Du er færdig med Raspberry Pi.

Test det nu for at se, om der er nogen form for fejl (for det meste er typefejl)

For at teste det skal du blot skrive følgende i din terminal

node MyProject.js

Du bør få et output, der ser sådan ud

Til -slukket tilstand

Opretter forbindelse til: blynk-cloud.com 8441

SSL -godkendelse …

Autoriseret

Trin 5: MyProject i Arduino

Ok, så nu har vi 2/3 ting gennemført!

Nu mangler vi bare at skrive en kode til Arduino.

- Opret en ny Arduino -skitse og skriv følgende kode.

#omfatte

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Stiftforbindelserne skal være ben 8, 9, 10, 11 tilsluttet

// til Motor Driver In1, In2, In3, In4

// Derefter indtastes stifterne her i sekvensen 1-3-2-4 for korrekt sekventering

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

int Steps2Take;

int Kommando1;

int CommandCW;

int CommandCCW;

ugyldig opsætning ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Stepper Library sætter pins som output)

}

hulrum ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

hvis (Kommando1 == 0)

{

//gøre ingenting

}

andet

{

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 ()

{

Trin2Tag = STEPS_PER_OUTPUT_REVOLUTION / 4; // Drej CCW 1/4 omgang

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Du kan erstatte Steps2Take med en hvilken som helst værdi mellem 0 og 2048

forsinkelse (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Drej CW 1/4 omgang

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Du kan erstatte Steps2Take med en hvilken som helst værdi mellem 0 og 2048

forsinkelse (2000);

}

Kompilér og upload til din Arduino.

Sørg nu for at tilslutte alt korrekt! Se det næste trin for ledninger.

Trin 6: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger

Tilslut Arduino D3 til RaspberryPi GPIO18 (som faktisk er pin 12)

Tilslut Arduino D4 til RaspberryPi GPIO23 (som faktisk er pin 16)

Tilslut Arduino D4 til RaspberryPi GPIO24 (som faktisk er pin 18)

Tilslut Arduino GND til RaspberryPi GND (pin 6)

Tilslut Arduino D8 til Stepper Controller In1

Tilslut Arduino D9 til Stepper Controller In2

Tilslut Arduino D10 til Stepper Controller In3

Tilslut Arduino D11 til Stepper Controller In4

Tilslut 5VDC til Arduino, Raspberry Pi og Stepper Controller

Trin 7: Det er det

Tjek videoen, og du skal være færdig!

Tak og nyd det!

Anbefalede: