Pull to refresh
-28
@Polarisruread⁠-⁠only

User

Send message

Добавляем Unit-тестирование в проекты STM32CubeIDE

Level of difficultyEasy
Reading time5 min
Views2.1K

А именно, мы будем добавлять отличную систему Сeedling. Данная система содержит в себе сразу два инструмента – Unity – непосредственно для проведения и написания тестов и CMock для генерации объектов-заглушек. Но самая большая заслуга данного пакета – простота во всех аспектах – начиная от генерации тестируемых модулей и до релиза проекта. Использование Сeedling превращает рутинное TDD (Разработка через тестирование) или TLD(если захочется так) в обычный рабочий процесс.

Читать далее

Запускаем кодек OPUS на микроконтроллере

Level of difficultyEasy
Reading time13 min
Views4.8K

Исходные данные – есть контроллер STM32 с очень ограниченной памятью, а мы хотим записывать на нем звук. Допустим, что примеров с подключением выбранного нами микрофона гора и маленькая тележка. В итоге имеем контроллер, который умеет выдавать нам WAV-подобный сигнал. Хотелось бы этот WAV-сигнал куда-то записать или передать. Таких данных будет очень много, есть ненулевая вероятность, что мы не влезем по полосе пропускания используемого канала или заполним память до того, как получим нужную информацию. На помощь нам спешит компрессия!

Читать далее

STM32 SAI и микрофон INMP441

Level of difficultyEasy
Reading time4 min
Views6.2K

Представим, что у нас есть STM32L4 серии и на нем мы пытаемся подключить микрофон INMP441 через интерфейс SAI. Данный микрофон выводит данные сразу в PCM коде и имеет хорошие звуковые характеристики для своего ценового диапазона.

Читать далее

Компилятор за выходные: синтаксические деревья

Level of difficultyMedium
Reading time11 min
Views30K

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее

Zigbee датчик температуры для бассейна

Level of difficultyMedium
Reading time7 min
Views13K
Приветствую всех читателей Habr! В эти новогодние каникулы хочу поделиться с вами своим летним открытым проектом zigbee датчика температуры для бассейна. Идея разработать такой датчик появилась довольно спонтанно, летом 2023 года после установки бассейна на даче, появилось желание мониторить температуру воды. К тому времени у меня было разработано несколько проектов zigbee датчиков с дисплеями и датчиков температуры с выносными сенсорами. Датчики температуры можно было привязывать к датчикам с дисплеями и выводить температуру, присланную с этих внешних датчиков. Датчик температуры я закреплял на стенке бассейна, а сенсор на проводе опускался в воду. Но как оказалось это не очень то и удобно. Как только пришел к такому выводу то сразу решил что мне нужен плавающий zigbee датчик температуры.


Читать дальше →

Упрощение отладки с помощью unit-тестов

Level of difficultyMedium
Reading time9 min
Views4.1K

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

Читать далее

CH32V003 первый проект. Мигаем OLED дисплеем и делаем измеритель концентрации CO2

Level of difficultyEasy
Reading time15 min
Views27K

В последнее время разработчики электроники испытывают трудности с поставками электронных компонентов. Одним из решений данной проблемы является переход на "исконно китайскую" элементную базу. Это решение подкупает ценой и доступностью, но пугает плохой документацией и небольшим количеством информации на понятных нам языках. В данной публикации расскажу о любопытном микроконтроллере на ядре RISC-V и сделаю простое первое устройство - датчик концентрации углекислого газа в воздухе/мигалку OLED дисплеем и светодиодом (куда ж без мигалки светодиодом). В репозитории размещен проект для тех, кто захочет воспользоваться данными наработками.

Читать далее

Как я сделал игру на ChatGPT

Level of difficultyEasy
Reading time12 min
Views27K

Рассказываю как сделал текстовый квест на ChatGPT и с какими проблемами столкнулся в промптинге. Что и как не получалось и как потом получилось.

Внутри полный текст промпта.

Читать далее

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views303K

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Views343K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее

Автономный программатор SWD

Level of difficultyHard
Reading time13 min
Views21K

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

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

Читать далее

8 профилировщиков потребляемой мощности для embedded и IoT систем

Level of difficultyEasy
Reading time7 min
Views7.1K


От переводчика. Вниманию читателей предлагается обзорная статья в которой автор рассматривает восемь устройств из очень интересной и специфической области — профилирования энергопотребления embedded и IoT устройств.

Для тех, кто занимается разработкой энергоэффективных устройств на микроконтроллерах это будет интересная и полезная информация — в обзоре присутствуют как довольно дорогие девайсы ($800), так и приборы с вполне демократичной ценой $55–$120, которые может позволить себе любой любитель электроники.
Читать дальше →

Автоматическое определение таблицы коммутации BLDC мотора

Reading time6 min
Views10K

Здесь разрабатываем эталонную таблицу коммутации BLDC мотора на основе цифрового двойника и создаем алгоритм для автоматической генерации таблицы в сервоконтроллере MC50. Таблица коммутации используется для 6-шагового управления вращением ротора BLDC мотора с датчиками Холла. Хотя найти правильный способ коммутации несложно путём перебора (6! => 720 вариантов), но такой путь опасен неправильным выбором последовательности коммутаций, которые могут создать вращение, но крайне неэффективное и нестабильное.

Читать далее

Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB

Level of difficultyEasy
Reading time2 min
Views17K

USB Type-C - действительно универсальный порт.

В данной статье я расскажу о том, как использую Type-C для отладки устройств на STM32. По каким линиям проведен интерфейс SWD, чтобы не нарушить спецификацию USB и сохранить совместимость со всеми устройствами, как сделать свой программатор, и в чем плюсы и минусы этого решения под катом.

Читать далее

Как я делал бюджетное устройство мониторинга качества среды и что из этого вышло

Level of difficultyEasy
Reading time8 min
Views16K
image

В начале немного предыстории.

Однажды я был в гостях у своего товарища, который как и я, активно занимается домашней автоматизацией. Я увидел у него смонтированную систему приточной вентиляции и поинтересовался, как он реализовал автоматизацию этой системы. В ответ услышал, что он её включает вручную, так как у него нет устройства, которое анализирует качество воздуха, а готовые решения имеют зачастую слишком неоправданную цену для систем бытового применения. Недолго думая, я предложил ему своё решение, о котором далее и пойдет речь.
Читать дальше →

Симпсоны-ТВ: руководство по сборке

Level of difficultyEasy
Reading time16 min
Views16K

Гик-энтузиаст Brandon Withrow собрал устройство под названием Simpsons TV. Это миниатюрный телевизор, который безостановочно крутит эпизоды из мультсериала «Симпсоны», и ничего более. Если вы тоже хотите себе такой, воспользуйтесь этим руководством.

Читать далее

Библиотека libopencm3: Быстрый старт (Часть 1)

Level of difficultyMedium
Reading time14 min
Views10K

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

Когда автор начал знакомиться с микроконтроллерами STM32 после долгой работы с семейством Atmega/Attiny, он так же как и все начинающие, использовал IDE (это был неторопливый Eclipse) и пользовался CMSIS + SPL/HAL. И эта связка была работоспособна. Но душа моя, почему-то испытывала дискомфорт от рабочего
окружения. Eclipse на ноутбке не радовал отзывчивостью, изучение исходников
стандартных библиотек не всегда гладко ложилось в моей голове с содержимым даташита на микроконтроллер. Но все это было терпимо.

Но вот я замахнулся на самый сложный и полезный интерфейс - USB. С первого взгляда все было просто - куча примеров кода для HAL, как сделать USB микрофон или CDC устройство. Но стоило лишь поставить цель реализовать композитный девайс сочетающий в себе аудиоустройство и CDC) как ты вступал в темный лес.

Структура STMовской USB библиотеки была нелогична, и опять же, очень плохо
совмещалась с официальной спецификацией USB. Я штурмовал этот «USB пик»
несколько лет, периодически забрасывая, пока не наткнулся на упоминание о
том, что прошивка микроконтроллера что отвечает за работу с USB в SDR трансивере
HackRF написана с помощью некой библиотеки libopencm3. Изучение документации, приятно порадовало мой глаз. Изучение исходников - радовало максимальной близостью к регистрам. И я решился сменить HAL/SPL на libopencm3. Единственная проблема в том, что в сети ГОРАЗДО меньше статей и руководств для начинающих, как подготовить среду разработкию. 90% информации ты находишь сам, копаясь в образцах чужого когда на GitHub, и вчитываясь в официальную документацию не забывая заглядывать в даташит. Данный путь закалаяет характер, но совсем не то, что хочется для быстрого старта и быстрого результата.

Читать далее

Квантовый компьютер: его превосходство, несходство и недосходство в сравнении с классическим

Level of difficultyMedium
Reading time16 min
Views42K

В представлении гуманитария квантовая физика – чисто теоретическая наука, изучающая устройство мира на самом фундаментальном уровне и бесконечно далёкая от нашей жизни. Лишь немногие знают, что мы уже пользуемся квантовыми технологиями каждый день. Без квантовой физики не было бы современной электроники (компьютеров, смартфонов, планшетов, бытовой техники), высокоскоростного интернета и спутниковой навигации. Но кремниевые полупроводники, интегральные схемы, компакт-диски, флеш-память, оптоволоконные кабели, светодиоды, солнечные панели, МРТ, электронные микроскопы, лазеры, атомные часы, ядерное и термоядерное оружие, атомные электростанции, даже не освоенный ещё термоядерный синтез – всё это продукты первой квантовой революции, теоретические основы которой были заложены ещё в 20-е-30-е гг. XX века. Теперь же пришло время второй квантовой революции, вызванной появлением технологий, позволяющих манипулировать отдельными квантовыми частицами и управлять их состоянием. Локомотивом этой революции станет квантовый компьютер, о котором и пойдёт речь в данной статье.

Читать далее

Сколько soft skills освоить для успешной карьеры

Reading time6 min
Views14K

Впервые я задумался об этаком “soft skills starter pack” около года назад. Гугление дало списки из 10-15-20 навыков без пояснений, как их внедрять, и почему список именно такой. Апофеозом для меня стала книга “12 soft skills для 21 века”, которая является кратким изложением 12 других книг. 

С трудом верится, что все эти навыки нужны разом. Если на собеседовании я буду проверять кандидата на 15 навыков, я вообще кого-то найму? За сколько лет я разовью их сам? Эмоциональный интеллект – пару лет? Системное мышление – еще пару лет? Окей, хотя бы со скольки навыков я могу считать себя пригодным к работе в команде? А к роли лидера? В общем, "программу-минимум" я тогда не нашел.

Но как тимлид я слышу множество карьерных историй: на собеседованиях, на 1-to-1 с коллегами, просто консультируя пришедшего с вопросом – везде я узнаю истории успехов и ошибок. А в обмен я стараюсь дать структурированную и понятную обратную связь. Постепенно из этих историй и обратных связей сложился набор минимально необходимых soft skills. Они будут полезны хоть инженеру, хоть лидеру. Вообще говоря, они будут полезны не только IT-специалисту и не только в карьере.

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

Давайте разбираться

Information

Rating
Does not participate
Registered
Activity