Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

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

4

Продолжение поста «Ардуино помощь»1

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

и вот код который мне дали прошлый раз

#include <Adafruit_NeoPixel.h>
#include <Adafruit_ADXL345_U.h>
const int Pin = 2; // пин Ардуино, к которому подключена лента
const int CountLed = 37; //кол-во светодиодов в ленте
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CountLed, Pin, NEO_GRB + NEO_KHZ800);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
strip.begin();// гасим ленту, т.к. могут рандомно включаться отдельные светодиоды
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
strip.show();
}
void loop()
{
for (int i=0; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
delay(1000); // пауза между включениями светодиодов, например, 1 сек = 1000мсек
}
delay(2000); // пауза между циклами, например, 2 сек = 2000мсек
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
}

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

Странности поиска пост

Доброго времени суток господа.
Как то мне давно попадалось несколько статей, как умельцы городили из двух каналов 8 битного ацп один 16-битный.
Сейчас никак их не могу найти/вспомнить. Может кто нить знает подобное?
Не спрашивайте зачем, мазохизмом занимаюсь.

87

Аппаратный ЭЛТ-фильтр для картинок

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

В результате давно вынашивал идею создания этакого аппаратного ЭЛТ-фильтра для картинок. Это эпичный долгострой, который наконец дошёл до финала и каждый может его попробовать.

Концепция


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

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

Создание конструктива достаточно подробно описал в мой статье на хабре "Аппаратный ЭЛТ-фильтр для картинок", поэтому подробно останавливаться на этом второй раз не хочется.

Внешний вид аппаратного фильтра.

Гроб в сборе.


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


Краткая инструкция для начинающих:

· Это телеграмм-бот, обитает тут.

· Заходим в него и жмём «запустить».

· После этого у вас появится меню.

· Выбираем «Обработать новое изображение» и скармливаем любой графический файл со сжатием.


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

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

В моей жизни — этот проект самый эпичный долгострой, который всё же был реализован и доведён до конца. Проект меня многому научил. Когда я делал сайт, то впервые вообще столкнулся с js, php и вообще web-программированием, CGI вообще был для меня пустым звуком, а ещё разработка своих скриптов… Всё это стало для меня замечательным опытом и дало весьма неплохой навык, который пригодился в моей дальнейшей работе.

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


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


З.Ы. На этом аппарате много лет назад я даже сделал видео, это чисто собранно из картинок, обрабатывал где-то около суток.

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

Как я полтора года танк на Arduino (и не только) пилил

Привет, уважаемые пользователи Пикабу! Здравствуйте, любители таких тем как DIY ( 'do it yourself' - сделай сам), IoT ('Internet of things' - интернет вещей) и так далее.

Пару лет назад я обзавелся новым хобби, точнее, воскресил старое - микроэлектроника и

радиотехника. Что и как из этого получилось я опишу далее, а пока вот фото для затравки.

Сейчас, конечно, с паяльником сидеть гораздо приятней и проще чем 20+ лет назад. Все радиодетали в доступности, интернет просто кишит различной информацией, необходимой для того, чтобы начать что-то изучать на эту тему. Кроме того, стали доступны всякие вещи для создания конструкций, корпусов. Я уже молчу об огромном количестве готовых наборов для начинающих, которые могут заинтересовать этой увлекательной и полезной темой подрастающее поколение. Интерес к робототехнике также подогревается и тем, что она тесно связана с программированием, что как никогда актуально. Начинать обучение программированию, когда имеешь дело не с абстрактными данными а с чем-то, что можно пощупать, запустить или отправить в плавание - на мой взгляд хорошая идея. Это была минутка агитации и если вам стало интересно, какие вещи, например, можно сделать в наше время домашних условиях своими руками, пожалуйста, продолжайте чтение.

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

В марте 2021 года я начал проявлять интерес к Arduino. До этого я всегда считал это чем-то недостижимо сложным, чем-то на грани физического и цифрового миров. Я программист и имею небольшие навыки в радиотехнике, чтобы, собрать, например усилитель ШИМ-сигнала, или подружить 3.3v логику с пятивольтовой, или сделать гирлянду на елку, или свет для своих перцев, которые выращиваю дома. То есть имею базовые представления о работе полупроводников и имею навыки обращения с паяльником. Радиотехнику я забросил давно, но еще раз скажу, что за 20 с лишним лет многое изменилось, стало значительно легче и доступней, поэтому вернуться в этот удивительный мир транзисторов, резисторов, конденсаторов, микросхем и катушек мне было не сложно. Arduino, как я писал, мне казалось сложным, поэтому для начала мне пришлось купить стартовый набор, как например вот этот:

И.... сделать конечно, же "мигалку". Моему восторгу от наблюдения за мигающим светодиодом не было предела и меня затянуло, ведь до этого частоту мигания на К155ЛА3 в юности я мог регулировать только конденсатором и резистором, а теперь я мог сделать это программно, и это казалось нереально крутым. Часть того, что из этого вышла, я и опишу далее.


Чтобы не потерять интерес к новой теме мне надо было поставить перед собой цель. Что-то, что я мог бы использовать с пользой или для игры. Что-то, что сочетало бы в себе сразу несколько технологий и подходов. Вероятно я где-то увидел, какие прикольные танки делает народ и тоже решил сделать нечто подобное. В интернете много статей и роликов на тему создания подобных вещей. Кто-то использует Arduino, кто-то другие платформы вроде Raspberry Pi (и подобных Orange/Banana/Rock). Кто-то использует и то и другое и можно без хлеба. Все зависит от цели. Моя изначальная цель была создание танка, которым можно было бы управлять по BLE с айфона или андроида, используя свое приложение. Под управлением я понимал движение вперед, назад, в стороны и разворот. Для гусеничного хода это регулируется скоростью и направлением вращения моторов, расположенным по сторонам. В этот момент я наконец-то узнал что такое ШИМ и как его применять. И для меня вдруг стало понятно, почему почти вся эта техника с приводами на заводах так пищит :). Кроме того, требовалось как-то взаимодействовать по Bluetooth, но тут особой проблемы не было, поскольку по работе я работал с iBeacon и имел какие-то представления о том, что и как делать. Танк должен был быть автономным, ведь глупо было бы в наше время управлять чем-то по воздуху, если это что-то ограничено длиной провода до источника питания :). Поэтому также пришлось изучить и правила работы со сборками Li-Ion батарей.

Итоговая сборка первой версии танка, над которой я работал пару недель состояла из:

- Три Li-Ion аккумулятора, собранные в батарею 3S с платой BMS для защиты и балансировки заряда.

- Один драйвер мотора на L298N

- Одна Arduino UNO из стартового набора

- Bluetooth модуль HM-10 (поскольку он был для меня доступен и умел в BLE, что для меня было критичным)

- Шасси танка с AliExpress. Там 2 мотора, гусеничные полотна, шестерни и крепеж для соединения конструкции. Классная вещь!

- Индикатор уровня заряда Li-Ion 3S батареи.


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

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

Программа (или скетч, как говорят ардуинщики) потребовала воскресить навыки написания на C/C++, и я даже собрал некое подобие библиотеки для того, чтобы быть ближе к плюсам. Назвал ее эту штуку BoardKit, положил к себе в Bitbucket и никому не показывал, потому что чувствовал, что ходу этой теме не будет. Итоговая программа в .ino файле выглядела примерно вот так (заранее прошу прощения за выкладывание кода в скринах из VS Code, но там нет ничего, что было бы неудержимо хотелось скопировать :) )

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


MasterScheme тут - это модель платы. Она должна была описывать составляющие ее компоненты и логику взаимодействия между ними. Ашник соответствующего класса выглядел примерно вот так:

При чем тут Habanero? Я люблю острые перцы и решил, что интересные модули буду называть именем сорта перцев. Просто ради прикола и какого-то порядка в именовании. Саму логику (*.cpp) я прикладывать не буду, потому что пост и так обещает быть довольно большим, но если тема станет интересна аудитории, то я запилю отдельный пост, приложив исходники на гитхабе не обещая что они соберутся, так как я больше их не использую, и потому что изврат с Xcode, помните? :) Хотя что-то подсмотреть в них наверное можно.

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

Где-то год я в свободное время активно занимался Raspberry/Orange/Rock PI, Full-Stack разработкой собственной системы умного дома в квартире в симбиозе с HomeKit и управлением полива и мониторингом погоды на дачном участке с видео-наблюдением. Сейчас у меня довольно внушительная система, которую я постараюсь описать отдельным постом, если это будет кому-то интересно. Если коротко, то это бекенд на основном хосте под Docker на Raspberry Pi, который по MQTT управляет переферийными устройствами на ESP32-WROOM (например включение света в спальне), пишет в MongoDB, расположенную на RockPI 4 статистику по температуре и влажности в комнатах и на улице, а также по количеству людей в комнате. Распознает людей система на том же хосте Raspberry Pi при помощи Intel Neural Stick 2 и OpenVINO. Почти всем этим делом можно управлять с веба под тем же докером. Веб доступен в локальной сети. Бек на Express, фронт на React. И все это дело скрепляется несчетным количеством bash-скриптов. Тема, в общем-то тоже очень интересная, хотелось бы, чтобы читателям стало интересно и про это почитать :)


Вернемся к главной теме: роботанку. C завершением дачного сезона я решил его воскресить, но уже с учетом технологий, которые я освоил за тот год, пока он пылился на полке.
Во первых, я окончательно ушел от Arduino, и от Esp8266, коих за год имел неосторожность накупить на алике за дешево по акциям приличное количество. ESP32 значительно лучше и современней. Прошивки для ESP32 я делаю на основе Mongoose OS - великолепная вещь, которая позволяет во первых, писать на MJS, что мне было приятней, чем C или MicroPython, а также уже имеет в себе интерфейсы для работы с множеством IoT штук на более-менее высоком уровне, чтобы не тратить время на то, что я назвал BoardKit'ом :). Также я решил встроить танк в свой умный дом, пожертвовав тем самым отзывчивостью. А именно управлять им, как я управляю светом в какой-либо комнате: какой-то клиент шлет HTTP запрос с неким параметром на бекенд, он по MQTT отправляет сообщение с обновленным конфигом в брокер (кстати, Mosquitto наызвается), тот рассылает по устройствам, которые подписаны на нужный топик, устройство получает обновленный конфиг и переходит в новый стейт. Опять же, если будет интерес, я обязательно опишу более детально и пошарю исходники. Схема довольно громоздкая, но универсальная, стабильная и расширяемая. Также у меня давно скучала одна плата ESP32-CAM и я решил всунуть в танк и ее, чтобы видеть куда тот едет (используя подсветку, если темно), управляя без необходимости его видеть. Плюс надо было уйти от необходимости установки мобильного приложения в сторону возможности управления с веба, тем более опыт создания WEB-приложений накопился довольно значительный. А еще надо было поработать над аварийной остановкой механизма в случае упора в препятствие или переворота. Ну и еще я хотел видеть уровень заряда батареи в вольтах а не в полосочках, как было раньше. Также я пробрел дешевый лазерный модуль и решил его тоже использовать для 'пиу-пиу бластера' для котиков. Вот двое из трех:

По мере создания переферийных устройств для умного дома я насобачился делать всякие коробочки из вспененного ПВХ на любой вкус и цвет. У меня есть 2 листа: черный и белый, толщиной 3 мм. Клею я их клеем Cosmofen SL-660. Записывайте лайфхак: клей белый и чтобы склеивать черный лист ПВХ так, чтобы не было белых полос на месте склейки я добавляю порошок для лазерного принтера прямо в клей, который выдавливаю порционно в шприц, а уже из шприца выдавливаю когда мне нужно. Эти нехитрые манипуляции позволяют создавать коробочки почти любой сложности на приличном уровне. Вот например я делал 'умный' диммер на 2 канала в довольно простом, но аккуратном корпусе:

Поэтому, вдохновившись Cybertruck'ом от Tesla (шутка, конечно) я запили в итоге это.

Моторами, вспышкой для камеры, лазером и сбором данных с ИК-датчиков препятствий и коммуникацией с остальной частью умного дома занимается прошивка для ESP32-WROOM DevKitC. Вот такая:

Потоковый сервер с камеры - на ESP32-CAM. Вот такая:

Исходник прошивки для нее прям один-в-один с примеров, которые предлагает Arduino IDE для AI Thinker. Единственное что я сделал - это исправил качество видео по умолчанию и добавил дополнительные попытки подключения к вайфаю, если тот не может подключиться в течение некоторого времени. Я не уверен, что это работает, потому что подебажить не хватило времени, но вроде хуже не стало :D


Остальная начинка, это все те же 3 Li-Ion батареи, BMS, L298N, датчик тока INA219, парочка полевиков для мощного светодиода вспышки и включения ESP-CAM и 3 ИК-датчика препятствий: спереди, сзади и снизу, чтобы остановить моторы при перевороте или подъеме.

Часть WEB-страницы для управления танком в итоге выглядит вот так:

В центре - кнопка останова. Стрелочки - думаю понятно. Каждое нажатие на стрелочку добавляет или отнимает X% мощности на нужной гусенице.  В верхнем левом углу - включение лазерной указки, в верхнем правом - переключение между обычным и 'спортивным' режимом

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

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

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


Короче, нет предела совершенству, но в таком виде его уже не стыдно показать обществу :)


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

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

Дорогие друзья, для чего я сделал этот пост? Тема кажется мне интересной и я уверен, что многим тоже зайдет. Кроме того, у меня накопился некоторый опыт в вопросах DiY, IoT и при необходимости если будут какие-то вопросы, я могу попробовать ответить, или подсказать… Поскольку знаю, каково это искать решение какой-то дурацкой проблемы на форумах 10-ти летней давности на условном китайском языке. Кроме того, лично мне очень понравилась та связка технологий, которую я использую в своём умном доме, возможно она поможет кому-нибудь решить какие-то технические вопросы. Ну и конечно же, послушать дельные советы ребят, которым есть что сказать и направить на путь истинный.


Спасибо за внимание, будьте здоровы!

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

Прибор РБ-1

Люблю на досуге паять всякую бесполезную электронную фигню. Мигающие лампочки, кнопки, переключатели. Причем мне нравится именно процесс. Результат тут вторичен, да и большую часть проектов я начинаю без намерения завершить. Как то в очередной раз накупил на Алиэкспрессе всякой электронной мелочи, в том числе счетчик Гейгера, и впервые сделал что то более или менее законченное.  Так родился прибор РБ-1

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

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

На прозрачной пленке распечатал значок радиации.

И совместил с оранжевым оргстеклом и светодиодами.

Прибор выполнен на контроллере esp8266 и круглосуточно пишет данный со счетчика гейгера через mqtt в базу данных. Я использую прошивку esphome - очень удобная штука и позволяет полностью исключить муторную возню с программированием на C(и особенно с блевотным C++) Также добавил на прибор две кнопки и лампочки, но пока еще не придумал чего с ними делать.

В итоге получилось вот такое изделие. В общий интерьер подвала вошло как влитое

Смысла в данном изделии не очень много, но сам процесс создания мне понравился )

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

Помогите с raspberry

У меня есть raspberry pi 3b+. У неё горит только красный светодиод и при нормальном питании ничего не работает. Все прошивки были установлены корректно и многими вариантами. Также в районе чипа MxL есть электрический шум. Возможны варианты ремнота?

14

Поиск Teensy 4.0

Господа пикабушники добры вечер!

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

Территориально нахожусь в МО, Подольск.


Вот гит проекта, списывался с создателем, он подтвердил что делал только под тинси 4.0

https://github.com/vtl/volvo-cem-cracker

8

Световой меч из отрезка лазерного луча длиной 70 см

Всем привет!

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

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

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

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

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

Показать полностью
Отличная работа, все прочитано!