34

Простейший Serial Monitor

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

Вторым толчком к такому устройству послужил невостребованный, лежащий у меня дисплей 19264 на контроллере KS0108. Откуда я его достал - уже не помню.

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

1) наконец-то разобрался с дисплеем :)

Простейший Serial Monitor Arduino, Своими руками, Длиннопост

2) родил плату (изначально была другая, эта уже с исправлениями)

Простейший Serial Monitor Arduino, Своими руками, Длиннопост

3) процесс изготовления печатки ЛУТом

Простейший Serial Monitor Arduino, Своими руками, Длиннопост
Простейший Serial Monitor Arduino, Своими руками, Длиннопост
Простейший Serial Monitor Arduino, Своими руками, Длиннопост

4) сверлим (да криво, патрон бьёт, жду новый, скоро приедет)

Простейший Serial Monitor Arduino, Своими руками, Длиннопост
Простейший Serial Monitor Arduino, Своими руками, Длиннопост

5) паяем компоненты (кста, паял ТАГСом, теперь всем рекомендую - нет черкашей на плате, смывается водой, не воняет и не дымит, единственный минус на мой взгляд - не блестит место пайки, пятаки матовые остаются (да и хер с ними))

Простейший Serial Monitor Arduino, Своими руками, Длиннопост
Простейший Serial Monitor Arduino, Своими руками, Длиннопост

6) первый вариант платы на проверке

Простейший Serial Monitor Arduino, Своими руками, Длиннопост

7) рисуем сову делаем корпус

Простейший Serial Monitor Arduino, Своими руками, Длиннопост

Краткое описание функций:

1) простой вывод информации, приходящей на пины RX и TX

2) возможность выбора скорости сериал интерфейса (бод) джамперами или дип-переключателем на 3 ползунка (красненький такой)

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


Какие были косяки при изготовлении девайса:

1) проблемы с разделением экрана по чипам - изначально затупил с Chip Select, поправил библиотеку и всё заработало

2) забыл что для нормальной работы сериал интерфейса у устройств должна быть общая земля, долго думал почему в порт приходят иероглифы после перевода девайса на автономное питание, в итоге после фразы "блять, точно!" припаял в рандомное место на землю провод и всё заработало

3) не учёл на первом варианте платы разъём под ручной сброс, пришлось колхозить на этапе запихивания в корпус

4) на мегу8 прошивка совсем чуток не влезает, пришлось пожертвовать мегу328, чтобы оставить возможность выбора скорости интерфейса


Кто хочет посмотреть что внутри - откройте коробку с дошиком, там почти то же самое.

Найдены дубликаты

Перейти в случайный пост
+2
Выглядит замечательно! Хорошая альтернатива шнурку переходника USB-UART, особенно если автономность нужна. Следующий шаг - автоматический выбор скорости, отправка шаблонных фраз типа "в чаще юга жил бы цитрус" и разбор протоколов MODBUS :)
раскрыть ветку 9
+1

автоматический выбор скорости? где про это почитать можно подробнее?)

раскрыть ветку 8
0
Например stm32 так умеет
раскрыть ветку 7
+2

Что за бумага для распечатки дорожек? На вид как от самоклейки.

раскрыть ветку 2
+1

Китайцы продают специальную бумагу для ЛУТ. На вид похожа именно на неё. https://ru.aliexpress.com/item/PCB-A4-Thermal-Transfer-Paper...

раскрыть ветку 1
+2

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

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

Бро, ты Чертов псих)))

+2

сложно электрику осваивать если 0 в ней (там всякие резисторы итд - или даже схемотехнику похоже)? такто кодирую по плюсам, просто си, х86-64 асму, и вот еще за арм взялся. но это всё на разных уровнях операционки, электрики там ноль (кроме всяких , а в ней я нубло

раскрыть ветку 4
+4

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

раскрыть ветку 3
+1

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

раскрыть ветку 2
+1

Класс!
Аккуратненько.... желтая бумага ми-ми-ми)

+1

Хочу такую же приблуду сверлильную. Самоделка?

раскрыть ветку 4
0

да, самоделка) если интересно - могу поближе сфоткать

раскрыть ветку 3
0

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

раскрыть ветку 2
+1

А не проще ли было попробовать беспроводным линком HC-12 или чем-то подешевле пересылать прямо в компьютер? Мне самому хочется попробовать, но угнетает конченый компилятор Arduin-ы, который даже простейшие ошибки не показывает, и делает гиганские exe файлы...

раскрыть ветку 3
0
Он как раз показывает дохера и больше, просто включите в настройках отображение всех логов.
ЕХЕ файлы?? Мы точно об ардуине говорим?
раскрыть ветку 2
+1

видимо имелись в виду hex, которые распухают "благодаря" ардуиновскому переходному коду

0

Я пробовал взять LCD I2C библиотеку под двухстрочный экран, и выпилить всё лишнее, а так же переменовать функции по своему. Весь мусор вычистил. Но застрял на попытках удалить пустые функции. Что за ошибка и в какой строке узнать невозможно. Я даже понимаю почему примерно возникает ошибка: у класса Print по какой-то причине нельзя удалить лишнее, но компилятор видимо "не знает" как выглядит родительский класс, чтоб показать ошибку уже в нём, а не в моём коде.

...Раньше долго сидел в Borland Delphi 7, где такие ошибки компиляции распознавались очень красиво, с подробным описанием...

...А ещё раньше, во времена DOS и Win9x пользовался ассемблером MASM, там конечно классов не было (или я о них не знал), но все ошибки компиляции тоже были в человеческом виде.


И это ещё не всё! Ардуиновский компилятор в WinXP запускается, но с ошибками. т.е. на ровном месте может выдавать ошибку - добавил или удалил безошибочную строку, а у тебя уже ошибка...


По поводу EXE файлов. Ну а как их ещё называть, если они такие огромные? (по 20 кб) Во времена ДОС написать COM программу более 1.5кб - это уже полноценно работающая программа! (например я для Heroes II такую писал, что к CD-диску не лазила, и всякие длинные видео заменяла коротким фрагментом, и то там половина объёма - это всякие сообщения и прочий текст!)

А mars.exe (4кб) дезассемблировал, и сократил вдвое (около 2.0кб...2.7кб), правда из-за того, что не знал как правильно объявлять сегменты она у меня раздутая нулями получалась, но pklite это вылечивал 😊

0
Что-то автор замудрил ;)
не проще было подключить к телефону через usb-otg, и на Андроиде установить любую программу серийного порта?
раскрыть ветку 2
0

да, не подумал об этом, в последнее время телефонами не интересуюсь просто

раскрыть ветку 1
0

пример - "Serial USB Terminal" на android

0

Я правильно понял, что платка это преобразователь UART в параллельный 8-ми битный LCD?

раскрыть ветку 1
0

да, можно и так сказать)) насчёт параллельного 8-ми битного не уверен, но LCD точно))

0

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

Похожие посты
10526

Как я учился играть на гитаре, а в итоге создал свою цифровую

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Меня зовут Дмитрий Дударев. Я занимаюсь разработкой электроники и очень люблю создавать различные портативные девайсы. Еще я люблю музыку.


Давным-давно – в апреле или около того, когда весь мир сотрясался от ударов страшного карантина, я решил научиться играть на гитаре. Я взял у друга акустическую гитару и стал осваивать инструмент по урокам из ютуба и табулатурам. Было тяжело. То ли я неправильно что-то делал, то ли плохо старался, то ли в обществе моих предков мелкая моторика вредила размножению. Короче, ничего кроме звуков дребезжащих струн у меня не выходило. Мое негодование усиливала постоянная расстройка струн. Да и окружающим тысячный раз слушать мою кривую Nothing else matters удовольствия не доставляло.


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


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

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



Что я хочу от гитары?


1)  Я хочу что-то максимально похожее на гитару, т.е. шесть струн и 12 ладов на грифе.


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


3)  Устройство должно без плясок с бубном подключаться к чему угодно, от iOS до Windows. Окей-окей, ладно, будем реалистичными – ко всем популярным осям.


4)  Работа от аккумулятора.


5)  Подключение должно производиться без проводов (но раз уж там будет USB разъем для зарядки, то и по проводу пусть тоже подключается)


6)  Ключевой момент – на гитаре должно быть просто учиться играть, без необходимости в долгих тренировках по адаптации кистевых связок. Как это реализовать? Сразу пришла идея оснастить струны и лады светодиодами. Типа, загрузил табулатуры в гитару, а она уже сама показывает, куда ставить пальцы. Т.е. нет такого, что смотришь на экран, потом на гитару, снова на экран, снова на гитару. Вот этого вот всего не надо. Смотришь только на гитару. И там же играешь. Все. Это прям мое.


7)  Хотелось бы поддержки разных техник игры на гитаре: hummer on, pull off, slide, vibrato.


8) Без тормозов. По-научному – чтобы задержка midi-команд не превышала 10мс.


9)  Все должно собираться из говна и палок легко доступных материалов без сложных техпроцессов и дорогой электроники.



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


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


Существующие аналоги


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


Оказывается, первая цифровая гитара была создана еще в 1981 году, но в народ сильно не пошла из-за хилой функциональности.

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Варианты посовременнее, конечно, тоже нашлись.

Вот, например, с айпадом вместо струн или еще одна в форме моллюска:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара
Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Однако такого, чтобы выполнялись все мои хотелки – в первую очередь компактность и режим обучения «жми на лампочки» – такого нет. Кроме того, такие midi-гитары нацелены все же на более профессиональную аудиторию. И еще они дорогие.


Значит, приступаем!


Первый прототип


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


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


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

Так выглядит 3D-модель:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

А так живьем:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Тактильное ощущение приятное. Должно сработать.

Для ладов на грифе я заказал на Али вот такие тензорезистивные датчики.

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

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

Плюс нужен АЦП, чтобы считывать инфу с датчиков и передавать на контроллер.


Пока ждал датчики из Китая, развел плату:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара
Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Прежде чем заказывать печать платы, решил дождаться тензорезисторов. И, как оказалось, не зря. Из 80-ти датчиков рабочими оказались только несколько, и то с разными параметрами.

Выглядит, мягко говоря, не так, как заявлено. И чего я ожидал, покупая электронику на Али?..

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

И тут меня осенило.

Можно ведь применить другой метод детектирования — измерение емкости, как в датчиках прикосновения. Это гораздо дешевле и доступнее. А если правильно спроектировать механику, то можно и усилие определять.


Что ж. Удаляю все, что было сделано

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Второй прототип


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


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


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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

На этот раз плату удалось заказать и даже дождаться ее изготовления.

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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Два проводочка в нижней части – это я подключил накладку с цилиндриками к уже изготовленной плате. Это временное решение.

Железяка готова. Следующая задача – заставить ее играть.

Софт

Программная часть реализована так:

1. Скачиваем виртуальный синтезатор, который может работать с MIDI устройством и издавать гитарные звуки.

2. Пишем прошивку для контроллера, которая будет опрашивать сенсоры и передавать данные по USB на комп.

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

Теперь каждый пункт подробнее.

Виртуальных синтезаторов под винду с поддержкой MIDI оказалось довольно много. Я попробовал Ableton live, RealGuitar, FL studio, Kontakt. Остановился на RealGuitar из-за простоты и заточенности именно под гитару. Он даже умеет имитировать несовершенства человеческой игры – скольжение пальцев по струнам, рандомизированные параметры извлечения нот.

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

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


*Мем с ДиКаприо с прищуренными глазами*

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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

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

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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Проверяем работу


Похоже, все готово для первого теста. Пилить прутки и паять все 12 ладов мне было лень, поэтому ограничился 8-ю. Момент истины:

IT’S ALIVE! Жизнеспособность концепта подтверждена. Счастью не было предела! Но нельзя расслабляться.


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


Светодиоды


По плану гитара должна подсказывать пользователю, куда ставить пальцы, зажигая в этом месте светодиод. Всего нужно 84 светодиода. Тут все просто. Я взял 14 восьмибитных сдвиговых регистров и соединил в daisy chain. STM-ка передает данные в первый регистр, первый – во второй, второй – в третий и т.д. И все это через DMA, без участия ядра контроллера.


Акселерометр


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


Беспроводное соединение


Для беспроводной передачи данных решил поставить ESP32. Оно поддерживает различные протоколы Bluetooth и WI-FI, будет с чем поэкспериментировать (на тот момент я еще не знал, что в моем случае существует только один правильный способ подключения).


Корпус


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


Доработка прототипа


Что ж, осталось облачить девайс в приличную одежку.

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

Вот некоторая часть этих экспериментов:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Развожу финальный вариант плат и собираем гитару:

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Выглядит почти круто. Но девайс все еще подключается к компу через цепочку эмуляторов, эмулирующих другие эмуляторы.


Превращаем гитару в MIDI-устройство


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


Оказалось, сделать это не так сложно. Все спецификации есть на официальном сайте usb.org. Но все алгоритмы, которые выполнялись на стороне python-приложения, пришлось переписывать на C в контроллер.


Я был удивлен, что оно сразу заработало на всех устройствах. Windows 10, MacOS, Debian 9, Android (через USB переходник). Достаточно просто воткнуть провод и в системе появляется MIDI-устройство с названием «Sensy» и распознается всеми синтезаторами. С айфоном пока протестировать не удалось т.к. нет переходника. Но должно работать так же.

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Беспроводной интерфейс


Осталось избавиться от проводов. Правильное решение пришло не сразу, потому что я поленился как следует погуглить. Но в итоге я использовал протокол BLE MIDI, который поддерживается всеми новыми операционками и работает без всяких драйверов прямо как по USB MIDI. Правда, есть вероятность, что на более старых операционках решение не заработает в силу отсутствия поддержки BLE MIDI. Но все тесты с доступными мне девайсами прошли успешно.


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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Уверен, можно оптимизировать, но это отложу для следующей версии. Хотя, возможно, проще не тратить время и просто взять контроллер потолще. Разница по деньгам – 5 центов. Посмотрим. Все равно нужно будет место для новых фич – обрабатывать техники игры, например. В первую очередь, хочу реализовать slide. Это когда начинаешь играть ноту с определенным зажатым ладом и проскальзываешь рукой по грифу, перескакивая с лада на лад.

Теперь можно проверить работу по беспроводу:

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

Как я учился играть на гитаре, а в итоге создал свою цифровую Своими руками, Технологии, Музыка, Гитара, Электроника, Arduino, Разработка, Мобильное приложение, Стартап, Kickstarter, Видео, Длиннопост, Электрогитара

Недостатки прототипа


На текущий момент у конструкции есть следующие минусы:


1) На сенсорах нигде не измеряется усилие нажатия. Это влечет за собой три проблемы:

• Постоянно происходят случайные задевания соседних струн как на деке, так и на грифе. Это делает игру очень сложной.

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

• Невозможность использовать техники hammer on, pull off и vibrato


2) Светодиоды одноцветные. Это ограничивает наглядность при игре по табулатурам. Хочется иметь возможность разными цветами указывать на различные приемы игры.


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


4) Отсутствие упора для ноги. Сейчас при игре сидя нижняя струна почти касается ноги, а это неудобно.


5)  Сустав сгибания гитары требует осмысления и доработки. Возможно, он недостаточно надежен и стабилен.



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


Переезжаю на контроллер серии STM32F07. На нем уже 128КБ флэша – этого хватит на любой функционал. И даже на пасхалки останется.


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


Конечно, будут реализованы и три главных нововведения:


- светодиоды теперь RGB,

- на каждом сенсоре грифа будет измерение усилия (тактовые кнопки больше не нужны),

- струны на деке станут подвижными.


На данный момент плата деки выглядит так (футпринт ESP на всякий случай оставил):

Уже есть полная уверенность в том, что весь задуманный функционал будет реализован, поэтому было принято решение о дальнейшем развитии. Будем пилить стартап и выкладываться на Kickstarter :)


Проект называется Sensy и сейчас находится в активной разработке. Мы находимся в Питере, сейчас команда состоит из двух человек: я занимаюсь технической частью, мой партнер – маркетингом, финансами, юридическими вопросами.


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


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


Очень надеюсь на обратную связь с комментариями и предложениями!

Спасибо за внимание!



Забавный эпизод из процесса разработки


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


И тут случайно нестандартным способом перезагружаю плату – в терминал приходит буква «N» в ascii. Это соответствует числу 0x4E, которое я не отправлял. Перезагружаю еще раз – приходит буква «O». Странно. Может быть проблема с кварцевым резонатором и сбился baud rate? Меняю частоту в терминале, перезагружаю плату – опять приходит «N». С каждой новой перезагрузкой приходит по новой букве, которые в итоге составляют повторяющуюся по кругу фразу «NON GENUINE DEVICE FOUND».


Что эта NRF-ка себе позволяет? Прошивку я обнулял. Как она после перезагрузки вообще помнит, что отправлялось в предыдущий раз? Это было похоже на какой-то спиритический сеанс. Может, я и есть тот самый NON GENUINE DEVICE?


Залез в гугл, выяснил, что производители ftdi микросхем, которые стоят в USB-UART донглах, придумали способ бороться с китайскими подделками. Виндовый драйвер проверяет оригинальность микросхемы и на лету подменяет приходящие данные на эту фразу в случае, если она поддельная. Очевидно, мой донгл оказался подделкой и переход на другой решил эту проблему.


Снова спасибо китайцам.

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

Аппаратура управления крылом/дроном на ардуино

Привет, рцдрочер-брат! Строю цифровой видеолинк Open.HD потихоньку, и понадобилось прилепить к нему usb-аппаратуру с человеческими стиками.


В общем, оно родилось. И довольно легко повторяемо. Может быть только USB-аппаратурой, а можно присандолить задешево (500р модуль E32-868T20S например) QCZEK на 100мвт или даже на 1вт. В общем, с автопилотом очень даже может быть интересно, ввиду копеечности решения. Даже если просто начать, погонять в симуляторе.

Стики не обязательно покупать новые на Али. Можно добыть любую мертвую аппу и раздербанить.


- 10 каналов PPM

- USB джойстик

- простая калибровка

- защита от высоких значений каналов при включении

- напоминалка при неиспользовании (попискивает ненавязчиво раз в 30 сек)

- проста в понимании, сборке и заливке скетча в Arduino IDE

- легко прицепить радиочасть на QCZEK и получить реально дальнобойку.

- простор для рукожопства неимоверный!)


Спасибо за внимание.

Аппаратура управления крылом/дроном на ардуино Arduino, Аппаратура, Радиоуправление, Пульт, Своими руками, Видео
35

Аквариумный LED свет на Arduino своими руками

Привет коллеги - аквариумисты, запилил видео по своему новому аквариумному LED свету на Arduino, смотрим и оцениваем)

Бюджет самого светильника не более 30 долларов, в основе светодная матрица на 100Ватт, и вокруг нее 6х3Вт красные 660нм, 2х5Вт Sunlike китайские ( рекомендую), и 1 х 3Вт Grow противно розовый светодиод, общая мощность 130Вт, но я ограничил ее на уровне 100Вт.

Инновационной фишкой является алгоритм ЭКО когда по истечении определенного времени ( у меня 4 часа) светильник следит за движением в комнате и если никого нет в течение 5 минут, плавно снижает мощность до 10Вт, благодаря чему фактически свет может без передозировки света работать по 16-20 часов.

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

94

Робот для сбора чаевых на Arduino

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


Наткнулся на проект на просторах YouTube, есть вариант сборки при наличии 3D-принтера и без. Решил собрать такого в подарок для бара.


Исходники (они есть и под видео, дублирую сюда для удобства):


Видео с оригинальным проектом

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

Прошивка

Вариант без печати

О моем опыте:


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



Было:

Робот для сбора чаевых на Arduino Arduino, Своими руками, Робот, Технологии, Программирование, Видео, Длиннопост

Стало: Не без дефектов, но поправить уже можно.

Робот для сбора чаевых на Arduino Arduino, Своими руками, Робот, Технологии, Программирование, Видео, Длиннопост

Также хочу отметить, что если вы используете китайскую версию сервопривода MG90S - внутренний вкладыш-накопитель (файл - inner_body) может не поместиться и при установке деформирует корпус. В разработке моделей для печати я пока не очень силен, для себя решил проблему уменьшив масштаб модели вкладыша на 3%. Установилось корректно, щель есть, но монеты в нее не проваливаются.

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

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

Управление освещением построено на принципе подсчёта количества входящих и выходящих людей в комнату. Если число людей в комнате больше нуля – включается реле, управляющее освещением.


Этот проект решает проблему большинства систем управления светом, построенных, например, на датчиках движения – нет необходимости каждые 5-10 минут махать или изображать движение перед датчиком. Система просто ждет, когда вы выйдете из комнаты и тут же гасит свет (нет необходимости ставить длительные задержки).


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

Основные моменты в видео:

0:24 Основная концепция системы

1:32 О датчике препятствия E18-D80NK

2:30 Об электромагнитных реле

3:27 Твердотельное реле SSR-40DA

4:16 Моя библиотека PeopleCounter и код в Arduino

5:14 Подключение и проверка первого варианта системы

6:01 Добавление кнопки "Ручной режим" к проекту

6:49 Добавление датчика освещенности

9:30 Общая схема проекта

10:09 Сборка окончательного устройства на Digispark

10:59 Борьба с помехами


Схема проекта на Arduino (ATmega328P) c возможностью системы управлять светом в зависимости от освещенности на улице и включением режима ручного управления светом:

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

Схема проекта на Digispark (ATtiny85) без датчика освещенности и кнопки ручного режима (подойдет для ванной, туалета, кладовки и других помещений, где нет окон):

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

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


Например, в реле, рассчитанном на 40А, могут поставить симистор на 25, а то и на 16А, что приведет к его жуткому разогреву и выходу из строя при подаче мощной нагрузки.

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


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

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

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


Вот пример:

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

Здесь по порядку подключаемые пины: ИК-датчик №1, ИК-датчик №2, реле, кнопка "ручной режим", фоторезистор (аналоговый PIN без буквы А), порог фоторезистора.


В функции setup() делаем инициализацию (если нужны показания фоторезистора и пр., то вызываем метод debug) :

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

В функции loop() постоянно вызываем метод lightControl для опроса датчиков (можно повесить на таймер):

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

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

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

Чтобы добавить еще несколько комнат, просто создаете новые объекты со своими именами и пинами:

Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост

Библиотека и примеры использования лежат на GitHub: здесь

Страница проекта с описанием, списком компонентов, ссылками и т.д.: здесь


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


Всем удачных компиляций!

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

Погодная станция Dozor meteo

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Станция  «Дозор метео» предназначен для замера параметров окружающей среды (температура, давление, влажность) отображения результатов на ЖК-дисплее, передачи показаний в сеть интернет на облачный сервис Интернета вещей IoT «Народный мониторинг», управления устройсвами. 

Особенности прибора:


-  измерение температуры, влажности, давления;

- наружный блок влажности/температуры;

- 2 удаленно управляемых выхода 12/220B;

- 1 логический/счетный вход;

- до 5 точек контроля температуры;

- автономная работа (без сети WiFi);

- WiFi-подключение к интернету;

- управление через приложение или бот Telegram


Ниже описана версия прибора для сборки из готовых модулей датчиков и МК на основе Arduino Nano. Есть версия конструкции на «рассыпухе», позволяющая получить небольшой размер и эстетичный внешний вид.


Назначение полей дисплея и кнопок

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

1. Канал управления (вкл./выкл.)

2. Счетно-контрольный вход.

3. Поле «Влажность» (наруж. блок)

4. Давление

5. Температура Tout (наружный блок)

6. Температура Tk (комнатная), датчик расположен внутри модуля.

7. Дополнительный датчик T1(DS18B20)

8. Дополнительный датчик T2(DS18B20)

9. Дополнительный датчик T3(DS18B20)

10. Обратный отсчет до сеанса связи с сервером.

11. Индикатор НЕ-успешности последнего сеанса связи с сервером.

12. Кнопка управления.

Схема межмодульных соединений:
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Для сборки прибора Дозор meteo на основе Arduino Nano понадобятся:


- Arduino nano – «рулит» всем в конструкции;


- модуль ESP-01. Это WiFi модуль на основе ESP8266, используется для связи прибора с интернетом и отправки данных на сервер народного мониторинга. Можно заменить практически любым модулем на основе ESP8266;


- модуль GY-68 (BMP180 со встроенным стабилизатором 3,3V и конвертером уровня I2C). Измеряет давление и температуру в помещении;


- модуль HTU21D. Используется в составе внешнего модуля и «отвечает» за наружную температуру и влажность;


- МК Attiny13a. Используется в наружном модуле;


- дисплей 128Х64 COG с контроллером UC1701

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

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


-м/с стабилизатора 3,3V.Нужна для питания ESP-01  и дисплея. Можно использовать соответствующий выход Power board (модуль питания для Arduino);

- DS18B20, цифровой датчик


Если необходимо коммутировать (управлять) нагрузками, то необходим узел на оптосимисторах AHQ2223 (IC1, IC3)  в корпусе DIP-7, и транзисторные ключи для управления ими. Если коммутация не нужна- часть схемы, выделенная как switching module можно не использовать. Если же такая необходимость есть, необходимо помнить, что указанные оптосимисторы рассчитаны на максимальный ток 0,8A, что вполне достаточно коммутации нагрузки до 150Вт (220Вольт). Также следует учитывать, что симисторы- полупроводниковые приборы, используемые в цепях переменного тока. Поэтому если надо управлять нагрузкой, рассчитанной для работы в цепи постоянного тока, вместо симистора надо поставить либо реле, либо транзистор с малым сопротивлением силового перехода.


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

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Также можно подключить магнитный дверной датчик или контакты ИК датчика движения. В этом случае получиться простейшая охранная система.
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Датчику IN (это имя имеет ВХОД прибора в сообщении на сервер) в личном кабинете можно присвоить имя «ДВЕРЬ». При изменении состояния датчика (замыкание или размыкание ) пользователю поступит сообщение «ДВЕРЬ». На дисплее прибора отобразится изменение- иконка “IN” изменит вид. При этом датчик INC (значение тоже отсылается на сервер) покажет количество срабатываний. Можно использовать, например, для текущего расхода воды, если подключить к специальному водомеру. Максимальное значение между посылками на сервер -255. После отправки на сервер счетчик обнуляется.


Т.к. напряжение питания Arduino составляет 5V, а все модули датчиков, в том числе и дисплей, линии управления (UART, SPI) приходится подключать к модулям через резистивные делители (R2, R3; R5-R13). Исключение составляют модуль GY-68 и HTU21D. GY-68 имеет на «борту» собственный стабилизатор 3,3V, а HTU21D питается как и весь наружный модуль напряжением 3,3V. Дисплей- попадаются варианты исполнения как со встроенным стабилизатором, так и без него.


Если будет встроенный стабилизатор, то дисплей можно запитать от 5V, но резистивные делители всё равно желательны. Были случаи, когда на дисплей на управляющие контакты поступало напряжение 5V, и дисплей оставался жив. Но скорее всего это не полезно для дисплея. Документация на контроллер UC1701, установленный в данном дисплее по вопросу толерантности цифровых входов к напряжению 5V теряет нить разговора молчит.

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


Часть схемы, выделенная как OUTDOOR MODULE (внешний модуль) используется для измерений наружных (на улице) температуры и влажности.

Наружный и внутренний модуля соединены трёхпроводной линией – «земля», «+» и сигнальный провод. Микроконтроллеры модулей общаются по протоколу 1-wire, где внутренний модуль- ведущий. Это конечно несколько усложнило конструкцию внешнего модуля, но результат налицо. В результате такого решения удалось отнести внешний модуль на десятки метров от внутреннего. С «чистой» шиной I2C такой результат недостижим- буквально на 5 метрах начинались «глюки». В результате дополнительных экспериментов по применению 2-х транзисторного «драйвера» шины 1-Wire удалось получить расстояние в 80м! Кабель, как ни странно, желательно использовать не экранированный-меньше погонная емкость.


Ведущий посылает в линию 1-wire запрос «запустить преобразование всех датчиков», который совпадает со стандартным запросом для датчиков DS18B20 ($CC+$44), что удобно с точки зрения программной реализации- одним запросом «запускаются» все 1-wire устройства. Ведомый МК принимает этот запрос, и инициирует преобразование влажности и температуры(МС HTU21D)по «своей» шине I2C. После окончания преобразования полученный результат считывается внутренним модулем. При этом наружный модуль не мешает работе датчиков DS18B20(которые можно подключить в линию в любом месте), независимо от режима работы- будь то замер температуры или считывание ROM. Если наружный модуль не подключать, устройство сохраняет работоспособность, но данные будут искажены.


После сборки устройства (или до)необходимо запрограммировать микроконтроллеры устройства- саму Arduino и МК ATtiny13a наружного модуля. ПО написано в среде Algorithm Builder ( почти ассемблер ), поэтому прошивки публикуются «как есть», полнофункциональные, в виде готовых «хексов».

В архиве есть 2 файла – DM_indoor_V1_nano.hex (для Arduino Nano 16 MHz) и DM_outdoor_V1_tiny13a.hex (для наружного модуля). Для «заливки» в Arduino готового «хекса» есть несколько программ, например X-loader и GC-uploader.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
На странице автора программы GC-uploader хорошо описана процедура загрузки при использовании этих программ. После «заливки» «хекса» Arduino останется Arduino-й, т.е. при необходимости в неё можно при помощи Arduino IDE «пролить» какой-нить скэтч.


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


«Тиньку» же придется «прошивать» при помощи программатора и одной из множества программ, например, ProgISp. Последняя кстати, замечательно работает с дешевым программатором USB ISP с родины Мао.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Известный сайт с тех же краёв на запрос «AVR USB ISP» предложит несметное количество этих программаторов по цене 2-3х «Эскимо».

Конечно, "заливка" чего-либо не из Arduino IDE- это несомненно «два», но кто сказал, что будет легко? иначе никак… Можно конечно было использовать ещё одну Arduino, но она великовата для конструкции наружного модуля, описанного далее. Хотя, возможно…


В общем, для ATtiny13a надо запрограммировать fuse-биты и "залить" прошивку.

Состояние Fuse-bit для ATtiny13a  в данной конструкции должно быть такое

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Написал небольшой ликбез процесса программирования МК ATtiny13a  c картинками.

Если возникнут проблеммы при программировании  - пишите.


После правильной сборки и программирования  настроек "железа" не требуется. Перед включением необходимо пройтись по соединениям, включить устройство. Причем  во время работы желательно не подключать кабель USB ПК-Arduino, т.к. в схеме используется интерфейс UART- могут быть конфликты. Используйте плату Power board.


После подключения проверить наличие напряжения 3,3V на выходе стабилизатора (C2). На дисплее должна появиться заставка. Если всё ок- входим в режим настроек. Для этого выключаем питание, нажимаем кнопку S1 и её удерживая включаем питание (кнопку продолжаем удерживать). Примерно через 2-3 сек. На дисплее появится надпись «SETUP MODE». Так же будет выведена информация о SSID и пароле WiFi, периоде отправке данных, которая хранится в памяти прибора.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Кнопку отпустиь.

Для изменения настроек (П.2) необходимо нажать кнопку еще раз. Появится надпись WEB SETUP.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Кнопку отпустить.

В WI-FI сети появится точка доступа Dozor_meteo. Необходимо подключится к ней и зайти (набрать в окне любого браузера) на адрес 192.168.4.1.

Откроется окно

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Тут необходимо ввести название и пароль домашней точки доступа( первые 2 поля), и 3-е поле –период отправки данных на сервер.. Тут рекомендуется установить значение Т>300 сек. Доступный диапазон – 60- 999 сек. Но для установки периода Т< 300сек. необходимо ознакомится с условиями на сайте narodmon.com . Кратко- если у пользователя нет бонусов, период отправки не может быть меньше 300 сек. Иначе при рецидивном нарушении данного требования устройство может быть заблокировано.

Нижнее поле- MAC устройства. Это значение MAC необходимо указать при регистрации своего устройства на сайте narodmon.com .

SEND- сохранить введённые значения. Если поле «AND EXIT» отметить, то после нажатия на SEND устройство будет перезагружено и войдет в основной режим работы.


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


В устройстве прибора по схеме, приведенной выше, есть датчик давления BMP180. В нем есть встроенный датчик температуры, он используется для измерения температуры внутри помещения. Температура на улице измеряется при помощи датчика температуры, входящего в состав датчика влажности HTU21D. Дополнительно, при необходимости, можно подключить до 3х датчиков температуры DS18B20. Датчики подключаются к разъему SV1, можно параллельно линии, идущей к наружному модулю. Можно в любом месте линии.


Процесс регистрации.


При выключенном устройстве нажать кнопку S1. Удерживая кнопку нажатой включить устройство. Через 2 секунды на экране появится надпись SETUP MODE.

Кнопку отпустить.

Нажать кнопку. Появиться надпись WEB SETUP. Кнопку не отпускать. Через 3 сек появится надпись DS SETUP.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Кнопку отпустить.

Далее необходимо (правильно!) подключить датчик DS18B20 к разъему SV1 и коротко нажать на кнопку. Если процедура выполнена верно - на экране будет отображен серийный номер датчика . Датчик Т1 зарегистрирован в приборе.

Далее необходимо отключить датчик Т1 и подключить датчик Т2 (если он необходим), и коротко нажать на кнопку. Очередной датчик (Т2) занесен в память устройства. Далее регистрируется датчик Т3. Т.е. получается такой алгоритм:


- войти в режим регистрации DS SETUP, отпустить кнопку;

- подключить датчик Т1, коротко нажать на кнопку;

- отключить датчик Т1, подключить Т2, короткое нажатие;

- отключить датчик Т2, подключить Т3, короткое нажатие;

Следующее нажатие инициирует выход из режима настойки.


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


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


1. Файлы проекта (схема, прошивки, ликбез по прошивке МК ATtiny)

2. Прошивка любого HEX-файла в ARDUINO


Конструкция наружного модуля станции  ДОЗОР meteo


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

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

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Для изготовления необходимы

1. Пластиковая труба D25mm 25-30 см. Можно использовать водопроводную «под пайку» либо трубу для кабелей.

2. Заглушка сантехническая под систему D32mm. 1 шт

3. Хомут крепления для трубы D25mm -2шт.

4. Клеевой состав ( герметик, «эпоксидка», клей «Титан»)


На одном конце трубы необходимо с отступом от края 5-8мм (до края отверстия) просверлить отверстия D4-6мм 4-8 шт.

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Обработать край крупным наждаком либо поцарапать, например ножом. Также желательно обработать внутреннюю поверхность заглушки.
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Необходимо изготовить центрирующую гильзу, например из картона. Лучше взять картон не толстый, отформовать его «гармошкой».
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Затем его надо зафиксировать примерно так. Так как внутренний диаметр заглушку больше наружного диаметра трубы, щель между ними с отверстиями в трубе образуют канал естественной вентиляции (тяги).
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

На внутреннюю грань заглушки нанести валик клея или герметика. С клеем усерствовать не надо- до отверсий в трубке клей не должен "добраться".

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Одеть на трубку и оставить сохнуть, в зависимости от клея- до 24 часов.
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
После полимеризации клея узел должен выглядень примерно  так
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост
Затем в трубку вставляется плата внешнего модуля, так чтобы плата оказалась дальше (выше) середины трубки. И фиксируется. Самый простой вариант- стяжкой. Можно двумя .
Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

При вертикальной установке такая конструкция обеспечивает хорошую дождезащиту, но при этом за счет естественной вентиляции внутри плата датчика постоянно обдувается восходящим потоком, обеспечивая верность показаний температуры и влажности. Был проведен эксперимент- на корпусе модуля с наружной стороны примерно посередине расположил доп. датчик температуры DS18B20 (тоже в тени), который фиксировал температуру на улице вместе с наружным модулем. При этом показания доп. датчика в светлое время суток были всегда на 0,5 – 0,8 град. больше, чем внутри модуля. Ночью же показания практически сравнивались. Объяснением (один из вариантов) этого может быть тот факт, что доп. датчик дополнительно нагревался ИК-излучением от посторонних объектов.


Модуль необходимо закрепить к стене при помощи кронштейнов в месте, защищенном от прямых солнечных лучей. Крепить надо заглушкой вверх!!! (мало ли...).

Погодная станция Dozor meteo Arduino, Погода, Программирование, Микроконтроллеры, Электроника, Своими руками, Esp8266, Длиннопост

Будтобы все...


Материалы:


1. Файлы проекта (схема, прошивки, ликбез по прошивке МК ATtiny)

2. Прошивка любого HEX-файла в ARDUINO

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

GSM модуль управления ворот

Добрый день. Хотел поделиться опытом создания модуля управления воротами через мобильную сеть. Нам понадобиться:

1. Arduino UNO - ссылка

2. GSM SIM900 - ссылка

3. Реле 5В - ссылка

Для начала перемычки RX/TX на GSM модуле ставим в положение D7/D8.

Переключатель питания переключаем на питание от внешнего источника, т.к. GSM модуль очень требователен к качеству питания. Для нормальной работу нужен источник питания не менее 2А.

Можно разъемы питания запараллелить (как это сделал я) и подключать питание лишь к одному разъему.

Питание для реле берем с ардуины. Сигнал управления с аналогового выхода А2.

Собираем бутерброд из ардуины и GSM модуля.


Должно получиться примерно так:

GSM модуль управления ворот Arduino, Gsm, Ворота, Своими руками

В прошивке все достаточно подробно прокомментировано. Для отладки можно раскомментировать строчки Serial.println и мониторить через терминал.

Ссылка на прошивку. Текст необходимо скопировать и вставить в Arduino IDE.

Подключаем к компьютеру через USB и заливаем прошивку.

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