Лето – пора практик для студентов вузов. Команда Raccoon Security регулярно приглашает всех желающих на персональные и групповые стажировки. Этим летом к нам на стажировку пришли студенты с кафедры ИУ4 МГТУ им. Н.Э. Баумана. Целый месяц они принимали активное участие в производственных процессах и применяли на практике полученные в вузе теоретические знания. Мы решили рассказать об этой стажировке и поделиться отзывами студентов, которые в ней поучаствовали.  Темой стажировки была «Разработка концепции домашней автономной беспроводной камеры для безопасности маленьких детей». Стажировка проходила в формате практики, участвовали десять студентов МГТУ им. Н.Э. Баумана, только что перешедших на третий курс по направлению «Проектирование и технология производства электронной аппаратуры» (кафедра ИУ4). Изначально мы спланировали программу на четыре недели, за которые студенты должны были: провести исследование и анализ рынка автономных беспроводных камер; выполнить схемотехнический анализ существующего набора устройств; провести полевые испытания этих устройств и сравнить их реальные характеристики с заявленными; составить техническое задание, структурную схему и концепцию своего устройства. В качестве дополнительных мероприятий мы запланировали презентации по следующим темам: «Микроконтроллеры и ПЛИС. Что это такое и как с этим жить?»; «Разработка своего устройства от А до Я»; «Знакомство с 3D-печатью»; «Зачем учиться на ИУ4?». Студентов разделили на три команды по три-четыре человека. Далее мы создали чат в Telegram и группу в GitLab с отдельными проектами, чтобы командам было удобно общаться с кураторами. Для каждого студента было подготовлено рабочее место: компьютер с Ubuntu, быстрый Интернет, Wi-Fi, кондиционер. Для восстановления сил – чай, кофе, конфеты и печенье... :) Основная цель практики – формирование базовых знаний о ключевых этапах создания устройства. Мы хотели, чтобы студенты научились: поиску и критическому анализу информации;  работе в команде;  системному подходу при проведении практических исследований; оформлению результатов исследований; применению основных подходов к проектированию устройств. Как организаторы мы хотели в первую очередь привлечь студентов к прохождению персональных стажировок с последующим трудоустройством, а также сделать обзор текущего рынка. В первый же день студенты показали себя с лучшей стороны: во время вступительной презентации и небольшой экскурсии задавали интересные вопросы и демонстрировали знания в области прикладной электроники и программирования. Кто-то уже умел ремонтировать материнские платы, кто-то был знаком с программированием на C/C++ и Python, а кто-то разрабатывал приложения на Android и iOS.  На следующий день мы приступили к выполнению программы практики. Оказалось, что студенты способны качественно решать поставленные задачи куда быстрее, чем мы думали. Студенты уже начали просить скорее перейти к практическим действиям: познакомить их с разработкой под микроконтроллеры (МК) и ПЛИС, пайкой и разводкой печатных плат, а также с 3D-печатью.  Мы решили расширить программу практики, чтобы студенты не заскучали. Пришлось в срочном порядке дополнять и перестраивать существующий план.  1. Для работ по пайке мы разработали плату в формате pcb-challenge.  2. Для заданий, связанных с МК и ПЛИС, создали отдельные проекты в GitLab и раздали отладочные платы. По работе с ПЛИС у нас был заготовлен небольшой практикум на платах фирмы Altera. Задания по разработке на МК (в качестве платформы мы выбрали STM32) пришлось придумывать индивидуально по ходу дела.  3. Для 3D-печати мы перенесли один из 3D-принтеров в аудиторию к студентам и показали как им пользоваться.  Далее по тексту мы будем приводить некоторые выдержки из отзывов наших студентов. Орфография, пунктуация и стиль авторов по возможности сохранены.  За первую неделю командам нужно было:  провести исследование рынка автономных беспроводных камер; сформировать список устройств; выделить основные технические характеристики; выделить достоинства и недостатки каждой модели на базе отзывов потребителей. Для каждой команды был определен один из наиболее приоритетных критериев поиска: качество изображения, миниатюрность, наличие уникальных функций. На выходе мы хотели получить систематизированный отчет в Markdown’e с таблицами и выводами. В процессе выполнения одна из команд решила применить свои знания в области SQL – создать собственный датасет камер и провести обработку характеристик с помощью Python. Мы были приятно удивлены такому неожиданному подходу.  Безусловно, для такой обработки желательно наличие большого количества данных, о чем студенты узнали в процессе и своевременно нас предупредили. Но мы решили, что в рамках обучения можно этим пренебречь. Итоговый отчет они оформили в виде HTML-страницы.  Кирилл Честно говоря, первая неделя была немного скучной, а именно анализ рынка устройств. Но дальше все было идеально. Мы разбирали сами устройства, изучали их принцип работы и для чего нужны элементы схем устройств, а в дальнейшем сами разрабатывали для них функциональную схему работы, продумывали, какие элементы необходимы и как они будут взаимодействовать. Для меня было наиболее интересно программирование микроконтроллеров на базе STM32. Александр [куратор] рассказывал не только о базовых вещах, необходимых для работы с МК, но и о тонкостях, которые были из его опыта. В частности, при подключении гироскопа L3DG20 он сказал, что подключение – это лишь полбеды, основная проблема – обработка данных, чему я сначала не поверил. А сейчас я изучаю цифровую обработку сигналов... Где-то к середине второй недели была готова наша плата формата pcb-challenge. Как только платы «пришли» в офис, мы решили спаять одну штуку и проверить, сколько времени уйдет у опытного специалиста на выполнение пайки SMD-компонентов. Вооружившись простым паяльником, Никита, один из кураторов практики, смог запаять все компоненты примерно за час.  Уже на следующей неделе студенты начали пробовать свои силы в пайке SMD-компонентов. У некоторых студентов уже был опыт работы с паяльником, поэтому кто-то потратил на монтаж не более трех часов, а кто-то паял и все шесть.  Тем не менее практически все студенты самостоятельно справились с монтажом SMD-компонентов. Если элементы запаяны верно, то все светодиоды должны загореться с одинаковой яркостью. Федор В целом, могу с уверенностью сказать, что эта практика для меня была удивительно успешной. Мне понравилось, что организаторы практики очень ответственно подошли к процессу нашего обучения: устраивали небольшие лекции, помогали с возникающими проблемами. Мне особенно понравилась организация нашей работы: борды, задачи, To-Do List и т.д. Все-таки самое главное для меня – это люди, которые действительно заинтересованы научить нас [студентов] чему-то новому, рассказать и показать – это дорого стоит. Для выполнения схемотехнического анализа было закуплено десять экземпляров беспроводных камер с AliExpress, по две штуки каждой модели. Одну из камер предлагалось разобрать, а другую оставить для проведения полевых испытаний. Конечно, куда интереснее было бы закупить определенные модели по результатам первого этапа, но учитывая ограничения по срокам, мы решили закупить камеры заранее. Студентам не только удалось найти бóльшую часть даташитов на обнаруженные микросхемы, но и составить вполне правдоподобные структурные схемы разобранных устройств. Арсений Практика прошла отлично, стоит отметить хорошую атмосферу и возможность задавать вопросы, на которые всегда отвечают, и объясняют непонятные моменты. Не понравилось большое количество отчетов в начале. Я узнал, как ведутся проекты, чем можно заниматься в подобных компаниях, какие вещи нужно знать и уметь в рамках моей специальности. Можно уменьшить количество отчетов и добавить еще больше практических заданий. На первой неделе один из кураторов – ведущий специалист Вадим – прочитал студентам вводный доклад про МК и ПЛИС. А уже к началу второй недели мы решили сделать факультативные задания по программированию МК и ПЛИС в свободное от основной программы время. Позаниматься программированием железа захотели сразу шесть человек. Четверо студентов выбрали STM32, а двое – ПЛИС. Программирование МК мы начали с простых заданий на моргание светодиодами и изучение прерываний. На ПЛИС студенты начали с построения простейших счетчиков на светодиодах и семисегментных индикаторах. После выполнения ознакомительных заданий, мы начали разбираться с UART и SPI. Среди заданий были следующие: передача команд на включение-выключение светодиода по UART; передача счетчика по UART при нажатии на кнопку; калькулятор с интерфейсом по UART и выводом на дисплей по SPI; запись произвольных строк во флеш-память контроллера по UART; работа с АЦП и ШИМ, регулировка яркости светодиода с последующим выводом графика на дисплей по SPI. Денис Практика оказалась довольно занимательной. Неформальная обстановка, общение на равных способствовали быстрому сплочению с кураторами, позволило быстро найти общий язык с ними.  Довольно интересно продумана программа практики. Каждый по своему желанию мог ознакомиться с программированием микроконтроллера или ПЛИС, процессом пайки и сбора собственной схемы, печатью на FDM-принтере. В общем говоря, получили незаменимый опыт, который так или иначе действительно пригодится в будущем. Что касается ПЛИС, то сначала студенты реализовали простой счетчик с отображением на светодиодах и познакомились с модулем PLL. Следующим заданием было создание счетчика на семисегментном индикаторе, который можно было бы увеличивать и уменьшать по нажатию на кнопку. Тут студенты столкнулись с таким явлением, как дребезг контактов. К сожалению, времени на полное выполнение третьего задания нам не хватило. Оно было рассчитано на две недели и заключалось в реализации собственного модуля UART с последующей отправкой и приемом сообщения, закодированного шифром Цезаря. Но так или иначе нам удалось заинтересовать студентов процессом разработки на ПЛИС. И один из них уже даже заказал свою первую отладочную плату с AliExpress :) Тимур Процесс практики был нескучным и разнообразным.  На этой практике я научился:  1) более точно анализировать рынок определенных устройств;2) проводить первичный схемотехнический анализ устройства;3) тестировать устройства. По-моему мнению практика прошла отлично. Мне понравились все этапы практики, потому что те навыки, которые я приобрел, пригодятся мне в дальнейшем не только на учебе, но и на работе. На следующем этапе нужно было провести полевые испытания. Очень часто оказывается так, что заявленные производителем характеристики на AliExpress не соответствуют реальным. Если это не удается понять на этапе схемотехнического анализа, то в установлении истины поможет проведение реальных тестов и замеров. Вот список критериев и характеристик, по которым студенты проводили испытания: 1) оценить качество изображения;2) провести съемку при комнатном освещении;3) провести съемку при уличном освещении:       - по направлению солнечных лучей;       - против направления солнечных лучей;4) провести съемку в плохом освещении:       - с ИК-подсветкой;       - без ИК-подсветки;5) проверить стабильность подключения:       - задержки изображения;       - разрывы изображения;       - дальность работы;6) проверить, как устройство работает с хранилищем:       - организация файлов;       - степень сжатия;       - формат.   Наши подозрения подтвердились: большинство заявленных характеристик не соответствовали реальным. Одна из камер оказалась попросту неработоспособной, а среди всех камер нашлось лишь несколько экземпляров, которые так или иначе могли бы снимать стабильно в более-менее хорошем качестве. Платон  Было очень приятно, что кураторами были выпускники нашей кафедры. Мы очень быстро нашли общий язык. Благодаря постоянной поддержке Александра [куратора], работа никогда не стояла на месте. На практике очень важно, чтобы куратор был с опытом работы, и мы это получили. Из плюсов хочу отметить, что можно также узнать побольше о том, как работают другие отделы компании, а не только о том, в котором проходишь практику. Работа была распределена по командам, но проекты были схожи, поэтому мы все сплотились на выполнение общих задач и получилось узнать друг о друге получше, что несомненно здорово. К середине третьей недели специалист отдела разработки аппаратных средств – Никита провел для стажеров обзорный доклад про 3D-печать: были перечислены наиболее популярные 3D-принтеры и самые частые проблемы новичков во время печати. В тот же день мы решили перенести к студентам в аудиторию один из наших боевых принтеров, старичка Felix 3.0. Транспортировка прошла успешно, а стажеры быстро освоили поиск моделей на Thingiverse и работу со слайсером. Для печати использовали пластик PETG. Мы думали о том, чтобы сделать какое-нибудь командное задание по 3D-печати, но, к сожалению, нам не хватило на это времени. Поэтому мы просто ограничились печатью готовых моделей на 3D-принтере. Судя по тому, что за неделю ушла целая катушка пластика, студентам тоже понравилось :)  Евгений  В процессе прохождения практики я начал разбираться в устройстве ПЛИС, схемотехнике устройства, освоил методы и способы 3D-печати, научился паять платы с элементами разных размеров, даже таких как резисторы типа 0201, анализировать и предлагать различные решения по улучшению электронного устройства. Мне понравилось, что все специалисты, с которыми я как-либо общался, были хорошо квалифицированы. Каждую неделю проводились шикарнейшие лекции разного профиля, что расширяло кругозор и понимание многих вещей. Безусловно, за этот крайне быстротечный месяц невозможно охватить все, а очень жаль. На заключительном этапе мы хотели, чтобы стажеры составили техническое задание и концепцию собственной камеры, используя знания, полученные во время практики. В качестве дополнительного задания (со звездочкой) предлагалось разработать 3D-модель и визуализировать свое устройство. Одна из команд решила сделать камеру, в основе которой лежит идея с масштабируемыми модулями. Вот что у них получилось: Анастасия Могу сказать, что на протяжении стажировки я значительно прокачала свои soft skill`ы. Я поняла, что значит работать в команде, стала более организованной, коммуникабельной, начала системно подходить к решению какой-либо проблемы. На протяжении всей работы я училась критически анализировать информацию и выбирать нужные критерии отбора. Очень понравилось, что помимо основного задания, мне дали возможность познакомиться с программированием микроконтроллера, создать фигурки на 3D-принтере и освоить Markdown. Хочу отметить несколько плюсов практики, первый из них – отличная команда специалистов и классная атмосфера.  Еще плюс – классный план работы. Очень интересно было посмотреть на ключевые этапы создания устройства. Нам была дана возможность придумать концепт собственной видеокамеры, где я смогла проявить свои творческие навыки. Будучи на втором курсе, сложно себе представить, что нас может ждать на месте работы, а практика такого формата дает вполне четкое и ясное представление о том, с чем нам предстоит столкнуться. Месяц пролетел незаметно, а практика подошла к концу. Все задачи, поставленные студентам, были выполнены качественно и в срок. В процессе практики мы провели несколько собеседований и договорились о последующих персональных стажировках по индивидуальным направлениям. В качестве заключения приводим слова главного куратора практики – Александра. Александр Изначально у меня были некоторые сомнения относительно того, как пройдет практика, ведь это был мой первый опыт управления коллективом, пусть и небольшим. Все сомнения быстро растворились, как только я увидел горящие глаза студентов и интерес к разработке и программированию. Нам очень быстро удалось выстроить доверительные отношения и найти общий язык со студентами. Мне понравилось ставить им задачи, направлять и отвечать на вопросы. В процессе я тоже многому научился и наметил новые точки персонального роста. Надеюсь, что за этот месяц я действительно смог заинтересовать и научить стажеров разработке собственных устройств. Заложить небольшой фундамент для программирования и дальнейшего интереса к МК и ПЛИС. Хотел бы поблагодарить всех студентов и своих коллег, которые помогали мне провести эту практику и выступали с докладами: Кирилла, Никиту, Вадима и Антона. Мы постоянно проводим индивидуальные стажировки и будем благодарны, если вы поделитесь ссылкой на эту статью с теми, кому это может быть интересно. Оставить заявку на прохождение стажировки можно тут. Другие публикации о стажировках в Raccoon Security: Реверс USB-SATA-адаптера (история одного стажера) Еще одна стажировка, или сказ про реверс IP-камеры Raccoon Security – специальная команда экспертов НТЦ «Вулкан» в области практической информационной безопасности, криптографии, схемотехники, обратной разработки и создания низкоуровневого программного обеспечения.