Pull to refresh
56
0
Руслан Надыршин @rnadyrshin

Программист встраиваемых систем, видео-блоггер

Send message

Wiren Board 5: что мы изменили в “начинке” контроллера для автоматизации

Reading time4 min
Views12K

Всем привет! Недавно мы писали о том, что выпустили новую версию контроллера для автоматизации — Wiren Board 5. Сегодня мы подробно расскажем, как изменилась электронная часть устройства.


image

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments50

Антихрупкость архитектуры хранилищ данных

Reading time42 min
Views60K
В этой статье речь пойдет об архитектуре хранилищ данных. Чем руководствоваться при ее построении, какие подходы работают – и почему.

«Сказка ложь – да в ней намек…»


imageПосадил дед… хранилище. И выросло хранилище большое-пребольшое. Вот только толком не знал, как оно устроено. И затеял дед ревью. Позвал дед бабку, внучку, кота и мышку на семейный совет. И молвит такую тему: «Выросло у нас хранилище. Данные со всех систем стекаются, таблиц видимо-невидимо. Пользователи отчеты свои стряпают. Вроде бы все хорошо – жить да жить. Да только одна печаль – никто не знает, как оно устроено. Дисков требует видимо-невидимо – не напасешься! А тут еще пользователи ко мне ходить повадились с жалобами разными: то отчет зависает, то данные устаревшие. А то и совсем беда – приходим мы с отчетами к царю-батюшке, а цифры-то между собой не сходятся. Не ровен час – разгневается царь – не сносить тогда головы – ни мне, ни вам. Вот решил я вас собрать и посоветоваться: что делать-то будем?».
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments15

Простой генератор DGML-файла графа переходов машины состояний

Reading time4 min
Views8.4K
Допустим, есть проект WPF/MVVM, в котором необходимо реализовать шаблон State Machine, позволяющий управлять поведением объекта (в данном случае, ViewModel) в зависимости от того состояния, в котором он находится. При этом необходимо получить простую реализацию этого шаблона без использования Windows Workflow Foundation, которая включала бы в себя классы состояний, класс реализующий логику переходов и таблицу переходов. И наряду с вопросами реализации этого шаблона стоит задача реализации инструмента, автоматизирующего процесс построения диаграммы состояний на основе таблицы переходов. При этом граф, построенный с помощью этого инструмента, должен отвечать следующим требованиям:

  • граф должен обладать понятной и упорядоченной визуальной структурой (ручное упорядочивание вершин и связей графа должно быть сведено к минимуму);
  • файл графа должен быть включен в проект и, соответственно, в систему контроля версий;
  • вершина графа должны обладать кликабельной ссылкой на файл, в котором реализовано состояние;
  • должна быть реализована возможность задавать стили к вершинам графа.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Как мы строили квест в реальности

Reading time11 min
Views50K
Нет нужды лишний раз объяснять, что такое квесты в реальности и с чем их едят. Тем более, эта тема уже не раз освещалась на Хабре (и Гиктаймс) [1] [2] [3]. Расскажу, как мы строили «Космическую одиссею» — самый технически сложный и, наверное, самый высокобюджетный из квестов «Клаустрофобии».



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

Чтобы обойтись без спойлеров, я не буду раскрывать принципы работы головоломок, зато будет много технических подробностей о том, как все устроено изнутри. Или, по отношению к игрокам, снаружи.
Читать дальше →
Total votes 50: ↑49 and ↓1+48
Comments25

Диагностический разъём OBDII: можно ли его ”приручить”

Reading time6 min
Views75K
Идея не новая, но вопросов много. С одной стороны, можно снять практически любые данные, а с другой стороны, OBDII похож на лоскутное одеяло, т.к. общее количество физических интерфейсов и протоколов напугает любого. А объясняется всё тем, что к моменту появления первых версий спецификаций OBD большинство автопроизводителей уже успели разработать что-то своё. Появление стандарта хоть и навело некоторый порядок, но потребовало включения в спецификацию всех интерфейсов и протоколов, которые на тот момент существовали, ну, или почти всех.

Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments29

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

Reading time13 min
Views48K


Говорят что лень — мать прогресса. В моём случае, так оно и было. Сейчас я живу в солнечной Индонезии, где по ночам люди освещaют свои дома для отпугивания воров (и призраков). Случилось так что моим поручением стало включение и выключение сего освещения. Каждое утро и вечер надо пройти вокруг дома и щёлкнуть всеми наружными выключателями. Особенно трудно не забыть об этом утром, поскольку включённые лампочки не заметны при дневном свете. После недельки таких хождений мне захотелось лучшей жизни. Я решил сделать дистанционный выключатель и автоматизировать управление светом. Таким образом, закладывая первые виртуальные кирпичи своего умного дома. Была только одна маленькая проблемка — я не имел ни малейшего представления как спроектировать электронику и развести плату.

На заглавном фото вы видите результат моих работ. Выключатель представляет из себя две вставки в стену. В одной располагается физический выключатель, а в другой его «мозг». Виртуальный выключатель работает в OpenHab2, запущенный в с свою очередь на RaspberryPi2.

Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments39

Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту

Reading time25 min
Views185K

Добрый день, уважаемые хабровчане. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый драйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать дальше →
Total votes 286: ↑279 and ↓7+272
Comments44
2

Information

Rating
Does not participate
Location
Тбилиси, Грузия, Грузия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Content Writer
Lead