Timeweb.Cloud

Timeweb.Cloud

Блог компании
То самое облако Наш сайт: https://timeweb.cloud/ ТГ: https://t.me/timewebru Хабр: https://habr.com/ru/companies/timeweb/articles/
На Пикабу
- рейтинг 1925 подписчиков 19 подписок 362 поста 307 в горячем
Награды:
более 1000 подписчиков5 лет на Пикабу
181

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

Моя безумная колонка или бюджетный 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 Алису и подобные коммерческие решения?», сразу же изложу свою мысль:

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


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

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

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

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

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

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Когда на меня накатывает хандра, я бросаю всё и пилю свой игровой движок. Это неблагодарное занятие, но меня прёт.

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

И вот я тут спустя 5 лет.

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

Это не моё видео, но оно очень точно передаёт, как у меня происходит разработка:

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

Ну и вот про одну такую ошибку я хотел поговорить. Есть такой движок — ODE (Open Dynamics Engine). Он появился где-то в палеолите, динозавры его накодили, от документации остались только царапины на скалах. Но он работает, он простой в использовании, и у него есть сишные заголовки, поэтому я мог просто написать враппер на Nim и использовать его в своём движке. В Nim вообще ни хрена нету, поэтому канонический способ — это взять какую-нибудь библиотеку из Си, научиться её вызывать, а потом говорить всем, что ты написал крутую программу на Nim.

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

Разумеется, если вы не планируете делать Minecraft, то вам может понадобиться что-то поинтересней, чем кубик. В ODE есть специальный класс Trimesh, который как раз позволяет вам сделать сложную геометрию. Фактически, вы можете создать любое тело из набора треугольников. Типа такого:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Я создал треугольник, он успешно отрисовался на сцене, я начал ходить по миру… и обнаружил, что треугольник не в том месте, где нарисован, а где-то непонятно где.

Так и появилась эта дурацкая невидимая стена.

Фактически, я мог ходить по сцене, и где-то я упирался в тот самый треугольник, который вообще-то должен был быть там, где нарисован. Я в принципе даже что-то такое и ожидал, потому что, как я уже где-то писал, только три раза в своей жизни я написал код, который заработал с первого раза. Наверняка я где-то перепутал координату — вместо X передал Y, или наоборот, ну что-нибудь такое. Эти программисты, вы знаете!

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

И тут я вспомнил эту недалёкую женщину из заЩИТников! Если кто не знает, она сделалась невидимой и решила спрятаться в дожде. Отличный план, надёжный, как швейцарские часы:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

Если нужно где-то найти таких же неудачников, как я, то самое лучшее место для этого — интернет. И я нашёл его — единственного человека, который отстрадал своё и рассказал об этом. Представляете, в 2006 году у какого-то чувака из Германии пятая точка горела точно так же, как у меня сейчас! Не знаю, что он выкурил (похоже, что исходники), но, ОКАЗЫВЕТСЯ, физический движок ожидает от вас трёхмерные точки, но передавать их надо как четырёхмерный вектор, просто в четвертой координате надо поставить мусор, типа так: [x1, y1, z1, 0, x2, y2, z2, 0, ...]. Скажите, как по const dReal* Vertices я должен понять, что там ждут в гости четырёхмерные вершины?

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост


За что я люблю опенсорс — можно всегда докопаться до истоков всего. Я полез в исходники, и вот что обнаружил.

В 2003 году пришёл Russel Smith и добавил всю эту функциональность с trimesh collisions, в том числе интересующую меня строчку:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Тут всё понятно, потому что в определении чётко говорится, что dVector3 — это четырёхмерный вектор (есть некий шарм в этой логике).

А потом через пару месяцев врывается Erwin Coumans и переписывает так, чтобы тип был непонятен:

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост
Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

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

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

Как проклятие невидимой стены ждало меня 20 лет Проблема, IT, Графика, Движок, Программирование, Timeweb, Видео, YouTube, Гифка, Длиннопост

Такие дела.

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

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

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

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

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

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

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Не в первый раз я обращаюсь к истории рабочих станций Unix — интереснейшим представителям эпохи перехода от “малых ЭВМ” к современным персональным компьютерам. Их звезда закатилась более 20 лет назад, более дешевые ПК окончательно обогнали специализированные дорогие машины по производительности, но до сих пор мы пользуемся плодами тех технологий. И тем интереснее заглянуть в прошлое и узнать, что и как могли те, казалось бы, маломощные и примитивные компьютеры. Встречайте — новый интересный экспонат в коллекции “Digital Vintage”!

❯ Платформа


На этот раз мне в руки попала экстремально редкая машина — DECstation 5000/260, представитель временной линейки RISC-станций, выпускавшейся Digital Equipment Corp. в ожидании готовности их собственной процессорной архитектуры — Alpha AXP. Да, вам не показалось — компания, создавшая PDP, VAX и Alpha, выпускала компьютеры не только на собственных архитектурах. И если представители линеек на базе х86 процессоров (HiNote, DECpc, Celebris/Venturis итд) известны многим, то линейка рабочих станций и серверов DECstation/DECsystem на базе процессоров MIPS, из-за небольших объемов и короткого времени производства (с 1989 по 1994 год). Последняя модель на базе процессоров MIPS была представлена годом ранее, в 1993. Этой моделью и была 5000/260, на базе новейшего процессора MIPS R4400 с частотой 120 МГц.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Процессорная карта DECstation 5000/260

Линейка DEC 5000 относилась к сегменту Hi-End и начиналась с моделей 200 и 240, использовавших процессоры R4000 с частотой 25 и 40 МГц соответственно, с частотой шины, равной частоте ядра. В R4600 появляется умножение внутренней частоты и процессор, использующий 60 МГц шину, работает на частоте 120 МГц. Часто в информации о модели 260 указывалась именно частота внешней шины процессора. В качестве основной шины, использовалась фирменная разработка DEC — TURBOchannel. Эта шина позволяла достичь пропускной способности в 50-100 Мбайт/с в зависимости от частоты (12.5-25 МГц), в моделях 5000/240 и 260 используется наибыстрейшая ее версия. Из-за использования собственной системной шины и собственного стандарта Firmware, эти машины часто выделяют в отдельную “подархитектуру” Pmax, например так обозначаются поддерживающие эти машины версии NetBSD.

К сожалению, это означает, что вам не удастся запустить на DECstation IRIX или Windows NT/MIPS. Хотя, разработка NT/MIPS велась именно на этих машинах и даже первые демо этой ОС проводились с их использованием, в финальную версию системы поддержка DEC 5000 не вошла. Впрочем, DEC подготовила для своих машин фирменную версию Юникс под названием Ultrix. Она выпускалась в двух вариантах — Ultrix/VAX для систем VAX/MicroVAX и Ultrix/RISC для систем MIPS. Уже ближе к концу жизненного цикла платформы, эта система была заменена OSF/1, вскоре портированной на Alpha AXP и сменившей несколько имен — Digital UNIX, Tru64 Unix.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Видеокарта и слот TURBOchannel

Интересный факт — первые машины на процессорах Alpha тоже относились к линейке DECstation и использовали шину TURBOchannel. Для корректной работы карт расширения в прошивку был добавлен эмулятор процессора MIPS — ведь прошивки карт TURBOchannel были рассчитаны именно на них. В дальнейшем таким же образом была организована поддержка карт PCI/ISA в более новых Alpha машинах.

❯ Машина


Итак, перед нами машина не только редкая, но и довольно необычная. Во-первых, в ней не предусмотрено место для накопителей вообще. Несколько непривычно для топовой модели, не правда ли? Тем не менее — это так, пространство корпуса поделено между блоком питания и материнской платой с 15(!) слотами оперативной памяти, занимающими почти треть ее площади. Поддерживается до 480 Мбайт ОЗУ типа FPM в собственном формате модулей. Существовали модули на 8 и 32 Мбайт, а также специальные энергонезависимые (читай — с батарейкой) модули для кэширования ввода-вывода. В нашей машине установлено пять обычных модулей по 32 МБайт, общим объемом 160 Мбайт. Цифры огромные для начала 90х!

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Видеокарта и слот TURBOchannel

Рядом со слотами памяти расположилась процессорная карта, на ней расположен процессор, сопроцессор и кэш второго уровня (целый мегабайт!). У задней стенки — три слота TURBOchannel, один из которых занят видеокартой “HX Smart Frame-Buffer Graphics Module" (PMAGB-B) — средней из доступных карт, предоставляющей вывод 8-битного цветного изображения в разрешении до 1280х1024 и обеспечивающей базовые функции 2D ускорения. В линейке же присутствовали и 3D ускорители — редкая и дорогая опция. Остальные два слота свободны. В них можно установить дополнительные SCSI и сетевые опции, например FDDI или Token Ring. На плате интегрированы сетевой контроллер DEC Lance (10 Мбит/с, разъем AUI) и SCSI-контроллер NCR 53C94. Оба контроллера подключены к шине через 128 Кбайт локального кэша для ускорения операций ввода-вывода.

Внимательный взгляд наверняка уже зацепился за шильдик “5000/240” на передней панели девайса. Действительно, эта машина начала свою жизнь 7 мая 1992 года как DECstation 5000/240, но уже в начале 1993 года она была официально обновлена до модели 260, о чем гласит наклейка на задней панели (KN03 и KN05 — коды обозначения процессорных плат этих моделей, соответственно). В комплекте набора для апгрейда должен был быть и новый шильдик, но, судя по всему, кто-то его решил оставить себе в качестве сувенира 30 лет с лишним назад…

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Таблички на корпусе

И так — у нас есть сеть и есть SCSI. Можно использовать машину как бездисковую рабочую станцию и загружать полностью по сети — встроенный контроллер и прошивка это умеют — причем как с использованием фирменного протокола MOP, так и с помощью привычной связки BOOTP+TFTP. Но такой подход ограничивает производительность — больше 1 Мбайт/с от NFS поверх Ethernet ждать не стоило, а топовые SCSI диски уже могли быть в пару раз быстрее.

В принципе, с DECstation можно использовать любой внешний SCSI диск или даже дисковую полку (мне досталась в комплекте небольшая симпатичная полочка на 3 диска с горячей заменой), но DEC не была бы DEC, если бы не предусмотрел все ситуации. В комплекте с машиной мог поставляться DEC Storage Expansion — второй корпус, в том же стиле, что и основная машина, но чуть выше и уже. Казалось бы, вот так промах! Но и делали его изначально для VAX, к которому он подходил замечательно — тут уже результат унификации. В корпусе находится собственный блок питания и два посадочных места под SCSI устройства форм-фактора 5.25” Full Height (то есть в высоту как два привода CD-ROM). Одно из мест занято огромным, занимающим всё отведенное пространство, диском RZ57 на 1 Гбайт производства самой DEC, второе место доступно для установки еще одного диска или ленточного накопителя (для этого на корпусе установлена заглушка). Возможно можно установить и CD-ROM, но у меня не нашлось подходящего. Всю жизнь машина и блок хранения проработали вместе, долгие годы трудясь в офисе самого вендора — о чем гласит наклейка “Property of Digital”. Этим, я думаю, и объясняется такое везение с апгрейдом процессорной платы — все же модель 240 значительно уступает в производительности 260. Вторая наклейка — несколько умиляет. На ней выбито изначальное сетевое имя машины — “MOULEFRITE”, в переводе с французского, наиболее близкое значение — “Сковородка”.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Диск и корпус внешних дисков

Казалось бы, повезло — получить редчайшую машину в отличном комплекте и требующий всего лишь тщательной чистки после гаражного хранения и замены “Далласа”, модуля, хранящего настройки firmware на “протез”. Но не все так просто — как вы могли заметить, разъем для подключения монитора здесь проприетарный — 3W3, на сигнальном уровне совместимый с VGA и 13W3, но без переходника (который по редкости сравним с самой машиной) обычный монитор к нему не подключить. Также и разъем для клавиатуры и мышки здесь свой, сигнально не совместимый с чем-либо другим.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

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

❯ Приключения


Но и это — не проблема. Компорт — лучший друг инженера! На многих серьезных машинах до появления систем удаленного управления можно было выбрать вывод системной консоли на последовательный порт. Для родственных серверов DECsystem, отличавшихся отсутствием видеокарты, это и вовсе основной способ взаимодействия с оператором. К нему можно подключить последовательный терминал, например Digital VT100, или просто обычный компьютер с эмулятором терминала. В качестве терминала, я использовал в основном машину из статьи Dreamstation с программой HyperTerminal — примерно вдвое более мощную, чем герой этой статьи. Хотя на паре фото DECstation запечатлена с чудесным ноутом Digital HiNote — его я использовал во время первоначальной отладки.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

В таком виде машина попала в коллекцию (сверху — дополнительная дисковая полка)

Опустим историю с чисткой, это не так уж интересно — лишь много воды, пузырьков и куча стертых дисков для шлифовки от ржавчины. Первоначальная отладка тоже не таила сложностей — заменить “даллас” (он тут в панельке), подключиться терминалом, настроить переменные firmware, попробовать загрузиться — и узнать, что диск пуст.
А вот с установкой операционной системы возникли сложности. Самый простой путь — установить её с компакт-диска. Благо, внешний SCSI CD-ROM у меня есть, и даже не один. Но тут кроется засада! У некоторых старых RISC машин есть прикол — они ожидают, что CD-ROM будет использовать секторы размером 512 байт, как у жесткого диска, а не 2048 байт, как подавляющее большинство приводов. Но я был готов и к этому — у меня есть привод, который щелчком тумблера позволяет переключать размер сектора — Yamaha 2100S. В режиме 512 байтных секторов машина загружается с диска, запускает инсталлятор Ultrix и…падает с ошибкой размера сектора CD-ROM. Что за магия, мне понять не удалось, а оригинального CD-ROM тех времен с прошивкой от DEC в моих запасах нет. Альфа же уже не столь привередлива.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

В процессе очистки от ржавчины

Подход номер два случился через несколько недель. В этот раз я решил попробовать загрузку по сети. Сначала, я достал старую добрую “малинку” и попробовал поднять mopd — собрать его под ARM не составило большого труда. Взять его можно здесь — github.com/qu1j0t3/mopd/tree/master, а если будете идти моим путем — нужно сказать линковщику, чтобы он не обращал внимания на повторные объявления переменных. Запустить сервис мне удалось, но в процессе выяснилось два интересных обстоятельства. Во-первых я не смог найти образ Ultrix для сетевой загрузки, во-вторых — я узнал, что DECstation умеет работать с BOOTP+TFTP, прежде я не знал об этом. Ultrix устанавливаться так не умеет, но зато NetBSD может. Поэтому я решил начать с нее.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Так выглядит меню информации о системе в консоли Firmware

Я использую pfSense в качестве домашнего роутера — его же я и использовал в качестве сервера BOOTP. BOOTP отличается от DHCP лишь отсутствием поддержки динамической конфигурации хостов, поэтому если вы сделается статическое выделение адреса в DHCP сервере, машина сможет получить его по BOOTP-запросу. Не забудьте в свойства указать поддержку сетевой загрузки и имя файла с образом. Вам понадобится образ инсталлятора в формате ecoff (в моем случае netbsd-INSTALL.ecoff). TFTP не идет в базовой поставке pfSense, но его легко установить из пакетов. В веб-интерфейсе нет поддержки вложенных папок, но их легко создать при подключении по ssh.

❯ NetBSD


Я выбрал версию NetBSD 8.0, в 9.3 сломали поддержку моего SCSI контроллера, а 10 пока не является стабильной. Установка проходит без проблем, главное не забывать, что это достаточно современная система и она требует заметного пространства на диске. Стоит выбрать минимальную установку, а потом доустановить требуемые пакеты. Впрочем, если у вас диск больше 4 Гбайт, можно об этом не задумываться.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Загрузка NetBSD

Система устанавливается легко, но сравнительно небыстро. Сказывается и скорость сетевого адаптера и производительность машины в целом. Также неспешно система работает после установки. С одной стороны, приятно подключиться по SSH к тридцатилетнему компьютеру, а с другой — согласование ключей занимает несколько секунд. Я не стал экспериментировать с установкой приложений и, тем более, с запуском графического режима, понимая, что удовольствие от работы вряд ли будет большим. Главное, я убедился в полной работоспособности машины и родного диска.

❯ Ultrix


Одновременно коллеги мне подкинули идею, о которой я должен был догадаться сам. Раз размер сектора у образа установочного диска и обычного харда совпадают — нужно его просто раскатать с помощью dd на второй жесткий диск. Для этого у меня нашелся забавнейший 3.5” дюймовый Micropolis полной высоты емкостью в целый гигабайт (мой друг и коллега по увлечению Slex обозвал его Necropolis — за древность и неспешность).

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Тот самый Micropolis

Трюк удался. Меньше чем через полчаса у меня был рабочий инсталлятор — можно приступать! Установка проходит без особых проблем, главное запастись терпением. Процесс занимает минут 40. Устанавливать стоит сразу полный набор компонентов, Ultrix бережет место на вашем диске. Важно правильно разбить диск, базовые варианты разбиения не оптимальны и оставляют слишком мало свободного места в разделах, а изменить таблицу разделов после установки будет очень неприятной задачей. Сложных вопросов установщик почти не задает, из важного — пожалуй, лишь выбор графической оболочки — XUI или DecWindows/Motif. Я выбрал вторую, но надо будет как-нибудь решиться и попробовать вариант с провокационным неймингом.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Выбор диска в установщике Ultrix

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Работа установщика Ultrix

После установки потребуется настроить сеть и выполнить несколько базовых настроек (хорошо описаны тут в разделе Some basic customization). Если, вы будете, как и я работать с машиной через последовательный терминал, обязательно включите его в /etc/ttys (сделать это придется в single user mode), иначе вы можете оказаться с нормально загружающейся машиной, после загрузки отказывающейся реагировать на ваши действия в консоли.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Загрузка Ultrix

После завершения настроек, вы можете использовать машину как сервер или пользоваться консольными приложениями. Но ведь это совсем не интересно, правда! Эта машина практически ровесница интернета, для нее доступен один первых браузеров — NCSA Mosaic, так что грех не установить его и не попробовать выйти в интернет. Но, как вы помните, у меня нет ни монитора, ни даже клавомышки…

❯ X-терминал


Что чаще всего приходит на ум, когда идет речь о выводе графики по сети? VNC, а следом возникают слова “медленно”, “задержки”. Может быть это не такая и плохая идея в качестве временного решения, но в любом случае для Ultrix нет сервера VNC, ну или я его не нашел. Мне удалось найти лишь небольшой набор freeware софта под эту ОС (теперь он доступен для загрузки из архива Digital Vintage — тут). В процессе поисков информации, я вспомнил об X-терминалах, упрощенных машинах с небольшим объемом памяти и младшим в линейке процессором (а иногда и созданным специально для них), но с полноценной видеоподсистемой, созданных, чтобы обеспечивать работу множества пользователей с одной мощной рабочей станцией. В коллекции даже есть одна такая машина — Sun X-terminal 1, ее настройка еще только предстоит, поэтому я выбрал программное решение.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Xephyr под Alma Linux 9

Х-терминалы отличаются от тонких клиентов тем, что обрабатывают вывод видео полностью на своей стороне, а не предоставляют доступ к сгенерированной на удаленной машине картинке.
Так как под MacOS ничего не нашлось, я думал использовать X-ming для Windows в режиме XDMCP, первые успехи пришли с его использованием, но, как оказалось, приложения ожидают наличия определенных шрифтов, которых нет в Windows и в их отсутствие могут работать некорректно или вовсе не запускаться. Поэтому я установил Linux в виртуальную машину (каюсь, у меня нет под рукой десктопной Linux-машины), в дополнение к минимальной десктопной установке поставил растровые шрифты 75 и 100 dpi и главное — Xephyr. На DECstation понадобится установить дополнительный файлсет с утилитами X-windows, на установочном диске он лежит в разделе Unsupported. Вместе с ним можно поставить и игры:

  • монтируем установочный образ — mount /dev/rz2a /mnt

  • переходим в папку с “неподдерживаемыми” файлсетами — /mnt/RISC/UNSUPPORTED

  • запускаем установщик — setld -l ./

  • выбираем нужные файлсеты

  • запускаем установку

  • перезагружаемся

  • устанавливаем значение переменной setenv DISPLAY %IP_ADDR%, указывая адрес машины, где будет запущен Xephyr

  • запускаем xdm — /usr/bin/X11/xdm -nodaemon

  • запускаем Xephyr на машине с Linux — Xephyr -ac -query %DEC_IP_ADDR% -retro -screen 1280x1024 (можно выбрать и другое разрешение, на ваш вкус)

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Экран входа в систему Ultrix

И вот, перед вами рабочий стол настоящего Unix начала 90-х! Как при подключении по telnet, так и в графическом режиме машина работает очень быстро, ОС и софт рассчитаны на более скромные конфигурации — всю мощь рабочей станции мог бы раскрыть специализированный софт, например инженерные пакеты CAD/CAE или программы для видеоконференций — эти машины даже могли поставляться в виде готового решения для их проведения.

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Рабочий стол Ultrix DECwindows/Motif

Установка софта из каталога freeware проста — либо вы просто распаковываете исполняемый файл и перемещаете в /usr/local/bin, либо выполняете make install. Прописать программу в меню программ можно в настройках сессии (Application Definitions). Mosaic установлен, сеть работает, осталось последнее дело — сходить в интернет!

DECstation 5000/260 — когда интернет был еще молодым Сайт, Электроника, Техника, Timeweb, Ретро, Интернет, Windows, Технологии, Познавательно, Длиннопост

Долгожданный интернет!

А вот с этим не все так гладко… По традиции, на ретро машинах я делаю скриншот с главной страницей архива Digital Vintage, но Mosaic в GET запросе не указывает имя домена, поэтому открывается дефолтный бэкенд K8s, причем браузер искренне считает его бинарным файлом и предлагает сохранить на диск. Из всех сайтов мне удалось открыть лишь архив EISA конфигов mR_Slug — его вы и можете видеть на скриншоте. Другого же браузера для Ultrix мною обнаружено не было…

❯ Заключение


Но на этом интернет, конечно, не заканчивается и не заканчивался уже тогда. Я не пробовал Gopher, а ведь на заре интернета это был очень популярный протокол. Но есть консольный FTP клиент — с его помощью я и загружал программы на DECstation. И пусть сегодняшние сайты не по силам тридцатилетней машине, но, пожалуй, нужно будет завести копии сайтов того времени в локальной сети — чтобы демонстрация таких раритетов была более интересной и захватывающей! Благодарю вас за внимание и до новых встреч!

P.S. Хотелось бы объявить искреннюю благодарность «Ленинградскому компьютерному клубу» и лично его основателю Ивану за помощь в обретении героини этой статьи.

Связаться с автором можно через канал.

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

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

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

В долазерную эру — это был практически единственный способ, быстро нанести надпись на калёный металл, типа быстрорежущей стали. Узнал я о таком удивительном устройстве от Павла Серкова aka spiritus_sancti в его канале Мир глазами инженера. После прочтения его поста в нашем общем чате обмолвился, что было бы круто иметь такое устройство в хозяйстве, а Павел, взял и предложил мне его прислать. Отказаться от такого предложения я не мог и с этого момента начинается квест по разбору в принципах действия этого устройства, приведение его в чувство, доработка его напильником и окончательный запуск.

❯ Проба электрического пера


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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Пример гравировки

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

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

❯ Устройство электроискрового карандаша


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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Разобранный электроискровой карандаш

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Крупный план собранного устройства

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

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

❯ Электровыжигатель-гравёр Орнамент-1


Наигравшись с этим чудесным карандашом, я вновь пришёл в наш общий чатик DIY-щиков, и говорю: вот что-то не торт гравирует. Да и родной блок питания было бы круто найти, и тут другой участник чатика (под ником rikoz) говорит: а у меня как раз есть комплект, с выжигателем, но без электрокарандаша. В результате у меня появился полный комплект.

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

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Внешний вид выжигателя и результат его работы.

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

❯ Доработки напильником, паяльником и наждачной бумагой


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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Процесс доработки электрического карандаша

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

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

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

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Настало время проверить, как же оно работает!

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Пишем, пишем!

Для особо интересующихся, даже коротенькое кинцо записал:

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

❯ Окончательная доработка устройства


Чтобы не утомлять читателя, тезисно расскажу о внесённых изменениях.

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Исходники для доработки

Итак, что же было доработано:


1. Блок питания был разобран.

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Потроха блока питания

Провода, как и трансформатор просто покрыты лаком, это не из-за перегрева они имеют такой цвет.

2. Просверлил отдельное отверстие и вставил туда ещё одну клемму, запаралеллив её с центральной (земляной) клеммой.

3. Провод питания 230 В был заменён на современный.

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

После замены провода и добавления клеммы

Обязательно меняйте в старых приборах провода и вилки!

4. Самая главная доработка была — это в добавлении гибкого мягкого провода самому карандашу. После этого с ним стало намного приятнее работать.

Простая гравировка для дома: электрический карандаш Электроника, Техника, Инструменты, Изобретения, Timeweb, Видео, YouTube, Длиннопост

Устройство в сборе после всех доработок

❯ Стоит ли это всё того?

Стоит ли всё это того, или может взять нормальный промышленный электроискровой карандаш?
Специально для вас провёл такой анализ — устройство «Орнамент-1», в комплекте с гравером на досках объявлений стоит порядка 1000 рублей. Немного пайки и шлифовки, и вы получаете нормальный инструмент. На тех же досках, ценник на современные электрические БУ карандаши начинаются от 13 000 рублей! Некислая такая экономия.

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

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

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR

Многие из нас всё ещё помнят такой стандарт связи как AMPS. В лучшие времена он, как и другой аналоговый стандарт NMT-450, был достаточно популярен на просторах России. И, возможно, у кого-то из нас даже был такой телефон.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Хотя сети общего пользования прекратили работу уже давным-давно, при помощи некоторого оборудования и софта всё ещё возможно дать старым телефонам возможность вновь зазвонить.
Итак, в сегодняшней статье разберёмся, как запустить сотовую сеть стандарта AMPS. Узнаем, с какими сложностями придётся столкнуться и как заставить всё это работать. Традиционно будет много интересного.

❯ Суть такова


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

❯ Немного истории


Сети стандарта AMPS принадлежали к первому поколению мобильных сетей. Появившись в начале восьмидесятых, они достаточно быстро получили распространение в Америке (где вообще стали первыми сотовыми сетями), а позже и в других странах мира. Немало легендарных устройств работали в этом стандарте, например, первый коммерчески доступный мобильный телефон Motorola DynaTAC или один из первых смартфонов IBM Simon. И даже первый звонок по сотовому телефону был совершён именно в сети этого стандарта.

В России эти сети появились в 1994 году и были развёрнуты компанией «Вымпелком» (он же «Билайн»). Как удалось найти, в них использовалось оборудование Ericsson, телефоны предлагались преимущественно этой же фирмы.

К концу нулевых годов AMPS стал сдавать позиции и был вытеснен более совершенными GSM и D-AMPS (впрочем, имеющего мало общего с «оригинальным» AMPS). Последние сети этого стандарта были отключены в 2008-2010 годах.

❯ Как работает AMPS


И перед началом экспериментов разберёмся, как же были устроены данные сети.
По принципу работы AMPS очень близка к своему предшественнику IMTS (Improved Mobile Telephone Service). Это типичная аналоговая сотовая сеть с частотным разделением каналов. Всего их 416 — 395 голосовых и и 21 управляющий. Каналы эти назначались автоматически, в зависимости от занятости и уровня сигнала.

В отличие от регионов NMT, тут используются так называемые System ID, кодирующие сети операторов. Сети делятся на два типа — System A (нечётный ID) и System B (чётный ID), для каждой из них выделены свои каналы.

❯ Что нужно для запуска


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

  1. Компьютер с ОС Linux. Машина должна быть достаточно мощной, Raspberry Pi не подойдёт. Также обязателен хотя бы один свободный порт USB 3.0. Использовать ВМ я настоятельно не рекомендую, чуть позже я покажу, почему.

  2. Полнодуплексный SDR, совместимый с GNU Radio. В качестве него подойдут, например, LimeSDR, USRP или BladeRF.

  3. Антенны, рассчитанные на частоту в районе восьмисот мегагерц или антенная нагрузка (что ещё более предпочтительно)

  4. Собственно, сам телефон. Как нетрудно догадаться, аппарат должен включаться и пытаться ловить сеть. Антенна также должна быть на месте.


Вся сложность заключается именно во втором пункте. Дело в том, что полнодуплексный SDR на момент написания поста стоит весьма недёшево ввиду наличия в его составе «жирной» ПЛИС и трансивера.

❯ Обзор оборудования


Ну что же, самое время взглянуть на железо.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Это самый важный из всех компонентов — USRP B200-mini, он же full-duplex SDR. Железка по-настоящему крутая, для экспериментов с сотовыми сетями она просто идеальна. Единственное — цена такой штуки весьма впечатляет.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Теперь очередь телефонов.
Это Ericsson R300LX. У него интересная судьба: в своё время, когда отключали аналоговые сотовые сети, эти телефоны продавали очень дёшево, и я купил его всего за десять рублей в привокзальной палатке. В годы начальной школы он был моей любимой игрушкой. Аккумулятор был потёкший, и я его сразу выкинул, так что запускать аппарат будем от ЛБП. Благо ещё в те далёкие годы я припаял два проводка. Позже я раздобыл ещё один такой телефон, его и буду использовать в рамках данного поста.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

А это Ericsson T60D. Аппарат куда более поздний, нежели предыдущий. У него также была версия T60C стандарта CDMA.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Самая интересная, на мой взгляд, особенность этого телефона — ЭЛИ-подсветка. Если его разобрать, на плате можно увидеть характерную плёночку, светящуюся при подаче на неё переменного напряжения высокой частоты. Аналогичная технология использовалась в телефоне Motorola RARZ V3.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Ericsson LX588. Увы, у обоих аппаратов сломаны и утеряны антенны, так что в данных экспериментах они участвовать не будут, хоть они и включаются и пытаются работать.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Nokia 8260. Это самый поздний аналоговый аппарат, что у меня есть, если бы не отсутствие слота под SIM, его было бы сложно отличить от обычной GSM-трубки.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Среди прочих аппаратов есть и те, которые заслуживают более подробного описания. Вот, к примеру, Motorola MicroTAC, как по мне, один из самых крутых аппаратов того времени в плане дизайна (наряду со StarTAC от той же Motorola). Их было выпущено много модификаций, в мои руки попала MicroTAC Ultra Lite.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

А вот так на ней лежит аппарат.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Внутренности. В некоторых моделях стоял ещё и микроконтроллер PIC, но у меня его нет.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

А вот и легендарный StarTAC. Вообще, я не очень люблю раскладушки, но этот девайс (наряду с КПК Sony) мне безумно нравится.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

❯ Ставим софт


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

Вообще, кое-что про работу с софтом, что мы будем сейчас использовать, я уже рассказывал в посте про NMT-450, так что настоятельно рекомендую вначале прочитать его. Хотя стандарты и оборудование сильно отличаются, по части софта многие аспекты полностью идентичны.
Как и в случае с NMT, я буду использовать Osmocom Analog. В отличие от другой реализации AMPS для GNU Radio, gr-amps, этот софт намного более прост в установке и запуске.
Итак, для начала необходимо установить ПО для управления SDR (UHD или LimeSuite). Выбор его зависит от вашей железки, так что подробно описывать это не вижу смысла.

Далее нужно установить библиотеку SoapySDR:

sudo apt install libsoapysdr-dev
sudo apt install soapysdr-tools

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

Если же у вас нет желания разбираться с библиотеками и прочими зависимостями, то я рекомендую запускать всё на Dragon OS. Это известный в узких кругах дистрибутив Lubuntu, этакий идеологический аналог Kali Linux, только если последний ориентирован на хакеров, Dragon OS предназначена для работы с SDR и радио. Там уже установлены все необходимые программы, так что проблем у вас быть точно не должно. На всякий случай я оставлю ссылку на ту версию, что я использовал, в конце статьи. Точно также я выложу уже скомпилированный софт, который будет достаточно только установить и запустить.

Теперь необходимо собрать Osmocom Analog. Делается это очень просто:

git clone git://git.osmocom.org/osmocom-analog
cd osmocom-analog
autoreconf -if
./configure
make clean
make sudo
make install


После сборки у вас должна будет появиться папка osmocom-analog, где в папках в разделе src будут лежать нужные нам программы для запуска сетей. Вообще, этот софт можно использовать и с аналоговым трансивером (по сути всё абсолютно аналогично тому, что я описывал в посте про NMT), но найти SDR оказалось проще, чем приёмопередатчик на такие частоты.

Кстати, существует ещё и вот такой проект. Как по мне, это одна из самых крутых реализаций такой сети, а подробное описание собранного девайса потянет на отдельную статью. Но об этом всём как-нибудь в другой раз. Кстати, именно автор данного девайса сильно помог проекту Osmocom-Analog в реализации сети AMPS.

❯ Запускаем сеть


Ну что же, пробуем? Втыкаем SDR в компьютер, включаем наш телефон.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Запускаем наш софт:

amps --sdr-uhd -k 334 -k 320 --samplerate 512000

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

При первом запуске после перезагрузки (а также если была нажата кнопка RESET на SDR или он был отключён от компьютера) программа выдаст ошибку обращения к SDR. Это норма, через несколько секунд в SDR должна будет загрузиться конфигурация, и всё заработает. Если не работает — надо разбираться с драйверами SDR.

Остаётся только положить телефон рядом с антеннами и ждать чуда.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост
Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

При этом в окне посыпятся логи. Здесь же можно увидеть номер — в моём случае это 3512761234., Присвоенный номер наводит на мысли о наследии старых сотовых операторов — когда-то давно мобильные номера выдавались просто с кодом города, а не оператора (что, кстати, отражено в моём нике: 351 — код города Челябинска).

Всё, можно пробовать звонить.

❯ Итак, оно не работает


Если телефон сразу нашёл сеть и подключился к ней — поздравляю. Всё успешно запущено, теперь можно пробовать звонить.

Но, как оказалось, всё не так просто, как может показаться.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

Если же появляются строки вроде «SDR underrun», скорее всего, не хватает пропускной способности порта. Причин для этого много, либо SDR воткнут в «медленный» USB 2.0 вместо USB 3.0, либо компьютер слишком слаб, чтобы держать столько каналов. К слову говоря, это одна из причин, почему не стоит запускать софт на виртуальной машине. У меня нет отдельного мощного ПК с линуксом на борту, но было достаточно записать Dragon OS на флешку и загрузиться с неё, чтобы сообщения об ошибках пропали.

Как запустить сотовую сеть стандарта AMPS при помощи SDR Телефон, Электроника, Связь, Timeweb, Сотовая связь, Моторола, Техника, Длиннопост

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

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

Также причина отсутствия сети может крыться в антеннах. В своих опытах я использовал таковые из комплекта от другого SDR, HackRF (эти же антенны я пробовал подключать к рациям в опытах с NMT). Попытки использовать антенны от рации или от другого телефона не увенчались успехом, трубки либо в упор не видели сеть, либо ловили, но звонок не шёл. Кстати, упомянутый Ericsson T60D в этом плане показал себя лучше всех, что даже было для меня удивительным, так как больше всего надежд возлагалось на R300LX.

❯ Звоним


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

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

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

Для звонка на телефон необходимо узнать его номер. Увидеть его можно в логах регистрации или при звонке. Далее необходимо набрать его (если с этого телефона уже осуществлялся звонок, то номер будет вписан автоматически) и жмякнуть на клавиатуре «d».

❯ Про каналы и Test mode


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

У меня есть телефон Motorola MicroTAC, на котором ставить данные опыты проще простого. Не нужно кодов, секретных комбинаций кнопочек, каких-то внешних причиндалов, подключаемых к аппарату. Достаточно только соединить средний контакт аккумуляторного разъёма с землёй. Если батарея вашего телефона перепакована, то достаточно всунуть в отверстие комочек фольги (средний контакт батареи через диод соединён с минусом), если же телефон питается от ЛБП, то нужно подкинуть земляной провод к этому контакту. Далее необходимо включить телефон, и он перейдёт в тестовый режим, после этого соединение можно размыкать. Вообще, для опытов с AMPS советую разжиться телефоном именно такой модели (StarTAC, MicroTAC, TeleTAC), ввиду огромного числа функций, могущих помочь при наладке сети.

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

Разумеется, помимо просмотра и настройки каналов в данном режиме можно делать много интересного. Есть такой текстовик как Motorola Bible. Тогдашние гуру фрикинга сотовых телефонов скажут, что всё написанное там — полная чушь. Не буду ручаться за это, но кое-что интересное оттуда таки можно почерпнуть. А именно — номера команд и способы входа в Test mode для целого модельного ряда аналоговых телефонов Motorola. В частности, в этом режиме можно осуществлять настройку передатчика, просмотр серийного номера (ESN), программирование кода абонента (NAM) и многое другое. Описание приведено для двухстрочных моделей, но на моём многие команды тоже завелись...

Продолжение в источнике материала. Увы, все фото не влезли, а именно в них вся суть и самое вкусное. :)

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

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

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

❯ Что внутри?


Обычно интересно узнать, на чём построен прибор, как там всё сделано.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост
Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Как видим, на плате есть микроконтроллер STM32F469, память EM63A325BK (SDRAM SDR-166 256Mb 8Mx32 ETRON 3,3V FBGA-90ball), SMSC3300-EZK (Hi-Speed USB Host, Device or OTG PHY), несколько преобразователей напряжения и прочая мелочь.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

К экрану идёт шлейф.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

❯ Симптомы пациента


Всё не так плохо: на экране у нас есть картинка, нет только подсветки.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост
Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Экран живой и это радует. Есть 2 варианта:

  1. Оживить экран (починить подсветку).

  2. Купить такой же (новый или б/у).


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

Подсветка не работает. Здесь видится 3 варианта:

  1. Виновата плата (не даёт питание на подсветку).

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

  3. Светодиоды подсветки сдохли.


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

❯ Процесс лечения


Итак, начнём. Нам нужно определить, где контакты подсветки.

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

Одного взгляда на плату достаточно, чтобы определить интерфейс экрана. В нашем случае это MIPI DSI. В данной ситуации мне были доступны только фотографии, так как помогал удалённо.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Две дифференциальные пары справа идут на экран. Одна слева, скорее всего, на USB. На такой интерфейс намекает и модель контроллера – STM32F469.
Обычно дифф. пары разделяются землёй. С обеих сторон пары так же земля.
Скорее всего, это помогает уменьшить влияние дифф. пар друг на друга и снизить уровень перекрёстных помех от высокоскоростных сигналов. Вот несколько примеров:
IPad mini.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Explay A351.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост


Huawei G6.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Данные от осмотра платы и шлейфа.

3 – земля.
4,5 – дифф пара
6 – земля
7,8- дифф пара
9 – земля.

Где-то ещё должен быть + питания одна или две линии. Обычно две. Они потолще линий данных и управления.

11-16 предположительно питание и подсветка.

Также обычно есть сигнал сброса. Могут быть и другие сигналы.

На фото платы замечаем дорожку от пятачка +2,8 В к 12му выводу.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

  1. Последовательное соединение. В этом случае на шлейф выводится два контакта подсветки – анод и катод.

    Напряжение зависит от количества светодиодов. Подсветка питается повышающим драйвером светодиодов (boost или step-up led driver), стабилизирующим ток. В таких драйверах обычно есть защита от перенапряжения (over voltage protection, OVP). Она необходима, так как при разрыве линейки светодиодов ток пропадёт и схема будет стараться повысить напряжение, чтобы создать ток.

    Схемы могут немного отличаться, но в целом одинаковые.
    BD6067


    TPS6106х

  2. Соединение с одним общим выводом (обычно анода). В этом случае на шлейф выводится общий анод и катоды.

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

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

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

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

Данные от прозвонки:

Земля 1,3,9,11,17, 6,14. С 16го 6,5 Ом на землю. 12,13 звонится с тест-падом +2,8 В. Обратим внимание на «очень странный контакт на 6.5 Ом»:

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Так, а вот это уже интересно. Сколько там, 6,5 Ом? Считаем падение напряжения на нём при токе 20 мА (обычный ток светодиодов): 6,5 Ом * 20 мА = 130 мВ. Это как раз нормальное значение для компаратора драйвера подсветки. Например, у AP5724 0.1 V

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Совмещаем данные от прозвонки с данными от осмотра фотографий платы. Здесь человек постарался и измерил напряжения на контактах разъёма, но это необязательно. Обычно достаточно прозвонить.

1 – Земля.
2 – Чуть тоньше линий земли. 3,16 В. Возможно, это reset в неактивном (верхнем) уровне. Управляющий сигнал?
3 – Земля.
4,5 – Дифф. пара. По 1,27 Вольт.
6 – Земля.
7,8 – Дифф. пара. По 0,19 Вольт.
9 – Земля.
10 – Управляющий сигнал? Чуть тоньше линий земли. 0,87 вольт.
11 – Земля.
12 – Питание +2,8 В (звонится с тест-падом 2,8 В). 3 Вольта
13 – Питание +2,8 В (звонится с тест-падом 2,8 В). 3 Вольта
14 – Земля.
15 – 4,6 вольт. Звонится с катодом диода, конденсатором, выводом 6 микросхемы (это OVP). Предположительно LED+.
16 – через R58 = 6,5 Ом на землю. Предположительно LED-.
17 – Земля.

– Прозвоните 15й вывод с катодом диода, конденсатором, и каким-то выводом микросхемы, – советую я.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

– 15-ый звонится с катодом диода. Также с указанным выводом конденсатора С79. И с шестым на микросхеме.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Отлично! Теперь мы знаем, где выводы подсветки, и можем проверить её. И драйвер.
Сымитируем подсветку обычными светодиодами, соединёнными последовательно. Светодиоды должны быть проверенными и точно рабочими, чтобы было понятно, что не работает. В зависимости от цвета свечения: 3-4 синих, зеленых или белых или 4-6 красных. Напряжение подсветки (количество светодиодов в экране) мы не знаем, но это не важно. Драйвер сам будет повышать напряжение до тех пор, пока не потечёт нужный ток, заданный резистором-датчиком тока. Если вдруг светодиодов поставили слишком много, то сработает защита от перенапряжения (OVP – overvoltage protection) и на выходе рабочего драйвера будет какое-то повышенное напряжение.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

Коллега подключил только один светодиод.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост


– Соединил 4 белых и один красный последовательно. Ничего не зажглось. Соединил только 4 белых тоже ничего.
– Какое напряжение на выходе драйвера? – интересуюсь я.
– С подключёнными четырьмя белыми напряжение на выходе драйвера 4.2 вольта.

«Хорошая мысля приходит опосля». Можно было сразу просто измерить напряжение на выходе драйвера (даже без подключенных светодиодов). Если оно равно входному минус падение на диоде (как на картинке выше), то драйвер не работает. А если повышенное – работает.

❯ Драйвер подсветки не работает?


Похоже, так. На всякий случай проверяем, есть ли переключения в узле SW:

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

И переключений там нет, постоянное напряжение. Значит схема драйвера точно не работает. Причины могут быть разными. Как верно заметил уважаемый BARSRAB, может просто отсутствовать сигнал включения на выводе EN микросхемы.
Стоит ещё проверить подсветку в самом экране, чтобы убедиться, что её контакты мы нашли верно. Для этого запитаем подсветку внешним источником. Удобнее всего сделать это драйвером подсветки, собранным на отдельной плате специально для таких целей. Но можно обойтись и простым источником напряжения без стабилизации тока.

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


Может есть тестовые пятачки на шлейфе и для подсветки?

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

Проблема в том, что нам неизвестно напряжение подсветки. У коллеги нашёлся источник 10 В.
Сколько светодиодов в экране?

Если 2, то напряжение на них в районе 6 В.
Если питать 2 светодиода от 10 В, то нужен резистор (10-2*3)/20 мА=200 Ом
Если 3 светодиода, то (10-3*3)/20 мА=50 Ом
Если 4, то от 10 вольт не загорятся. И можно попробовать от 18 В (2 кроны).

– Подайте на контакты подсветки 10 В через резистор около 200 Ом.
– Светит!)

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост

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

❯ Как опознать микросхему?


Как мы выяснили, не работает схема питания подсветки. Что именно не работает в этой схеме пока неизвестно. Полной схемы тоже нет.

Будем надеяться, драйвер удастся опознать.

1-Y, 2 – L или 1? Больше похоже на 1, 3- 3, 4 – 6, b или G?
Закорючка в конце похожа на 6, но может быть и G. Пробуем Y136 или Y13G, L4D. Пока безуспешно.
При поиске таких вещей помогает точное название корпуса. Видим здесь 12 выводов.


Что за корпус такой? Похож на QFN. Можно уточнить по внешнему виду в каком-нибудь магазине. Из похожих 12VQFN или VSON-8. А может просто QFN8 со сплошным падом снизу?
Потом коллега всё таки нашёл:
– Китайцы это что-то… я облазил кучу smd book-ов. Зашел на али. Вбил L4D и мне выдало. STLD40PUR QFN8.

Детальку удалось опознать. Ура!) На Алиэкспресе часто бывают какие-нибудь подсказки.
На всякий случай проверяем правильность опознания по совпадению выводов и заказываем микросхему.

Блок управления водяным охлаждением NZXT Z63. Ремонт с элементами обратной разработки Nzxt, Водяное охлаждение, Компьютер, Схема, Техника, Блок питания, Timeweb, Электроника, Длиннопост


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

На этом моя задача выполнена, больше помощь не требуется.

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

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

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

Однажды у меня возникла потребность подключения своего узла учета электрической энергии к системе умного дома «Home Assistant», но вот беда, установленный счетчик ЭНЕРГОМЕРА СЕ101 не обладал смарт функциями, позволяющими без проблем подключать его к системам умного дома, а цена электросчетчиков со смарт функциями просто заоблачная. Но я нашел экономичное решение с ценой решения задачи менее $5 и об этом далее.

❯ Исходные данные


Итак, как я говорил ранее, для учета электрической энергии у нас установлен счетчик ЭНЕРГОМЕРА СЕ101 модификации R5 — достаточно бюджетное решение. Чтобы изучить подопытного в плане доступных интерфейсов, изучим техническую документацию на данный счетчик. Я особо не испытывал иллюзий в плане наличия доступных интерфейсов, но мне повезло.

Бинго! — сказал я, найдя в документации следующие пункты:

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

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

2.3.3. Испытательный выход реализован на транзисторе с «открытым» коллектором, для его функционирования необходимо подать питающее напряжение постоянного тока от 5 до 24 В. Величина номинального тока через контакты испытательного выхода в состоянии «замкнуто» равна (10±1) мА, максимально допустимая не более 30 мА.


Техническая документация нам прямо говорит:

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

Ниже приведена схема подключения счетчика

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

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

Дополнительная информация по испытательному выходу:

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

❯ Алгоритм преобразования данных


Здесь все просто. Каждый счетчик имеет параметр «частота следования импульсов, пропорциональная входной мощности», который указан на панели счетчика, в моём случае это 3200 imp/kW*h. То есть, чтобы нам узнать накопленную мощность, просто нужно будет значение инкрементного счетчика, который суммирует входящие импульсы от счетчика, поделить на 3200. Чтобы отслеживать потребление за определенный период времени нам нужно будет реализовать дополнительные интервальные счетчики.

❯ Разработка аппаратной части


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

Принципиальная схема устройства:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant


Рендер печатной платы:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

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

Пример навесного монтажа. Особо впечатлительным не смотреть! )

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

❯ Корпус


Модель корпуса, как обычно, я разрабатывал во FreeCAD.

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

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

Модель корпуса напечатана HIPS пластиком на 3D принтере.

❯ Микро ПО


Прошивка устройства написана в среде Arduino IDE, большую часть прошивки занимает веб интерфейс и функция работы с MQTT протоколом. Для работы с входным сигналом используется аппаратное прерывание. Ссылку на исходный код прошивки я оставлю конце статьи, а теперь давайте рассмотрим веб интерфейс устройства:

  • Вход в устройство


Для входа в устройство требуется авторизация, пароль по умолчанию: admin

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant
  • Главная страница устройства

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant


На главной странице отображены данные по потреблению электроэнергии:

  1. Потребляемая мощность (сред. 10 сек, 1 мин, 5 мин, 60 мин), Вт*ч — усредненное рассчитанное часовое потребление за период 10 сек, 1 мин, 5 мин, 60 мин. Для отслеживания динамики по потреблению эл.энергии.

  2. Показания счетчика — накопленное значение кВт*ч

  • Конфигурация передачи данных по MQTT протоколу

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

Как вы могли заметить, для интеграции с Home Assistant используется протокол MQTT, настройки вполне понятные, не требует дополнительных описаний.

Ниже указаны топики, для примера, указано корневое имя топика «m_power»:

  1. m_power/10s — передача значения «Потребляемая мощность (сред. 10 сек)», периодичность отправки 10 сек.

  2. m_power/1m — передача значения «Потребляемая мощность (сред. 1 мин)», периодичность отправки 1 мин.

  3. m_power/5m — передача значения «Потребляемая мощность (сред. 5 мин)», периодичность отправки 5 мин.

  4. m_power/60m — передача значения «Потребляемая мощность (сред. 60 мин)», периодичность отправки 60 мин.

  5. m_power/total — передача значения «Накопленная мощность», периодичность отправки 5 мин.

  • Настройка типа счетчика

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

Здесь необходимо ввести два параметра вашего электросчетчика:

  • "Количество импульсов счетчика на 1 кВт*ч" — данный параметр указан на табло счетчика

  • "Текущие показания счетчика" — данный параметр передается в устройство, как начальное значение накопленной мощности, далее к этому параметру будут прибавляться рассчитанные контроллером данные.


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

❯ Интеграция в Home Assistant


Чтобы интегрировать данное устройство в Home Assistant, необходимо прописать в файле конфигурации configuration.yaml следующий код:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

Обратите внимание, что в примере указан корень топика с именем «m_power».

Код карточки «объекты» для вывода данных:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

В результате у вас должно получиться что-то подобное:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

❯ Подключение нашего контроллера к электросчетчику

Важное предупреждение!


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

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

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

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

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

Видео работы контроллера при включенном электрическом водонагревателе.

Ниже демонстрация графиков данных, полученных с контроллера:

«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant
«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant
«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant Техника, Счетчик, Электроника, Познавательно, Гаджеты, Timeweb, Запчасти, Изобретения, IT, Видео, YouTube, Длиннопост, Home Assistant

❯ Подводим итоги


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

Дополнительная опция

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

Исходные файлы проекта:

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

Детектор Судного дня или как я разработал датчик радиации для Home Assistant

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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


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

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

Немного информации о том, что собой представляет ионизирующее излучение (радиация)

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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

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

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

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

❯ Аппаратная часть устройства


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

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост



Краткое описание работы трубки(счетчика) Гейгера-Мюллера:

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

Чтобы работать с трубкой, необходим источник высокого напряжения на 400В. В качестве источника высокого напряжения я решил применить повышающий Step-UP преобразователь на базе ШИМ контроллера MAX1771, который хорошо себя показал в проекте часов на ламповых индикаторах. За интеллектуальную часть устройства отвечает микроконтроллер ESP8266.
Итак, ниже размещена принципиальная схема разработанного устройства.

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост
  • Рендер печатной платы

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост
  • Печатная плата в собранном виде

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост
  • Один из вариантов корпуса устройства

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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


Корпус спроектирован во FreeCAD, данный вариант корпуса изготовлен с учетом применения трубки СИ180Г.

Еще немного картинок готового устройства:

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

На фото вариант устройства с применением массива трубок СИ1-Г

❯ Разработка программной части устройства


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

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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

  • Ниже представлена функция счетчиков импульса

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост
  • Функция вычисления накопленной дозы для разных временных интервалов

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

Ссылка на исходный код будет добавлена конце статьи.

❯ Конфигурация устройства / интерфейс


В данной версии программного обеспечения для конфигурации устройства используется веб-интерфейс. Для первичной настройки при отсутствии подключения к сети устройство создает Wi-Fi точку доступа, при подключение к которой выполняется автоматическая переадресация на веб-страницу устройства (реализована с применением технологии Captive portal).

  • Интерфейс главной страницы

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

Доступ к конфигурации устройства выполняется только после авторизации.

  • Интерфейс настройки подключения по MQTT протоколу

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

❯ Интеграция в Home Assistant


Для передачи данных в Home Assistant, как вы уже могли догадаться, используется протокол MQTT. Ниже приведен пример интеграции, в примере использован формат данных JSON и имя топика «r_sensor/jsondata».

Формат данных JSON для данного устройства:

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

Ключи, которые начинаются на «CP» — это «сырые» данные, полученные от трубки, Ключи начинающиеся на «val» — это итоговое значение уровня излучения.

Для интеграции в Home Assistant в конфигурационном файле configuration.yaml, добавьте следующий код (пример):

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

Чтобы добавить в dashboard Home Assistant карточку с отображением данных, создайте карточку «Объекты» и в текстовом редакторе необходимо вставить следующий код:

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

На этом мы закончили базовую интеграцию датчика в Home Assistant.

Немного информации о дополнительных функциях


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

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

❯ Итог


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

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

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

Первая версия устройства (2015 год):

Детектор Судного дня или как я разработал датчик радиации для Home Assistant Изобретения, Техника, IT, Гаджеты, Радиация, Датчик, Электроника, Познавательно, Timeweb, Длиннопост

На этом можно завершать. Всем большое спасибо за внимание!

Небольшая бонусная история, связанная с данным устройством:

В конце сентября 2017 года, внезапно устройство начало регистрировать повышенный уровень фоновой радиации, о чем оно меня предупредило. Я не мог понять, что происходит и склонялся к тому, что возникла какая-то аппаратная проблема и не принял в серьез эту ситуацию. Спустя пару минут всё нормализовалось. Диагностика не показала каких-либо проблем с устройством. В начале октября появилась информация в СМИ о выбросе изотопа Рутений-103 и все стало ясно. Облако Рутения-103 пролетело где-то рядом. Это была первая аномалия, которая была зафиксирована моим устройством.

Исходники проекта:

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