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

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

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



    Для этого мы запускаем эстафетные внутренние проекты. Они состоят из независимых коротких этапов. Результаты таких работ служат фундаментом для последующих разработок и позволяют новичку показать себя, влиться в коллектив с интересной задачей и без риска завалить важный проект. Здесь и наработка опыта, и знакомство с коллегами, и возможность показать себя с лучшей стороны, когда нет жёстких ограничений со стороны 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 Но это уже будет новая история.
    Ready for Sky
    24,00
    Компания
    Поделиться публикацией

    Похожие публикации

    Комментарии 33

      +2
      Датчик холла получился видимо слишком чувствительным и срабатывает на магнитное поле двигателя/помехи. Возможно лучшим выбором было бы использовать аналоговый датчик и отдельный компаратор. Чувствительностью аналогового датчика можно управлять.
        0
        Спасибо за мысль, попробуем аналоговый датчик при появлении нового специалиста.
        0
        Вы на резоните платы заказываете? У них что-то зеленая маска потемнела, заметили? =)
          +2
          Они не гарантируют конкретный оттенок, иногда меняют краску.

          Белый регулярно варьируется в оптической плотности — многие этого просто не замечают, т.к. делают им только маркировку.
            0
            Хороший вариант для изготовления прототипов печатных плат, наше подразделение тут мало чем отличается от коллег =)
            Что до маски, то для прототипа оттенок не имеет определяющего значения.
            +2
            c) разработать протокол для передачи изображения с телефона на девайс;

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

            Да тут на год работы! Вы, кстати, свои BLE модули сертифицируете?
              0
              Ну, все-таки поменьше. К тому же каждый новый специалист получает свою задачу, ему не нужно делать все.
              Модули сертифицируем, новый сейчас проходит испытания.
              0
              Два вопроса
              1. какая память стоит в ваших модулях? Если 25-я то для чего?
              2. Будут ли продаваться ваши модули отдельно? Если будут то по какой цене?
                0
                1. На модулях только встроенная память от нордиковского чипа 256 и 512 Кб, дополнительной нет.
                2. Будут, сейчас ведем переговоры с магазинами, цену назвать не могу.
                +1
                Возможно, глупый вопрос, но почему светодиоды вдоль только одного плеча? Если сделать по всей длине, разве это не решит это некоторые проблемы с разверткой? При прочих равных можно было бы либо снизить скорость вращения (что, возможно, решило бы проблему с датчиком Холла), либо увеличить количество кадров в секунду.
                  0
                  Количество кадров в секунду ограничивает совсем не линейка светодиодов.
                    0
                    Это не решит проблемы а добавит новых. Например синхронизацию моментов включения левого и правого плеча, иначе мерцать будет как плохой интерлив на ТВ когда четные и нечетные строки стартуют с некоторым смещением.
                      0
                      какая синхронизация плеч? Они же крутятся не независимо, а жестко связанные между собой со сдвигом в 180 градусов. В момент, когда планка строго горизонтальна, одно плечо начинает рисовать левую часть экрана, второе плечо — правую. Через пол-оборота меняются. На картинке два контроллера управляют каждый своей группой из 16 светодиодов. Почему они не рассинхронизируются, а в двух разных плечах обязательно должны рассинхронизироваться? Единственный момент, который вижу — это точность симметричного расположения плеч на плате относительно оси вращения. Но это вообще не проблема.
                        0
                        Связаны жестко, но всё же они должны попасть пиксель-в-пиксель по той же траектории и угловом положении что совершили другие светодиоды пол оборота назад. А там ещё и яркость других диодов будет слегка отличаться и скорость плавать. Не знаю, может чего и выйдет.
                          0
                          одно плечо должно делать полный оборот, и попадать пиксель-в-пиксель. А тут только пол-оборота, т.е. ошибка будет в два раза меньше. Кстати, светодиодов, светящих на фоторезистор, регистрирующий оборот, можно поставить два, по одному на плече. Тогда можно будет регистрировать не каждый оборот, а каждые пол-оборота. Это тоже плюс к точности.
                          Касательно «может, чего и выйдет» — погуглил, китаёзы такие экраны на Али вполне себе уже продают. И планка там сплошная на оба плеча.
                            0
                            Тут каждое плечо по факту проходит полный оборот до синхронизации, так что здесь не зависит. А два датчика надо будет очень точно выставить иначе будет сдвиг.
                            Китайцам просто не лень клепать и пробовать. В итоге получается что ранние прототипы имеют множество недостатков и в итоге уходят в мусор. И еще неизвестно на какой компромисс они там пошли и на чём сэкономили.
                      0
                      Коллеги выше ответили на вопрос, проблем стало бы больше, а их решение выходит за рамки обучения.
                      +1
                      Не очень понял — для нового сотрудника одновременно ставятся задачи по разработке платы, программированию микроконтроллера и программированию телефона?
                        0
                        и разработке схемы, на сколько я понял. Вы так спрашиваете, как будто это незаконно)
                          +2
                          Вот так и получается, что разработчик встраиваемых систем — это и жнец, и жрец, и на дуде дудец. А ЗП меньше, чем у JS макаки.
                            0
                            Конечно нет, задачи ставятся новичку сообразно его компетенции — схемотехик отвечает за электрическую схему, программист микроконтроллеров — за прошивку и т.п.
                            Единственный вариант совмещения задач — желание сотрудника расширить свой профессиональный кругозор.
                            0
                            У меня вопрос, почему при попытке делать подобный дисплей, все пытаются вращать сложную плату, вместо того чтобы разместить массив светодиодов на корпусе, а вращать зеркало/призму/уголковый отражатель?

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

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

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

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

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

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

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

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


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

                                  Долго вчитывался, но так и не могу понять (наверно, стОит один раз самому сделать, чтобы такие вопросы пропали :-) ). Почему такая долгая синхронизация? Допустим, у вас есть два последних отчета оптодатчика — вы можете найти время между ними. В силу инерции следующий оборот будет несильно отличаться от предыдущего, так что делим количество тиков за период на… необязательно 360, почему бы не поделить на 1000? К тому же, поскольку светодиоды на разных радиусах проходят разное расстояние, можно ввести различное время для их обновления, т.е. снизить частоту обновления для светодиодов ближе к центру. Однако суть в том, что уже после некоторой стабилизации вращения будет отображаться вся картинка, пусть и несколько плавающая до выхода на стабильные обороты.
                                    0
                                    Различное время обновления ввести не получится, там по всей видимости отдельными управлять нельзя, вся линейка обновляется одновременно.
                                    Я вообще не понимаю зачем там что-то делить? там надо что-то вроде ФАПЧ для которой опорная частота — это частота с датчика, перестраиваем опорный генератор который даёт импульсы на смену состояния светодиодов так чтобы он выдавал ровно 360 импульсов на оборот. Этот генератор вполне может быть внешним и полностью аналоговым, а контроллер будет считать до 360 и выдавать сигналы больше-меньше.
                                    0
                                    Друзья, метод эстафет, это чистй воды кидалово.
                                    Я живу и работаю не первый десяток лет стране — которая является мировой Hi-Tech лабораторией.
                                    Такая тактика, как правило, применяется в тех случаях, когда сотрудник R&D, ищет алгоритм решения в своих неразрешимых задач, а порой просто от интеллектуального голода маркетинговых отделов. Вам будут давать близкие к своим темам задания, нанимать на работу с подписаниями договора, вливать в коллектив и т.п. и все это ради закомуфлированной цели. Любой работник отдела R&D с одобрения шефа может объявить временную вакансию с ролевой игрой в «новичка» с одной дишь целью, вытащить из Вас по максимуму. Кода наконец-то «новичок» все же выдает результат, он выглядит выжатым лимоном от такой замотивированности. Он получает гонорар в виде зарплаты и под разными надуманными предлогами увольняется, иногда и без предисловий. Я и многие мои коллеги на своем пути почти в 90% прошли через такого «новичка», пополнив черный список таких работодателей.
                                    Некоторые, добросовестно, в сжатые сроки решают задачу, после чего беспардонно увольняются.
                                    Бывалые Гуру в подобного рода ребусах, с первого дня находят быстрые и оптимальные решения и выстраивают тактику своей интриги и ты уже опасен, т.к. конкурируешь в интеллекте с засидевшимся бездарем, начинаются изощренные подставы и т.п.
                                    Метод новичка пойдет на пользу студентам, которые готовы и сами платить кому либо, лишь бы получить реальный проект и практику для развития своей карьеры и наполнения CV.

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

                                      Или речь идет о засидевшихся бездельниках, которые решают задачу быстрее новичка но не выдают ее фирме, придерживая, пока их будут решать новички, чтобы выдать ее какраз перед… чтобы бездельничать?
                                        0
                                        Странно что здесь тема метода «новичка» как то плавно переросла в обсуждение проекта, при том при всем, что не раскрыта психология таких методик.
                                        Так вот, бывает и так, группа бездельников или бездельник, на фоне роста достижений фирмы, необоснованно забыт и думает что если бы не он, фирма оказалась бы в глубокой %^#%. И что он делает? Он симулирует проблему с целью увеличения себе любимому зарплаты, дальше сценарий — пригласить специалиста, дать ему под личным чутким контролем вволю наиграться и далее наклонить его и в финале, демонстрируя шефу свое превосходство и никчемность того, которому шеф готов был платить. Дальше все понятно, проблема неожиданным образом разруливается все рады, шеф докладывает директорату хорошую новость, выписывает поощрение и прочие шишчаки.

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