Наш разработчик Евгений на досуге поучаствовал в конкурсе проектирования на платформе Arduino и занял 1 место
Как сконструировать марсианские часы и стать Arduino-мастером
Сибирикс


Как сконструировать марсианские часы и стать Arduino-мастером
Наш разработчик Евгений на досуге поучаствовал в конкурсе проектирования на платформе Arduino и занял 1 место
Об увлечениях руководителя студии, кажется, уже всем известно, благодаря его насыщенной инстаграмной жизни и парочке постов в блоге. Но не самолётами едиными живёт Сибирикс: менеджеры проектов рисуют акварельками в обеденных перерывах, аналитик с дизайнером бегают марафоны, а некоторые разработчики проектируют в свободное от работы время. И становятся лучшими, побеждая в конкурсах.

Свежее достижение нашего разработчика Евгения (помимо воспитания отряда толковых стажёров в это лето) — победа в октябрьском конкурсе проектирования часов на платформе Arduino.
Arduino — марка аппаратно-программных средств для построения простых систем автоматики и робототехники, подходящая для непрофессиональных пользователей. Иными словами это нечто вроде электронного конструктора, с помощью которого можно создавать электронные устройства: как автономные, так и работающие от подключения к ПО на компьютере. Проектирование — на языке С++.
Задание конкурса было таким: написать программный код для стрелочных часов с кукушкой, да не простых. Часы должны были отсчитывать марсианское время — отставать на 39 минут и 35 секунд за сутки от земного (плюс должна быть возможность переключиться на земное время). Также часы должны были издавать звук, когда минутная стрелка находится на двенадцати часах.
Конкурс стартовал в июле, а я о нём узнал за 2 недели до дедлайна. Поначалу подумал, что задачка тривиальная, но потом решил — почему бы и нет. На продумывание алгоритма потратил минут 10, наверное. Пару вечеров по 1,5 часа на написание кода, и готово. Среди 10 участников стал первым.

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

Евгений
Разработчик
В земных 24 часах 86 400 секунд
В подарок победители получили набор технических модулей, с которыми можно воплотить свою задумку в жизнь
В условиях конкурса был заявлен полный набор модулей для конструирования часов, а по факту там процентов 80 от того, что мне реально потребовалось бы, если б я захотел их создать. Обидно. Сертификат на ту же сумму для меня был бы предпочтительнее.

Идея конкурса сама по себе очень хорошая, для Барнаула — просто огонь. Но организация хромает: коробка от набора со сколами (будто это некондиция), церемонии награждения не было, даже дипломов не было. Меня, как победителя, это огорчило.

Евгений
Разработчик
Марсианские часы, принесшие победу, — не единственный проект Евгения. И если часы существуют пока только в виде кода, на рабочем месте разработчика спрятался умный контроллер задач, который он придумал и создал сам.
Фишка устройства в том, что оно отображает количество задач на день из корпоративного портала (большая красная цифра), их очерёдность, а также информирует об изменениях — если кто-то из менеджеров изменяет задачу, контроллер пищит. Если кликнуть по задаче на дисплее (он сенсорный) — на экране компьютера автоматически откроется окно с описанием задачи из планировщика.
Евгений
Разработчик
Идея родилась давно. Моё кредо: если можно что-то автоматизировать, то нужно это автоматизировать. Мне всегда хотелось видеть полный список задач перед глазами без необходимости что-то открывать и куда-то тыкать. Когда-то для Windows 7 я написал похожий десктопный гаджет на js, но потом сменился корпоративный портал, потом и 7-я версия устарела, все перешли на windows 10 — всё изменилось, в общем.

Задумку свою я долго носил в голове. Для реализации требовался сенсорный дисплей, который сам по себе стоит 1500 рублей, в то время как средний arduino-модуль стоит рублей 50. В итоге (не без спонсорства Сибирикс) я решился. Создавал разработку на базе отладочной платы nodeMCU — с Arduino у них разный машинный код, но он легко компилируется средой в цифровой код, понятный им обоим.

Эта разработка — один из самых сложных моих проектов. Здесь и дисплей, живущий своей жизнью (программировался отдельно, контроллер только указывает, какую именно страницу выводить дисплее), и сам контроллер с подключением к wi-fi, и отдельное десктопное приложение на С++.
На создание ушло очень много времени. Спал по 6 часов, работал ночами, когда в доме тихо и никто не отвлекает. Особенно много возни было с дисплеем — он китайский и сначала совершенно не хотел воспринимать кириллицу. В итоге я нашел устаревшую кодировку, которую он готов был понимать, но с ней тоже была загвоздка, да и сам контроллер подкинул ограничений — память была небольшой. Когда наконец-то увидел на дисплее русские буквы, счастью не было предела (я бы кричал, если б не ночь — жена и сын уже спали).
Сейчас, приходя на работу с утра и даже не включив компьютер, я уже понимаю, что меня ждёт: если количество задач 1−2 — значит, это какие-то огромные штуки, с которыми я провожусь весь день. 7−8 — куча мелочевки, 3−4 — какие-то штатные задачи в обычном режиме. Но главное — я знаю, когда задача меняется (это важно, потому что в обычном режиме это не всегда получается проследить). Возможно, в будущем усовершенствую контроллер, чтобы тот показывал, где именно произошли изменения в задачах. А пока мой новый большой проект — игрушка для сына, которая разговаривает с ним голосом жены.