Spisu treści:

Raspberry PI i Arduino - sterowanie krokowe Blynk: 7 kroków (ze zdjęciami)
Raspberry PI i Arduino - sterowanie krokowe Blynk: 7 kroków (ze zdjęciami)

Wideo: Raspberry PI i Arduino - sterowanie krokowe Blynk: 7 kroków (ze zdjęciami)

Wideo: Raspberry PI i Arduino - sterowanie krokowe Blynk: 7 kroków (ze zdjęciami)
Wideo: #16 Moduł GSM dla Raspberry Pi i Arduino 2024, Listopad
Anonim
Raspberry PI i Arduino - sterowanie krokowe Blynk
Raspberry PI i Arduino - sterowanie krokowe Blynk

Ten samouczek pokaże Ci, jak sterować silnikiem krokowym za pomocą Arduino, Raspberry Pi i aplikacji Blynk.

W skrócie, aplikacja wysyła żądania do Raspberry Pi za pośrednictwem wirtualnych pinów, Pi następnie wysyła sygnał WYSOKI/NISKI do Arduino, a Arduino następnie zajmuje się silnikiem krokowym.

Myślę, że łatwiej jest korzystać z tego podejścia, ponieważ większość ludzi jest przyzwyczajona do pracy z Arduino, a niewiele z node.js na Raspberry Pi.

Potrzebne do tego komponenty:

- Raspberry PI (ja używam Raspberry Pi 3 model b)

- Arduino (używam Arduino Nano)

- Servo Motor (używam 28BYJ-48 5VDC z jego kontrolerem)

- Niektóre przewody połączeniowe

- Źródło zasilania (5VDC 2A.)

Szkic Arduino i kod Node.js są dostępne do pobrania. Po prostu wyszukaj pliki.

Krok 1: Tworzenie aplikacji w telefonie

Tworzenie aplikacji w telefonie
Tworzenie aplikacji w telefonie
Tworzenie aplikacji w telefonie
Tworzenie aplikacji w telefonie

Pobierz Blynk z AppStore lub GooglePlay

Otwórz aplikację i utwórz użytkownika lub zaloguj się przez facebook.

- Utwórz nowy projekt

Nazwij swój projekt: MyProject

Wybierz urządzenie: Rasapberry Pi 3 B

Typ połączenia: Wifi (lub Ethernet, jeśli Twoje Pi jest podłączone do sieci)

- Kliknij Utwórz

Sprawdź pocztę e-mail pod kątem tokena

(wygląda tak 3aa19bb8a9e64c90af11e3f6b0595b3c)

Ten token jest powiązany z Twoją obecną aplikacją. Jeśli zrobisz inną aplikację, wygenerujesz kolejny token.

W aplikacji dodaj następujące widżety (patrz zdjęcie)

- Dodaj 3 przyciski

- Dodaj 1 wyświetlacz LCD

- Edytuj przycisk

nazwij pierwszy z nich Command1, ustaw Pin jako Virtual Pin 1 i ustaw tryb jako SWITCH

nazwij drugi CW, ustaw Pin jako Virtual Pin 2 i ustaw tryb jako PUSH

nazwij trzecią CCW, ustaw Pin jako Virtual Pin 3 i ustaw tryb jako PUSH

- Edytuj wyświetlacz LCD

ustaw Piny jako Virtual Pin 4 i Virtual Pin 5 i ustaw tryb na PUSH

Krok 2: Przygotowanie PI

Najpierw musisz zainstalować Node.js. Przed aktualizacją Node.js pamiętaj o usunięciu starych wersji:

Otwórz terminal i wpisz

sudo apt-get czyszczenie nodejs

node.js -ysudo apt-get autoremove

Automatyczna instalacja Node.js Dodaj repozytoria:

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

Zainstaluj Node.js

aktualizacja sudo apt-get && aktualizacja sudo apt-get

sudo apt-get install niezbędne do zbudowania nodejs -y

Po zainstalowaniu Node.js zainstaluj Blynk

sudo npm zainstaluj blynk-library -g

sudo npm zainstaluj onoff -g

Krok 3: Tworzenie projektu

Zacznij od zmiany katalogu (polecenie cd) na katalog pi

Otwórz Terminal i wpisz:

cd /home/pi/

Następnie utwórz katalog, w którym będzie się znajdował Twój projekt

mkdir Mój projekt

Zmień katalog na MyProject, wpisz następujące polecenie w Terminalu

cd MójProjekt

Sprawdź zawartość katalogu (powinna być pusta). Po prostu wpisz następujące polecenie w Terminalu

ls

Następnie wpisz następujące polecenie, aby utworzyć opis projektu (package.json)

początek npm

Wystarczy wpisać nazwę projektu, autora, wersję itp…

Gdy to zrobisz, zainstaluj bibliotekę Blynk, bibliotekę onoff i bibliotekę systemu uśpienia w katalogu TWOJEGO projektu. Wpisz następujące informacje w swoim terminalu

npm zainstaluj blynk-library --save

npm zainstaluj onoff --save

npm zainstaluj system-sleep --save

Na koniec utwórz plik.js (będzie to miejsce, w którym będzie znajdować się Twój kod). Wpisz następujące polecenie w terminalu

nano MójProjekt.js

Po wykonaniu tego polecenia otworzy się nano (edytor tekstu terminala).

Krok 4: MójProjekt.js

W nano napisz następujące wiersze kodu

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

var AUTH = '******************** '; TO JEST TWÓJ TOKEN

var blynk = new Blynk. Blynk(AUTH);

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

command1 = new Gpio (18, 'out'), // zostanie podłączony do Arduino D2

commandCW = new Gpio (23, 'out'), // zostanie podłączony do Arduino D3

commandCCW = nowy Gpio(24, 'out'); //Zostanie podłączony do Arduino D4

var sleep = require('system-uśpienie');

var v1 = nowy blynk. VirtualPin(1); //to jest twój przycisk Command1 w aplikacji

var v2 = nowy blynk. VirtualPin(2); //to jest twój przycisk CW w aplikacji

var v3 = nowy blynk. VirtualPin(3); //to jest twój przycisk CCW w aplikacji

var v4 = nowy blynk. VirtualPin(4); //to jest twoja linia LCD 1 w aplikacji

var v5 = nowy blynk. VirtualPin(5); //to jest twoja linia LCD 2 w aplikacji

v1.on('write', function (param) //Sprawdź przycisk Command1 w aplikacji

{

if (param == 1) //Jeśli przycisk jest naciśnięty (czyli 1), wykonaj następujące czynności

{

v4.write("Wykonywanie"); //Napisz „Wykonywanie” w pierwszym wierszu wyświetlacza LCD

v5.write("Polecenie"); //Napisz "Polecenie" w drugim wierszu wyświetlacza LCD

polecenie1.writeSync(1); //Ustaw GPIO18 (czyli polecenie zmiennej 1) na 1 (WYSOKI)

sen (4000); //Poczekaj 4 sekundy

polecenie1.writeSync(0); //Ustaw GPIO18 (czyli polecenie zmiennej 1) na 0 (NISKI)

v4.write("Gotowe"); //Wpisz „Gotowe” w pierwszym wierszu wyświetlacza LCD

v5.write(" "); //Wpisz " " (nic) w drugim wierszu LCD

v1.zapis(0); //Wpisz 0 do przycisku Command1, który zresetuje go do pozycji OFF

}

});

v2.on('write', function (param) //Sprawdź przycisk CW w aplikacji

{

if (param == 1) //Jeśli naciśnięty zostanie przycisk (czyli 1), wykonaj następujące czynności

{

polecenieCW.writeSync(1); //Ustaw GPIO23 (który jest zmienną commandCW) na 1 (HIGH)

}

else if (param == 0) //Jeśli przycisk nie został naciśnięty (czyli 0), wykonaj następujące czynności

{

commadCW.writeSync(0); //Ustaw GPIO23 (który jest zmienną commandCW) na 0 (LOW)

}

});

v3.on('write', function (param) //Sprawdź przycisk CCW w aplikacji

{

if (param == 1) //Jeśli naciśnięty zostanie przycisk (czyli 1), wykonaj następujące czynności

{

polecenieCCW.writeSync(1); //Ustaw GPIO24 (który jest zmienną commandCCW) na 1 (HIGH)

}

else if (param == 0) //Jeśli przycisk nie został naciśnięty (czyli 0), wykonaj następujące czynności

{

polecenieCCW.writeSync(0); //Ustaw GPIO24 (który jest zmienną commandCCW) na 1 (HIGH)

}

});

Zapisz i wyjdź z nano

- aby zapisać CTRL+O

- aby wyjść z CTRL+X

Skończyłeś z Raspberry Pi.

Teraz przetestuj go, aby sprawdzić, czy występują jakiekolwiek błędy (w większości przypadków są to błędy literowe)

Aby to przetestować, po prostu wpisz następujące polecenie w swoim terminalu

węzeł MójProjekt.js

Powinieneś otrzymać wynik, który wygląda tak

Tryb wł.wył

Łączenie z: blynk-cloud.com 8441

Autoryzacja SSL…

Upoważniony

Krok 5: MyProject w Arduino

Ok, więc teraz mamy ukończone 2/3 rzeczy!

Teraz wystarczy napisać kod dla Arduino.

- Utwórz nowy szkic Arduino i wpisz następujący kod.

#włączać

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048

//Połączenia pinów muszą być połączone pinami 8, 9, 10, 11

// do sterownika silnika In1, In2, In3, In4

// Następnie piny są wprowadzane tutaj w kolejności 1-3-2-4 dla poprawnego sekwencjonowania

Krokowy mały_krok (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Polecenie1;

int CommandCW;

int PolecenieCCW;

pusta konfiguracja()

{

pinMode(2, WEJŚCIE);

pinMode(3, WEJŚCIE);

pinMode(4, WEJŚCIE);

//(Biblioteka krokowa ustawia piny jako wyjścia)

}

pusta pętla()

{

Polecenie1 = odczyt cyfrowy(2);

CommandCW = odczyt cyfrowy(3);

CommandCCW = odczyt cyfrowy(4);

if(Polecenie1 == 0)

{

//nic nie robić

}

w przeciwnym razie

{

Funkcja wykonania();

}

if(CommandCW == 1)

{

small_stepper.setSpeed(700);

mały_krok.krok(-1);

opóźnienie(1);

}

jeśli (polecenie CCW ==1)

{

small_stepper.setSpeed(700);

mały_krok.krok(1);

opóźnienie(1);

}

}

nieważna funkcja wykonania ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Obróć w lewo o 1/4 obrotu

small_stepper.setSpeed(700);

small_stepper.step(Steps2Take); // Możesz zastąpić Steps2Take dowolną wartością z zakresu od 0 do 2048

opóźnienie (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Obróć w prawo o 1/4 obrotu

small_stepper.setSpeed(700);

small_stepper.step(Steps2Take); // Możesz zastąpić Steps2Take dowolną wartością z zakresu od 0 do 2048

opóźnienie (2000);

}

Skompiluj i prześlij do swojego Arduino.

Teraz upewnij się, że wszystko poprawnie łączysz! Zobacz następny krok dla okablowania.

Krok 6: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Podłącz Arduino D3 do RaspberryPi GPIO18 (który w rzeczywistości jest pinem 12)

Podłącz Arduino D4 do RaspberryPi GPIO23 (który w rzeczywistości jest pinem 16)

Podłącz Arduino D4 do RaspberryPi GPIO24 (który w rzeczywistości jest pinem 18)

Podłącz Arduino GND do RaspberryPi GND (pin 6)

Podłącz Arduino D8 do kontrolera krokowego In1

Podłącz Arduino D9 do kontrolera krokowego In2

Podłącz Arduino D10 do kontrolera krokowego In3

Podłącz Arduino D11 do kontrolera krokowego In4

Podłącz 5VDC do Arduino, Raspberry Pi i kontrolera krokowego

Krok 7: To wszystko

Sprawdź wideo i powinieneś skończyć!

Dzięki i ciesz się!

Zalecana: