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

Arduino & Pi

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

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

Из WinApp в Proteus 8

При помощи 2-х переходников USB-UART завёл данные из своей, самописной программы под Windows в программу Proteus 8, и теперь могу моделировать процессы там, тыкая кнопочки тут.

Часы - зеркальные, круглые, WS2812B

https://github.com/leonvandenbeukel/Round-LED-Clock

Клинит плату Arduino nano. В чём может быть проблема?

Добрый день.

Конструирую один танк. Дошёл до этапа тестирования ходовой. Всё ездит, всё хорошо. НО есть проблема. Иногда плата зависает и танк продолжает движение. Помогает лишь перезагрузка платы. Сначала казалось, что проблема только при движении назад направо. Но когда снимал видео, то проблемы повторились и при движении в других направлениях. При том разок (первое зависание на 6 секунде, второе на 11) даже отвис.

Конструктивно всё просто. Стоит ардуино нано с модулем nrf24l01, аккумулятор и контроллер двигателей. Программно тоже просто - считываю переменную с показаниями джойстика, а потом преобразовываю и конструкцией из нескольких if - else if определяю что и куда подавать.


Думал либо помехи, либо код. Но вспомнил, что в предыдущем танке была такая же проблема. А там и код другой, и конденсаторы ставил, и конструкция в целом отличается.

Подскажите, пожалуйста, в чём может быть причина? Если всё же помехи с питания (разве контроллер двигателей не должен их устранять?), то как лучше от них избавиться? Просто подбором конденсаторов? Но как тогда определить какие именно конденсаторы нужны? Моторы на 12 вольт (понимаю, что кондёры должны быть от 12 и выше), питание Li-Po 3S. Пытался гуглить, но в основном говорят брать просто как можно больше. И всё.

Ёмкость и тип конденсаторов подобрать думаю как. А если не в помехах дело, то в чём может быть ещё?


Код приёмника https://ideone.com/6R3kkS

Код передатчика https://ideone.com/SXeR6W


Upd 2: Не хочу торопить события, но (кажется) проблема решилась конденсатором на модуль nrf24l0. Всем большое спасибо.


P.S. Опять же, не уверен правильно ли указал сообщество.

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

Пошаговые инструкции для макеток (а-ля Fritzing online)

Обычно схемы до Ардуино выкладывают как статичные картинки - а может удобнее было бы кликать и открывать схему по шагам с пояснениями? Ну и скрывать/открывать элементы на схеме, чтобы лучше понять, что как соединяется. Что думаете?

Домофон на ESP

Наверное любой кто занимался "умнизацией" своего жилища, задумывался или даже сделал "умный" домофон, а точнее своё абонентское устройство координатного домофона в квартире. Я не стал исключением и тоже решил сделать своё.

Почему своё, а не уже придуманное кем-то? Всё потому что: 1. Идеи заложенные в уже придуманные немного не входили в мои планы, и не все функции реализованы. 2. Как-то колхозно всё реализовано и с большими вопросами к элементной базе и габаритам устройств.

Итак, чего же тебе не хватает, сабака? - Все придуманные варианты, которые я смог найти в этих ваших интернетах:

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

2. Использовали куеву тучу реле и/или оптопар.

Тоесть: Берём несколько реле и подпаиваем их выходы к геркону - для эмуляции снятия трубки, к кнопке - для открытия, еще реле к линии зачем-нибудь. Оптопару на линию для детекции (это понятно), и прочее прочее... Фу так делать. Схема получается хоть и простая, но габаритная.

3. Никто не реализовал передачу аудио сигнала на блок вызова.

В связи с этим, мои требования были такие:

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

2. Передача аудио сигнала на блок вызова.

3. Минимально возможное использование релюх или оптопар.

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

Начинаю шуршать схемы трубок. И после детального изучения принципов работы, что и за что отвечает - делаю вывод: Все схемы трубок координатных домофонов идентичны где-то на 90% как бы по разному из не рисовали. Беру за основу ту. которая мне показалась наиболее удобна для понимания.

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

И начинаем в ней разбираться. Геркон не надо, Динамик не надо, значит "схему его обвязки" тоже не надо. Резисторы 100-ки не надо, тумблер тоже.

Кнопка открытия... Зачем там люди реле ставят?... транзистор же нужен.

Микрофон... Как подать сигнал. Да просто. Микрофон электретный, а значит это по сути транзистор. Вот и поставим туда транзистор, только через 10 кОм, что бы сигнал по громкости не завалило. Немного поколдовав схему в ИзиИдея получаем:

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

Далее, детектор линии. Тут без оптопары не обойтись. Ну на схеме трубки есть диод индикации через 10кОм, делаем аналогично. Вход на светодиод, Выход на ногу ESP.

Теперь, как ни крути, но одно реле понадобится. Задача которого состоит в том, чтобы  в выключенном состоянии коммутировалась на линию трубка, а во включенном наша схема. Я долго пытался найти решение как тут отказаться от реле, но всё сходилось к тому, что если нет питания, никакой коммутации не будет, т.е. если устройство по какой-либо причине не запитано, то домофон вообще не работает. Эх ладно, пусть будет одно реле =( к счастью нашлась одна миниатюрная релюшка от OMRON.

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

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост
Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

Моя система умного дома - это HomeAssistant. Значит писать будем под ESPHome. (MQTT-шники, лишний брокер - это ваш выбор. Мой выбор ESPHome).

Всё бы было хорошо, если бы ни два НО:

1. Хоть маленькая заметка о том как воспроизвести звук на ESPHome используя библиотеку ESP8266Audio и есть, но она не работает, а точнее, там много не описано и досказано. Пришлось додумывать самому.

2. Ни одной статьи как использовать LittleFS в ESPHome нет. Пришлось всё решать самому.

Как итог:

Прошивка написана, всё работает как и положено.

В HomeAsistant карточка выглядит так:

Домофон на ESP Esp8266, Home Assistant, Домофон, Умный дом, Программирование, Микроконтроллеры, Видео, Длиннопост

А поскольку у меня имеется аж 2 Алиса-станции мини, и они умеют взаимодействовать с этой системой, то и домофоном теперь можно управлять голосом.


Ссылка на прошивку: https://github.com/SCratORS/SmartIntercom

Если у Вас тоже есть вопросы как работать с LittleFS и воспроизводить из нее Аудио файлы в ESPHome - Это для Вас.

Ссылка на схему: https://easyeda.com/scrators/intercom


Спасибо за внимание. Надеюсь кому-нибудь пригодится

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

Raspberry Pi 3B и Grove base hat

Всем салют! Появилась проблема, пару дней назад raspberry перестал физически обнаруживать grove base hat, в связи с чем стала невозможна работа с датчиками, а единственное что делал, проверял напряжение на выводах (однако после этого он прекрасно работал). Пробовал переподключать, перезагружать rsb, переустанавливал операционку, но все без толку. На пинах base hat питание подается, стабильные 3.3В. В чем может быть дело? Кто-то сталкивался с подобной проблемой?

The Legend VST Synth Special Controller

У музыкантов диайвайщиков, появилось новое направление реализации своего таланта в устройствостроении, а именно: делать миди контроллеры под определённый виртуальный инструмент. Мой друг довольно успешно реализовал контроллер для Артуриевского Минимуга или просто Mini V. Знакомый испанец с канала Nerd Musician, также делал контроллер под MiniV . Но всё это делалось из фанеры и выглядит довольно громоздко.

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

Итак, Максим, заразил меня этой интересной идеей. Ну что-же? Будем делать свой МУГ!

Из многочисленных реализаций Муга в виде вст, мне лично, очень понравился виртуальный синтезатор : The Legend от Synapse Audio. Скажу даже больше: я влюбился в него. Для заядлого берлинщика, он буквально идеален, правда секвенсора в нём нет!

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

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

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

За основу проекта, конечно же берём Ардуино Леонардо и четыре штуки мультиплексора CD4067. Пользуемся библиотекой Control Surface, которая позволяет запрограммировать это всё очень быстро и просто. По началу я даже думал и не выкладывать код, но всё таки в конце - вы его найдёте. )))

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

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

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

Заказал детальки на Алике и в конце концов собрал сие чудо! Деталек, я должен сказать, много: 38 потенциометров с колпачками ручек, 12 свитчей (на 2 положения), 9 светодиодов с держателями, леонардо, 4 мультиплексора.

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker
The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

Можно было заморочиться и сделать вместо некоторых потенциометров переключатели ( как на советских телевизорах), по аналогии с оригиналом. Но нога у этого переключателя - огромная, а тут и так 59 элементов на площади меньше чем лист формата А4.

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

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

У оригинального, виртуального The Legend, есть ещё и "задняя" панель на которой расположены ручки управления эффектами и ещё какой то ерундой, которая ни на что не влияет. Хочу сделать, в будущем, контроллер и для задней панели. Ручек там, конечно, немного, но есть идея сделать внизу обычные нотные клавиши, реализовав это на кнопках.

The Legend VST Synth Special Controller Arduino, Controller, Midi, Moog, Своими руками, Видео, Длиннопост, The_legend, Musicmaker

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

Терпение и упорство, реализуют любую идею, чего и Вам желаю.

Код:

#include <Control_Surface.h>

USBMIDI_Interface midi;

CD74HC4067 muxPots = { A0, {2, 3, 4, 5},};

CD74HC4067 muxPots1 = { A1, {2, 3, 4, 5},};

CD74HC4067 muxPots2 = { A2, {2, 3, 4, 5},};

CD74HC4067 muxPots3 = { A3, {2, 3, 4, 5},};

CCPotentiometer potentiometer[] = {

{muxPots.pin(0),{10, CHANNEL_6}},

{muxPots.pin(1),{11, CHANNEL_6}},

{muxPots.pin(2),{12, CHANNEL_6}},

{muxPots.pin(3),{13, CHANNEL_6}},

{muxPots.pin(4),{14, CHANNEL_6}},

{muxPots.pin(5),{15, CHANNEL_6}},

{muxPots.pin(6),{16, CHANNEL_6}},

{muxPots.pin(7),{17, CHANNEL_6}},

{muxPots.pin(8),{18, CHANNEL_6}},

{muxPots.pin(9),{19, CHANNEL_6}},

{muxPots.pin(10),{20, CHANNEL_6}},

{muxPots.pin(11),{21, CHANNEL_6}},

{muxPots.pin(12),{22, CHANNEL_6}},

{muxPots.pin(13),{23, CHANNEL_6}},

{muxPots.pin(14),{24, CHANNEL_6}},

{muxPots.pin(15),{25, CHANNEL_6}},

{muxPots1.pin(0),{26, CHANNEL_6}},

{muxPots1.pin(1),{27, CHANNEL_6}},

{muxPots1.pin(2),{28, CHANNEL_6}},

{muxPots1.pin(3),{29, CHANNEL_6}},

{muxPots1.pin(4),{30, CHANNEL_6}},

{muxPots1.pin(5),{31, CHANNEL_6}},

{muxPots1.pin(6),{32, CHANNEL_6}},

{muxPots1.pin(7),{33, CHANNEL_6}},

{muxPots1.pin(8),{34, CHANNEL_6}},

{muxPots1.pin(9),{35, CHANNEL_6}},

{muxPots1.pin(10),{36, CHANNEL_6}},

{muxPots1.pin(11),{37, CHANNEL_6}},

{muxPots1.pin(12),{38, CHANNEL_6}},

{muxPots1.pin(13),{39, CHANNEL_6}},

{muxPots1.pin(14),{40, CHANNEL_6}},

{muxPots1.pin(15),{41, CHANNEL_6}},

{muxPots2.pin(0),{42, CHANNEL_6}},

{muxPots2.pin(1),{43, CHANNEL_6}},

{muxPots2.pin(2),{44, CHANNEL_6}},

{muxPots2.pin(3),{45, CHANNEL_6}},

{muxPots2.pin(4),{46, CHANNEL_6}},

{muxPots2.pin(5),{47, CHANNEL_6}},

{muxPots2.pin(6),{48, CHANNEL_6}},

{muxPots2.pin(7),{49, CHANNEL_6}},

{muxPots2.pin(8),{50, CHANNEL_6}},

{muxPots2.pin(9),{51, CHANNEL_6}},

{muxPots2.pin(10),{52, CHANNEL_6}},

{muxPots2.pin(11),{53, CHANNEL_6}},

{muxPots2.pin(12),{54, CHANNEL_6}},

{muxPots2.pin(13),{55, CHANNEL_6}},

{muxPots2.pin(14),{56, CHANNEL_6}},

{muxPots2.pin(15),{57, CHANNEL_6}},

{muxPots3.pin(0),{58, CHANNEL_6}},

{muxPots3.pin(1),{59, CHANNEL_6}},

{muxPots3.pin(2),{60, CHANNEL_6}},

{muxPots3.pin(3),{61, CHANNEL_6}},

{muxPots3.pin(4),{62, CHANNEL_6}},

{muxPots3.pin(5),{63, CHANNEL_6}},

{muxPots3.pin(6),{74, CHANNEL_6}},

{muxPots3.pin(7),{65, CHANNEL_6}},

{muxPots3.pin(8),{75, CHANNEL_6}},

{muxPots3.pin(9),{67, CHANNEL_6}},

{muxPots3.pin(10),{68, CHANNEL_6}},

{muxPots3.pin(11),{69, CHANNEL_6}},

{muxPots3.pin(12),{70, CHANNEL_6}},

{muxPots3.pin(13),{71, CHANNEL_6}},

{muxPots3.pin(14),{72, CHANNEL_6}},

{muxPots3.pin(15),{73, CHANNEL_6}},

};

void setup() {

muxPots.begin();

muxPots1.begin();

muxPots2.begin();

muxPots3.begin();

Control_Surface.begin(); // Initialize Control Surface

}

void loop() {

Control_Surface.loop(); // Update the Control Surface

}

#arduino #controller #MIDI #moog #The_Legend #musicmaker #diy

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

Используем millis() правильно и создаем умный светофор на Arduino

Обучающее видео про работу с функцией millis() и создание светофора на Ардуино. Приятного просмотра!

Отличная работа, все прочитано!