Raspberry PI & Arduino - Blynk Stepper Control: 7 kroků (s obrázky)
Raspberry PI & Arduino - Blynk Stepper Control: 7 kroků (s obrázky)
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

Tento tutoriál vám ukáže, jak ovládat krokový motor pomocí Arduina, Raspberry Pi a aplikace Blynk.

Stručně řečeno, aplikace odesílá požadavky na Raspberry Pi prostřednictvím virtuálních pinů, Pi pak posílá signál HIGH/LOW do Arduina a Arduino se pak zabývá krokovým motorem.

Myslím, že je snadnější použít tento přístup, protože většina lidí je zvyklá pracovat s Arduinem a ne moc s node.js na Raspberry Pi.

K tomu potřebné komponenty:

- Raspberry PI (používám model Raspberry Pi 3 model b)

- Arduino (používám Arduino Nano)

- Servomotor (používám 28BYJ-48 5VDC s jeho ovladačem)

- Nějaké propojovací vodiče

- Zdroj napájení (5VDC 2A.)

Skica Arduino a kód Node.js jsou k dispozici ke stažení. Stačí vyhledat soubory.

Krok 1: Vytvoření aplikace v telefonu

Vytvoření aplikace v telefonu
Vytvoření aplikace v telefonu
Vytvoření aplikace v telefonu
Vytvoření aplikace v telefonu

Stáhněte si Blynk z AppStore nebo GooglePlay

Otevřete aplikaci a vytvořte uživatele nebo se přihlaste pomocí facebooku.

- Vytvořte nový projekt

Pojmenujte svůj projekt: MyProject

Vyberte zařízení: Rasapberry Pi 3 B

Typ připojení: Wifi (nebo ethernet, pokud je váš Pi připojen k vaší síti)

- Klikněte na Vytvořit

Zkontrolujte svůj e -mail pro svůj token

(vypadá takto 3aa19bb8a9e64c90af11e3f6b0595b3c)

Tento token je spojen s vaší aktuální aplikací. Pokud uděláte jinou aplikaci, vygenerujete další token.

Do aplikace přidejte následující widgety (viz obrázek)

- Přidejte 3 tlačítka

- Přidejte 1 LCD

- Upravte tlačítko

pojmenujte první Command1, nastavte Pin jako virtuální Pin 1 a nastavte režim jako SWITCH

pojmenujte druhou CW, nastavte Pin jako virtuální Pin 2 a nastavte režim jako PUSH

pojmenujte třetí CCW, nastavte Pin jako virtuální Pin 3 a nastavte režim jako PUSH

- Upravte LCD

nastavte Piny jako Virtual Pin 4 a Virtual Pin 5 a nastavte režim na PUSH

Krok 2: Příprava PI

Nejprve je třeba nainstalovat Node.js. Před aktualizací Node.js prosím odeberte staré verze:

Otevřete Terminál a napište

sudo apt-get vyčistit uzel nodejs

node.js -ysudo apt -get autoremove

Automatická instalace Node.js Přidat úložiště:

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

Nainstalujte Node.js

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

sudo apt-get install build-essential nodejs -y

Jakmile je Node.js nainstalován, nainstalujte Blynk

sudo npm install blynk -library -g

sudo npm install onoff -g

Krok 3: Vytvoření projektu

Začněte změnou adresáře (příkaz cd) na adresář pi

Otevřete terminál a zadejte:

cd/home/pi/

Poté vytvořte adresář, kde bude umístěn váš projekt

mkdir MyProject

Změňte adresář na MyProject, do terminálu zadejte následující

cd MyProject

Zkontrolujte obsah adresáře (měl by být prázdný). Stačí do terminálu zadat následující

ls

Dále vytvořením popisu projektu (package.json) zadejte následující text

npm init

Stačí zadat název projektu, autora, verzi atd …

Jakmile to bude hotové, nainstalujte knihovnu Blynk, knihovnu onoff a knihovnu spánku systému do adresáře VAŠEHO projektu. Do terminálu zadejte následující

npm install blynk-library --save

npm install onoff --save

npm install system-sleep --save

Nakonec vytvořte soubor.js (zde bude umístěn váš kód). Do terminálu zadejte následující

nano MyProject.js

Jakmile tento příkaz spustíte, otevře se nano (textový editor terminálu).

Krok 4: MyProject.js

V nano napište následující řádky kódu

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

var AUTH = '*******************'; TOTO JE VAŠE VYHLEDÁVÁNÍ

var blynk = nový Blynk. Blynk (AUTH);

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

command1 = new Gpio (18, 'out'), // Bude připojeno k Arduino D2

commandCW = new Gpio (23, 'out'), // Bude připojeno k Arduino D3

commandCCW = new Gpio (24, 'out'); // Bude připojeno k Arduino D4

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

var v1 = nový blynk. VirtualPin (1); // toto je vaše tlačítko Command1 v aplikaci

var v2 = nový blynk. VirtualPin (2); // toto je vaše CW tlačítko v aplikaci

var v3 = nový blynk. VirtualPin (3); // toto je vaše tlačítko CCW v aplikaci

var v4 = nový blynk. VirtualPin (4); // toto je váš LCD řádek 1 v aplikaci

var v5 = nový blynk. VirtualPin (5); // toto je váš LCD řádek 2 v aplikaci

v1.on ('write', function (param) // Vyhledejte v aplikaci tlačítko Command1

{

if (param == 1) // Pokud je stisknuto tlačítko (což je 1), proveďte následující

{

v4.write ("Provádění"); // Na první řádek LCD napište „Executing“

v5.write ("Příkaz"); // Na druhý řádek LCD napište „Command“

příkaz1.writeSync (1); // Nastavte GPIO18 (což je proměnná command1) na 1 (HIGH)

spánek (4000); // Počkejte 4 sekundy

příkaz1.writeSync (0); // Nastavte GPIO18 (což je proměnná command1) na 0 (LOW)

v4.write („Hotovo“); // Na první řádek LCD napište „Hotovo“

v5.write (""); // Na druhý řádek LCD napište „“(nic)

v1.write (0); // Napište 0 na tlačítko Command1, čímž se resetuje do polohy OFF

}

});

v2.on ('write', function (param) // Vyhledejte v aplikaci tlačítko CW

{

if (param == 1) // Pokud je stisknuto tlačítko (což je 1), proveďte následující

{

commandCW.writeSync (1); // Nastavte GPIO23 (což je proměnná commandCW) na 1 (HIGH)

}

else if (param == 0) // Pokud tlačítko není stisknuto (což je 0), proveďte následující

{

commadCW.writeSync (0); // Nastavte GPIO23 (což je proměnná commandCW) na 0 (LOW)

}

});

v3.on ('write', function (param) // Vyhledejte v aplikaci tlačítko CCW

{

if (param == 1) // Pokud je stisknuto tlačítko (což je 1), proveďte následující

{

příkazCCW.writeSync (1); // Nastavte GPIO24 (což je proměnná commandCCW) na 1 (HIGH)

}

else if (param == 0) // Pokud tlačítko není stisknuto (což je 0), proveďte následující

{

příkazCCW.writeSync (0); // Nastavte GPIO24 (což je proměnná commandCCW) na 1 (HIGH)

}

});

Uložte a ukončete nano

- pro uložení CTRL+O

- pro ukončení CTRL+X

Hotovo s Raspberry Pi.

Nyní vyzkoušejte, zda neobsahuje nějaké chyby (většinou se jedná o překlepy)

Chcete -li to vyzkoušet, jednoduše zadejte do terminálu následující

uzel MyProject.js

Měli byste získat výstup, který vypadá takto

Režim OnOff

Připojování k: blynk-cloud.com 8441

Autorizace SSL…

Autorizovaný

Krok 5: MyProject v Arduinu

Dobře, takže teď máme 2/3 věcí hotových!

Nyní stačí napsat nějaký kód pro Arduino.

- Vytvořte nový náčrt Arduina a zadejte následující kód.

#zahrnout

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Zapojení pinů musí být propojeno piny 8, 9, 10, 11

// do ovladače motoru In1, In2, In3, In4

// Pak jsou zde vloženy piny v sekvenci 1-3-2-4 pro správné sekvenování

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

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

neplatné nastavení ()

{

pinMode (2, VSTUP);

pinMode (3, VSTUP);

pinMode (4, VSTUP);

// (Knihovna stepperů nastavuje piny jako výstupy)

}

prázdná smyčka ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

if (Command1 == 0)

{

//nedělat nic

}

jiný

{

ExecutionFunction ();

}

if (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

zpoždění (1);

}

if (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

zpoždění (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Otočení CCW o 1/4 otáčky

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Steps2Take můžete nahradit libovolnou hodnotou mezi 0 a 2048

zpoždění (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Otočení CW o 1/4 otáčky

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Steps2Take můžete nahradit libovolnou hodnotou mezi 0 a 2048

zpoždění (2000);

}

Zkompilujte a nahrajte do svého Arduina.

Nyní se ujistěte, že jste vše správně připojili! Viz další krok zapojení.

Krok 6: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Připojte Arduino D3 k RaspberryPi GPIO18 (což je vlastně pin 12)

Připojte Arduino D4 k RaspberryPi GPIO23 (což je vlastně pin 16)

Připojte Arduino D4 k RaspberryPi GPIO24 (což je ve skutečnosti pin 18)

Připojte Arduino GND k RaspberryPi GND (pin 6)

Připojte Arduino D8 k krokovému ovladači In1

Připojte Arduino D9 k Stepper Controller In2

Připojte Arduino D10 ke krokovému ovladači In3

Připojte Arduino D11 k krokovému ovladači In4

Připojte 5VDC k Arduino, Raspberry Pi a Stepper Controller

Krok 7: To je ono

Podívejte se na video a měli byste být hotovi!

Děkujeme a užívejte si!