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

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



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

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

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

Этапы были следующими:

a) продумать конструкцию (изучив имеющиеся образцы, описание аналогов, проявив творческую инициативу);

b) разработать принципиальную электрическую схему, развести ее на плате;

c) разработать протокол для передачи изображения с телефона на девайс;

d) обеспечить управление со смартфона через Bluetooth LE.

Стартовым вариантом предполагалось использовать что-то очень компактное типа трехлепесткового спиннера, который при ручном вращении начинал показывать надписи. В одном лепестке располагался BLE-модуль, во втором – десять RGB-светодиодов, в третьем оптический датчик, в центре — аккумулятор. Была составлена принципиальная электрическая схема и проведены первые эксперименты. Стало ясно, что уровень качества картинки очень низкий, разрешение маленькое, игровой эффект непродолжительный, возможности скромные. Да и спиннеры ушли в прошлое так же быстро, как появились. Было решено поднять планку и разработать поворотный стробоскопический экран. Его как минимум можно использовать в практических целях на выставках и конференциях и в ближайшее время интерес к таким решениям не пропадёт.

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

В образовательных целях светодиоды были расположены только в горизонтальной плоскости. Что касается питания платы, то стоял важный выбор: либо мы берем коллекторный двигатель громоздкий, шумный, но дешевый, либо используем более изящное решение с бесконтактной передачей питания при помощи двух катушек – одна на двигателе, другая на плате. Решение, конечно, изящное, но более дорогое и долгое, т.к. катушки нужно было сначала рассчитать, а потом намотать (желательно не на коленке).


Так выглядит получившийся прототип

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

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

Основой платы со светодиодами стал наш модуль RM10 и шесть светодиодных драйверов MBI5030.

Драйверы имеют 16 каналов с возможностью независимо управлять каждым. Таким образом, 6 таких драйверов и 32 RGB-светодиода суммарно имеют возможность показывать 16 млн. цветов.

Для синхронизации и стабилизации выводимого изображения было использовано два магниторезистивных датчика Холла MRSS23E.

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

Но что-то пошло не так – вне зависимости от скорости вращения платы датчик выдавал хаотично то одно, то два прерывания за проход. Таким образом изображение получалось размазанным и складывалось внутрь себя.

Замена датчиков ситуацию не поменяла, поэтому датчик Холла был заменен на фоторезистор.

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


Верхняя сторона платы

С оптическим датчиком изображение получается четкое, но стабилизируется около 30 секунд. Происходит это по комплексу причин, одна из которых – дискретность таймера. Это 4 млн тиков в секунду, делятся на 360 градусов с остатком, который и вносит искажение в выдаваемое изображение.

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

Однако проблемы не закончились. Микроконтроллер nRF52832 не может обеспечить необходимую скорость передачи данных для возможного количества оттенков (ок. 16 МГц) – экран выдает 1 кадр в секунду, для человеческого глаза этого мало. Очевидно, нужно разместить на плате отдельный микроконтроллер для управления изображением, а пока принято решение заменить MBI5030 на MBI5039. Это всего 7 цветов, включая белый, но этого достаточно для отработки программной части.

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

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

Таким образом, промежуточные результаты работы эстафетной команды следующие:

Ротационный экран имеет линейку из 32 светодиодов и диаметр изображения 150 мм. Он отображает 7 цветов, устанавливает изображение или текст за 30 секунд (что не идеально, но для начала приемлемо). Через Bluetooth-соединение можно подать команду на смену изображения.


А так это выглядит

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

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

P.S. Разумеется, после окончания работ на Bluetooth LE (nrf52832) мы спроектируем и реализуем Wi-Fi/Bluetooth версию на ESP32 Но это уже будет новая история.

Комментарии (25)


  1. Alexeyslav
    11.04.2019 14:42
    +1

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


    1. ready_for_sky_team Автор
      15.04.2019 10:50

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


  1. Koyanisqatsi
    11.04.2019 15:21

    Вы на резоните платы заказываете? У них что-то зеленая маска потемнела, заметили? =)


    1. olartamonov
      11.04.2019 15:29

      Они не гарантируют конкретный оттенок, иногда меняют краску.

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


    1. ready_for_sky_team Автор
      15.04.2019 10:53

      Хороший вариант для изготовления прототипов печатных плат, наше подразделение тут мало чем отличается от коллег =)
      Что до маски, то для прототипа оттенок не имеет определяющего значения.


  1. xztau
    11.04.2019 16:10

    c) разработать протокол для передачи изображения с телефона на девайс;

    d) обеспечить управление со смартфона через Bluetooth LE.

    Да тут на год работы! Вы, кстати, свои BLE модули сертифицируете?


    1. ready_for_sky_team Автор
      15.04.2019 10:54

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


  1. lenz1986
    11.04.2019 17:33

    Два вопроса
    1. какая память стоит в ваших модулях? Если 25-я то для чего?
    2. Будут ли продаваться ваши модули отдельно? Если будут то по какой цене?


    1. ready_for_sky_team Автор
      15.04.2019 11:00

      1. На модулях только встроенная память от нордиковского чипа 256 и 512 Кб, дополнительной нет.
      2. Будут, сейчас ведем переговоры с магазинами, цену назвать не могу.


  1. Andriuxa
    11.04.2019 17:57
    +1

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


    1. holomen
      11.04.2019 21:02

      Количество кадров в секунду ограничивает совсем не линейка светодиодов.


    1. Alexeyslav
      15.04.2019 08:41

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


      1. Andriuxa
        15.04.2019 11:07

        какая синхронизация плеч? Они же крутятся не независимо, а жестко связанные между собой со сдвигом в 180 градусов. В момент, когда планка строго горизонтальна, одно плечо начинает рисовать левую часть экрана, второе плечо — правую. Через пол-оборота меняются. На картинке два контроллера управляют каждый своей группой из 16 светодиодов. Почему они не рассинхронизируются, а в двух разных плечах обязательно должны рассинхронизироваться? Единственный момент, который вижу — это точность симметричного расположения плеч на плате относительно оси вращения. Но это вообще не проблема.


    1. ready_for_sky_team Автор
      15.04.2019 11:03

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


  1. iliasam
    11.04.2019 21:08
    +1

    Не очень понял — для нового сотрудника одновременно ставятся задачи по разработке платы, программированию микроконтроллера и программированию телефона?


    1. jmg2000
      12.04.2019 12:06

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


    1. CKOPOCTb
      14.04.2019 15:57
      +2

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


    1. ready_for_sky_team Автор
      15.04.2019 11:07

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


  1. rPman
    12.04.2019 00:43

    У меня вопрос, почему при попытке делать подобный дисплей, все пытаются вращать сложную плату, вместо того чтобы разместить массив светодиодов на корпусе, а вращать зеркало/призму/уголковый отражатель?

    Сразу решится проблема передачи данных… да и цена понизится.

    p.s. с зеркалом и с быстрым lcd экраном/матрицей можно даже стереоизображение (симуляцию волнового фронта) выдавать.


    1. ready_for_sky_team Автор
      15.04.2019 11:10

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


      1. rPman
        15.04.2019 11:39

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

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

        Само собой даже 100Hz монитора не хватит чтобы так быстро менять картинку, но реалии таковы что стереоизображения отличаются незначительно (на границах объектов), т.е. меняется маленький процент точек, а значит даже частые коллизии не потребуют частых изменений, так как точки в коллизиях с большой вероятностью будут одного цвета… в общем если ограничить варианты размещения наблюдателя (например углы, при которых этот стереомонитор будет работать, или даже детектить наблюдателя и подстраивать изображение под каждого), это позволит значительно сократить коллизии а значит между сменами экрана потребуется меньше времени.

        Вариант без LCD — нужно вращать зеркало по двум осям: вокруг оси крепления и всю конструкцию, скорости будут примерно одинаковыми но должны быть контролируемыми (различие в скоростях определит какую часть корпуса будет отражать зеркало), таким образом чтобы для зафиксированного наблюдателя отражались определенные светодиоды. Неоднородности вращения могут быть фиксированные, т.е. их можно реализовать зубчатой передачей с не круглым колесом, само по себе это вопрос исследований (расчет и моделирование), зато 3D печать позволит делать такие выкрутасы без каких либо дополнительных затрат. Плюсы — можно разместить несколько рядов светодиодов для разных наблюдателей (вырожденный случай — LCD экран, но в этом случае каждый следующий ряд пикселов нужно менять изображение на экране, а значит экран будет от силы десяток рядов для 100Hz).

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

        p.s. на зеркальную полоску можно нанести непрозрачные риски разделив ее на виртуальные пикселы, таким образом вместо отрезка на LCD экране это будет набор точек на отрезке с некоторым интервалом, что еще больше уменьшит коллизии.

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


    1. Andriuxa
      15.04.2019 11:51

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


  1. Impuls
    12.04.2019 09:40

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


    1. ready_for_sky_team Автор
      15.04.2019 11:11

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


      1. olartamonov
        15.04.2019 11:49

        это решение не позволило полностью запитать плату


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