Съдържание:

Raspberry PI & Arduino - Blynk Stepper Control: 7 стъпки (със снимки)
Raspberry PI & Arduino - Blynk Stepper Control: 7 стъпки (със снимки)

Видео: Raspberry PI & Arduino - Blynk Stepper Control: 7 стъпки (със снимки)

Видео: Raspberry PI & Arduino - Blynk Stepper Control: 7 стъпки (със снимки)
Видео: SKR Pro v1.2 - TMC2226 UART with Sensorless Homing 2024, Ноември
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

Този урок ще ви покаже как да управлявате стъпков двигател с Arduino, Raspberry Pi и приложението Blynk.

В ядка черупка, приложението изпраща заявки към Raspberry Pi чрез виртуални пинове, след това Pi изпраща сигнал HIGH/LOW към Arduino и Arduino след това се занимава със стъпковия двигател.

Мисля, че е по -лесно да се използва този подход, тъй като повечето хора са свикнали да работят с Arduino, а не много с node.js на Raspberry Pi.

Компонентите, необходими за това:

- Raspberry PI (използвам Raspberry Pi 3 модел b)

- Arduino (използвам Arduino Nano)

- Серво мотор (използвам 28BYJ-48 5VDC с неговия контролер)

- Някои джъмперни проводници

- Източник на захранване (5VDC 2A.)

Скицата на Arduino и кодът Node.js са достъпни за изтегляне. Просто потърсете файловете.

Стъпка 1: Създаване на приложението на вашия телефон

Създаване на приложението на вашия телефон
Създаване на приложението на вашия телефон
Създаване на приложението на вашия телефон
Създаване на приложението на вашия телефон

Изтеглете Blynk от AppStore или GooglePlay

Отворете приложението и създайте потребител или влезте с facebook.

- Създайте нов проект

Назовете вашия проект: MyProject

Изберете устройство: Rasapberry Pi 3 B

Тип връзка: Wifi (или Ethernet, ако вашият Pi е свързан към вашата мрежа)

- Щракнете върху Създаване

Проверете имейла си за вашия жетон

(изглежда така 3aa19bb8a9e64c90af11e3f6b0595b3c)

Този знак е свързан с текущото ви приложение. Ако направите друго приложение, ще генерирате друг знак.

В приложението добавете следните приспособления (вижте снимката)

- Добавете 3 бутона

- Добавете 1 LCD

- Редактирайте бутона

наименувайте първата Command1, задайте Pin като Virtual Pin 1 и задайте Mode като SWITCH

назовете втория CW, задайте Pin като Virtual Pin 2 и задайте Mode като PUSH

назовете третия CCW, задайте Pin като Virtual Pin 3 и задайте Mode като PUSH

- Редактирайте LCD дисплея

задайте щифтовете като Virtual Pin 4 и Virtual Pin 5 и задайте Mode на PUSH

Стъпка 2: Подготовка на PI

Първо, трябва да инсталирате Node.js. Преди да актуализирате Node.js, не забравяйте да премахнете старите версии:

Отворете терминала и въведете

sudo apt-get възел за прочистване nodejs

node.js -ysudo apt -get autoremove

Автоматична инсталация на Node.js Добавяне на хранилища:

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

Инсталирайте Node.js

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

sudo apt-get install build-essential nodejs -y

След като Node.js е инсталиран, инсталирайте Blynk

sudo npm инсталирайте blynk -library -g

sudo npm инсталирайте onoff -g

Стъпка 3: Създаване на вашия проект

Започнете, като промените директорията (команда cd) в директорията pi

Отворете терминала и въведете:

cd/home/pi/

След това създайте директория, в която ще се намира вашият проект

mkdir MyProject

Променете директорията в MyProject, въведете следното в терминала

cd MyProject

Проверете съдържанието на директорията (тя трябва да е празна). Просто въведете следното в терминала

ls

След това въведете следното, за да създадете описание на вашия проект (package.json)

npm init

Просто въведете името на проекта, автора, версията и т.н.

След като това стане, инсталирайте библиотеката Blynk, библиотеката onoff и библиотеката за системно заспиване в директорията на вашия проект. Въведете следното във вашия терминал

npm install blynk-library --save

npm инсталирайте onoff --save

npm install system-sleep --save

Накрая създайте своя.js файл (Това ще бъде мястото, където ще се намира вашият код). Въведете следното в терминала

nano MyProject.js

След като изпълните тази команда, ще се отвори nano (терминален текстов редактор).

Стъпка 4: MyProject.js

В nano напишете следните редове код

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

var AUTH = '******************'; ТОВА Е ВАШИЯТ ЖЕТОН

var blynk = нов Blynk. Blynk (AUTH);

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

command1 = нов Gpio (18, 'out'), // Ще бъде свързан с Arduino D2

commandCW = нов Gpio (23, 'out'), // Ще бъде свързан с Arduino D3

commandCCW = нов Gpio (24, 'out'); // Ще бъде свързан с Arduino D4

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

var v1 = нов blynk. VirtualPin (1); // това е вашият бутон Command1 в приложението

var v2 = нов blynk. VirtualPin (2); // това е вашият бутон CW в приложението

var v3 = нов blynk. VirtualPin (3); // това е вашият бутон CCW в приложението

var v4 = нов blynk. VirtualPin (4); // това е вашият LCD ред 1 в приложението

var v5 = нов blynk. VirtualPin (5); // това е вашият LCD ред 2 в приложението

v1.on ('write', function (param) // Проверете за бутона Command1 в приложението

{

if (param == 1) // Ако бутонът е натиснат (което е 1), направете следното

{

v4.write ("Изпълнение"); // Напишете „Изпълнение“на първия ред на LCD дисплея

v5.write ("Команда"); // Напишете "Command" на втория ред на LCD дисплея

command1.writeSync (1); // Задайте GPIO18 (който е променлива command1) на 1 (HIGH)

сън (4000); // Изчакайте 4 секунди

command1.writeSync (0); // Задайте GPIO18 (който е променлива command1) на 0 (LOW)

v4.write ("Готово"); // Напишете "Готово" на първия ред на LCD дисплея

v5.write (""); // Запишете "" (нищо) на втория ред на LCD дисплея

v1.write (0); // Запишете 0 на вашия бутон Command1, което ще го върне в положение OFF

}

});

v2.on ('write', function (param) // Проверете за бутона CW в приложението

{

if (param == 1) // Ако бутонът е натиснат (което е 1), направете следното

{

commandCW.writeSync (1); // Задайте GPIO23 (която е променлива командаCW) на 1 (HIGH)

}

else if (param == 0) // Ако бутонът не е натиснат (което е 0), направете следното

{

commadCW.writeSync (0); // Задайте GPIO23 (която е променлива commandCW) на 0 (LOW)

}

});

v3.on ('write', function (param) // Проверете за бутона CCW в приложението

{

if (param == 1) // Ако бутонът е натиснат (което е 1), направете следното

{

commandCCW.writeSync (1); // Задайте GPIO24 (който е променлива командаCCW) на 1 (HIGH)

}

else if (param == 0) // Ако бутонът не е натиснат (което е 0), направете следното

{

commandCCW.writeSync (0); // Задайте GPIO24 (който е променлива командаCCW) на 1 (HIGH)

}

});

Запазете го и излезте от nano

- за да запишете CTRL+O

- за да излезете от CTRL+X

Свършили сте с Raspberry Pi.

Сега го тествайте, за да видите дали има някакви грешки (през повечето време са грешки при печат)

За да го тествате, просто въведете следното във вашия терминал

възел MyProject.js

Трябва да получите изход, който изглежда така

Режим OnOff

Свързване към: blynk-cloud.com 8441

SSL оторизация …

Упълномощен

Стъпка 5: MyProject в Arduino

Добре, така че сега имаме 2/3 неща завършени!

Сега просто трябва да напишем някакъв код за Arduino.

- Създайте нова скица на Arduino и въведете следния код.

#включва

#дефинирайте STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Щифтовите връзки трябва да са свързани с щифтове 8, 9, 10, 11

// към шофьор на мотор In1, In2, In3, In4

// След това щифтовете се въвеждат тук в последователността 1-3-2-4 за правилното подреждане

Степър small_stepper (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 задава изводи като изходи)

}

void loop ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

ако (Command1 == 0)

{

// не прави нищо

}

иначе

{

ExecutionFunction ();

}

ако (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

забавяне (1);

}

ако (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

забавяне (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Завъртане на CCW на 1/4 оборот

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Можете да замените Steps2Take с всяка стойност между 0 и 2048

забавяне (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Завъртане на CW на 1/4 оборот

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Можете да замените Steps2Take с всяка стойност между 0 и 2048

забавяне (2000);

}

Компилирайте и качете на вашия Arduino.

Сега се уверете, че сте свързали всичко правилно! Вижте следващата стъпка за окабеляване.

Стъпка 6: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Свържете Arduino D3 към RaspberryPi GPIO18 (който всъщност е пин 12)

Свържете Arduino D4 към RaspberryPi GPIO23 (който всъщност е пин 16)

Свържете Arduino D4 към RaspberryPi GPIO24 (който всъщност е пин 18)

Свържете Arduino GND към RaspberryPi GND (щифт 6)

Свържете Arduino D8 към стъпков контролер In1

Свържете Arduino D9 към стъпков контролер In2

Свържете Arduino D10 към стъпков контролер In3

Свържете Arduino D11 към стъпков контролер In4

Свържете 5VDC към Arduino, Raspberry Pi и Stepper Controller

Стъпка 7: Това е

Вижте видеото и трябва да приключите!

Благодаря и се наслаждавайте!

Препоръчано: