Оглавление:
- Шаг 1. Создание приложения на вашем телефоне
- Шаг 2. Подготовка PI
- Шаг 3: Создание вашего проекта
- Шаг 4: MyProject.js
- Шаг 5: MyProject в Arduino
- Шаг 6: Подключение
- Шаг 7: Вот и все
Видео: Raspberry PI и Arduino - Управление шаговым двигателем Blynk: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Из этого туториала Вы узнаете, как управлять шаговым двигателем с помощью 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: Вот и все
Посмотрите видео, и все готово!
Спасибо и наслаждайтесь!
Рекомендуемые:
Шаговый двигатель, управляемый шаговым двигателем, без микроконтроллера !: 6 шагов
Шаговый двигатель, управляемый шаговым двигателем, без микроконтроллера! В этом кратком руководстве мы создадим простой контроллер шагового двигателя с использованием шагового двигателя. Этот проект не требует сложной схемы или микроконтроллера. Итак, без лишних слов, приступим
Шаговый двигатель, управляемый шаговым двигателем, без микроконтроллера (V2): 9 шагов (с изображениями)
Шаговый двигатель, управляемый шаговым двигателем без микроконтроллера (V2): в одном из моих предыдущих инструкций я показал вам, как управлять шаговым двигателем с помощью шагового двигателя без микроконтроллера. Это был быстрый и увлекательный проект, но он сопровождался двумя проблемами, которые будут решены в этой инструкции. Итак, остроумие
Повторное использование тачпада старого ноутбука для управления шаговым двигателем: 11 шагов (с изображениями)
Повторно используйте тачпад старого ноутбука для управления шаговым двигателем: я сделал этот проект несколько месяцев назад. Несколько дней назад я выложил видео проекта на r / Arduino на Reddit. Видя, что люди проявляют интерес к проекту, я решил сделать это руководство, в котором я внес некоторые изменения в код Arduino и
Модель локомотива с шаговым двигателем - Шаговый двигатель как поворотный энкодер: 11 шагов (с изображениями)
Модель локомотива с шаговым двигателем | Шаговый двигатель как поворотный энкодер: в одной из предыдущих инструкций мы узнали, как использовать шаговый двигатель в качестве поворотного энкодера. В этом проекте мы теперь будем использовать этот шаговый двигатель с поворотным энкодером для управления модельным локомотивом с помощью микроконтроллера Arduino. Итак, без фу
Шаговый двигатель, управляемый шаговым двигателем - Шаговый двигатель как поворотный энкодер: 11 шагов (с изображениями)
Шаговый двигатель, управляемый шаговым двигателем | Шаговый двигатель как поворотный энкодер: у вас есть пара шаговых двигателей, и вы хотите что-то сделать? В этом руководстве давайте использовать шаговый двигатель в качестве поворотного энкодера для управления положением другого шагового двигателя с помощью микроконтроллера Arduino. Итак, без лишних слов, давайте