Оглавление:

Raspberry PI и Arduino - Управление шаговым двигателем Blynk: 7 шагов (с изображениями)
Raspberry PI и Arduino - Управление шаговым двигателем Blynk: 7 шагов (с изображениями)

Видео: Raspberry PI и Arduino - Управление шаговым двигателем Blynk: 7 шагов (с изображениями)

Видео: Raspberry PI и Arduino - Управление шаговым двигателем Blynk: 7 шагов (с изображениями)
Видео: Симулятор Arduino, Raspberry Pi Pico, ESP32, FastLED, MicroPython 2024, Ноябрь
Anonim
Raspberry PI и Arduino - управление шаговым двигателем Blynk
Raspberry PI и Arduino - управление шаговым двигателем Blynk

Из этого туториала Вы узнаете, как управлять шаговым двигателем с помощью 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

Тип подключения: Wi-Fi (или Ethernet, если ваш Pi подключен к вашей сети)

- Нажмите "Создать".

Проверьте свою электронную почту на наличие токена

(выглядит так 3aa19bb8a9e64c90af11e3f6b0595b3c)

Этот токен связан с вашим текущим приложением. Если вы создадите другое приложение, вы создадите еще один токен.

В приложение добавляем следующие виджеты (см. Рисунок)

- Добавить 3 кнопки

- Добавить 1 ЖК-дисплей

- Редактировать кнопку

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

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

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

- Редактировать ЖК-дисплей

установите контакты как виртуальный контакт 4 и виртуальный контакт 5 и установите режим 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 install onoff -g

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

Начните с изменения каталога (команда cd) на каталог pi

Откройте Терминал и введите:

cd / home / pi /

Затем создайте каталог, в котором будет находиться ваш проект.

mkdir MyProject

Измените каталог на MyProject, введите следующее в Терминале

cd MyProject

Проверьте содержимое каталога (оно должно быть пустым). Просто введите следующее в Терминале

ls

Затем введите следующее, чтобы создать описание проекта (package.json)

npm init

Просто введите название проекта, автора, версию и т. Д.

Как только это будет сделано, установите библиотеку Blynk, библиотеку onoff и библиотеку системного сна в каталог ВАШЕГО проекта. Введите в свой терминал следующее

npm установить blynk-library --save

npm install onoff --save

npm install system-sleep - сохранить

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

нано 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 = new Gpio (18, 'out'), // Будет подключен к Arduino D2

commandCW = new Gpio (23, 'out'), // Будет подключен к Arduino D3

commandCCW = новый Gpio (24, 'вне'); // Будет подключен к Arduino D4

var sleep = require ('системный сон');

var v1 = новый blynk. VirtualPin (1); // это ваша кнопка Command1 в приложении

var v2 = новый blynk. VirtualPin (2); // это ваша кнопка CW в приложении

var v3 = новый blynk. VirtualPin (3); // это ваша кнопка CCW в приложении

var v4 = новый blynk. VirtualPin (4); // это первая строка вашего ЖК-дисплея в приложении

var v5 = новый blynk. VirtualPin (5); // это вторая строка вашего ЖК-дисплея в приложении

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

{

if (param == 1) // Если кнопка нажата (это 1), то делаем следующее

{

v4.write («Выполнение»); // Напишите "Выполнение" в первой строке ЖК-дисплея

v5.write («Команда»); // Напишите "Command" во второй строке ЖК-дисплея

command1.writeSync (1); // Устанавливаем GPIO18 (который является переменной command1) на 1 (HIGH)

сон (4000); // Ждем 4 секунды

command1.writeSync (0); // Устанавливаем GPIO18 (который является переменной command1) на 0 (LOW)

v4.write («Готово»); // Напишите "Готово" в первой строке ЖК-дисплея

v5.write (""); // Напишите "" (ничего) во второй строке ЖК-дисплея

v1.write (0); // Записываем 0 на вашу кнопку Command1, что сбросит ее в положение ВЫКЛ.

}

});

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

{

if (param == 1) // Если кнопка нажата (это 1), то делаем следующее

{

commandCW.writeSync (1); // Устанавливаем GPIO23 (который является переменной commandCW) на 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 (который является переменной commandCCW) на 1 (HIGH)

}

else if (param == 0) // Если кнопка не нажата (это 0), то сделаем следующее

{

commandCCW.writeSync (0); // Устанавливаем GPIO24 (который является переменной commandCCW) на 1 (HIGH)

}

});

Сохраните его и выйдите из nano

- сохранить CTRL + O

- выйти CTRL + X

Вы закончили с Raspberry Pi.

Теперь проверьте его, чтобы увидеть, есть ли какие-либо ошибки (чаще всего это ошибки опечатки)

Чтобы проверить это, просто введите в свой терминал следующее:

узел MyProject.js

Вы должны получить такой результат

Режим OnOff

Подключение к: blynk-cloud.com 8441

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

Авторизованный

Шаг 5: MyProject в Arduino

Итак, теперь у нас есть 2/3 работы!

Теперь нам просто нужно написать код для Arduino.

- Создайте новый эскиз Arduino и введите следующий код.

#включают

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

{

pinMode (2, ВХОД);

pinMode (3, ВХОД);

pinMode (4, ВХОД);

// (Библиотека Stepper устанавливает контакты как выходы)

}

пустой цикл ()

{

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; // Повернуть против часовой стрелки на 1/4 оборота

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Вы можете заменить Steps2Take любым значением от 0 до 2048

задержка (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Повернуть на 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

Подключите 5 В постоянного тока к Arduino, Raspberry Pi и шаговому контроллеру

Шаг 7: Вот и все

Посмотрите видео, и все готово!

Спасибо и наслаждайтесь!

Рекомендуемые: