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

Когда я решил поменять магнитолу в своей машине, я встал перед выбором - потерять штатное управление звуком кнопками на руле, или же покупать специальный (достаточно дорогой) адаптер.
Потом я подумал, почему бы не сделать такой адаптер самому?
Обзор для тех, кто дружит с паяльником.

Сначала суть проблемы.
Во многих машинах есть штатно установленное управление магнитолой на руле. Кнопки эти работают по принципу резистивной клавиатуры, что позволяет передавать сигнал всего по двум проводам.
Например, нажимаем кнопку увеличения громкости - в цепи появляется сопротивление 130 Ом.
Нажимаем уменьшение громкости - появляется сопротивление 240 Ом и т.п.

На многих современных магнитолах также есть возможность подключения проводного пульта дистанционного управления. Но проблема в том, что стандарты у всех производителей автомобилей и автомагнитол разные. Например, у магнитол Pioneer для увеличения громкости надо «подать» сопротивление 16 кОм.

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

Когда я поискал такой адаптер для своей машины, оказалось, что он стоит больше 50$. Учитывая, что сама магнитола мне досталась за какие-то смешные 30-35$, я решил попробовать сколхозить адаптер самостоятельно на ардуине. Готовой схемы на тот момент в интернетете не было, пришлось изобретать самому.

Заранее хочу извиниться за возможные неточности и ошибки - я плохо разбираюсь в электронике. Всю информацию по крупицам собирал из гугля. :)

В своем проекте использовал следующие компоненты:
1. Автомобиль Suzuki Swift
2. Автомагнитола Pioneer MVH-X165UI (купил в оффлайне)
3. Arduino Nano, можно и Mini (купил на ebay за 2.5$)
4. MCP4131, цифровой потенциометр на 100k (купил в оффлайне за 1$, почему-то на ebay они )
5. Резистор 10k
6. Макетная плата
7. Понижающий конвертер ( за 1.5$), чтобы из 12V сделать 5V

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

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

Также в сети обнаружилась следующая схема проводного пульта для магнитолы Pioneer (используется 3.5mm штеккер):

Кнопок Preset Up/Down у меня на руле нет, поэтому я использовал только два контакта на штеккере - Tip и Sleeve.

Т.к. диапазон требуемых магнитоле сопротивлений от 1К до 62К, то я купил микросхему MCP4131 - это цифровой потенциометр на 100К с 129 шагами регулировки. 129 шагов достаточно, т.к. нам не нужна супер точность, магнитола понимает сопротивления с разбросом где-то в 10-20%.
Ну и не обязательно покупать именно MCP4131, думаю, подойдет любой другой digipot с подобными характеристиками.

В интернете есть инструкции по использованию цифрового потенциометра с ардуиной, мне понравилось , очень подробно и доступно.

Я не буду объяснять азы работы с ардуиной, есть куча других специализированных ресурсов, где гораздо лучше все описано.

Схема подключения получилась такая:

Сопротивление измеряется на пине A5 с помощью делителя напряжения с резистором 10К.

Потенциометр подключен по следующей схеме:

4, 7 - GND
8 - +5V
1 - arduino pin 4 (можно выбрать другой)
2 - arduino pin 13
3 - arduino pin 11
6 - к магнитоле, контакт «Tip» на штеккере

Скетч под спойлером

#include // библиотека SPI должна быть в стандартном софте, ну или её можно скачать. // Коды имеющихся на руле кнопок const int VOL_UP=1; const int VOL_DN=2; const int PREV_TR=3; const int NEXT_TR=4; const int MODE=5; const int MUTE=6; int csPin=4; // CS на цифровом потенциометре int wheelPin=A5; // аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки int i=0; int prevButton=0; void setup() { pinMode(csPin, OUTPUT); delay(50); SPI.begin(); delay(50); SPI.transfer(0); // команда SPI.transfer(0); // значение pinMode(wheelPin, INPUT); delay(100); //Serial.begin(9600); } int getR() { // Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0 // читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине int r=analogRead(wheelPin); //Serial.println®; // Ищем, какая кнопка соответствует этому сопротивлению. // Данные значения сопротивлений подходят для Suzuki Swift, для других автомобилей числа будут другие. if (r>=9 && r<=15) return(VOL_UP); if (r>=18 && r<=26) return(VOL_DN); if (r>=120 && r<=156) return(PREV_TR); if (r>=60 && r<=80) return(NEXT_TR); if (r>=33 && r<=47) return(MODE); if (r>=2 && r<=6) return(MUTE); // если ни одна из кнопок не нажата, возвращаем 0 return (0); } // ОСНОВНОЙ ЦИКЛ void loop() { int currButton=getR(); // заносим в переменную currButton код нажатой кнопки if (currButton!=prevButton) { // если значение поменялось с прошлого раза delay(10); currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза //Serial.println(currButton); prevButton=currButton; // сохраняем новое значение в переменную prevButton // Выставляем сопротивление на потенциометре, тем самым посылаем команду на магнитолу. // Значения сопротивлений даны для Pioneer, для магнитол других марок числа будут другие. SPI.transfer(0); switch(currButton) { case VOL_UP: SPI.transfer(21); break; // 16k case VOL_DN: SPI.transfer(31); break; // 24k case PREV_TR: SPI.transfer(14); break; // 11k case NEXT_TR: SPI.transfer(10); break; // 8k case MODE: SPI.transfer(2); break; // 1.6k case MUTE: SPI.transfer(4); break; // 3k default: SPI.transfer(0); break; // 0k } } } delay(5); }

Фото готовой платы.

С обратной стороны фотографий не сохранилось, т.к. это было год назад и я не планировал писать обзор. Ну и там ничего интересного - куча перемычек и плохая пайка:)

Ардуина может работать от 12V, но я решил поставить понижающий до 5V конвертор. Во-первых, я от него же запитал видеорегистратор, тем самым освободил гнездо прикуривателя. Во-вторых, я читал, что напряжение в автомобильной сети грязное и нестабильное, может плавать на несколько вольт, как вниз, так и вверх. Конвертер такие скачки выдержит, а ардуина может и погореть. Чтобы еще «почистить» питание я добавил несколько защитных элементов - диод, стабилитрон, конденсатор. Схему подсмотрел . Насчет её необходимости у меня некоторые сомнения, но решил - пусть будет.

На этом все.
Устройство нормально работает в машине уже около года.
А я сэкономил некоторую сумму денег и получил ценный опыт.

Планирую купить +82 Добавить в избранное Обзор понравился +119 +232

Вы понимаете, - втолковывал редактор, - это должно быть занимательно, свежо, полно интересных приключений… Так, чтобы читатель не мог оторваться.
И.Ильф, Е.Петров "Как создавался Робинзон" .


Начинать работу с Arduino, как и с любой другой платформой программной или аппаратной, всегда интереснее с какого-нибудь реального проекта. Программисты при этом пишут код выводящий «Hello, world», ардуинисты моргают светодиодом. И все радуются как дети.


Я же решил начать с продвинутого проекта, в том числе с тайной надеждой оторвать молодое поколение от Counter-Strike (не получилось).


Как можно догадаться из названия RoboCar4W, первым проектом стал робот-машина о четырех колесах. Начиная работу я уже имел опыт программирования, умел когда-то давно паять, но совершенно не знал даже распиновки Arduino и документацию совершенно не читал. Все премудрости изучал по ходу пьесы и Гугл в помощь.


Поскольку сам проект принципиально не нов, подобных описаний в сети достаточно, все компоненты известны, то никаких неожиданностей не предполагалось. Поэтому задумка была сформулирована в самых общих чертах и главной целью являлось погружение в «мир вещей» с помощью Arduino, как платформы для быстрого прототипирования. В этом опусе возможно кто-то узнает себя в самом начале пути.


Всё "железо" приобреталось на ebay, и по своему опыту хочу сказать, что проще приобрести сразу стартер кит (ищите по словам Arduino Starter Kit), а не собирать подетально. Да и приедет все сразу вместе. Решено было не мелочиться, купить нормальное шасси, нормальные колеса, нормальные моторы, чтоб было "дорохобохато".


Главный секрет успешных покупок на eBay - покупать у продавцов с высоким рейтингом и при этом внимательно читать описание товара. Об этом есть много статей в интернете.


Какую плату семейства Arduino выбрать?


Я взял Arduino UNO, под нее много проектов с описаниями. Но сейчас бы взял Arduino Mega 2560, у нее больше цифровых и аналогов выводов и полная совместимость по проектам с UNO.

Общее описание проекта

В мире разработки программного обеспечения это называют еще «требования к системе».


Задумка проекта была следующей. Первый вариант машины-робота под названием RoboCar4W должен выполнять незамысловатые действия:

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

Второй вариант машины должен управляться вручную по bluetooth с Android телефона.


Чтобы вам лучше работалось вот весь финальный проект RoboCar4W в сборе (тут без блютуза).



Вот видео ходовых испытаний.


На первом видео RoboCar4W ездит в автоматическом режиме с объездом препятствий на двух разных версиях «прошивки», т.е. скетча, поэтому, если кто самый зоркий и заметил, что поведение робота в разных эпизодах немного отличается.



На втором видео RoboCar4W передвигается при помощи команд, передаваемых «водителем» по Bluetooth с мобильного телефона под Android. На телефоне установлена программа «Bluetooth RC Car». Причем, если близко впереди оказывается препятствие, то робот останавливается, т.е. протаранить что-нибудь не получится (однако есть «секретная» кнопка, которая отключает безопасный режим).



На третьем видео RoboCar4W показывает заранее запрограммированную демо-программу движения с поворотами. Демо-программа активируется по команде с того же мобильного телефона под Android. Робот просто едет некоторое время и делает повороты.

Алгоритм управления движением

Ошибочно называть наш способ «алгоритм объезда препятствий» или «поиском пути». Это отдельные математические дисциплины, чистая математика. Если вам очень-очень сильно нравится математика, то погуглите указанные словосочетания, чтивом на полгода будете обеспечены.


Пока же нас интересуют вещи гораздо проще. Поэтому мы назовем это просто - алгоритм управления движением 4-х колёсного робота. Разумеется речь идет об автоматическом управлении без участия человека.


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

  1. Измеряем расстояние до препятствия впереди.
  2. Если это измеренное расстояние меньше значения DST_TRH_BACK (сокращение от distance threshold), то останавливаемся и едем задним ходом одновременно поворачивая. Направление поворота выбираем так: если ранее уже поворачивали влево, то поворачиваем вправо и наоборот.
  3. Если измеренное расстояние больше чем DST_TRH_BACK , но меньше чем DST_TRH_TURN , то просто поворачиваем. Направление поворота выбираем случайно.
  4. Если до препятствия далеко, то просто едем вперед.
  5. Повторяем все сначала.

Чем хорошо, что у нас 4 колеса и все ведущие? Мы можем выполнить (запрограммировать) несколько типов поворотов:

  • Плавный поворот. Все колеса вращаются, но колеса с одной стороны вращаются быстрее.
  • Резкий поворот. Колеса вращаются только с одной стороны.
  • Разворот на месте. Как трактор, колеса одной стороны вращаются назад, а другой - вперед.

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


и включен обратно однократным её нажатием.


Важное примечание . Вся логика находится под управлением Arduino. Android здесь выступает просто как игровой пульт (без мозгов) от консоли, его задача - тупо передавать нажатия кнопок (т.е. команды) посредством Bluetooth в Arduino RoboCar4W.

Компоненты

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


Нет худа без добра, зато скетч стал немного проще.


На будущее, сервопривод покупайте самый простой и дешевый, особая мощность, скорость и точность поворота на заданный угол не нужны, а вывести серво из строя довольно легко, как оказалось. Вполне подойдет SG90 стоимостью $2.


Итак составные части проекта RoboCar4W, описание на английском дается для облегчения поиска на ebay и ему подобных:

  • Arduino UNO R3
  • Готовое шасси 4 Wheel Drive Mobile Robot Platform Smart Car Chassis Arduino Compatible
  • Моторы постоянного тока (DC) с вращением в обе стороны - 4 шт.
  • Колеса - 4 шт.
  • Плата для управления 4-мя DC моторами Motor Drive Shield L293D
  • Ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module Distance Measuring Sensor
  • Аккумуляторы Ni-MH 1.2 В - 8 шт.
  • Пластиковый бокс держатель для батареек, Battery Box holder 4 AA Batteries - 2 шт.
  • Аккумулятор типа «Крона» 8.4 В - 1 шт.
  • Опционально тумблер - выключатель питания

Шасси, DC моторы и колеса приобретались сразу в комплекте и даже с инструкцией по сборке.


Аналоговые входы могут использоваться как цифровые выводы портов ввода/вывода. Выводы Arduino, соответствующие аналоговым входам, имеют номера от 14 до 19. Это относится только к выводам Arduino, а не к физическим номерам выводов микроконтроллера Atmega.


Рисовать не обязательно, можно просто свести все в таблицу. У меня получилось так.



Пины D4, D7, D8, D12 будут заняты, если используются любые DC моторы или шаговые.


Пины D9 (Servo #1 control), D10 (Servo #2 control) будут заняты, только если используются сервомоторы.


Сама по себе плата для управления моторами Motor Drive Shield L293D пины Arduino не занимает.


Пины питания 3.3 В, 5 В и «земля» дублируются на Motor Drive Shield в достаточном количестве. Поэтому об их нехватке не стоит беспокоиться.


Если все-таки хотите красиво нарисовать, то бесплатная программа Fritzing вам в помощь.


Это второй очень важный момент. От питания зависит очень многое. Например, серво-мотор при повороте вала на заданный угол начинает потреблять большой ток. При этом если серво подключен по питанию на 5 В Arduino, то происходит «просадка» по напряжению и вся остальная схема начинает глючить, а Arduino даже может перезагружаться при этом.


В любом случае, если в поделке используете моторы, то Motor Drive Shield необходим (или подобная ему схема).


Итак, имеем 4 мотора постоянного тока (DC), сервопривод, саму плату Arduino и несколько датчиков. Моторы самые прожорливые, а вот датчики могут успешно запитываться с разъемов самой платы Arduino, поэтому с ними все просто. Для удобства я свел всё хозяйство в одну таблицу.


Напряжение рекомендованное или типовое. Потребляемый ток Максимальное напряжение Чем планируется питать Примечания
Плата Arduino UNO R3 7 - 12V, 200mA (среднее) 6 - 20 «Крона 9V» Li-ion 650mAh, 8.4V Разъем с плюсом в центре
Сервомотор MG-995 5-6 V, 0.1 - 0.3A (пиковое) 4.8 - 7.2 Аккумуляторы (5) шт. Ni-Mh 1.2V = 6V Питание только от отдельного источника. Если запитать вместе с Arduino, то будет глючить всё. Напряжения Ni-Mh аккумуляторов 4шт. * 1.2В = 4.8V не хватает. Некоторые утверждают, что данную серву не стоит использовать на 6 вольтах только 4,8
DC двигатели (4 шт.) 6 - 8V, ток от 70mA до 250mA 3 - 12 аккумуляторы (5+3) шт. Ni-Mh 1.2V = 9.6V Вы не сможете нормально запустить двигатели от 9В батареи, так что даже не тратьте время (и батареи)!
Motor Drive Shield L293D не требуется 4.5 - 36 не требуется
Модуль Bluetooth HC-0506 3.3 V, 50 mA 1.8-3.6 С пина 3.3V платы Arduino
Ультразвуковой измеритель расстояния HC-SR04 5 V, 2 mA 5 С пина 5V платы Arduino

DC/DC преобразователя напряжения у меня не было в наличии. Крона 9V оказался не очень хорошим источником питания, просто у меня он уже был.


А вот от использования Li-ion аккумуляторов большой емкости я отказался. Во-первых, из-за высокой стоимости, во-вторых в китайских интернет-шопах легко нарваться на подделку. Точнее не «легко», а «всегда». Кроме этого Li-ion требует особого обращения, и он не безопасен.


Итак, как видим из таблицы, нам требуется 3 независимых источника питания:

  • Для платы Arduino и датчиков.
  • Для сервомотора.
  • Для 4-х DC моторов.

Где ж столько набрать? Саму плату Arduino в любом случае надо питать от отдельного источника, т.к. при «проседании» напряжения, например от включения моторов, плата может перезагружаться или просто глючить. Здесь применяем аккумулятор форм-фактора «Крона 9В», причем разъем который будет подключаться к Arduino должен быть с «плюсом в центре».


Для сервомотора и 4-х DC моторов можно обойтись одним источником питания. Проблема только в том, что сервомотор рассчитан на напряжение 5-6В (максимум 7.2В) и ток 100 - 300мA (пиковое), а DC моторам требуется 6 - 8В (максимум 12В) и ток 250мА.


Для решения проблемы существуют DC-DC преобразователи, но у меня таких не оказалось. В итоге я применил свою "фирменную" схему соединения (безо всяких понижающих электронных схем, только экологически чистые напряжение и ток!): подключил 8 шт. аккумуляторов на 1.2V последовательно и сделал отводы в нужных местах, как показано на схеме.



6В пошло на сервомотор, а 9.6 на DC моторы. Понятно, что аккумуляторы 1--5 будут испытывать повышенную нагрузку.


Для управления серво и DC моторами использовал 4-х канальный Motor Drive Shield на базе микросхемы L293D.


Собрать готовое шасси небольшая проблема. Но не думайте, что без допиливания у вас всё сразу соберется. Поэтому приготовьте надфили.




Подключить нормально несколько моторов, сервомотор или шаговый напрямую к Arduino не удастся. Так как пины (выводы) Arduino являются слаботочными. Для решения проблемы существует дополнительный модуль управления приводами - Motor Drive Shield на базе микросхемы L293D, которая является одной из самых распространенных микросхем, предназначенных для этой цели. Чип L293D известен также как H-мост (H-Bridge).


Я использовал плату, которая обеспечивает 4 канала для подключения на двух микросхемах L293D и сдвиговом регистре. Приобретается на eBay за $5.


Данная плата модуля управления приводами имеет следующие характеристики.

  • L293D Motor Drive Shield совместим с Arduino Mega 1280 и 2560, UNO, Duemilanove, Diecimila
  • 4-х канальное управление
  • питание моторов от 4.5В до 36В
  • допустимый ток нагрузки 600мА на канал, пиковый ток - 1.2A
  • защита от перегрева
  • 2 интерфейса с точным таймером Arduino (не будет «дрожания») для подключения сервомоторов на напряжение 5В, если напряжение питания нужно повыше, то подключение по питанию нужно переделать как описано ниже
  • можно одновременно управлять 4 двунаправленными DC коллекторными моторами или 2 шаговыми, и 2 сервомоторами
  • 4 двунаправленные DC моторы подключены каждый к 8-битной шине для выбора индивидуальной скорости
  • подключение до 2 шаговых приводов (однополярных или биполярных), с одной катушкой, двойной катушкой или с чередованием шага
  • разъем для подключения внешнего источника для раздельного питания управляющей логики и моторов
  • Кнопка RESET Arduino
  • для управления используется библиотека Adafruit AFMotor.

Motor Drive Shield требует небольшой доработки, чтобы можно было после него хоть что-нибудь подключить. Я подпаял сверху необходимые разъемы, получилось вот что.



Моторы могут быть подключены к дополнительному по отношению к плате Arduino источнику питания. Я рекомендую именно такой способ подключения. Для этого нужно снять, разомкнуть перемычку, как показано на картинке.



В этом случае питание Arduino и питание моторов производится независимо друг от друга.


Светодиод на мотор-шилде светится при наличии питания для моторов, если он не горит, то моторы работать не будут.


Новая проблема.


Сервомоторов положение джампера питания не касается, они по прежнему будут запитаны от 5V Arduino. Так как сервомоторы обычно потребляют большой ток и если питания недостаточно, то всё устройство начинает глючить, в «лучшем» случае будет глючить только сервопривод - не будет поворачиваться на заданный угол, либо все время перед каждым поворотом поворачивать сначала в 0 градусов, а уже потом на заданный угол (и если будет успевать). Поэтому я рекомендую питать сервопривод также от дополнительного источника питания. Для этого придется немного переделать схему подключения: откусить плюсовой провод (обычно красный) от стандартного разъема и соединить его с плюсом источника питания напрямую.



При подключении Motor Drive Shield аналоговые пины не используются. Цифровые пины 2, 13 не используются.


Указанные ниже пины используются, только если подключены и используются соответствующие DC двигатели или шаговые двигатели (Stepper):

  • D11: DC Motor #1 / Stepper #1 (активация и контроль скорости)
  • D3: DC Motor #2 / Stepper #1 (активация и контроль скорости)
  • D5: DC Motor #3 / Stepper #2 (активация и контроль скорости)
  • D6: DC Motor #4 / Stepper #2 (активация и контроль скорости)

Эти пины будут заняты, если используются любые DC/steppers: D4, D7, D8, D12.


Указанные ниже пины будут заняты, только если используются соответствующие сервомоторы:

  • D9: Servo #1 управление
  • D10: Servo #2 управление


Для начала работы с Motor Drive Shield необходимо скачать и установить библиотеку Adafruit AFMotor .


Пример кода для управления моторами:


#include // подключить библиотеку Adafruit #include // подключить библиотеку для сервомотора AF_DCMotor motor(1); // создать объект мотор, указав номер разъема DC мотора на плате Motor Shiled и, опционально, частоту frequency Servo servo; // создать объект сервомотор servo.attach(10); // присоединить серво на пин 9 или 10 (крайний разъем на плате Motor Shiled) motor.setSpeed(speed); // установить скорость DC мотора от 0 (останов) до 255 (полный газ) motor.run(RELEASE); // DC мотор стоп motor.run(FORWARD); // DC мотор вперед motor.run(BACKWARD); // DC мотор назад servo.write(90); // повернуть серво на 90 град.

DC мотор у меня начал крутиться только при указании скорости больше 100, если меньше - просто жужжит. Минимальную скорость вашего мотора вам придется определить экспериментально.


Для моторов, подключенных к M1 и M2 можно задать частоту: MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, MOTOR12_1KHZ. Наибольшая скорость вращения достигается при 64KHz эта частота будет слышна, меньшая частота и скорость на 1KHz но и использует меньше энергии. Моторы 3 и 4 всегда работают на 1KHz другие значения игнорируются. По умолчанию везде 1KHz.


После этого необходимо прогнать тест моторов. . В начале скетча измените номер мотора в строке (или в строках) типа:


AF_DCMotor motor(…);

Скетч некоторое время вращает мотор(ы) вперед по ходу движения робота, а затем назад. Посмотрите внимательно в ту ли сторону вращается мотор, и измените полярность подключения если нужно.


Подключаем ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module. Распиновка выводов:

  • Trig (T)
  • Echo (R)

Время затрачиваемое ультразвуковым дальномером на измерения (определено опытным путем):

  • максимум 240 мсек, если расстояние слишком велико (out of range)
  • минимум 1 мсек, если расстояние слишком мало
  • расстояние в 1.5 м определяется примерно за 10 мсек


Ультразвуковой датчик дальномер, в силу своей физической природы, а не потому что Китай, в некоторых случаях плохо определяет расстояние до препятствия:

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

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


Некоторые проблемы можно решить с помощью инфракрасного датчика расстояния. Но он тоже не идеален:

  • небольшая максимальная дальность по сравнению с ультразвуковым: 0,3-0,8 м против 4 м
  • большое минимальное расстояние по сравнению с ультразвуковым: 10 см против 2 см
  • зависимость чувствительности датчика от общей освещенности.

Хотя если установить эти дальномеры в паре, то эффективность их работы заметно повысилась бы.

Подключаем Bluetooth HC-05

Как видим из даташита основные пины «голого» HC-05:

  • TX (pin 1) передача
  • RX (pin 2) прием
  • 3,3V (pin 12) питание 3.3В
  • GND (pin 13) земля
  • PIO8 (pin 31) индикатор режима
  • PIO9 (pin 32) статус соединения, если соединение установлено, то на выходе будет высокий уровень
  • PIO11 (pin 34) для включения режима AT-команд

Наш модуль припаян к плате Breakout/Base Board, где уже есть делитель напряжения, поэтому диапазон рабочих напряжений у него от 3.3В до 6В.


Подключаем наш Bluetooth модуль в сборе:

  • Arduino (TX) - (RX) HC-05
  • Arduino (RX) - (TX) HC-05
  • Arduino (+5В) - (VCC) Bluetooth
  • Arduino (GND) - (GND) Bluetooth
  • пины LED, KEY не используются

После подачи питания на модуль Bluetooth HС-05 на нем должен заморгать светодиод, что означает работоспособность блютуза.


Включаем bluetooth на мобиле, находим устройство с именем HC-05 и подключаемся, пароль 1234.


Для тестирования заливаем в Arduino простой скетч:


int count = 0; void setup() { Serial.begin(9600); Serial.println("Test Arduino + Bluetooth. http://localhost"); } void loop() { count++; Serial.print("Count = "); Serial.println(count); delay(1000); }

На Android телефон устанавливаем Bluetooth Terminal. Подключаемся к устройству HC-05 и наблюдаем на экране телефона бегущие строки с увеличивающимся счетчиком.


Чтобы модуль мог принимать AT-команды, нужно его перевести в соответствующий режим - для этого нужно установить вывод KEY (PIO11) в логическую 1. На некоторых Breakout/Base Board вместо вывода KEY есть вывод EN (ENABLE), который может или не может быть припаян к выводу на самом чипе. Это касается только чипов HC05. Вот как раз у меня вывод EN платы никуда не припаян. Поэтому его можно припаять отдельным проводом к выводу KEY(PIO11) чипа. Либо во время работы, чтобы перевести HC05 в режим AT-команд на пару секунд закоротить вывод чипа KEY(PIO11) на вывод питания Vcc. Для HC06 вывод KEY не нужен.

Программное обеспечение

Примечание. Каждый раз перед загрузкой программы в Arduino, убедитесь, что модуль Bluetooth не подключен к Arduino. Это вызовет проблемы заливки скетча. Просто отсоедините питание от Bluetooth модуля или провода, соединяющие Arduino и RX, TX контакты модуля.


В начале скетча измените номера моторов в строках типа:


AF_DCMotor motor(…);

Если заменить строку


byte debug = 0;

byte debug = 10;

то включится режим отладки.


В режиме отладки робот RoboCar4W реально ездить или крутить колесами не будет. Вместо этого активируйте монитор последовательного порта и там увидите как он «ездит» виртуально. Вместо реальной езды вперед в монитор последовательного порта будет писаться строка «Forward», вместо заднего хода с поворотом влево - «Turn Back L(eft)» и т.д. Датчик ультразвукового измерения расстояния тоже ничего не делает, вместо этого расстояния до препятствий генерируются программно и случайно.

Добавить метки

Это первый роботизированный проект, который я когда-либо делал, и если вы никогда не пробовали собрать робота, то, скорее всего, думаете что это сложно. Но Ардуино и шасси 2WD / 4WD сделают вашу сборку намного проще, и вы соберете своего первого робота с радиоуправлением на Ардуино без каких-либо мучений.


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

Файлы

Шаг 1: Нужные части и инструмент

Я воспользовался готовыми решениями, и все запчасти и инструменты были приобретены через интернет.

Запчасти:

  1. Набор шасси 4WD для робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль H-моста LM298 (GearBest)
  4. Модуль bluetooth HC-06 (Amazon)
  5. Литий-ионные батарейки 2 x 18650 (GearBest)
  6. Отсек для батареек 2x 18650 (GearBest)
  7. Небольшая макетная плата (GearBest)
  8. Провода сечением 0.5 мм2
  9. Провода с джамперами папа-мама (Amazon)
  10. Провода с джамперами мама-мама (Amazon)
  11. Малярная лента, изолента или что-то подобное (Amazon)

Для робота, объезжающего препятствия:

Ультразвуковой модуль измерения расстояния HC — SR04 (GearBest)

Необходимый инструмент:

  1. Паяльник (Amazon)
  2. Кусачки (Amazon)
  3. Стриппер для провод (GearBest)
  4. Клеевой пистолет (GearBest)

Шаг 2: Что такое робот?

Робот – это электромеханическое устройство, которое способно каким-либо образом реагировать на окружающую обстановку и принимать самостоятельные решения или действия, чтобы достичь определенных целей.

Робот состоит из следующих компонентов:

  1. Структура / Шасси
  2. Привод / Мотор
  3. Контроллер
  4. Вводные устройства / Датчики
  5. Источник питания

В следующих шагах я опишу каждый из этих компонентов, и вы всё легко поймёте.

Шаг 3: Структура / Шасси



Структура состоит из физических компонентов. Робот имеет один или несколько физических компонентов, которые каким-либо образом двигаются для выполнения задания. В нашем случае структура робота – это шасси и колёса.

Шаг 4: Приводы



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

В нашем случае привод – это DC-мотор, скорость которого равна 3000 оборотам в минуту, а вращающий момент 0.002 Н м. Теперь добавим к нему шестерню с передаточным числом 1:48. Новая скорость уменьшается на коэффициент 48 (в результате давая 3000/44 = 68 оборотов в минуту) и вращающий момент увеличивается на коэффициент 48 (в результате давая 0.002 x 48 = 0.096 Н м).

Шаг 5: Подготавливаем клеммы моторчиков




Отрежьте по 4 провода красного и черного цвета длиной примерно 12-15 см. Я использовал провода сечением 0.5 мм2. Оголите концы проводов. Припаяйте провода к клеммам моторчиков.

Вы можете проверить полярность моторчиков, соединив их с отсеком для батареек. Если он движется в прямом направлении (с красным проводом на позитивной и черным на негативной клеммах батареек), то с соединением все в порядке.

Шаг 6: Устанавливаем мотор




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

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

Шаг 7: Устанавливаем крышу

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

Шаг 8: Контроллер

Теперь у нас установлены шасси и приводы, но нам не хватает контроллера. Шасси без контроллера никуда не поедут. Робот будет оставаться на месте, оставаясь безжизненным. Поэтому, для того чтобы робот перемещался, нам нужен мозг (контроллер).

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

Контроллер принимает входные данные (с датчиков, удалённо и т.д.), обрабатывает их и затем даёт команду приводам (моторам) выполнить выбранное задание.

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

Микроконтроллер можно использовать, чтобы вращать мотор в одном направлении, но если вам хочется с помощью микроконтроллера вращать мотор и вперёд, и назад, то вам нужна дополнительная схема – H-мост. В следующем шаге я объясню, что это такое.

Шаг 9: Н-мост (модуль LM 298)




Что такое Н-мост?

Термин Н-мост произошел от типичного графического представления этой схемы. Это схема, которая может вращать мотор как в прямом, так и в обратном направлении.

Принцип работы:
Посмотрите приложенную картинку для понимания принципа работы схемы Н-моста. Мост состоит из 4 электронных выключателей S1, S2, S3, S4 (транзисторы / MOSFET/ IGBTS).

Когда выключатели S1 и S4 закрыты, а остальные два открыты, положительное напряжение будет проходить через мотор, и он будет вращаться в прямом направлении. Таким же образом, когда закрыты выключатели S2 и S3, а S1 и S4 открыты, обратное напряжение будет даваться на мотор и он начнёт вращаться в обратном направлении.

Заметка: выключатели на одной руке (то есть S1, S2 или S3, S4) никогда не закрываются одновременно – это создаст короткое замыкание.

Н-мосты доступны в виде интегральных схем, либо можно собрать свой мост при помощи 4 транзисторов или MOSFET. В моём случае используется интегральная схема Н-моста LM298, которая позволяет управлять скоростью и направлением моторов.

Описание распиновки:

Out 1: DC мотор 1 «+» или шаговый двигатель A+
Out 2: DC мотор 1 «-» или шаговый двигатель A-
Out 3: DC мотор 2 «+» или шаговый двигатель B+
Out 4: вывод мотора B
12v: вход 12V, но можно использовать от 7 до 35V
GND: Земля
5v: выход 5V, если джампер 12V стоит на месте, идеально для питания Arduino (и т.п.)
EnA: позволяет получать сигналы PWM для мотора A (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
IN1: включает мотор A
IN2: включает мотор A
IN3: включает мотор B
IN4: включает мотор B
BEnB: позволяет получать сигналы PWM для мотора B (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)

Шаг 10: Входы / Датчики

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

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

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

Шаг 11: Источник питания





Чтобы управлять приводами (моторами) и питать контроллер, роботу нужен источник питания. Большинство роботов питается от батарей. Когда мы говорим о батареях, то имеем в виду множество вариантов:

  1. Алкалиновые батарейки AA (не заряжаются)
  2. Никель-металгидридные или никель-кадмиевые батарейки AA (заряжаются)
  3. Литий-ионные батареи
  4. Литий-полимерные батареи

В зависимости от ваших нужд, нужно выбрать подходящий вид батарей. По-моему мнению, нужно всегда выбирать заряжаемые батареи достаточной ёмкости. Я использовал 2 литий-ионные батареи стандарта 18650 ёмкостью 2600mAh. Если для автономности вам нужно больше мощности, используйте большой комплект батарей, например 5A turnigy.

Отсек для батарей:
Отсек для батарей я заказал в Китае, он не подходил для батарей с плоским верхом, поэтому я использовал два неодимовых магнита для придания батарейкам нужной формы.

Зарядка:
Для зарядки батарей нужен хороший зарядник. По моему опыту, эти зарядники хорошо зарекомендовали себя:

  1. PowerEx AA Charger-Analyzer (Amazon)
  2. XTAR LiIon Battery Charger (Amazon)
  3. Turnigy LiPo Battery Charger (Amazon)

Шаг 12: Установка компонентов


Цельная схема устанавливается на крыше. Отсек для батарей, драйвер двигателей LM 298 и маленькую макетную плату я закрепил горячим клеем, но можно просто прикрутить их. Модуль bluetooth закрепляется скотчем. Ардуино нано вставьте в макетную плату.

Шаг 13: Электропроводка






Для соединения модулей понадобятся провода с джамперами.
Соедините красные провода двух моторов вместе (на каждой стороне) и затем черные провода. В итоге у вас выйдет по две клеммы с каждой стороны.

MOTORA отвечает за два правых мотора, соответственно два левых мотора соединены с MOTORB.
Для соединения всех компонентов следуйте инструкции:

Соединение моторов:

Out1 -> красный провод левостороннего мотора (+)
Out2 -> черный провод левостороннего мотора (—)
Out3 -> красный провод правостороннего мотора (+)
Out4 -> черный провод правостороннего мотора (—)
LM298 — > Arduino
IN1 -> D5
IN2-> D6
IN2 ->D9
IN2-> D10
Модуль Bluetooth -> Arduino
Rx-> Tx
Tx ->Rx
GND -> GND
Vcc -> 3.3V
Питание
12V — > красный провод батарей
GND -> черный провод батарей и пин GND на Arduino
5V -> соедините с пином 5V Arduino

Шаг 14: Логика управления

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

Шаг 16: Тестирование



Чтобы проверить робота-машину, я положил её на маленькую картонную коробку. Таким образом, колёса будут крутиться, но машинка будет оставаться на месте. Проверьте работоспособность, нажимая все доступные кнопки. Если всё работает, то можно по-настоящему управлять ей.

Заметка: если моторы вращаются в противоположном направлении, то просто поменяйте местами провода.

Шаг 17: Планы на будущее




В этом руководстве я объяснил, как создать простенькую машинку. Дальше я хочу добавить в неё некоторые улучшения. Вы можете присоединить к ней различные датчики, вот некоторые идеи:

  1. Добавление ультразвукового датчика для объезда препятствий
  2. Использование модуля WiFi, например ESP8266 или Node MCU вместо Bluetooth, для удлинения дистанции управления.
  3. Добавление солнечной панели для зарядки батарей.

Совсем недавно недорогие микроконтроллеры, такие как Arduino, открыли новые двери для тех, кто хочет сделать интересные приспособления для своих автомобилей. В этой статье мы рассмотрим популярный проект, связанный с Аrduino в автомобиле, который использует эту популярную открытую аппаратную плату.

Самый распространенный проект на Ардуино для автомобиля – установка в машине ЖК-дисплея с особыми функциями и показателями.

Когда Ардуино-дисплей в авто находится в движении, отображаются: процент нагрузки двигателя, напряжение батареи, температура в салоне и температура охлаждающей жидкости двигателя (есть несколько других статистических данных о транспортном средстве, которые могут отображаться, если нужны). Помимо дисплея и микроконтроллера, понадобятся различные датчики для создания этого Аrduino проекта для автомобиля.

Если Аrduino для автомобиля совместим с IDE Teensy 3.6, то читается анимированный растровый образ машины и резервные датчики. Каждый из четырех датчиков на своем месте, так же, как и анимационная картинка автомобиляоторая меняет цвет, исходя из того, насколько близко объект находится к машине (только зеленый означает <5 футов, зеленый и желтый означает <2,6 фута и зеленый, желтый, а красный означает <1 фут).

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

Проприетарный протокол связи не является типичным, как например, I2C, UART, CAN, USB и так далее. Свойства протокола могут различаться в каждом случае, в зависимости от поставщика.

Прежде чем отключить ЖК-дисплей, нужно проверить три провода, соединяющие трансивер и ЖК-дисплей. В инструкции указывается, что необходим красный провод + 5В, провод черного цвета и синий провод. После подключения осциллографа к синему проводу и заземлению пользователь увидит характерное изображение.

Биты под номерами 0-5 не несут никакой существенной информации и не кодируются.иты 6-8 соответствуют датчикам с названиями A, B, C или D. Необходимо загрузить эскиз в IDE Arduino, который считывает датчики и выводит данные через последовательную консоль.

Для следующего Ардуино проекта в автомобиле можно использовать бесплатное программное обеспечение для редактирования фотографий под названием GIMP для обрезки и изменения размера изображения машины с верхнего вида. Затем необходимо экспортировать изображение в виде 24-битного растрового изображения с именем «car.bmp», которое составляет 110 пикселей на 250 пикселей. После загружаем все на карту microSD и помещаем эту карту в микроконтроллер Teensy 3.6.

Основными причинами, по которым нужно использовать Teensy 3.6 вместо UNO, остается скорость, с которой Teensy может читать SD-карту и отображать изображение с помощью драйвера дисплея RA8875. При использовании UNO процесс займет около 8 секунд, в то время как с Teensy 3.6 займет 1,8 секунды.

Для дальнейшего конструирования проекта с Аrduino для автомобиля потребуется сделать трехмерную печать верхней и нижней крышки ЖК-дисплея для его защиты. В машине необходимо предварительно просверлить отверстия для датчиков.

Какие датчики можно подключить к Ардуино

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

  1. Адаптер Freematics OBD-II.
  2. Резервные датчики.
  3. 7-дюймовый ЖК-дисплей TFT.
  4. Драйвер для дисплея LCD на базе SPI.
  5. Микропроцессор Teensy 3.6.
  6. Специальный уровень Shifter.
  7. 74HC125 Tri State Buffer IC.
  8. Карта памяти MicroSD Card.
  9. Провод, конденсаторы и резисторы.
  10. Датчик температуры DS18B20.
  11. Разделитель OBD-II.
  12. Микроконтроллер Ардуино.

Подключение, запуск и настройка автоустройств на Ардуино

Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:

В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:

/Applications/Arduino.app/Contents/Java/hardware/teensy/avr

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

  1. Загрузите эскиз display_code, если вы хотите использовать внутренний температурный датчик модуля OB2 I2C OBD-II.
  2. Загрузите эскиз display_code_with_new_temperature_sensor, если вы хотите использовать модуль DS18B20.

Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20 , выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.

Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить». В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.

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

Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.

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

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

Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.

Все об ардуино и электронике!

Arduino - торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники , ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор смонтированных печатных плат , продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.

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

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

В данном материале будет предоставлен пример как использовать несколько датчиков температуры 18b20 + добавлять нужное количество и производить удаленный мониторинг по средствам платы esp8266 nodemcu и приложения blynk. Данный материал будет полезен если нужно снимать удаленно несколько показаний температуры для мониторинга.

Хотите поиграть в видеоигры из детства? Танчики, Контра, Чип и Дэйл, Черепашки Ниндзя… Все эти игры ждут вас! Из данного руководства вы узнаете как просто и быстро собрать и настроить ретро-консоль на базе микрокомпьютера Raspberry Pi и сборки эмуляторов RetroPie.

Интерактивная снежинка соответствующей формы, созданная Ардуино Нано. Используя 17 независимых каналов PWM и сенсорный датчик для включения и эффектов.

Снежинка состоит из 30 светодиодов, сгруппированных в 17 независимых сегментов, которые могут управляться отдельно микроконтроллером Arduino Nano. Каждый блок управляется отдельным пином PWM, и регулирует яркость каждого блока светодиодов и эффекты отдельно.

Данная статья будет полноценной инструкцией для сборки машинки робота на базе кит комплекта 2wd robot на основе вай-фай платы esp8266 и мотор шилда под неё .

Так же в конце будет прошивка под эту плату и настройка приложения для управления нашим роботом через смартфон по средствам вай-фай сети.

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

На просторах интернета в последнее время стали очень популярны часы на базе ESP8266 Nodemcu и пиксельных матрицах max7219 . Все из за того что данные часы очень просты в сборке, имеют широкий функционал и возможности с обновлением времени, получением различных данных с интернета и вывод на бегущую строку всех этих данных.

Популярная глушилка спаммер на базе платы ESP8266 (nodemcu \WEMOS) получила вторую версию прошивки c исправлением ошибок, улучшением интерфейса и добавлением более широкого функционала. Все это собрал до кучи и решил написать пост. Так же добавил подробный ворклог с упрощенной прошивкой через FLASHER (прошивка в 3 клика)

WIFI часы с метеостанцией на ESP8266 и матричном индикаторе на MAX7219

Очень интересный и простой проект часов с веб интерфейсом на базе платы ESP8266 nodemcu и дисплея MAX7219 . Наверное лучший вариант часов и спаренной погодной станции которая получает данные с интернета!

Дополнительные поля
test 1:

Этот проект сделан на плате WIFI ESP8266 и заточен на управление и мониторинг через приложение BLYNK на вашем смартфоне. Так же в проект можно добавить IP-камеру (или использовать старый смартфон с камерой в виде сервера) для мониторинга в реальном времени через IP Webcam Pro через виджет в приложении BLYNK .Для подачи корма используется шаговый двигатель NEMA17 c шагом в 1.8 градуса - 200 шагов на полный оборот. Двигатель вращает шнек в сантехническомпереходнике, в который из бункера попадает корм.

Давайте начнем с тех возможностей, которые откроются перед вами, если вы обеспечите беспроводной обмен данными между двумя платами Arduino:

  • Удаленное снятие показаний с датчиков температуры, давления, систем сигнализации на основе пироэлектрических датчиков движения и т.п.
  • Беспроводное управление и мониторинг состояния роботов на расстоянии от 50 2000 футов.
  • Беспроводное управление и мониторинг помещений в соседних домах.
  • И т.д. и т.п. В общем, практически все, что требует беспроводных систем управления и мониторинга...


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: