LINUX.ORG.RU

Embedded


70

1

Всего сообщений: 3

Дачная лаборатория

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

Оборудование (основное):

  • Asus N75SF (Доживает свои дни на даче)
  • HP Envy 13 (Текущая рабочая машинка)
  • 3d-принтер Flying bear P902
  • Паяльная станция Lukey 702. Только сейчас понял, что ей уже 15 лет. Ну и оловоотсос китайский в добавок.
  • Осциллограф: Rigol DS1052E. До 100Мгц я его так и не разогнал, т.к. не было надобности.
  • Камеры: Над осциллом дешевая китайская yoosee с PTZ. Включаем RTSP, режем доступ к облаку на роутере, профит. Еще по участку в роутеры на OpenWRT (их 4 штуки, между ними гигабит, роаминг через 802.11r) воткнуто несколько старых веб камер, отдающие поток через mjpeg-streamer. Недавно добыл для экспериментов две xiaomi dafang на которые ставится прошивка dafang-hacks. Пожалуй, на этом варианте и остановлюсь.
  • Управляющие устройства для homeassistant: Тут сборная солянка. Часть - мои старые проекты на nrf24l01, часть на esp8266 с esphome (некоторые мои платы, некоторые готовые девайсы от sonoff перешитые esphome). Дополнительно по дому выключатели xiaomi aqara и некоторые датчики из этого комплекта, которые работают через zigbee2mqtt. Облака? Шпионаж? Нет, не слышали.
  • Освещение: Из-за потолка под скатом крыши, поставил светодиодные ленты. Ими управляют мои самопальные модули, плавно зажигающие и гасящие их.

Софт:

  • Octoprint (веб-интерфейс для 3д-принтера)
  • cncjs (веб-интерфейс для станка с ЧПУ. Иногда приходится юзать bCNC, так как autolevel’инг в cncjs уже который год никак не допилят)
  • shinobi (сервер видеонаблюдения. Пока только разворачиваю, думаю попробовать его сдружить с аппаратным m2m mfc на exynos в odroid-x2).
  • wireguard - соединяет дом и дачу в одну локальную сеть. С тех пор, как провели оптику пинг от дачи до дома 4 мс.
  • Steam - использую, чтобы иногда поиграться. Видеокарта стоит в сервере дома, на дачу идет стрим. Задержка 20-30мс, что вполне достаточно.
  • Роутеры: Везде исключительно OpenWRT с типовой для меня конфигурацией.
  • Homeassistant - собственно, пульт управления для умнодома.
  • Chef - конфигурацию всех одноплатников под все задачи давно перестал делать руками, решил перейти на chef. Сейчас в процессе активного осваивания рубей и переписывания на нем всего и вся.
  • Jenkins - по расписанию собирает ночью OpenWRT с типовой конфигурацией и деплоит на роутеры. Вот такие вот хардкорные обновления.

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

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

>>> Просмотр (1920x2530, 1784 Kb)

 , mad skillz, ,

ncrmnt
()

Ползаем по деревьям устройств

Совершенно неожиданно обнаружил себя копающимся в потрохах ядра, а именно — в древовидных структурах Devicetree, содержащих описание периферии, подключенной к системе (как правило, встраиваемой).

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

Целая неделя ушла на то, чтобы осознать причину: в очень нужном и полезном процессе принятия в апстрим ядра вендорских (тогда ещё Freescale, позже поглощённая NXP) патчей для платформы i.mx6, куда-то потеряли поддержку устройств вывода на вандбордах — ни сигналов на параллельной RGB-шине, ни управления питанием экрана, ни даже фреймбуфера /dev/fb0. И это при том, что были проверены и исключены все прочие возможные причины: конфигурация загрузчика, передаваемые ядру параметры, отсутствующие драйверы, дополнительные патчи или опции настройки ядра. Оставалась лишь одно — некорректная конфигурация Devicetree.

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

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

Теперь про скриншот. Даже поверхностного взгляда достаточно, чтоб понять: это вам не Plug-and-Play™ :)

Итак, начиная с верхнего левого окна:

  • любимый Okular с открытой распиновкой LCD-модуля и парой висячих заметок
  • под ним — принципиальная схема одноплатника, по которой отслеживается, к какой физической ноге процессора подключен тот или иной сигнал
  • следующее окно — редактируемый .dtsi-файл (DeviceTree Source Include), в который добавляю нужные узлы дерева по аналогии с
  • тем, как это сделано в другой плате с экранчиком — SABRE Lite (окно вверху правее центра)
  • справа вверху — документация ядра с перечнем нужных узлов и параметров (Freescale i.MX DRM master device)
  • справа внизу — документация на процессор с описанием поддерживаемых режимов работы параллельного интерфейса графической подсистемы

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

Рабочая система — Gentoo, KDE5.

Спрашивайте ваши ответы. Особенно интересно будет перекинуться парой фраз с имевшими со всем этим дело.

>>> Просмотр (3840x2160, 1730 Kb)

 , ,

TwisteR
()

Базовая платка для Android TV стиков

Так как в хозяйстве для автоматики использую Android TV Стики, вместо унылого (в плане корпусировки, размеров, ровно как и производительности) rPI решил сделать базовую платку. Результат виден на картинке.

На борту импульсник на 3А чтобы питаться от 12-24 вольт, USB Hi-Speed hub на 4 порта (на одном висит микроконтроллер), (на двух задних USB портах, можно щелкать питание), 3 релешки, 8 свободных ног.

Ноги могут работать как GPIO, либо рулить 8ю сервомашинками - в виде микроконтроллера используется ATTiny2313 с vusb стеком. 100% не содержит вредной для здоровья arduino.

Больше хайрес фоток тут (Там же есть рисунок с шелкографии в PNG и цвете).

Прошивки для мк: тыц и тыц

>>> Просмотр (2400x674, 799 Kb)

 ,

ncrmnt
()