About

Привет! Меня зовут Дмитрий Семёнов.
В сети я обычно шифруюсь как Ясносолнышкин.

Я студент московского технического ВУЗа по направлению “информатика”. Основной род моей деятельности – embedded-разработка.

Почта для связи: sd@crazygeeks.ru
Профиль GitHub и соцсети: в шапке сайта.

О чём этот сайт?

Основная цель данного ресурса — показать своё портфолио. Упаковать всё то, что я умею.

Вторичное назначение — блог. О личном опыте, о мнении касаемо некоторых вещей.

Что такое Embedded?

“Embedded” переводится как ‟встраиваемые системы”. Их применение следует из названия: они предназначены для встраивания и управления различными устройствами, начиная с кофеварок, заканчивая электронными системами в авиалайнерах.

Такие устройства строятся в основном на микроконтроллерах, микропроцессорах и ПЛИС.

В чём отличия Embedded от классической разработки?

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

  • Создание более дешёвого аналога устройства
  • Разработка совсем уникальной системы

Какими компетенциями должен обладать embedded-разработчик?

Помимо банальной стрессоустойчивости, знаний C/C++ и английского языка на хороших уровнях, можно выразить целый список:

  • Работа с ТЗ
  • Подбор компонентов
  • Составление схем и проектирование PCB
  • Изготовление PCB вручную или составление ТТ для заказа на заводе
  • Монтаж компонентов и контроль качества
  • Программная инженерия: разработка архитектуры проекта и написание прошивки
  • Умение отладки ПО и железа, опыт решения проблем
  • 3D-моделирование – изготовление корпусов согласно PCB
  • Внедрение системы и обеспечение отказоустойчивости

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

Ценность специалиста, на мой взгляд, в его способности смотреть на несколько шагов вперёд, опираясь на опыт


Вход в Embedded

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

Старая школа
Учились в основном на голых AVR и PIC. Основные представители почему-то изображаются мне суровыми дядьками с огромными познаниями в области аналоговой электроники, способные вытворять на ATtiny невообразимые вещи.
Именно они, со своими способностями к познанию, открывали комьюнити разработчиков на новых тогда ARM-микроконтроллерах.

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

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

А когда Arduino перестаёт быть игрушкой, появляются первые навыки в программировании, атмеги перестают справляться с задачами, вот тогда главное не упустить момент, осмелиться и попробовать STM32. Отсюда и выходят 2 пути: либо стагнация, либо развитие до настоящего эмбеддера.


Мой путь

У меня всё началось ещё в 2015 году, когда мне подарили набор от SparkFun.

About
About
Плата жива до сих пор

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

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

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

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

Полностью ощутил я эти ограничения при разработке проекта PianoLED. Ну не могут ужиться вместе WS2812, SPI и UART. По отдельности всё работает отлично, а вместе — никак.
Так я и посмотрел в сторону STM32, ввиду недоступности в то время Teensy 4-й серии.

Начать было очень сложно. Огромный поток зачастую неструктурированной информации в сети, разрушение привычек и убеждений, моральное унижение. Осознание парадигм работы с железом, путаница в конфигурации периферии.

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

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

Вот так и начался мой путь в настоящую embedded-разработку. Мечта сбылась: хобби натурально конвертировалось в профессию.


Почему STM32?

На сегодняшний день, микроконтроллеры от ST являются не только самыми встречаемыми на рынке, но и самыми простыми для освоения. В них довольно богатый набор периферии (в т.ч. аналоговой), поэтому
В перспективе рассматриваю изучение микроконтроллеров от NXP и ПЛИС.


В планах ещё много интересных проектов и идей, поэтому… Добро пожаловать!

About