Танк с управлением через Blynk

Подготовка Arduino IDE и прошивка

  1. Загружаем и устанавливаем Arduino IDE.
  2. Распаковываем скачанное в папку с библиотеками Arduino IDE (обычно это C:\Users\<Текущий пользователь>\Documents\Arduino\).
  3. Копируем полученный код в Arduino IDE.
  4. В примере вводим фактическое название нашей WiFi-сети и пароль.

В примере также присутствует функция вида:

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable

  // process received value
}

Здесь:

  • BLYNK_WRITE(V1) указывает, что функция выполнится при изменении виртуального пина 1,
  • int pinValue = param.asInt(); объявляет переменную pinValue и загружает в неё текущее состояние виртуального пина (0 — пин выключен, 1 — пин включен).

Всего можно использовать 256 виртуальных пинов (V0-V255) — это огромный запас на все случаи жизни. Например, виртуальный пин 1 принимает значение 1 — подаём питание на физический пин NodeMcu и включаем этим реле, или виртуальный пин 2 принимает значение от 0 до 255 — изменяем ШИМ-сигнал, регулируем яркость (либо цвета RGB) диодной подсветки в 255 градациях яркости.

А теперь заставим нашу функцию включать физический пин D4 NodeMcu (в функции будем использовать событие виртуального пина 0, просто для удобства):

BLYNK_WRITE(V0)
{
  int pinValue = param.asInt();
  digitalWrite('''D4''', pinValue);
}

Чтобы управлять этим выводом, в основной функции void setup() обязательно установим пин D4 как выход: pinMode(D4, OUTPUT);

В итоге получаем такой код для прошивки:

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "Мой токен"; //тут токен из e-mail

char ssid[] = "YourNetworkName"; //Название WiFi-сети
char pass[] = "YourPassword"; //Пароль

BLYNK_WRITE(V0) //функция, отслеживающая изменение виртуального пина 0
{
  int pinValue = param.asInt(); //переменная текущего состояния виртуального пина
  digitalWrite(D4, pinValue); //задаем значение на физическом пине NodeMcu D4 равное значению виртуального пина 0
}

void setup() //основная функция, выполняется один раз при подаче питания на микроконтроллер
{
  Serial.begin(9600); //открываем серийный порт, чтобы видеть как проходит подключение к серверу blynk
  pinMode(D4, OUTPUT); //объявляем D4 "выходным" пином
  Blynk.begin(auth, ssid, pass); //авторизируемся на сервере
}

void loop() //основная функция, которая выполняется постоянно по кругу
{
  Blynk.run(); //запускаем работу blynk. В этом примере - постоянную проверку виртуального пина 0
}

Заливаем прошивку в NodeMcu.

 Так как пример предполагает использование различных плат, то пропустим тонкости настройки Arduino IDE для работы с NodeMcu; к тому же подобную информацию найти нетрудно. 

Наш выключатель готов к работе!

Также данную схему можно использовать и для включения ПК (имитации нажатия кнопки включения). Для этого параллельно пинам кнопки Power (на материнской плате пины POWER SW) нужно подключить линии L и L1 (указанные на схеме !!!НЕ 220В!!!) и немного изменить скрипт, чтобы при изменении виртуального пина реле включалось на короткий промежуток времени, имитируя короткое нажатие.

В скрипте, в блоке:

BLYNK_WRITE(V0) //функция, отслеживающая изменение виртуального пина 0
{
  int pinValue = param.asInt(); //переменная текущего состояния виртуального пина
  if (pinValue = 0){        
     digitalWrite(D4, HIGH); //если работает неверно, то изменить на digitalWrite(D4, LOW); а ниже наоборот
     delay (100); // если задержка мала, можно увеличить
     digitalWrite(D4, LOW); //ДА-ДА, ИМЕННО ТУТ НИЖЕ. Если работает неверно, то изменить на digitalWrite(D4, HIGH);
  }
}

мы добавили задержку delay (100); в 100 мс и выключили после нее физический пин D4 — digitalWrite(D4, LOW);

Шаг 1: Инструменты и материалы

Танк с управлением через Blynk

В этом проекте были использованы следующие инструменты:

  • Припой железо и проволока. Двигатели постоянного тока уже поставлялись с проводами, припаянными к его клеммам … Но в конечном итоге он сломается, и вам, возможно, придется его перепаять. Так что подумайте о наличии хорошего припоя и проволоки.
  • Лист пены EVA (или другой непроводящий материал). Шасси робота, которое я использовал в этом проекте, сделано из алюминия, и на этой металлической части установлены монтажные платы. Я использовал слой листа пены между досками и металлической пластиной, чтобы избежать возможных коротких замыканий.
  • Двухсторонний скотч. Он использовался для приклеивания листов пенопласта к печатным платам, а также для монтажа модуля H-Bridge.
  • Ножницы, для резки некоторых прямоугольников из пенопласта.

Я использовал следующие части оборудования для моего проекта:

  • Wemos D1 ESP8266 Dev Board (ссылка / ссылка). Плата Wemos D1 действительно проста в использовании и программируется с помощью Arduino IDE. Он имеет такой же след и обычный Arduino Uno! Таким образом, большая часть щита Arduino также будет работать с этой доской. Он имеет встроенный модуль Wi-Fi, так что вы можете использовать его в различных проектах. Вы также можете использовать другие платы на основе ESP8266 (ссылка / ссылка).
  • Двухканальный модуль H-моста L298N (ссылка / ссылка). Этот модуль позволяет усилить 3,3 В сигналы от Wemos (или Arduino) до 12 В, необходимых для двигателей.
  • Сделай сам робот шасси танк (ссылка на сайт). Этот удивительный комплект содержит все необходимое для сборки бака: два двигателя постоянного тока, шестерни, гусеницы, болты, гайки и т. Д. Он уже поставляется с инструментами, необходимыми для сборки шасси, что отлично подходит для начинающих!
  • 18650 3,7 В батареи (х3) (ссылка на сайт). Я использовал для питания всей цепи. В этом баке используются моторы 12 В. Я использовал три батареи 3,7 В последовательно для их питания.
  • 3S 18650 держатель батареи (ссылка на сайт). Он может вместить три 18650 батарей в серии, и его можно легко прикрепить к задней части бака.
  • 18650 зарядное устройство (ссылка на сайт). Ваши батареи со временем разряжаются. Когда это произойдет, зарядное устройство батареи придет вам на помощь.
  • Перемычки (ссылка на сайт). Я использовал 6 перемычек между мужчинами и женщинами для сигналов между h-мостом и Wemos, и 2 перемычки между мужчинами и мужчинами для 5V и Gnd. Вам может понадобиться больше, если вы планируете добавить несколько датчиков.
  • Микро USB-кабель, Это понадобится вам для загрузки вашего кода. Большинство плат уже поставляется с собственным кабелем.

Program the ESP8266 or ESP32 with Blynk Examples

Танк с управлением через Blynk

How to install the new Blynk Library for Arduino IDE?

In Arduino IDE go to Sketch — Include Library — Manage Libraries to open the Library manager. Then search for Blynk in the search box. Then click on Install to install the Blynk Library (Current version 1.0.0-beta.3). After that, you can access all the Blynk Edgent examples code for ESP8266 and ESP32 from File — Examples — Blynk — Blynk.Edgent path.Or you can also visit the Blynk GitHub Page to download the latest Blynk Library and install it from Sketch — Include Library — Add .ZIP Library path in Arduino IDE.

Blynk Example for ESP8266 and ESP32

Танк с управлением через Blynk

For any projects, in the new Blynk IoT platform, you will get all these files along with the .ino file (total 10 files). You have to keep all these files in the same folder.

Now open the .ino file in Arduino IDE.

In the code, you just have to update the BLYNK_TEMPLATE_ID and BLYNK_DEVICE_NAME.

Танк с управлением через Blynk

How to get the BLYNK TEMPLATE ID and BLYNK DEVICE NAME

Go to your Blynk IoT Cloud account and select the template. In the template go to the Info tab. On the right side, you will find the BLYNK_TEMPLATE_ID and BLYNK_DEVICE_NAME for that template. Click on “Click to copy code”, then go to Arduino IDE and paste it into the code.

Танк с управлением через Blynk

Now you can upload the code to ESP8266 or ESP32. You don’t have to hard code the Wi-Fi credentials in the code.

After uploading the code, you have to update the Wi-Fi credentials through OTA.

Then you can control the ESP8266 or ESP32 from Blynk IoT App and Web Dashboard from anywhere in the world.

If you face any issues you can always let us know and please share your feedback with us.

Arduino танк с bluetooth управлением — программа для планшета или смартфона.

Как и в предыдущей модели мы будем использовать программу для android-устройств под названием HmiKaskada. Выкладываю бесплатную версию этой программы, скачать которую можно с ЯндексДиска. Мой проект выполнен в платной версии и он не совместим с фрее-версией программы. Так что дальнейший материал посвящен созданию проекта в фрее-версии.

Популярные статьи  Новогодние поделки из гофрированной бумаги: украшаем дом своими руками

Интерфейс управления

В готовом проекте на планшете присутствует еще индикатор уровня заряда батареи, а это — подложка для проекта. Итак, приступим…

Для начала создадим проект с одним рабочим экраном, нам больше не понадобится. Далее подключим наш модуль блютуз к планшету. Для этого переходим в редактирование списка серверов и жмем плюс в правом верхнем углу. Выбираем из списка наш bluetooth и даем ему имя. Теперь он настроен и готов к работе. Следующий шаг это установка подложки для рабочей области. Для этого идем в меню «прочее — фон» основной рабочей области и загружаем картинку интерфейса. Можете использовать мою или создать свое изображение. На самом деле работать будет и без настройки фона, он только для красоты.

Теперь приступим к размещению органов управления. Идем в меню «задатчики» и перетягиваем кнопку в рабочую область. В меню кнопки кликаем на адрес и вводим например 1#0.12. Где 1 — адрес платы ардуино, а 12 — адрес переменной из проекта. Переменные использованные в проекте можно посмотреть в дереве проектов.

Список адресов флагов

Используются адреса в диапазоне 0-16. Далее подгоняете размер кнопки бод рабочую область и делаете кнопку прозрачной. Это позволит при запуске проекта лицезреть красивую кнопку подложки.

С настройкой индикатора заряда аккумулятора точно так же. Создаем регистр хранения в формате Integer в проекте ардуино и присваиваем индикатору его адрес. Например 1#10, настраиваете индикатор на свой вкус.

Когда все органы управления созданы, настроены и расположены по своим местам кликаем на запуск проекта. Андроид подключится к танку, и вы сможете насладиться проделанной работой.

Конфигурация

Blynk.begin()

Самый простой способ настроить Blynk — это использовать функцию :

Blynk.begin(auth, ...);

Она имеет несколько параметров для разных моделей оборудования, а также зависит от типа подключения. Следуйте примеру скетча для вашей конкретной аппаратной модели.

Что происходит внутри функции :

  1. Подключение к сети (WiFi, Ethernet, …)
  2. Вызов для установки токена авторизации, адреса сервера и т.д.
  3. Пытается сразу подключиться к серверу (может продлится в течении 30 сек)

Если ваш тип платы/подключения пока не поддерживается — вы можете реализовать его самостоятельно. https://github.com/blynkkk/blynk-library/tree/master/examples/More/ArduinoClient).

Blynk.config()

позволяет управлять сетевым подключением. Вы можете настроить тип подключения (WiFi, Ethernet, …) самостоятельно, а затем соединиться:

Blynk.config(auth, server, port);

или так

Blynk.config(auth);

ПРИМЕЧАНИЕ. После вызова ваше оборудование еще не подключено к серверу.
Попытка покдлючение произойдет при выполнении программой первой функции или . Чтобы пропустить подключение к серверу или отключить его вручную, вызовите после функции конфигурации.

Используйте чтобы удобно настроить WiFi соединение:

Blynk.connectWiFi(ssid, pass);

Чтобы подключиться к открытой сети WiFi, укажите пустую строку ().

Изменения в приложение и эскизе

  • Изменить тип вашего проводного подключения к интернету с

    на

    или на

  • Измените ваше WiFi подключения с

    на

    или на

  • Изменить ваш Raspberry Pi Javascript c

    на

  • или в случае USB при запуске blynk-ser.sh предоставить опцию «-s» с адресом вашего локального сервера

./blynk-ser.sh -s you_host_or_IP

ВАЖНО
Блинк постоянно развивается. Мобильные приложения и сервер часто обновляются

Чтобы избежать проблем во время обновлений, отключите автоматическое обновление для приложения Blynk или одновременно обновите локальный сервер и приложение blynk, чтобы избежать возможных проблем с миграцией.

ВАЖНО
Локальный сервер Blynk отличается от сервера Blynk Cloud. Они не связаны вообще

Вы должны создать новую учетную запись при использовании локального сервера Blynk.

Шаг 2: Сборка робота

Первой частью этого проекта была сборка конструкции робота.

www.instructables.com/id/WiDC-Wi-Fi-Controlled-FPV-Robot-with-Arduino-ESP82/

Сначала казалось, что сборка будет сложной или что я столкнусь с такими проблемами, как нехватка деталей (учитывая количество деталей, из которых состоит комплект). Но этот комплект действительно удивил меня! Все части кажутся мне хорошего качества, и несколько комплектующих сопровождали комплект. Таким образом, винт, потерянный под верстаком, не сделает невозможным выполнение вашего проекта, который я считаю превосходным (особенно после потери пары винтов).

Еще одним положительным моментом является то, что все инструменты, необходимые для установки робота, включены в комплект (пара гаечных ключей и отвертка). Я считаю, что это делает набор отличным для начинающих, у которых не так много инструментов!

В качестве негативного аспекта я бы выделил отсутствие документации. Руководство по сборке робота (файл электронной таблицы на китайском языке) не очень удобно для пользователя, и для этого танка в Интернете не так много учебников. И поэтому я решил задокументировать процесс сборки своего робота в видео выше! Еще один момент внимания касается материала конструкции робота. Основание полностью изготовлено из алюминия, что может вызвать короткое замыкание, если контакты печатных плат касаются рамы.

Есть и другие онлайн-комплекты, которые вы можете использовать. Вы даже можете создать свою собственную структуру, как я описал ниже.

Шаг 4. Настройка платы ESP8266 в Arduino IDE

Для этого проекта я использовал Arduino IDE для программирования моего Wemos. Это более простой способ, если вы уже использовали Arduino ранее, и вам не нужно изучать новый язык программирования, например, Python или Lua.

Если вы никогда не делали этого раньше, сначала вам нужно добавить поддержку платы ESP8266 в программное обеспечение Arduino.

1. Загрузите и установите последнюю версию Arduino IDE

Вы можете найти последнюю версию для Windows, Linux или MAC OSX на веб-сайте Arduino:

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

2. Добавление платы ESP8266

Arduino IDE уже поставляется с поддержкой множества различных плат: Arduino Nano, Mine, Uno, Mega, Yún и т. Д. К сожалению, ESP8266 по умолчанию не входит в число поддерживаемых плат разработки. Поэтому, чтобы загрузить свои коды на базовую плату ESP8266, вам сначала нужно добавить ее свойства в программное обеспечение Arduino.

  • Перейдите к Файл> Настройки (Ctrl +, в ОС Windows);
  • Добавьте следующий URL в текстовое поле «Диспетчер дополнительных досок» (тот, что находится внизу окна «Настройки»):

arduino.esp8266.com/stable/package_esp8266com_index.json

  • Если текстовое поле не было пустым, это означает, что ранее уже добавлялись другие доски в Arduino IDE. Добавьте запятую в конце предыдущего URL и выше.
  • Нажмите кнопку «ОК» и закройте окно настроек.
  • Перейдите для Инструменты> Доска> Менеджер досок для добавления вашей платы ESP8266.
  • Введите «ESP8266» в текстовое поле поиска, выберите «esp8266 by ESP8266 Community» и установите его.

Теперь ваша Arduino IDE будет готова к работе со многими платами разработки на основе ESP8266, такими как ESP8266, NodeMcu (который я использовал в этом руководстве), Adafruit Huzzah, Sparkfun Thing, WeMos и т. Д.

3. Добавление библиотек

В этом проекте я использовал библиотеку Blynk.

Библиотека Blynk должна быть установлена ​​вручную. Загрузите библиотеку Blynk по адресу http://github.com/blynkkk/blynk-library/releases/tag/v0.5.0. Разархивируйте файл и скопируйте папки в папки библиотек / инструментов IDE Arduino.

Структура вашей папки your_sketchbook_folder теперь должна выглядеть следующим образом:

…………

Теперь, когда ваша среда разработки готова, давайте перейдем к следующему шагу!

Кнопки и светодиодный индикатор на плате

На плате ESP8266 NodeMCU находятся две кнопки. Одна из них, помеченная как RST, расположенная в верхнем левом углу, представляет собой кнопку сброса, которая, конечно же, используется для сброса микросхемы ESP8266. Другая кнопка, FLASH, в левом нижнем углу – это кнопка загрузки, используемая при обновлении прошивки.

Кнопки и индикаторы

  • RST – сброс чипа ESP8266
  • FLASH – загрузка новой программы
  • Синий светодиод — программируется пользователем

Танк с управлением через BlynkРисунок 4 – Кнопки и светодиоды на плате ESP8266 NodeMCU

На плате также имеется светодиодный индикатор, который программируется пользователем и подключен к выводу D0 платы.

Быстрая настройка с NodeMCU

Этот первый пример показывает, как быстро настроить простые системы с помощью Blynk. Не требует кодирования, и после установки он полностью автономен. Пока на плате есть доступ к вашему Wi-Fi соединению, вы можете получить к нему доступ из любого места, используя свой смартфон.

Для начала настройте простую схему на макете. Соединительный штифт Д0 к положительной ветви светодиода и обратно к выводу GND через резистор 220 Ом.

Танк с управлением через Blynk

Откройте свой проект NodeMCU в приложении Blynk. На правой стороне выберите кнопка виджет из меню. Нажмите кнопку в своем проекте, чтобы открыть меню свойств. Здесь вы можете назвать его и выбрать, какой вывод на вашей плате NodeMCU он должен затронуть. Выбрать контакт D0 из списка выходов, и переключите режим, чтобы сделать его включением и выключением, а не кратковременным нажимным переключателем.

Нажмите «Назад» (все изменения сохраняются автоматически), затем нажмите значок воспроизведения в правом верхнем углу, чтобы запустить приложение. Вы можете нажать эту же кнопку в любое время, чтобы вернуться к редактированию вашего проекта.

Популярные статьи  Три простые поделки для дома

Затем откройте Arduino IDE и выберите вашу плату NodeMCU и порт из меню инструментов. Если вы не видите свою плату в этом меню, вам может потребоваться установить библиотеки ESP8266 (это руководство должно помочь

).

Теперь откройте автономный скрипт ESP8266, предоставленный Blynk в их библиотеке, перейдя к Файл> Примеры> Blynk> Boards_WiFi> ESP8266_Standalone. Замените местозаполнитель токена авторизации на тот, который вы получили по электронной почте, и введите свои данные Wi-Fi.

Сохраните эскиз под новым именем и загрузите его на свою доску. Теперь, когда вы нажимаете кнопку в приложении, светодиод должен включаться и выключаться. Если он не работает, проверьте, что вы нажали значок воспроизведения в приложении.

В простых случаях, подобных этим, Blynk невероятно быстр в настройке.

Танк с управлением через Blynk

Стоит также отметить, что, поскольку здесь используется сервер Blynk, вы можете управлять своей платой из любого места, если у платы есть доступ к домашнему Wi-Fi-соединению, а у вашего смартфона есть мобильный доступ к данным.

Требования к питанию

Поскольку диапазон рабочего напряжения ESP8266 составляет от 3 В до 3,6 В, данная плата для поддержания постоянного напряжения на уровне 3,3 В поставляется с LDO стабилизатором напряжения. Он может надежно обеспечивать ток до 600 мА, чего должно быть более чем достаточно, поскольку ESP8266 во время радиочастотных передач потребляет до 80 мА. Выход стабилизатора также выводится на выводы на сторонах платы и обозначен как 3V3. Эти выводы можно использовать для подачи питания на внешние компоненты.

Требования к питанию

  • Рабочее напряжение: от 2,5 до 3,6 В
  • Встроенный стабилизатор: 3,3 В, 600 мА
  • Рабочий ток: 80 мА
  • Потребление в спящем режиме: 20 мкА

Танк с управлением через BlynkРисунок 2 – Элементы питания ESP8266 NodeMCU

Питание к ESP8266 NodeMCU подается через встроенный USB-разъем MicroB. В качестве альтернативы, если у вас есть стабилизированный источник напряжения 5 В, можно использовать вывод VIN для непосредственного питания ESP8266 и его периферии.

Предупреждение

ESP8266 требует 3,3 В для питания и логические уровни 3,3 В для связи. Контакты GPIO не допускают напряжение 5 В! Если вы хотите соединить плату со схемами 5 В (или выше), то необходимо реализовать согласование логических уровней.

Как мы собрали $50 000 на Kickstarter

Мы оба работали фул-тайм, поэтому занимались проектом в свободное время. Без должного внимания в один момент наш pet-проект оказался на грани закрытия. Чтобы расставить все точки над «і» и узнать, будет ли это кому-нибудь интересно, мы запустили Blynk на Kickstarter. И понеслось! Подготовка к запуску краудфанд-кампании заняла еще год и стоила $500, $300 из которых ушло на аренду оборудования для съемки видео. Сценарий, съемку, монтаж, звук, посадочную страницу и прочее я делал сам, поэтому удалось сэкономить. Видео снимали в Киеве, потом доснимали в Штатах.

Мы разослали сотни писем во все редакции, блоги, издания, но не получили ни одного положительного ответа. Было страшно, но тянуть мы уже не могли и запустили кампанию как есть.

Танк с управлением через Blynk

Охладитель постели CamaCooler. Продукт Blynk

рекомендации

13 дискуссий

3 месяца назад

Здравствуйте, Я выполнил те же процедуры, что и в вашем уроке, но в коде есть ошибки. Я также установил файлы библиотеки. Пожалуйста, помогите мне за то же самое.

Мне нужно немного больше ясности в знании того, какую плату выбрать при компиляции.

Спасибо.

Вопрос 7 месяцев назад

Привет, Я просто хотел знать, можно ли управлять этим роботом откуда угодно или есть ли некоторый диапазон (минимум / максимум) для его управления?

Спасибо:)

Ответить 7 месяцев назад

Всем привет! Им можно управлять из любого места, если оно подключено к определенной сети Wi-Fi. Команды отправляются со смартфона на сервер приложений Blynk, а с сервера на робота.

Вопрос 11 месяцев назад на Шаге 11

Как долго длится заряд батареи при нормальной работе робота?

Ответить 11 месяцев назад

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

Это будет зависеть от нескольких переменных: качество батарей, скорость двигателей, уровень сигнала WiFi. Я постараюсь измерить это и отправлю тебе позже.

Ответить 10 месяцев назад

Это хорошая идея, чтобы добавить индикатор батареи (вроде ALI $ 0,99) или даже подключиться к blynk!

Ответить 10 месяцев назад

Всем привет! Да, было бы очень полезно добавить индикатор напряжения в приложение Blynk. Таким образом, «пилот» будет иметь представление о том, сколько батареи осталось. Спасибо за ваше предложение!: D

Вопрос 10 месяцев назад

я сделал это !

и у меня есть три вопроса..

1-подключен к blynk через интернет — иногда это отстает

2-светодиодный на L298N мигает на танке движется. это или хорошо — или что-то не так? что я могу проверить? Иногда также похоже, что он перезагружается. Один раз в 5 минут, но это происходит только при ускорении.

3-это определенно разница в скорости движения гусениц. левый движется медленнее. но очень маленький. он даже выглядит так, что он тормозит (тормозит) сильнее. поэтому, когда вы двигаетесь вперед, робот немного поворачивает влево, он не едет прямо вперед.

у меня есть двигатели 9v с датчиками Холла (не подключены).

Ответить 10 месяцев назад

По поводу ваших вопросов:

1 — Связь между роботом и Blynk может иногда быть медленной. Это также зависит от качества соединения и расстояния между вашим Wemos, смартфоном и маршрутизатором Wi-Fi. Как только данные перемещаются далеко (смартфон -> сервер Blynk -> Wemos -> моторы), вы можете заметить некоторые лаги.

2 — Я полагаю, что это может быть вызвано некоторыми ограничениями батарей, которые вы используете. В зависимости от батарей, он не сможет обеспечить достаточный ток для работы двигателей. Это может привести к падению напряжения и отключению электроники.

3 — Робот, представленный в этом проекте, работает по открытой петле. Таким образом, микроконтроллер не знает скорости каждого двигателя и предполагает, что они оба работают с одинаковой скоростью. Обычно это не так. Каждый двигатель имеет свои характеристики и может работать на разных скоростях при одном и том же приложенном напряжении.

Есть два способа преодолеть это: вы можете немного уменьшить напряжение одного из двигателей по сравнению с другим (использовать аналоговый (ШИМ) выход) и попытаться заставить их работать примерно с одинаковой скоростью. Это не будет идеально, но это более простое решение. Или вы можете использовать замкнутую систему. Для этого микроконтроллер должен иметь возможность считывать скорость каждого двигателя и рассчитывать управляющий сигнал (сигнал ШИМ) для каждого двигателя.

Я надеюсь, что это помогает!: D

11 месяцев назад

Роботы уже контролируют нас по Wi-Fi. Сладкий вкус мести:)

Ответить 10 месяцев назад

Лол!: D

По крайней мере, они позволяют нам думать, что мы находимся на контроле!

11 месяцев назад

Как раз то, что я ищу …

Спасибо — отличная работа

Ответить 11 месяцев назад

Arduino танк с bluetooth управлением — сборка.

Сборка поделки отняла часа два моего времени, но результат превзошел все ожидания. Танк получился довольно шустрый, откликается на команды моментально. Пришлось повозиться с редуктором, приводящим в движение гусеницы танка. Он рассыпался, но к моему счастью шестеренки не повредились и немного клея, солидола и прямые руки вернули его в строй. Штатный аккумулятор пришлось заменить на два, подключенных последовательно, li-ion аккумулятора формата 18650 в холдере. Итоговое питающее напряжение получилось равно 6 — 8,4 вольта, в зависимости от уровня заряда батарей. Так же пришлось заменить моторчик, приводящий в движение башню, он был закорочен.

Заменил диоды на фарах моей игрушки. Желтые слаботочные абсолютно не радовали и были перепаяны на яркие белые из зажигалок с фонариками    . Теперь этим гусеничным чудом комфортно управлять даже в полной темноте. Фото до и после:

Уныло

Прекрасно )

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

Вот такая получилась «начинка»

Что было в начале

Изначально проект был реализован на дикой связке Arduino Nano + ESP8266, но ESP не как шилд, а как отдельное устройство. Почему так? Да потому что это всё у меня уже было, а денег не было от слова совсем, поэтому покупать новое железо не хотелось принципиально. Почему ESP не как шилд? Сейчас уже даже и не вспомню.

Arduino рулила всеми процессами, потому что имела необходимое количество GPIO, а ESP отправляла все данные на сервер Blynk, потому что умела в интернет и не имела достаточно GPIO. Соединялись они собой через UART, и пересылали JSON с данными друг другу. Схема необычная, но проработала год почти без нареканий. Кому интересно могут посмотреть кодок.

Сразу оговорюсь, программировать я тогда не сильно умел (да и сейчас хотелось бы лучше), поэтому беременным и детям лучше не смотреть. К тому же писалось всё в Arduino IDE, не к ночи будет помянута, что сильно ограничивало в плане рефакторинга, очень уж там всё примитивно.

Популярные статьи  Коптильня из газового баллона — лучший мастер-класс по изготовлению самодельной коптильни с пошаговыми фото-схемами для начинающих

Платформы разработки для ESP8266

Теперь перейдем к интересным вещам!

Существует множество платформ разработки, которые могут быть оснащены для программирования ESP8266. Вы можете использовать Espruino – JavaScript SDK и прошивка, эмулирующая Node.js, или использовать Mongoose OS – операционную систему для устройств IoT (рекомендуемая платформа от Espressif Systems и Google Cloud IoT), или использовать комплект разработки программного обеспечения (SDK), предоставляемый Espressif. или любую из платформ, перечисленных на .

К счастью, крутое сообщество ESP8266 сделало выбор IDE на шаг вперед, создав дополнение к Arduino IDE. Если вы только начинаете программировать для ESP8266, мы рекомендуем начать с этой среды разработки, и ее мы опишем в данном руководстве.

Это дополнение ESP8266 для Arduino IDE основано на работе Ивана Грохоткова и остальной части сообщества ESP8266. Для получения дополнительной информации смотрите репозиторий GitHub ESP8266 Arduino.

Сервер Блынк

После того, как вы создали приложение для управления вашим устройством, у вас есть два варианта связи с ним.

Облачный сервер Blynk быстрый, отзывчивый и бесплатный в использовании. Подключиться к устройству Wi-Fi так же просто, как скопировать сгенерированный код авторизации в эскиз Arduino и предоставить свои данные Wi-Fi. Для Raspberry Pi Blynk предоставляет тестовый скрипт, который вы можете запустить с вашим кодом авторизации для того же эффекта. Позже в этой статье мы создадим наш собственный скрипт, использующий библиотеку Blynk для подключения к сервису.

Второй вариант — сервер Blynk. Blynk предоставляет Java-сервер с открытым исходным кодом на базе Netty, который можно запустить с вашего компьютера или даже Raspberry Pi. Это имеет различные преимущества для некоторых пользователей с точки зрения функциональности и безопасности, хотя для наших примеров здесь мы сосредоточимся на использовании предоставленного облачного сервера Blynk.

Танк с управлением через Blynk

Управление соединением

Есть несколько функций, которые помогут с управлением соединением:

Blynk.connect()

Эта функция будет продолжать попытки подключиться к серверу Blynk.
Возвращает при подключении, , если истекло время ожидания.
Время ожидания по умолчанию составляет 30 секунд.

bool result = Blynk.connect();
bool result = Blynk.connect(timeout);

Отключает оборудование от сервера Blynk:

Blynk.disconnect();

Blynk.connected()

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

bool result = Blynk.connected();

Blynk.run()

Эта функция должна вызываться часто, чтобы обрабатывать входящие команды и выполнять поддреживать соединения с Сервером Blynk.
Обычно вызывается в цикле .

Эта команда может быть инициирована в других местах вашего кода, если только у вас не заканчивается памяти (в каскадных функциях с локальной памятью).
Например, не рекомендуется вызывать внутри и на устройствах с маленькой оперативной памятью.

Create Datastreams in the Blynk IoT template

Танк с управлением через Blynk

After creating the template, go to Datastreams tab.

Then click on “New Datastream” and select Virtual Pin.

Танк с управлением через Blynk

Now, you have to enter a name for this Datastream.

Select the Virtual Pin and Datatype from the dropdown menu as per the requirement.Here I will control a relay, so I have selected Integer, For the Temparetute you have to select Double datatype and related UNIT.

You can also set the MAX, MIN, and default value for the datastream.

After that click on Create.

Танк с управлением через Blynk

In a similar way, you can add multiple Datastreams as per your requirement. Here I have created 4 Datastreams with Virtual Pin V1, V2, V3, and V4 to control 4 relays.

Важный нюанс по управлению через 0 и 1

Модули управления нагрузкой бывают двух видов. Привычнее воспринимается, когда реле включается при логической «1» на входе, но часто бывает и наоборот.

Причин управления через ноль несколько:
1. Меньше вероятность ситуаций с кратковременными переключениями выходов при старте и инициализации процессора (при pullup-подтяжках они вообще исключены).
2. Выше помехозащищённость (так как диапазон для «1» в общем случае пошире, чем у «0»), выше стабильность для ситуаций с устройствами с разными логическими амплитудами.
4. Подтяжка — это всегда дополнительные детали (внутренние или в обвесе), а «0» — это всегда просто земля.
3. И вроде можно даже как-то чуть-чуть сэкономить энергопотребление, но это не точно(с).

Если вам попался модуль с управлением по активному нолю, то при установке пина в «1», реле будет обесточено, а когда «0» — включено.
Самое простое в этой ситуации — инвертировать выход относительно входа. Есть два варианта:

  • В коде строку digitalWrite(D4, pinValue); поменять на digitalWrite(D4, !pinValue);
  • В приложении Blynk поменять местами «0» и «1» в настройках кнопки.

Есть и третий вариант: перекинуть L1 с контакта NO («нормально разъединён») на контакт NC («нормально замкнут»). В этом варианте (впрочем, как и остальных) желательно исходить из того режима, в котором реле большее количество времени будет обесточено.

Примеры:

  1. Кратковременно включающийся вентилятор (свет). Лучше подключить L1 к «NO».
  2. ненадолго отключающийся компрессор в аквариуме, нагреватель, итд. В этом случае лучше подключить нагрузку на «NC», тогда напряжение будет поступать на нагрузку при обесточенном реле.

После выбора контактов реле при необходимости корректируем управляющий уровень в коде.

Шаг 3: Подключение по схеме (Wemos D1)

Танк с управлением через Blynk

В видео выше я покажу вам, как вы можете собрать электронику в структуре робота.

Блок питания, состоящий из трех 18650 батарей, был установлен на задней части робота. Он обеспечивает 11,1 В (3 х 3,7 В) для робота. Этого достаточно для питания двигателей 12 В постоянного тока.

Для управления двигателями использовался двухканальный H-мост L298N. Он получает около 3,3 В сигналов от платы Wemos и обеспечивает более высокое напряжение для двигателей. Это также позволяет двигателям работать в обоих направлениях, в зависимости от комбинации этих входных сигналов.

Каждое устройство было подключено согласно схеме.

Далее следует список контактов, которые вам нужно подключить:

Wemos D1 входы / выходы:

  • Цифровой контакт D3 (GPIO5) => H-Bridge ENB контакт
  • Цифровой контакт D4 (GPIO4) => H-Bridge IN4 контакт
  • Цифровой вывод D5 (GPIO14) => H-Bridge IN3 вывод
  • Цифровой контакт D6 (GPIO12) => H-Bridge IN2 контакт
  • Цифровой контакт D7 (GPIO13) => H-Bridge IN1 контакт
  • Цифровой контакт D8 (GPIO0) => H-Bridge ENA контакт
  • 5V контакт => H-Bridge 5V контакт
  • Gnd pin => H-bridge Gnd pin

Входы / выходы H-Bridge:

  • ENB pin => Wemos D3 pin
  • IN4 pin => Wemos D4 pin
  • IN3 pin => Wemos D5 pin
  • Контакт IN2 => Контакт Wemos D6
  • Контакт IN1 => Контакт Wemos D7
  • ENA pin => Wemos D8 pin
  • 5V контакт => Wemos 5V контакт
  • Gnd pin => Wemos Gnd pin
  • Gnd pin => Отрицательный провод аккумуляторной батареи
  • Контакт 12V => положительный провод аккумуляторной батареи
  • OUT1 => Отрицательный провод правого двигателя
  • OUT2 => Правый положительный провод двигателя
  • OUT3 => Левый положительный провод двигателя
  • OUT4 => Левый отрицательный провод двигателя

Добавить кнопку

Для трех вышеуказанных шагов, пожалуйста, обратитесь к предыдущему посту. Подробности, описанные в предыдущем посте, здесь не повторяются.

  • Интернет вещей-wemos D1 Mini (esp8266) Эксперимент 5-Система определения влажности почвы и дистанционного полива в сотрудничестве с Blynk
  • Интернет вещей-wemos D1 Mini (esp8266) Experiment 6 — Супер простой код из двух предложений для удаленного управления включением и выключением встроенного светодиода с помощью мобильного приложения Blynk
  • Интернет вещей-wemos D1 Mini (esp8266) Эксперимент 7. Использование библиотеки ESP8266 IRremote для реализации управления кондиционированием воздуха Gree

Подключаемся методом webhooks к Умному дому Яндекса

Кузя

  1. Выбираем кнопку «Добавить правило GET».
  2. Заполняем «по вкусу». Можно похулиганить и дать устройству имя «Розетка Яндекс».
  3. Не забываем в поле «URL управления устройством, доступный из интернета» вставить ссылку на наш вебхук.
  4. Создаём ВТОРОЕ правило GET — одно на включение устройства, второе — на его выключение.
  5. Выбираем кнопку «Виртуальные устройства умного дома» и создаем новое устройство (у меня лучше всего работают «лампы»).
  6. Указываем ранее созданные «Правило на включение» и «Правило на выключение».
  7. Задаем имя устройства и комнату, в которой оно находится.

Приложение «Яндекс»

В приложении «Яндекс» (раздел «Устройства») находим навык «Домовенок Кузя». При первом запуске навык попросит авторизоваться. После авторизации нажимаем единственную кнопку «Обновить список устройств». Готово! После загрузки мы увидим наше устройство в списке.

Осталось сказать «Алиса, включи Розетку Яндекс» и услышать радостное пощелкивание реле.

Оцените статью
( Пока оценок нет )
Добавить комментарий