Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр У самурая нет цели, есть только путь. Длинный путь. Улучшая свои навыки, он пробирается все дальше.

Долгий путь: idle

Кликер, Ролевые, Фэнтези

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
158
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон⁠⁠

Автор текста: vladkorotnev

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

И вот уже после заголовка рука сама тянется к минусу, в ожидании статьи с рекламой очередного приложения «VHS ретро звездец стильный камера инстаграм 2022 голливуд эффекты» от какого-то сомнительного разработчика :-)

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

Поэтому в этот раз мы пойдём более закрученным путём.

❯ Источник изображения


От хорошего товарища, с которым мы в прошлой статье хабарили чипы, перепала пара интересных трансляционных камер из восьмидесятых. Характерное их отличие от более современных «твердотельных» аналогов в том, что для захвата кадра используется электронно-лучевая трубка!

Victor GX-S700

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Поциэнт в процессе чистки от налипшего за 20 лет всего что можно


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

Внутри у неё используется цветная трубка «Сатикон». Из-за этого камера весьма прожорлива по свету.

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Набор текста на знакогенераторе через видоискатель камеры

Помимо BNC для видеовыхода и входа синхронизации, камера использует проприетарный разъём по типу советских ОНЦ для соединения с видеомагнитофоном.

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

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

Поэтому вы просто нажимаете на кнопку на своём «домашнем» видаке, и обычный видак превращается…

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

Питание имеет значение


Однако, в 2024 году питать видеокамеру от никелевых или свинцовых аккумуляторов уже как-то не комильфо — заряжать долго, ресурс вырабатывается быстро, да и ноги спасибо не скажут.

В своё время, снимая на обычную VHS-камеру, я какими только извращениями не занимался:

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Не взорвался — значит, день удался!

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

Поэтому заказываем с амазона сомнительную китайскую платку:

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

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

Импульсного преобразователя под руками не оказывается, поэтому припаиваем КРЕНку и подсовываем под неё железяку потолще для рассеивания примерно ватта мощности :-)

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

КРЕНка в прямом смысле присрана, так как через неделю очередная поездка в Акихабару, где уже можно будет купить импульсный преобразователь

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

«Мама, я хочу киношный риг!» — «Нет сынок, у нас уже есть киношный риг дома»


Камера — это, конечно, хорошо, но было бы неплохо картинку с неё и на что-нибудь записать. К счастью, на моём телефоне уже есть штатное приложение «Видеовход», которое может выводить и записывать картинку с любого устройства, поддерживающего USB Video Class — т.е. определяющегося в Windows как вебкамера, например.

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Обильно сдабриваем всё это липучкой-самоклейкой, и получаем новейший риг тысячелетия, на который хоть следующий «Оскар» снимать можно:

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост
Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Скукоживаем картинку обратно


Остаётся последняя беда — встроенное приложение умеет писать только в 1080p, в соотношении сторон 16:9. Конвертер тоже применён самый дешёвый, и не умеет вписывать входное изображение в кадр правильно. Из-за этого картинка с камеры выглядит растянутой по ширине.

К сожалению, способа скорректировать это в самом приложении я не нашёл, а до декомпиляции его ещё руки не дошли. Однако, можно исправить это с помощью FFMPEG, который так же легко устанавливается на телефон. Параметры надо будет передать следующие:

-aspect 1440:1080 -c:v copy -c:a copy

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

Однако, не все приложения умеют обрабатывать эти метаданные корректно — например, твиттер всё равно показывает картинку растянутой. Напротив, ВК через Kate Mobile, а также Telegram X, загружают видео корректно. Также как и Google Photos, вследствие чего обрезанные/обработанные видео, а также сохранённые стоп-кадры имеют правильное соотношение сторон.

Смотрим на будущее из прошлого


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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Больше кадров в таком духе можно посмотреть в Телеграме, который я специально под это дело завёл: «Японский магнитофон!»

Чем больше — тем лучше


Также мне перепала ещё и профессиональная трансляционная камера — Victor KY-1900.

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

В отличие от предыдущей, в ней используется аж три видикона — по одному на каждый цвет!

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Вот они слева направо

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Выяснилось, что испортились танталовые конденсаторы в позициях C37 и C40 — такие конденсаторы имеют свойство при поломке образовывать не обрыв в цепи, а короткое замыкание, поэтому задающая яркость синего цепь была всегда притянута к земле. Найти их было легко, так как они очень сильно грелись. Шутка ли, через такую фитюльку рассеивать под 5 ватт!

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

До кучи маркировка на плате подкидывала приколов на некоторых компонентах. Кручу-верчу, запутать хочу!

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Плюс у С21 справа?

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

Или таки слева?

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

Конечно же, при разборке я диафрагму уронил, лепестки разлетелись по полу, и следующие четыре часа я провёл, восстанавливая её по наитию :-) Зато теперь-то всё ходит идеально плавно и ничего ниоткуда не торчит!

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост


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

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

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

Японский видеомагнитофон! Делаем ретро-фото в стиле VHS на смартфон Электроника, Техника, Гаджеты, Timeweb, VHS, Ретро, Ремонт, Видео, YouTube, Длиннопост

В итоге «на соплях» проверить камеру удалось, однако для того, чтобы вытащить её на улицу, нужно всё ещё решить проблему с питанием АЦП. Здесь уже кренкой не обойтись — суммарное потребление не пролезает по току в лимиты поварбанка, да и так уже с полного заряда всего лишь 2 часа съёмки набирается. Поэтому фотографии с этой камеры будут уже после возвращения из очередной поездки.

Внутри дома снимает она вот так:


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

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

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

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

  • Больше фото в источнике материала на Хабре. :)

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные статьи.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 23 2
[моё] Электроника Техника Гаджеты Timeweb VHS Ретро Ремонт Видео YouTube Длиннопост
21
940
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Оживляем неизвестный дисплей от японского поезда/автобуса⁠⁠1

  • Автор текста: vladkorotnev

Как-то раз, очередным томным субботним вечером, я в очередной раз листал от нефиг делать Yahoo! Auctions — одну из крупнейших японских сетевых барахолок. Внезапно, среди рекомендуемых лотов появился вот такой внушительных размеров электровакуумный дисплей:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Однако, рулить дисплеем, как правило, та ещё задача. «Особенно если динамическая индикация, да ну его, влом!» — подумал было я. Но у того же продавца обнаружилась и, судя по всему, управляющая плата:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

На фотографии виднеется 8085 процессор, 8251 UART и ПЗУшка — казалось бы, дизассемблируй себе, разбирай протокол, да просто с ардуины выводи что угодно. Да ещё и за одну йену, это прям даром! После этого я решил всё же попытать удачу и выхватить этот дисплей. Тем более, что давно уже хотелось какие-нибудь красивые часики в комнату...

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

❯ Всё уже поломано до нас


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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Да, я в курсе, что полярность на коннекторе питания подписана задом наперёд %)

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

На шине процессора никакой активности нет, хотя тактовый сигнал в норме — то бишь, если бы даже ПЗУ и было целым, читать из него процессор не пытается. Плата ещё и закатана в какой-то лак, который не плавится и не растворяется, поэтому чинить такое будет то ещё «удовольствие». Даже масочные ПЗУ со шрифтами нормально не вытащить…

Гуглёж по маркировке (Morio Denki 6M06056) тоже ничего, кроме сайта производителя, не выявил. Судя по всему, они занимаются дисплеями для транспорта — так что, скорее всего, этот стоял в каком-то автобусе или поезде.

Вероятнее всего, это был автобус — ведь в поездах между станциями, как правило, на экране идёт бегущая строка. В старых автобусах же отображается лишь название следующей остановки. Выгоревший текст — 「次は、(неразборчиво)」(«Следующая: (нрзб.)») подтверждает эту догадку.

❯ Плата драйвера панели


Значит, придётся рулить панелью напрямую — благо, какая-то плата, адаптирующая его к какой-то шине, к дисплею уже прилагается.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

А ведь в наше время вся эта требуха поместится в дешёвую ПЛИСку размером с ноготь…

Судя по наличию микросхемы ОЗУ (MN2114), плата представляет себе какой-то простенький фреймбуфер. Отлично, значит с динамической индикацией на 100+ катодов уже разобрались до меня :-)

Справа снизу находится трапециевидный «молекс», знакомый нам по старым жёстким дискам. Линия 5 вольт и общий провод совпадают по распиновке — отлично, значит запитать попробуем от обычного компьютерного источника питания.

Пара минут с тестером и карандашом — и вот уже отчётливо видно, где на разъёме шины данных входы, а где выходы.

Верхний ряд группами по 4 пина соединён со входом коммутатора 74LS257 — скорее всего, это вход данных шириной в 1 байт. Нижний ряд же идёт на инвертеры, выполняющие роль буферов — так хотя бы можно понять, что в нём есть 5 входных сигналов, и 2 выходных.

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

Ничтоже сумняшеся, я подключаю старый блок питания от компьютера к молексу на плате… И конечно же дисплей всё так же мёртв. Никакой реакции ни на входные данные, ни на закорачивание шины данных у чипа памяти на землю.

❯ Конструкция дисплея


Почему-то всё это время мне думалось, что это — ВЛИ, которому нужно около 20-30 вольт для свечения. Однако при прозвонке самой лампы тестером никакие пины между собой соединены не были — в случае ВЛИ так быть не может, ведь ему нужен накал катода. Ну, разве что, если нить накала перегорела…

Впрочем, пристальный взгляд на дисплей под лупой показал, что ни накала, ни сеток — типичных для люминисцентных индикаторов компонентов — там и вовсе нет:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Значит, скорее всего, это газоразрядный индикатор! По горизонтали у него расположены платы с кучей группированных транзисторов. По маркировке «L-S» никакие транзисторы в справочниках подходящих лет, увы, не находятся.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

По бокам у дисплея — практически одинаковые платы с диодами, логическим инвертером (7414) и неизвестным модулем Mitsubishi MA7446-01.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

  • Поперёк «12-вольтовой» линии питания стоит конденсатор на 250 вольт — значит, как минимум, там должно быть высокое постоянное напряжение. Очевидно, положительное, если этот конденсатор проектировщики не вставили туда в роли петарды.

  • На плате мультиплексора между питанием и выходом на дисплей есть цепь с транзистором 2SC1473 — он тоже рассчитан на 250 вольт.


Значит, скорее всего, на молексе вместо 12 вольт ожидается, как минимум, под сотню с лишним, а значит и индикатору для поджига нужно напряжение где-то такого порядка.

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

Припаиваем к одному из горизонтально стоящих пинов минусовой выход через резистор на пару килоом, а плюсовым аккуратненько одной рукой ведём по вертикально-стоящим…


Ура, значит сам дисплей, как минимум, жив! Можно заказывать повышающий модуль на амазоне, а пока он едет — заняться восстановлением платы мультиплексирования.

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

❯ Диагностика платы мультиплексора


Под такое дело для проекта был куплен аж целый китайский лабораторник на амазоне — и подключение платы к нему показало, что жрёт она как не в себя! Почти что целый ампер, на конструкцию из 38 корпусов. Для логики серии 74LS это уж слишком много. Получается, в плате управления тоже что-то не так.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Так как компаратора навроде HP 10529A у меня нет, пришлось вооружиться осциллографом и таблицами истинности из даташитов.

На шине данных у ОЗУ хоть и завалены фронты, но в принципе всё смотрится не так и плохо:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

А вот на прочих чипах местами встречается откровенная дичь — например, сигналы, у которых логический ноль где-то на 1,8 вольтах, а единица на 3,5.

В двоичной логике бывает True, бывает False, но встречается и «Да нет наверное»:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Видимо, собирали девайс на 74 логике из альтернативной вселенной.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

  • 107-1 (JK-триггер) — кипятится (60+°C) сразу при включении питания, выход закорочен на вход

  • 107-2 — от выхода на вход 1кОм, в первом триггере выходной сигнал просажен (ну ещё бы), а второй вообще выдаёт не то, что в даташите, а погоду на Марсе. До кучи ещё и греется под 40 градусов.

  • 107-3 — 2кОм со входа на выход, теплее всего остального.

  • 393-1, 393-2 (сдвоенные 4-битные счётчики) — между тактовым входом и Vcc всего лишь 2 кОм, поэтому и сигналы выглядят странно.


До кучи, у сбоивших микросхем пин Gnd явно отличался по внешнему виду — припой был как будто потемневшим, и его там было больше, чем на остальных пинах в том же ряду/столбце.

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

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

❯ Повторный запуск


Выпаиваем всех подозрительных и заменяем их на панельки — ну вдруг опять вылетит, не паять же по новой :-)

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Фото уже более позднее — заменил ещё и кварц, чтобы увеличить частоту развёртки, дабы экран не полосил на видео

Подаём питание. Один из светодиодов на макетке, раньше постоянно горевший, на сей раз гаснет — это хороший знак. Ставим крутилки в положение 0xFF, от балды трогаем один из джамперов, и…

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Две негорящие строки — это от макетки один из проводов шины данных отвалился при проверке :-)

Оно живое!!! И жрёт со всеми включёнными пикселями аж 25 ватт.

Экспериментально подбираем распиновку коннектора:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

После подачи питания нужно дождаться, пока ~READY не уйдёт в лог. 0. Затем выставляем биты данных и дёргаем ~CLOCK. Этот байт попадёт в верхнюю половину самого левого столбца — пиксели, выставленные в «1», загорятся, а в «0», соответственно, погаснут.

Следующий импульс на ~CLOCK запишет байт в нижнюю половину самого левого столбца, потом — верхнюю половину второго столбца, и так далее — сверху вниз, слева направо. После записи последнего байта (нижняя половина самого правого столбца), следующий байт опять попадёт в верхнюю половину самого левого, т.е. запись идёт в цикле.

Если мы хотим начать рисовать с начала, можно дёрнуть ~RETZ — это обнулит счётчик, и рисование опять начнётся с самого левого столбца. Можно сбросить вообще всё и очистить экран при помощи ~RESET.

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

❯ Проба пера


Так как терпения у меня в организме ещё меньше, чем дофамина, то была распотрошена ещё какая-то плата из мусорки. Оттуда были извлечены TC4050B — буферы, которые отлично подойдут для согласования 3.3-вольтовой ESP32 с 5-вольтовой логикой на дисплее.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Переходник с 1980 года на 2016

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

На JLCPCB я всё ещё не зарегистрировался...

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


Дописываем ещё простенький рендер шрифтов, обновляем скетч:


Ну а дальше едем в Акихабару закупаться требухой для развития проекта до какого-то полезного состояния :-)

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Котлета в комплект радиодеталей не входит!

Опытный читатель уже догадался по содержимому этого хабара из Акихабары, что дисплею уготована типичная радиолюбительская участь — стать будильником-метеостанцией %)

Операционная система же обрела рабочее название Plasma Information System OS — или, если коротко, PIS-OS.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Смотрится итоговый результат, как по мне, восхитительно:

Но о сборке девайса и написании прошивки — уже в следующей части :-)

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

Также, можно посмотреть ход описанного в статье «в реалтайме», прочитав тему на EEVBlog.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 21 3
[моё] Гаджеты Электроника Техника Timeweb Ретро Сборка Видео YouTube Длиннопост
43
95
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Тюнинг старого тетриса⁠⁠

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Недавно я прикупил себе старенький и оригинальный — «тот самый» тетрис, а дальше меня затянуло. Собственно, нормальная ситуация. Однако, мне пришлось столкнуться с одной неприятной проблемой: если во время игры — скорость (ака сложность) повышается выше двух пунктов, то играть становится совершенно невозможно, а скоростей-то много…

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

Мне хотелось сделать фичу, навроде решения, как на стародавних компьютерах, у которых была кнопочка "Turbo", которая, несмотря на своё название, снижала частоту процессора. И таки да! Не буду вас томить — эта затея мне удалась, и на выходе получился весьма забавный и простой — аппаратный тюнинг тетриса.

❯ Суть проблемы


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

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


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

Ну что же, настало время RTFM на процессор HT443A0.

❯ Приступим!


Из статей «Так какой же процессор использовался в играх Brick Game?» часть 1 и часть 2 мы узнаем, что конкретно в этой модели тетриса установлен четырёхбитный микроконтроллер HT443A0. И если обратиться к документации, то можно выяснить, что частота процессора задаётся резистором.

Ниже привожу схему из документации на этот контроллер, которая попутно является просто принципиальной электрической схемой тетриса:

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Но, как обычно бывает, нигде не сказано, какой номинал резистора отвечает за определённую частоту. Единственное, что мы знаем, в каких пределах его можно изменять (от 36 кОм до 620 кОм). Это значит, что настало время весёлых опытов.

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

Если вскрыть корпус этого устройства, то можно увидеть следующую картину:

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Внимание вопрос: если мы уменьшим сопротивление – частота вырастет или уменьшится? Да, зная RC-цепочки понятно, что при уменьшении сопротивления частота будет расти, но нужно в этом убедится. Да и сверху напаять резистор проще, чем делать последовательное соединение.

Увеличиваем частоту


Подбираю номинал резистора в 15 кОм и припаиваю его в параллель к основному, тем самым уменьшая сопротивление ровно в половину.

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

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


Интересно теперь уменьшить частоту тетриса.

Уменьшение частоты


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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

И это оказалось тем самым сопротивлением, на котором тетрис играет адекватно, с той скоростью, которой должен.


Круто, теперь можно уже завинчивать и играть, но мне хотелось большего.

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

❯ Добавляем регулятор частоты


Тут никаких высоких материй нету, просто заменяем постоянный резистор на переменный, найденный где-то в хозяйстве. И даже весьма удобно вывести проводочки из корпуса через батарейный отсек.

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Крутилка

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


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

❯ Выводы

Да — частоту работы микроконтроллера можно менять прямо на ходу. А вот насчёт мультика — сохраню интригу, пускай кто-то сам пройдёт, и проверит можно ли посмотреть его :)

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

Из забавного: понял, что можно сделать некий DJ тетрис пульт, видео с которым — успешно завирусилось у меня в шортсах:

❯ Полезные ссылки:

  1. Процессор, который использовался в «Тетрисе»: на каких SoC работала недорогая микроэлектроника в 90-х?

  2. Так какой же процессор использовался в играх Brick Game?

  3. Так какой же процессор использовался в играх Brick Game? Часть 2

  4. Документация на микроконтроллер HT443A0

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

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 6 5
Тетрис Электроника Гаджеты Timeweb Техника Длиннопост Telegram (ссылка) Видео YouTube
12
101
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER
Серия Старое железо

Эмуляция сотового телефона… на сотовом телефоне⁠⁠

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Многие помнят линейку телефонов Siemens 65-75 серии, которые были в ходу около 20 лет назад. Мы попробуем провести необычный эксперимент на их основе, для чего напишем небольшую управляющую библиотеку на C, а также изменим код одной из встроенных в ОС Linux утилит. Подробнее в статье.

❯ 1. Аппаратная часть


В серии телефонов «Siemens 75» существовали такие модели, как C75, ME75, CX75 и прочие. Они различались между собой дизайном корпуса и некоторым другим функционалом. Но их основные элементы были, во многом, схожи. Например, дисплей разрешением 132x176. Для работы с данным проектом в коробке с различным электронным мусором были обнаружены останки подобного телефона. Состояние изделия за 20 с лишним лет очень плохое, надписи стёрлись, но я предполагаю, что это был экземпляр телефона C75 – BenQ, позднего выпуска. Родной процессор телефона давно уже умер — какое-то время назад удавалось оживить его, прогрев плату паяльным феном, но теперь осталась лишь безжизненная плата и оболочка. Поэтому я решил перехватить информацию на уровне дисплея.

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

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Поскольку любая наука стоит «на плечах гигантов», я не буду повторять материал о видах дисплеев в данном телефоне. Ознакомиться с ним вы можете самостоятельно, это описал ещё в 2013 году Кизим Игорь, в своей статье.

У меня уже был некоторый опыт работы с данным дисплеем. Используя библиотеку, взятую из статьи Игоря, я подключал данный дисплей к микроконтроллеру ATmega8. Однако, это было более 5 лет назад, поэтому, для начала, я решил проверить, а работает ли вообще данный дисплей. Для чего собрал схему Игоря. Её ключевые особенности: установлен стабилитрон по питанию дисплея (5V -> 2.9V), установлены резисторы для понижения уровней логики (5V -> 3.3V). Однако, нам необходимо ещё одно напряжение – 12V, для питания диодной ленты подсветки. Поскольку я не хотел городить дополнительный инвертор, я расковырял подсветку и заменил диоды на те, которые могут работать напрямую от 5V, подсоединив их не последовательно, а параллельно. Таким образом я избавился от лишнего провода питания, хотя и качество подсветки несколько пострадало.

Теперь я имел 2 провода питания (+5V, GND), и 5 сигнальных проводов с уровнем логики 3.3V.

Однако, контроллера ATmega8 под рукой не оказалось, но был китайский клон Arduino Uno на ATmega328. Я попытался поискать библиотеку Arduino под этот дисплей, и нашёл такую. Но она была заточена под ESP8266. Хотя идею замены SPI в функции Send_to_lcd с программного на аппаратный я намотал на ус:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост


В итоге я взял оригинальную библиотеку Игоря (Igoryosha), и портировал её под Uno, просто заменив в текстовом редакторе функции присваивания (напр. LCD_CLK=0) на ардуиновские digitalWrite(LCD_CLK, LOW). Библиотека запустилась без особых проблем.

Так как в ней используется программная имитация SPI, выводы GPIO можно назначить произвольно (кроме тех, что заняты RX TX). Библиотеку под Arduino Uno для данного дисплея в итоге я оставил у себя на github, в ветке main.

Результат запуска программы и скорость работы такого SPI можно увидеть наглядно на видео:


Теперь можно подсобрать телефон для удобства работы. Я вытащил динамик, чтобы вывести провода через отверстие.

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

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

❯ 2. Подключаем Orange Pi GPIO


Как можно было увидеть в предыдущем фрагменте, скорость отрисовки картинки просто черепашья. Оно и неудивительно: контроллер работает всего лишь на 16 МГц, ещё и использует программный SPI для вывода картинки. Ситуацию нужно исправлять, взяв более мощный и производительный контроллер. Тут я натыкаюсь на статью хабровчанина Hoshi.

В ней он данный дисплей подключает к Raspberry Pi, и использует его как «монитор». Поскольку мы стоим на плечах гигантов, было решено проследовать его примеру, и не изобретать ещё какие-либо методики. Но Raspberry Pi у меня не оказалось, нашёлся только Orange Pi PC.

Поэтому запустить код Hoshi без переделки у меня бы не вышло: в своей статье он оперирует GPIO через библиотеки чипсета bcm2835. Так как данного чипсета на моей плате нет, и библиотеку подключить не выйдет. Я начал поиски способа, как подключить GPIO на моём чипсете h3. Выяснилось, что для этого нужна библиотека wiringPi (на текущий момент уже не поддерживается официальными авторами). Однако, просто установить её через apt-get оказалось мало: устанавливался оригинал под Raspberry. Спустя некоторое время была найдена модификация этой библиотеки от zhaolei. Я собрал её через build (ветка h3), и именно она оказалась рабочей для моей платы. После выполнения build библиотека установилась в систему, и стало возможным вызвать её из требуемого места (например, проверить пины с помощью sudo gpio readall).

Назначение выводов GPIO для «апельсина» назначается через define по аналогии с Arduino:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Также следует отметить следующий момент: в схеме Igoryosha для AVR использовался логический уровень +5В, а на Orange Pi разъем GPIO сразу оперирует уровнями +3.3В. Поэтому резисторные делители я убрал. В итоге получилась следующая конструкция:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Однако, у меня сходу не получалось завести аппаратный SPI. Поэтому для повторной проверки работоспособности дисплея я взял, опять же, библиотеку Игоря из-под AVR, портировав её теперь и под wiringPi. К счастью, особых замен не понадобилось, только поменять в коде LOW и HIGH на 0 и 1 соответственно. Даже функции delay в wiringPi аналогичны ардуиновским. Также на данном этапе библиотека лишилась практически всех графических функций отрисовки примитивов, кроме отрисовки, непосредственно, одного кадра из буфера.
После чего я собрал программу через gcc (gcc –o example example.c –lwiringPi), и запустил из терминала.

Результат можно увидеть на видео:


Однако разницы, по сравнению с Arduino, практически нет. Отрисовка стала шустрее, но лишь немножко. Оно и неудивительно: чаще всего вызывается метод передачи по SPI (Send_to_lcd), а так как он у нас всё ещё программный, прироста в скорости мы не видим, сам GPIO работает достаточно медленно, по скорости сопоставим с обычным Arduino. Поэтому нам нужно исправлять ситуацию, задействовав аппаратный SPI.

❯ 3. Подключаем аппаратный SPI


Для замены программного SPI на апаратный можно, также, задействовать библиотеку wiringPi, а именно, из wiringPiSPI.h использовать функции wiringPiSPISetup и wiringPiSPIDataRW. Функции эти несколько хитрые. Но перед тем, как их использовать, нужно включить этот самый SPI. Информации о том, как это сделать конкретно на Orange Pi PC также в интернете нет, но удалось найти направление, в котором нужно искать. Немного погуглив, я выяснил, что spi включается правкой файла /boot/armbianEnv.txt (актуально для моей версии системы Armbian_23.11.1_Orangepipc_jammy_current_6.1.63_xfce_desktop.img).

В него нужно добавить следующие строки:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост
Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

После чего сделать sudo reboot, и у нас в /dev/ появляется spidev0.0. Проверить это можно, выполнив команду ls /dev | grep spi. Если spidev0.0 появился, дальше библиотека wiringPiSPI подхватит его. Теперь контакты дисплея CS, CLK, DATA нужно подключить к пинам SPI0, как это сделано у Hoshi. Распиновка (40-pin) полностью соответствует Raspberry Pi. Пины RS и RESET оставляем на попечении обычного GPIO.

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

Возникла следующая проблема: буферизация пакетов SPI. На данном устройстве мы можем отправить только 4 килобайта данных за одну посылку. Наша страница же занимает порядка 44 Кб: 132*176*2, так как используется 16-битная цветность. В качестве решения можно было либо увеличить буфер SPI, что возможно, однако, мне не хотелось прибегать к данной методике. Поэтому я просто в своём коде раздробил страницу на 11 пачек:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

И используя memcpy, копировал перед отправкой каждую пачку в буфер. К слову, это необходимо ещё и потому, что буфер побайтово очищается в процессе передачи, заменяя выходные данные на входные с буфера RX (MOSI pin).

Также библиотека позволяет регулировать скорость: от 500 КГц до предела в 32 МГц. Делается это в момент инициализации: int fd = wiringPiSPISetup(0, 32000000); мы выставляем канал 0, и скорость в 32 МГц.

После вышеописанных процедур мне удалось получить скорость кадров в 60 FPS. Я не уверен, способен ли дисплей отрисовать данные с такой скоростью, но таймер рапортовал именно так. Можно увидеть это на видеозаписи:


На первой половинке видео можно увидеть кусочек области дисплея, который передаётся за одну отправку (4096 байт), это примерно одна десятая всей экранной области. Скорость шины выставлена в 500 КГц. На второй половинке отправка всех 11 областей, и скорость шины в 32 МГц. То есть, скорость передачи примерно порядка 20 Мбит/сек. В данном случае, я считаю, достигнут потолок пропускной способности всей нашей сборки.

❯ 4. Выводим статичный bmp кадр


Следующее, что сделал Hoshi в своей статье – вывел статичную картинку, получив проблемы с цветностью. Поскольку я иду по его стопам, я попробовал вывести картинку из буфера, используя частично его код, поменяв только сдвиг (offset, так как мой заголовок занял другое количество байт). Однако, сначала я получил такую картинку, как показана на левой части изображения, и, лишь потом, такую, как на правой:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Я взял такую же картинку, как у Hoshi, и получил примерно такой же результат. Подводный камень заключался в следующем:

  1. Два байта нужно поменять местами, этот момент был в коде Hoshi. Либо же добавить/убрать один лишний байт в начале пакета, чтобы вызвать сдвиг всего массива.

  2. Я сохранил исходную картинку через Adobe Photoshop в формат BMP 16-bit. Однако, как выяснилось после просмотра в HEX-редакторе, белый цвет у меня получился не FF FF, а FF 7F, вследствие чего он отображался, как бирюзовый, и остальные цвета также имели искажения:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

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

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

❯ 5. Пишем ПО для захвата экрана


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

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Слева: отрисовка из /dev/fb0. Справа: отрисовка из скриншота.

Так как моя GUI в Armbian работает на графической оболочке XFCE, у меня возникла идея выдрать требуемые пиксели непосредственно через неё. Для этого используются средства gdk и x11. Добавление всех необходимых библиотек сильно усложнило бы программу, поэтому мне пришлось прийти к костыльному решению проблемы.

Я решил копнуть в сторону встроенной в ОС утилиты xfce4-screenshooter. Данная утилита позволяет снять скриншот, в том числе, через командную строку. Однако, функции сохранения заданной области в ней нет, либо требуется задавать каждый раз область мышкой, что было мне неудобно. Поэтому я сделал форк кода данной утилиты. И добавил в опции командной строки, помимо FULLSCREEN, WINDOW и REGION ещё и аргумент FIXED, который сохранял в файл конкретно прописанную в коде область экрана.

Для удобства разработки пришлось поставить xubuntu на виртуальную машину с x86, после чего изменить исходный код, а затем собрать его же, но под armbian непосредственно на своём Orange Pi. Сборка утилиты осуществляется помощью xdt-autogen: сначала ./autogen.sh, далее установить библиотеки по требованию (через apt-install) затем с помощью make, и make install для замены установленного в систему скриншоттера на изменённый вариант. После этого готовый скриншот нужного размера стало можно выводить в файл с помощью одной лишь команды терминала – для определения файлового пути, формата и прочего используется оригинальный код скриншоттера.

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Однако, данное решение имеет и недостаток: программа-скриншоттер работает, вероятно, таким образом, что сначала делает скриншот всего root-окна (рабочего стола), затем обрезает его до требуемого размера. При этом, на какой-то момент, отрисовка даже приостанавливается. Вся процедура съемки занимает порядочное количество времени: на десктопе xubuntu она осуществлялась примерно за 50-100 миллисекунд. На Orange Pi она же стала занимать порядка 100-400 миллисекунд. Видеозахват – в целом тяжелая процедура для ЦПУ. Поэтому уменьшение разрешения рабочего стола помогло, но незначительно. В идеале нужно выдирать изображение через низкоуровневый код непосредственно из экранной памяти, а не из пользовательской среды через функции gdk. Более того, в самом коде скриншоттера написано, что рекомендуемая задержка между скриншотами должна быть не менее 200 мс, то есть, это уже ограничивает нас до 5 FPS. В случае, если нужно просто проверить консольный вывод, этого достаточно, а вот для видеопотока оказалось маловато.

Прим. авт.: через некоторое время после написания статьи, мне удалось решить данную проблему, используя вместо скриншоттера ПО jsmpeg-vnc. С ним я получил 50 FPS и выше, плюс имеются встроенные функции обрезки кадра до нужного размера.

Данное ПО передаёт MPEG-поток через WebSocket протокол (выполняя трансляцию видеосигнала), позволяет закодировать только нужную область, чтобы не передавать весь рабочий стол. Далее кадр можно расшифровать и передать непосредственно в контроллер, минуя костыль в виде отображения его на экране и снятия скриншота. Если это будет интересно, можно показать подробнее в следующей статье.


Также, поскольку сохранение в bmp происходит через встроенные средства gdk, мне не удалось заставить программу сохранять в 16-битный формат. Она сохраняла в 24-битный формат, поэтому для преобразования цветовой палитры мне пришлось написать фрагмент кода на бинарных сдвигах:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Изначально содержимое нашего скриншота копируется в массив байтов (uint8_t) в порядке очередности. Для конвертации цвета 24bit -> 16 bit (ещё и с перевёрнутым порядком байтов) использованы сдвиги: мы сравниваем первый байт красного с пятью единицами, далее сравниваем второй байт зелёного с тремя единицами и сдвигаем результат в самое начало, далее сравниваем следующие разряды байта зелёного и сдвигаем в самый конец, далее сравниваем синий и сдвигаем его в середину. Таким образом, из цветности КККККККК ЗЗЗЗЗЗЗЗ ССССССС мы привели палитру к цветности ЗЗЗССССС КККККЗЗЗЗ, которую и принимает наш дисплей. Для отладки я использовал цветные картинки, после чего смотрел, корректно ли отображается цвет согласно своему описанию, или же цветовой канал требуется сдвинуть ещё на какое-то количество ячеек.

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


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

  • Через терминал вызывается скриншоттер, который сохраняет кадр в cache.bmp;

  • Файл cache.bmp открывается, после чего отправляется его содержимое на дисплей.

Причём, основная потеря скорости идёт на этапе снятия скриншота, а не записи/чтения его с диска. Для увеличения FPS выше 5 необходимо заменить xfce4 скриншоттер на какое-то другое ПО. Тем не менее, мы движемся дальше.

❯ 6. Эмуляция сотового телефона


Эмулятор телефона CX75 был написан лет 20 назад, и входил в официальный пакет программ для разработки java-приложений через WTK/JDK 2.0. Он пролежал у меня на жестком диске лет 15, после чего я запустил его для данной работы. Если кому-то интересно также запустить его на своём компьютере, делюсь файлами.

Для работы требуется JDK 6u45 и Windows XP. Насколько я помню, даже при запуске на Windows 7 эмулятор вылетал, на Win 10, тем более, работоспособность я не проверял. Поэтому запускать я его буду через виртуальную машину с WinXP.

Эмулятор полностью реализует функционал прошивки телефона 75-й серии, в том числе, можно устанавливать java-игры, подключать веб-камеру для съемки фото, и так далее. Единственное, вряд ли будет работать интернет, по причине того, что WAP технологии уже не получится использовать.

Вот так эмулятор выглядит в системном окне. Управлять можно с клавиатуры (джойстик – стрелки и enter, клавиши – цифры или тачпад), либо нажатием на виртуальные кнопки.

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

Выдаёт он картинку чётко размера 132x176, поэтому интерполяция не потребуется. Теперь нужно прокинуть картинку из виртуальной машины в Linux машину. Можно было использовать wine, но я не уверен, будет ли эмулятор адекватно работать на нём. Поэтому он запущен в XP. Для передачи картинки, опять же, ничего нового изобретать я не буду, использую TightVNC.

На Windows мы устанавливаем сервер, на armbian’е устанавливаем клиент через apt-get xtightvncviewer.

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

И вот момент, ради которого всё затевалось: помещаем эмулятор телефона в экранную область на самом телефоне

Видео:


Таким образом, наш видеопоток проходит через следующие уровни:

  • Эмулятор CX75 (x86 C-программа, но порт ARM-совместимой прошивки);

  • Windows XP (виртуальная машина);

  • Windows 10 (через виртуализацию, но можно пропустить, выведя в VNC напрямую с XP);

  • Armbian xfce4 gui (через VNC);

  • Изображение cache.bmp (через xfce4-screenshooter);

  • Дисплей C75 (через wiringPi + wiringPiSPI).


Для эмуляции же клавиатуры достаточно просто припаять контактные площадки к контроллеру от USB-клавиатуры в соответствии со схемой их разводки:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

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

❯ 7. Заключение


Результат проекта:

Эмуляция сотового телефона… на сотовом телефоне Python, Timeweb, Мобильные телефоны, IT, Электроника, Эмулятор, Видео, YouTube, Длиннопост

В ходе работы были изучены особенности работы с GPIO, SPI, GTK3, VNC, преобразованием цветности и некоторым другим функционалом компьютерных и микроконтроллерных систем.

Готовые файлы проекта под wiringPi.

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

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Также подписывайтесь на наш телеграмм-канал — только здесь, технично, информативно и с юмором об IT, технике и электронике. Будет интересно.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 17 5
[моё] Python Timeweb Мобильные телефоны IT Электроника Эмулятор Видео YouTube Длиннопост
9
74
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER
Серия Своими руками

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus⁠⁠

  • Автор текста: OldFashionedEngineer

  • Больше интересных фото и комментариев в оригинале материала

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

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

❯ Введение


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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

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


Ну что же, самое время разобраться в том, как это работает, погнали дальше!

❯ Структурная схема


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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

❯ Канал вертикального отклонения


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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

❯ Аттенюатор и предварительный усилитель


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

Так как мы не претендуем на звание «измерительный прибор года», ограничимся двумя пределами регулировки вертикальной развертки: 1 В на деление и 100 мВ на деление.

Для начала нужно определиться с напряжением питания всей схемы, пускай это будет батарейка типа «Крона» с напряжением 9 В.

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

Для удобства разработки схемы добавим дополнительные резисторы в цепь опорного напряжения LM3914 относительно плюсового и минусового потенциалов питания так, чтобы опорное напряжение находилось в диапазоне 5 В относительно середины питания. Диапазон переключения для светодиодов получается 0,5 В.

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

Чтобы получить вертикальную развертку с разрешением «1В/деление» аттенюатор должен иметь соотношение 1:2. Для развертки «100мВ/деление» входной сигнал после аттенюатора потребуется усилить в 10 раз. Таким образом в схему добавим делитель напряжения и усилитель с переключаемым коэффициентом усиления. И не забудем, что входной сигнал должен усиливаться относительно середины питания.

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

Получилось так, что аттенюатор на резисторах R1, R2 делит измеряемый сигнал пополам, и, в зависимости от положения кнопки, усилитель либо усиливает его в 10 раз, либо передает без усиления. В разомкнутом положении кнопки мы получим значение развертки «100мВ/деление», в замкнутом — «1В/деление».

Усилитель построен на операционном усилителе LM358. По своим параметрам это не самая лучшая микросхема, но для нашего случая пойдет. Благодаря тому, что опорное напряжение для LM3914 уже, чем напряжение питания, нам не важно, что выход LM358 «не дотягивается» до диапазона питания. Микросхема LM3914 рассчитана на звуковой диапазон, поэтому невысокие частотные характеристики LM358 нас тоже не должны беспокоить.

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

❯ Горизонтальная развертка


Горизонтальную развертку изображения сигнала на светодиодной матрице обеспечивает счётчик Джонсона CD4017. На рисунке показан график переключения выходов счетчика при подаче импульсов на его счетный вход.

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Дополнительное усиление на выходе счетчика не потребуется. Декодер уровней аналогового сигнала LM3914 сконфигурирован так, что на его выходе одновременно может светиться только один светодиод, и ток светодиода не превышает 20 мА. Таким образом выходы счетчика не будут перегружены по току.

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

❯ Синхронизация


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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

Для настоящего осциллографа было бы неплохо использовать высоко стабильный по частоте источник сигнала горизонтальной развертки. Но для нашей схемы вполне сгодиться генератор на основе таймера NE555, а лучше использовать CMOP версию, тогда можно будет иметь более высокую частоту развертки. Импульсы, которые будет формировать таймер, можно использовать для тактирования дешифратора CD4017. Изменение периода импульсов можно реализовать переключением времязадающих конденсаторов, вы можете подобрать их значение в зависимости от необходимых значений времени на деление.

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

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

❯ Заключение


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

Осциллограф из рассыпухи на светодиодной матрице. Разбор схемы в Proteus Электроника, Техника, Электрика, Осциллограф, Timeweb, Гаджеты, Длиннопост, Видео, YouTube, Гифка

Я бы с удовольствием собрал ее в железе, если бы меня не опередили… кто-то придумал ее на 30 лет раньше меня))) Да и я уже собирал нечто подобное по функциональности и схемотехнике. Надеюсь, вам понравилась эта схема и вы получили такое же удовольствие, как и я, от анализа ее работы.

______________________________________

Также подписывайтесь на наш блог и телеграм-канал.

Показать полностью 21 1
[моё] Электроника Техника Электрика Осциллограф Timeweb Гаджеты Длиннопост Видео YouTube Гифка
9
yh.853aaa
yh.853aaa
1 год назад
TECHNO BROTHER

Ответ на пост «Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома»⁠⁠1

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

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

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

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

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

Т.е. Вы не должны ощущать его присутствие.  И тем более не должны больтать безумолку.

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

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

А иначе - весь этот рынок просто пиар бесполезных решений, с которыми интересно поиграться и не более того.

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

Показать полностью
Электроника Техника Технологии Голосовой помощник Познавательно Изобретения Timeweb Своими руками Умный дом Видео YouTube Длиннопост Ответ на пост Текст
15
76
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER
Серия Своими руками

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266⁠⁠

  • Автор: CyberexTech

  • Больше интересных фото и комментариев в оригинале материала

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

❯ С чего всё началось


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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

❯ Разработка часов


По состоянию на 2016 год, было много различных схем часов на лампах, но мне не нравилась их схемотехника, она казалась мне избыточной и не эффективной. Хотелось реализовать что-то простое, питающееся от стандартного USB порта, без использования модуля RTC и светодиодной подсветки, которая, по моему мнению, только портит всю эстетику ламп. На тот момент большинство схем работало на Arduino и микроконтроллерах от компании Atmel. Годом ранее, компания Espressif Systems выпустила на рынок свой микроконтроллер ESP8266, который произвел революцию. Так как на тот момент, широкополосный интернет уже был достаточно распространен, в том числе и домашние сети Wi-Fi, я решил отказаться от применения RTC модуля в своей схеме часов и использовать NTP серверы для синхронизации времени. Как вы могли догадаться, в своей схеме я применил модуль ESP8266. Далее я поделился в Twitter своим опытом применения нового модуля ESP8266 в своем проекте. Мой твит вызвал интерес, и мне предложили написать статью на Hackaday.io. Я последовал совету и опубликовал свою статью там.

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Давайте приступим


Ниже изображена схема драйвера часов:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Согласно документации, индикаторная лампа работает от напряжения в 170В (напряжение возникновения разряда), для стабильной работы нам потребуется напряжение в 200В. Как вы можете видеть из схемы, для повышения напряжения до 200В применен set-up преобразователь на базе ШИМ контроллера МАХ1771 в связке с L2, D1 и Q1. Так как нам недостаточно выводов ESP8266 для управления лампами, то будем «размножать» пины управления с помощью дешифраторов CD4028BM96. Данный модифицированный драйвер позволяет управлять десятью газоразрядными индикаторными лампами. Выше описанный драйвер имеет динамический метод управления индикацией, то есть в определенный момент времени загорается только одна лампа, но переключение выполняется настолько быстро, что человеческий глаз практически не воспринимает переключение ламп и кажется что все лампы горят одновременно. Данный режим переводит работу ламп в импульсный режим, что положительно сказывается на их срок службы.

Разработка платы


Разработка платы велась в Sprint-Layout 5.0, так как мне это было удобнее для изготовления платы в домашних условиях.

Плата драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Засветка фоторезиста платы драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Засветка фоторезиста платы крепления ламп:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Травление платы драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Пайка компонентов:


Плата драйвера в собранном виде:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Монтаж ламп на плату управления:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Тест работы схемы часов с небольшой отладкой:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Для управления высоким напряжением используются оптроны TLP627 от компании TOSHIBA.

TLP627 — высоковольтный транзисторный оптрон со схемой Дарлингтона на выходе.

Корпус часов


Корпус часов не предполагает какой либо сложной конструкции, разработка выполнялась во FreeCAD:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Далее корпус был распечатан на 3D принтере, с использованием HIPS пластика. Данный пластик при печати создает структуру стенки, которая чем-то похоже на дерево и не обладает глянцевым эффектом как другие виды пластика типа PLA, ABS и т. п.

Монтаж электроники


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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

В итоге мы получаем следующее:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Часы в работе:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

❯ Давайте поговорим о прошивке часов


Для разработки прошивки часов, я использовал среду разработки Arduino IDE. Ниже представлен код прошивки:

  • Код прошивки в источнике материала.

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Для настройки часов, вам необходимо будет подключиться к вашей Wi-Fi сети, указать NTP сервер и ваш часовой пояс. Затем перезагрузить часы. Всё, часы готовы к использованию.

❯ Что в итоге?


В итоге у нас получились простые в реализации часы на ламповых индикаторах, где не требуется применять антикварные микросхемы типа К155ИД1, вся схема выполнена на современной элементарной базе. Часы не нуждаются в ручной настройке времени, синхронизация времени выполняется автоматически с удаленного NTP сервера, что гарантирует постоянную точность времени. Разработанный драйвер показал хорошие результаты надежности, работая уже более пяти лет.

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

Спасибо, что дочитали до конца! Если статья понравилась, то вы знаете что делать. И как всегда, вопросы, пожелания, осуждение? :) — добро пожаловать в комментарии. До встречи в новых статьях!

Небольшой бонус, фото из архива:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Ссылки к статье:

  • Модель корпуса часов

  • Исходники проекта на GitHub (прошивка и проект платы)


Моё мобильное приложение для быстрого поиска и доступа к моим(и не только) самодельным устройствам.

Показать полностью 23 1
[моё] Электроника Техника Изобретения Часы Timeweb Гаджеты Своими руками Инженер Видео YouTube Длиннопост Esp8266
7
181
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER
Серия Своими руками

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома⁠⁠1

  • Автор: CyberexTech

  • Больше интересных фото, видео и комментариев в оригинале материала

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

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

❯ Небольшая предыстория


Больше года назад я нашел в своих закромах одноплатный компьютер Raspberry Pi 4 Model B 8 ГБ. Устройство было куплено за небольшую цену в то время, когда человечество ещё не сошло с ума. Без долгих размышлений, я принял решение создать голосового ассистента на базе этого одноплатного компьютера, чтобы управлять своей системой домашней автоматизации. Бонусом к этой идее шли приватность и автономность. В итоге у меня «родилось» устройство под кодовым именем «Мария».


Но в этой статье не пойдет речь об использовании Raspberry Pi 4 Model B, так как в современных реалиях использование данного одноплатного компьютера стоимостью более $190, трудно назвать бюджетным решением.

❯ Давайте изобретать


Недавно компания Xunlong Software, которая занимается выпуском одноплатных компьютеров под маркой Orange Pi, представила интересное решение — плату Orange Pi Zero 2W с 4 ГБ оперативной памяти, стоимостью $27.

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост


Данное решение вполне подходит для нашего проекта, как в техническом, так и в экономическом плане.

Итак, определимся с конструкцией устройства. Изучив спецификацию Orange Pi Zero 2W, у нас формируется следующий список дополнительных компонентов:

  1. Динамик 52мм (просто он у меня уже был $1,3)

  2. Усилитель низкой частоты (буду использовать PAM8403 $0,9 за 10 шт)

  3. USB микрофон (xingzhaotong $1,5)

  4. Шлейф FFC FPC 24pin тип B ($1)

  5. RGB светодиод

❯ Разработка звуковой платы


Согласно документации, аудиовыходы реализованы на боковом разъеме FPC, а интерфейс I2S отсутствует. По крайней мере, мне не удалось его реализовать на этой плате. Таким образом, в качестве аудиовхода мы будем использовать USB-микрофон. В версии «Мария» я использовал I2S-микрофон, который продемонстрировал отличные результаты. Ниже предоставлена распиновка бокового разъёма.

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Исходя из вышесказанного, в процессе разработки у нас получается следующая схема «звуковой платы»:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

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

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост
Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

❯ Изготовление звуковой платы


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

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

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

Ниже показано тестовое подключение звуковой платы к одноплатному компьютеру с помощью шлейфа FFC FPC:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

❯ Настало время творчества! Проектируем корпус


Обычно в своих разработках я использую естественный интеллект. Поэтому пришлось придумывать дизайн корпуса самостоятельно, учитывая особенности печати 3D принтера. Разработку модели корпуса выполнял с помощью FreeCAD, результат моделирования вы можете видеть ниже.

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Корпус в собранном виде

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Вид снизу

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

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

❯ Сборка умной колонки


Подключение элементов устройства выполняется по следующей схеме:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Как видно из схемы, для управления усилителем используется выход 28 (wPi 18) RPI разъёма, данный выход подключается к контакту звуковой платы с обозначением «SOUND EN». К выходам 26, 24, 22 подключается управление RGB светодиода, который выполняет функцию индикатора при выполнения запросов.

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

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Для установки в корпус колонки, нам необходимо его полностью разобрать и оставить только плату. Данная плата подключается согласно распиновки к соответствующим контактам на звуковой плате GND, DP, DM, VCC.

Давайте приступим к сборке устройства. Предварительная примерка платы Orange Pi Zero 2W:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Примерка динамика

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Установка динамика и резонатора. Резонатор одновременно выполняет функцию фиксатора

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Вид снизу

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Вид сверху без верхней крышки, на верхней поверхности резонатора виден прикрепленный USB микрофон в центре будет размещен RGB светодиод.

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Распечатанная на 3D принтере часть корпуса

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

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

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Для питания устройства используется модуль с разъёмом USB Type C, который фиксируется в специальном адаптере

❯ Немного программной части


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

Операционная система:

В качестве операционной системы я использовал Debian Bullseye c версией ядра 6.1.31, скачать можно на официальном сайте Orange Pi.

Управление GPIO:

Для управления GPIO используется официальная библиотека Orange Pi wiringPi.

Установка wiringPi:

apt-get update
apt-get install -y git
git clone https://github.com/orangepi-xunlong/wiringOP.git
cd wiringOP
sudo ./build clean
sudo ./build

После успешной установки Orange Pi wiringPi, мы можем вывести таблицу GPIO:

gpio readall

В итоге мы увидим следующее:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

Обратите внимание, что в колонке «V» указано текущее состояние пина RPI.
Чтобы изменить состояние, мы можем воспользоваться следующими командами:

gpio mode 18 out # Изменение типа пина вход/выход (in/out)
gpio write 18 0 # Изменение уровня пина низкий/высокий (0/1)
gpio read 18 # Чтение состояние пина

Пример одного из вариантов управления GPIO из Python скрипта:

import os
os.system("gpio mode 18 out") # Изменение типа пина вход/выход (in/out)
os.system("gpio write 18 0") # Изменение уровня пина низкий уровень
os.system("gpio write 18 1") # Изменение уровня пина высокий уровень
os.system("gpio read 18") # Чтение состояние пина


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

Чтобы убедиться в правильности подключения микрофона, в консоли необходимо выполнить следующую команду:

arecord -l

Вывод команды должен быть следующим:

**** List of CAPTURE Hardware Devices ****
card 2: ahubhdmi [ahubhdmi], device 0: ahub_plat-i2s-hifi i2s-hifi-0 [ahub_plat-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

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

Настройка аудиовыхода:

Чтобы сконфигурировать аудиовыход под наши задачи, в терминале необходимо выполнить следующую команду:

alsamixer

В консоли появится окно с аудио устройствами, нажав F6 необходимо выбрать наше устройство с именем audiocodec и выполнить настройку как отображено ниже на картинке:

Моя безумная колонка или бюджетный DIY голосового ассистента для умного дома Электроника, Техника, Технологии, Голосовой помощник, Познавательно, Изобретения, Timeweb, Своими руками, Умный дом, Видео, YouTube, Длиннопост

После этого можно выполнить алгоритм теста аудиосистемы.

Вывод списка доступных устройств воспроизведения звука:

aplay -l

Вывод команды:

**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: ahubhdmi [ahubhdmi], device 0: ahub_plat-i2s-hifi i2s-hifi-0 [ahub_plat-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

Мы используем линейный выход, поэтому наше устройство имеет имя CDC PCM Codec-0 [CDC PCM Codec-0]. Давайте протестируем вывод звука через наше устройство.

Первое что нужно сделать — это включить наш усилитель с помощью команд:

gpio mode 18 out
gpio write 18 1

Далее нам необходимо запустить тест с помощью генератора шума, командой в терминале:

speaker-test -c2 -Dplughw:0,0 # plughw:0,0 - это адрес нашего звукового устройства


Вывод команды:

speaker-test 1.2.4

Playback device is plughw:0,0
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 131072
Period size range from 16 to 16384
Using max buffer size 131072
Periods = 4
was set period_size = 16384
was set buffer_size = 131072
0 - Front Left
1 - Front Right
Time per period = 2.742858
0 - Front Left
1 - Front Right
Time per period = 5.461073
0 - Front Left
1 - Front Right
Time per period = 0.580064

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

❯ Итог


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

Предугадывая ваш вопрос — «Почему бы не использовать Yandex Алису и подобные коммерческие решения?», сразу же изложу свою мысль:

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


Спасибо за ваше внимание! Ниже под спойлером несколько видео работы собранного устройства.

Файлы проекта:

  • Файлы модели корпуса.

  • Печатная плата проекта.

Так же рекомендуем почитать:

  • Как проклятие невидимой стены ждало меня 20 лет

  • DECstation 5000/260 — когда интернет был еще молодым

  • Простая гравировка для дома: электрический карандаш

Показать полностью 21 3
[моё] Электроника Техника Технологии Голосовой помощник Познавательно Изобретения Timeweb Своими руками Умный дом Видео YouTube Длиннопост
17
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии