Все потоки
Поиск
Написать публикацию
Обновить
162.17

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

KC868-AG Pro: Zigbee координатор (Tasmota и SLS)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6K


В прошлой статье я дал общий обзор контроллера KC868-AG Pro, в этой статье мы разберём вопросы использования AG Pro в качестве Zigbee координатора при помощи двух популярных прошивок Tasmota и SLS.

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

Непростое zigbee реле Modkam на 4 канала

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.5K
Приветствую всех читателей Habr. Сегодня хочу поделиться с вами проектом zigbee smart реле. Это 4-х канальное реле (4 solid-state relay) в одномодульном корпусе для крепления на DIN-рейке. Данный проект задумывался для управления электротермическими сервоприводами, но без проблем может быть использован и для управления освещением, вытяжными вентиляторами, любыми другими нагрузками до 2А.

Почему это реле выше упомянуто как smart? У него есть несколько особенностей которые его отличают от других реле.


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

Красавица из Питера приехала в Silicon Valley и научилась паять — и вы можете это тоже

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров13K

Мария закончила Санкт-Петербургский государственный университет аэрокосмического приборостроения, после чего приехала в Силиконовую Долину, где сейчас работает программисткой встроенных систем в крупной электронной компании. И представляете - Мария до прошлого воскресенья не умела паять! Она зашла в клуб хакеров Hacker Dojo, где я как-раз заканчивал Verilog Meetup - и пока я собирал FPGA платы, она забрела в мастерскую в соседней комнате, где один из местных крутых пайщиков научил ее припаять ее первый в жизни пин. Видели бы вы счастье в ее глазах, когда она вбежала в комнату и стала показывать всем пин! А потом напаяла целый хедер пинов, спаяла микрофон INMP441 и I2S аудио-интерфейс, с мостиками припоя, возбужденно показывая, какие красивые и аккуратные получаются контакты, не пузырьками, а правильно обволакивающими пин стекшими конусами припоя!

Короче, мы это все продолжим в следующее воскресенье. Причем по заявкам радиослушателей, подключим всех онлайн через зум, по линку  https://bit.ly/yuri-panchul-zoom .

Я уже описал мероприятие в предыдущей заметке "Паяльник как инструмент опрощения и для атмосферы общения". В этой заметке я опишу в основном что нужно для участвующих через зум. Им нужно купить паяльник, и еще несколько вещей, а также выучить пять движений в видео ниже:

Читать далее

Информатор для стиральной машины

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.3K

Когда увлекаюсь работой, забываю обо всём, есть такое. Но бытовые проблемы никуда не исчезают и дают о себе знать. Лет десять назад осознал, что в век интернета уже надо что-то делать с тем, что я постоянно забываю вытащить бельё из стиральной машины. Приспособил к ней систему уведомления. Всё было хорошо, но век гаджетов не долог – нужно было обновить решение, что я и сделал с помощью ESP32 и небольшой программы на Rust. Интересующимся добро пожаловать под кат.

Читать далее

Большая история маленького автополива

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.9K

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

Читать далее

Подборка игр с низкоуровневым программированием

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров40K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности

Крупица истины в безумном заявлении «в России нет и не может быть чипов» и что из нее следует

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров27K

Тут был диспут пару дней назад на фейсбуке с социологом Алексеем Рощиным, в котором он сделал совершенно безумное заявление "в России нет и не может быть чипов, а если что-то и есть, то оно на два поколения устарело". Понятно, что в России чипы есть, например микроконтроллер MIK32 АМУР, выпущенный в Зеленограде на основе процессорного ядра от питерской компании Syntacore. Причем если сравнивать Амур его с STM32 U0 2024 года (низкопотребляющий микроконтроллер от мирового лидера на 90 нм, 56 MHz), то нельзя сказать что российское "на два поколения устарело". У микроконтроллеров крутость не в нанометрах (чип на 3 нм все равно не выдержит рядом с горячим автомобильным двигателем), а в системных и микроархитектурных решениях (трюки для экономии динамического энергопотребления, эффективный DMA, даже AI расширения в стиле ARM Ethos-U55).

Учитывая, что Рощин - человек не безумный, я попытался понять, что он имеет в виду, и кажется понял.

Читать далее

Интеграция clang-format в Процесс Сборки

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

Есть такая тема, как автоматическое выравнивание отступов в исходных текстах программ на Си или С++. Притом для этого есть специальные утилиты. Например clang-format или GNU indent.

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

Цель данного текста- показать, как интегрировать clang-format в процесс сборки прошивки. Просто в одно касание и выровнять код, и собрать бинари.

Читать далее

Программируем микроконтроллер STM32 на Rust

Время на прочтение8 мин
Количество просмотров13K
Rust — отличный язык, но насколько он подходит для разработки встраиваемых систем? В этом посте будет подробно рассказано, как обустроить инструментарий для такой разработки. Кроме того, мы рассмотрим один удивительный аспект Rust, проявляющийся при разработке встраиваемых систем. Изучив этот пост, вы сможете приступать к собственным проектам в данной области.

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

Карманный осциллограф на микроконтроллере STC 8051

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров15K


Привет, Хабр! Габариты этой самоделки в модном корпусе из оргстекла на латунных стойках составляют всего 57x40x26 мм, и то, если учитывать выступающую ручку управления, рычажок микротумблера и разъём питания Micro USB.

Предусмотрена цифровая индикация частоты и амплитуды, а также генераторы стандартных сигналов — синусоиды и меандра. Получился неплохой карманный пробник, который выручит во многих ситуациях.
Читать дальше →

Паяльник как инструмент опрощения и для атмосферы общения

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров9.3K

Лев Толстой пахал, Петр Первый работал в токарной мастерской, а мы, труженники Силиконовой Долины, по воскресеньям паяем. Присоединяйтесь к митапу по обучению пайке, который пройдет в воскресенье 11 августа в городе Маунтин-Вью, Калифорния, в клубе хакеров Hacker Dojo. Мы начнем в 14.30, сразу после митапа по верилогу и вернем вам ощущение присутствия в Дворце Пионеров в Киеве, Волгограде или Алма-Ате, а заодно расскажем и про Verilog и FPGA, чего в Дворцах Пионеров не было.

UPD: При обсуждении поста в соцсетях спросили, нельзя ли подсоединиться удаленно. Можно по зуму, линк https://bit.ly/yuri-panchul-zoom .

Читать далее

Свой контроллер для Oculus Quest 2 на ESP32

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.7K
Стандартные контроллеры популярных VR-гарнитур имеют сильно ограниченные возможности взаимодействия с виртуальным миром и некоторые задачи управления им практически не под силу, напр. имитация руля с коробкой передач. По схожей причине в мире игр уже давно существуют кастомные контроллеры и, пожалуй, наиболее известные из них — световой пистолет для NES и гитара Guitar Hero. У VR такого разнообразия нет, и отчасти из-за того, что производители не спешат предоставлять возможность подключения стороннего оборудования. Как это исправить и сделать свой контроллер для ходьбы — под катом.
Читать дальше →

Работа SPI на MIK32 АМУР с платой ELBEAR ACE-UNO ревизии 1.0.1

Время на прочтение3 мин
Количество просмотров1.7K

Здравствуйте все! ✋

При первой же попытке подключить экран ILI9341 по SPI к MIK32 АМУР выявил пару проблем, одна касается библиотеки HAL от Микрона, а вторая касается платы ELBEAR ACE-UNO ревизии 1.0.1 от ELRON.

Для начала поясню, я использую свой Makefile и работаю в VSCode, есть возможность работать с PlatformIO но я ей не пользуюсь. Прошиваю МК через COM-порт, для этого использую бутлоадер и загрузчик от elron.tech.

Для запуска экрана я взял библиотеку которую использовал ранее для работы с МК от Миландр К1986ВК025 (ОКР «Счетчик М»), заменил внутренности функций SPI_Master_Init, SPI_SendData и т.д., взяв их из примера который находится в репозитории Микрона - HAL_SPI_Master.

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

Читать далее

Ближайшие события

Пуск I2S трансивера на Artery

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров4.5K

В этом тексте я написал про то, как самому написать System Software уровня HAL для ARM Cortex-M4 совместимого микроконтроллера.

Как отлаживать такую работу и на что обратить внимание при запуске I2S на Artery MCU.

Читать далее

Как Проинициализировать Микроконтроллер [часть 2]

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.4K

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

В этом тексте я написал как автоматически выявить правильную последовательность инициализации

Читать далее

Прошиваем программу не только в начало FLASH памяти STM32

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров8.3K

Знаете ли вы куда попадает ваша программа после того, как вы нажали кнопку RUN или DEBUG в IDE? Если да, то как изменить этот адрес или даже выйти за пределы постоянной памяти и прожигаться сразу в оперативную память? Небольшая статья, которую я сам в свое время не нашел и потратил много часов и нервов на сбор этой не хитрой информации.

Читать далее

Щупаем первый 8-битный процессор от Intel — 8008

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров16K

После того как я собрал систему на самом первом процессоре от Intel (4004), логичным, в каком-то смысле, шагом было перейти к Intel 8008. Концепция проекта та же - компилируем ассемблерный код на обычном ПК, отправляем скомпилированный бинарник на системную плату через USB, а современный микроконтроллер (stm32) эмулирует ПЗУ и ОЗУ для реального 50-летнего процессора, вставленного в DIP-сокет.

Вполне возможно собрать систему на аутентичных микросхемах, но такое решение проигрывает в удобстве использования - вместо запуска одной команды на ПК нужно будет постоянно перепрограммировать ПЗУ. Да и для меня основной интерес представляет сам процессор, а не его обвязка.

Так же как и в случае с 4004, моя плата эмулирует максимально возможный объем памяти, который нативно адресуется процессором. В данном случае, это 16Кб с некоторыми нюансами (об этом отдельно расскажу ниже).

И, конечно же, было занятно сравнить 4004 и 8008 в небольшой нишевой задачке. Да, сравнение весьма условное и какие-либо выводы по нему сделать сложно, но всё равно результаты вышли интересными.

Читать далее

Как студенты двигатель Стирлинга строили

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

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

Читать далее

Фокусы с опторазвязкой

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров33K

Нюансы оптронной развязки, борьба с её недостатками и интересный на мой взгляд костыль: как разогнать скорость копеечной опторазвязки и наполучать других бонусов. Я не силён в рекламе, поэтому на месте КДПВ будет сразу тема статьи.

Читать далее

MIK32 АМУР на плате ELBEAR ACE-UNO от ELRON, мой опыт или как три дня загружать Blink

Время на прочтение4 мин
Количество просмотров11K

Здравствуйте все! ✋

Наконец-то ко мне пришёл долгожданный MIK32 АМУР на плате ELBEAR ACE-UNO от ELRON. Нормально так мне с ним пришлось по возиться, в какой-то момент уже подумал что прислали "кирпич", оказалось просто есть кое-какие нюансы о которых я сейчас расскажу.

Микроконтроллер долгое время не хотел определяться, с начала не заработал PlatformIO, библиотека MIK32 не установилась, выскакивала ошибка. Теперь я знаю что невнимательно прочёл инструкцию, но тогда не смог установить. В инструкции обратите внимание на ссылки wiki.mik32.ru и сделайте всё в точности как там описано, не спешите (:

Потом я установил MikronIDE, но OpenOCD писал ошибку, мол к JTAG ничего не подключено. Точнее ошибку сначала выдавал Uploader Микрона, а он в свою очередь обращался к OpenOCD.

Ошибка сначала выглядела так.

Читать далее

Вклад авторов