Сообщество - Arduino & Pi
Добавить пост

Arduino & Pi

1 378 постов 20 573 подписчика

Популярные теги в сообществе:

Управление функциональной кроватью

Здравствуй, дорогой читатель!

Сегодня хочу поделиться с тобой небольшой историей о том, как я получил первый опыт разработки устройства на ESPшке. Давно приглядывался к Arduino-подобным технологиям, да всё никак не подворачивался случай реализовать свой к ним интерес на практике.

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

Но вот обратился ко мне человек с запросом сообразить средство для беспроводного управления функциональной кроватью. И как тут отказать, когда у человека физические возможности ограничены, и есть финансовая, чтобы компенсировать первые? Человек вменяемый, деловой, задача интересная, дай, думаю, узнаю, чем ему помочь. Кровать у него, как выяснилось, вот такая:

Управление функциональной кроватью Arduino, Автоматизация, Длиннопост

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

Управление функциональной кроватью Arduino, Автоматизация, Длиннопост

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

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

Но, в процессе изучения вопроса выяснил, что есть такая штука, как Blynk. Думаю, что многие здесь о нём знают, и кто-то наверняка пользуется. Для тех, кто ещё не знаком с тем, что это такое - в двух словах это средство, упрощающее автоматизацию и позволяющее быстро создавать программы для управления при помощи iOS и Android. Сейчас существует две версии Blynk: Blynk legacy и Blynk IoT. Первая имеет как бесплатный, так и платный функционал, оплачиваемый единовременно. Во второй же разработчики уже перешли на подписку, что для моего случая никуда не годится.

Так вот узнав о Blynk немного больше я понял, что для данного проекта подойдёт как нельзя лучше Blynk legacy. Посмотрев пару-тройку примеров его использования я понял, что лучше будет использовать модуль с WiFi, и мой выбор пал на NodeMCU Lua ESP8266, которая очень похожа на Arduino Nano, и уже имеет на борту встроенный WiFi. К тому же полностью совместима с Blynk и довольно проста.

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

Что касается кода, то на первый взгляд всё просто: копируешь несколько строк для Blynk в Arduino IDE, вписываешь имя точки доступа, к которой планируется подключение, пароль, ключ аутентификации, выдаваемый сервисом при регистрации аккаунта Blynk и шьёшь в контроллер. Чудо, а не сервис! И если говорить о проекте в сферическом вакууме, то это действительно так.

На практике же, после описанных выше манипуляций приложение Blynk для Android подключилось без проблем, и уже через несколько минут я успешно дёргал ногой контроллера, пиная светодиод и радовался! Но радость моя улетучилась как только вместо ноги я прикрутил первый из блоков реле. Оказалось, что по какой-то неведомой мне причине после выключения контроллера он подаёт сигнал на ноги, который пропадает после первого нажатия на кнопку в приложении, запрограммированную для подачи сигнала.

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

После внесения изменений левый сигнал при включении пропал, и всё заработало как надо. Выяснив по дороге, что для питания блоков в 8 и 4 реле нужно дополнительное питание отыскал в родном блоке кровати 5 вольт и запитал их к нему. Кстати, сама NodeMCU выдаёт на ноги вместо 5 вольт 3,3. Что для сигнала реле достаточно, и даже позволяет запитывать одиночное реле.

В результате мне удалось добиться того, что с минимальной доработкой родного блока управления я уже мог использовать для управления им приложение на Android, в котором можно располагать различные элементы управления так, как захочется. Ну, или почти. Интерфейс конструктора более-менее гибкий и имеет довольно большой набор различных функций на вкус и цвет и под разные нужды. Мне же понадобилось всего 11 кнопок, на которые, кстати, бесплатного объёма функций не хватило, и пришлось отсыпать рубликов разработчикам. После чего у меня получился насколько это возможно простой и близкий к родному и железному интерфейс:

Управление функциональной кроватью Arduino, Автоматизация, Длиннопост

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

Так что моё резюме по использованию Blynk в связке с NodeMCU 8266 на WiFi: это не слишком сложно, довольно гибко и на фоне других решений весьма привлекательно. Поскольку даже не смотря на сравнительную простоту реализации на фоне разработки прошивки и программы с нуля на всё-провсё у меня ушло дня так четыре. Весьма плотных таких дня,.

Надеюсь, что мои заметки по этому проекту будут полезны другим начинающим автоматчикам и энтузиастам электроники. Спасибо за внимание!

Показать полностью 3

ТМР - шагающий планетоход

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

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

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

Заключительная часть по сборке этого концепта. Четыре предыдущих видео (2 по сборке платформы, и 2 по планетоходу) можно найти на канале:

Робот обошёлся мне примерно в 30 000 рублей. Детали напечатаны ПЛА пластиком и угленаполненным нейлоном. В движение робота приводят 18 сервоприводов MG958 с крутящим моментом под 20 килограмм. Плата управления - Arduino Mega 2560 Pro.

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

Питается робот от 3S3P литий-ионного аккумулятора, собранного из элементов Swing 5300 от Boston Power.

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

Управление пока всё так же осуществляется беспроводным контроллером от PS2.

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

В голове бота расположены 4 фонарика, которые включаются попарно, 3 FPV камеры (задействованы 2), одна из них пишет картинку в разрешении до 4К на бортовую флешку, а вторая - передаёт на FPV шлем через видеопередатчик.

Так же установлено 2 лазерных целеуказателя и лазерная пушка, в качестве имитации инструментов ChemCam или SuperCam, которые установлены на марсоходах Curiosity и Perseverance соответственно, и служат для дистанционного анализа химического и минералогического состава грунта.

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

На голове робота расположена солнечная панель мощностью около 26 ватт. В качестве имитации экранно-вакуумной теплоизоляции я использовал обычное спасательное одеяло. Панель может разворачиваться и складываться при помощи 4 миниатюрных сервоприводов MG92B.

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

В собранном виде робот весит 9,7 килограмм, но это на Земле, на Марсе он бы весил всего около 3,6 =)

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост

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


Спасибо, что дочитали до конца =)


*ещё несколько фото напоследок:

ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
ТМР - шагающий планетоход Марсоход, Rover, Своими руками, Видео, Длиннопост
Показать полностью 20 1

Arduino машинка своими руками

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

Схема подключения электроники робота машину на Ардуино.

Arduino машинка своими руками Arduino, Своими руками, Видеоблог, Машина, Видео, 3D печать, Самоделки, Длиннопост

Собираем машину.

Arduino машинка своими руками Arduino, Своими руками, Видеоблог, Машина, Видео, 3D печать, Самоделки, Длиннопост
Arduino машинка своими руками Arduino, Своими руками, Видеоблог, Машина, Видео, 3D печать, Самоделки, Длиннопост
Arduino машинка своими руками Arduino, Своими руками, Видеоблог, Машина, Видео, 3D печать, Самоделки, Длиннопост

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Показать полностью 4

ЧПУ плоттер в виде принтера на Arduino своими руками

Я расскажу о том как я сделал ЧПУ плоттер своими руками.

Он работает на Arduino.

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Энкодер на STM32 (arduino, platformio)

Использование энкодера вместе с STM32 с прерываниями.

Код лежит тут https://ideone.com/9oMlVS (сильно не пинайте, в первые использую подобный сервис).

Кусочек в прерываниях где-то увидел, не могу вспомнить где, но он сюда подошел.

Готовых решений в интернете не нашел, а из готовых библиотек ни одна не заработала как я хотел.

Оформлять в библиотеку не стал, просто есть как есть.

Показать полностью

Термометр-котик

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

Вопрос стал еще более актуальным после удачной покупки дешевого Б/у кондиционера и желанием прикрутить к нему самопальный климат-контроль (управление любыми устройствами дома через интернет давно налажено)

Проблема заключалась в том, что цена на готовые устройства неприятно кусается, а те, что в обиходе (вроде решений от Xiaomi) не позволяют "просто так" забрать данные каким-либо открытым протоколом

Вдохновившись этой статьей понял, что пора начинать работать с Arduino.

Прошивка из статьи у меня работать почему-то не захотела, решил попробовать написать что-то своё.

Купил всё что надо на одном известном красненьком китайском сайте и достал с полки паяльник.

Спаял, работает! Однако, остро встал вопрос того, куда бы всё это дело спрятать. Распаечная коробка - громоздко и некрасиво, засунуть в спичечный коробок или пачку из под сигарет можно, но тоже как-то неэстетично. И вот, прогуливаясь по магазину фиксированных цен я увидел его. Котик-ночник из ПВХ, за 150 рублей. Не так компактно, зато красиво.


Вот так выглядит криво пропаенная плата

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост
Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

Да, можно было купить NodeMCU с уже готовыми "рогами" и припаяться к ним, но они торчат и мешают, а мне всё это дел надо уложить в корпус котика


Отрезаем котику ненужные детали в виде светодиодного модуля ночника с батарейками и днища

Аккуратно впихиваем плату и датчик внутрь

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

Выводим коту на голову антенну для связи с пришельцами (на самом деле это корпус датчика)

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

Делаем отверстие для ввода кабеля питания, соединяем всё между собой, приделываем днище на место, заливаем щели клеем и вуаля! Термометр-котик весьма сомнительного вида готов!

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

Теперь данные о температуре можно легко посмотреть через импровизированную веб-страничку

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

В моем случае - еще и сбор данных в Zabbix (система мониторинга) с отрисовкой графиков

Термометр-котик Термометр, Кот, Своими руками, Arduino, Esp8266, Nodemcu, DHT11, Длиннопост

На всё про всё потрачено часов 10 (из них 8 на разработку и 2 на сборку-отладку)


Добавлю ссылку на github - там есть исходные коды для платы (есть еще вариация с датчиком DHT11/22, который менее точен, но поддерживает еще и влажность), шаблоны для заббикса и еще немного полезной фигни.

Показать полностью 7

Какую систему поставить для знакомства с Raspberry Pi

Esp8266 нужен совет

Прошу совета у ардуинщиков и еспешников.

Второй год занимаюсь с соседскими детьми Ардуинками частным образом. Дети от 6 до 9 класса. Ребята уже соображают лучше меня.

В основном собирают метеоприборы, но есть и другое. Работаем с уно, нано, мега. В прошлом году закупил esp32 и esp8266. Несколько esp32 использовали для светодиодных матриц 2812b. Другие для сбора данных с датчиков bme280, 1750, uv и других. Через телефон или на дисплей. Короче все работало по sda и scl.

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

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

Для проверки подключили адресные матрицы. Результат ноль. Сажали рабочии светодиоды через резисторы на землю - не управляются.

Даже самый примитивный код типа:
 

void setup() {               
pinMode(13, OUTPUT);   
}
void loop() {
  digitalWrite(13, HIGH); 
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

не работает. На еsp8266 нумерация gpio не совпадает с d или пином. Проверяли разные номера. Подключали к разным пинам. Например, ставили пин 4, цепляли рабочий светодиод ко всем выводам, кроме питания и земли поочередно. Ставили принтлайн, в мониторе порта показывается переключение.

Несколько детей и я ищем решение по тематическим форумам. Везде указывают на несоответствие gpio нумерации и нумерации пинов. Например gpio2 это пин 4.

Контроллеры и датчики через i2c работают отлично. А вот на пинах пусто.

Проблема еще в том, что сейчас нано, уно подорожали сильно. Закупил для ребят с Али больше 10 esp8266 версии 340 (у меня 2101).

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

Куда копать, как заставить esp8266 менять состояние пинов? Вернеее не так. Как определить какой именно номер d будет переключаться по команде на пин 2?

Плату в АрдуиноИДЕ версии 1.8.5 я выбираю правильно. Порт и скорост так же.

Esp8266 нужен совет Arduino, Esp8266, Esp32, Нужен совет, Дети, Программирование, Самоделки, Проблема, Длиннопост
Показать полностью 1
Отличная работа, все прочитано!