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

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

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

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

Солнечный коллектор для умеренного климата

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

Данная статья планируется в двух частях. Первая часть — программирование и сборка контроллера, вторая часть — сборка и тестирование системы в целом. Понятно, что пасмурный февраль за окном не позволит проверить основной летний режим, и вообще не располагает к работе на бане (в смысле на крыше), но испытать сам контроллер с некоторой имитацией и допусками всё‑же можно. Для этого у нас есть холодильник и кастрюлька с кипятком. Но будем последовательными.

Представьте себе летний день. Вы смотрите в небо и не видите сферу Дайсона. Наше солнце щедро раздает свою энергию направо и налево (а ещё и вверх и вниз). Нерационально, надо собрать хоть немного. Пока ваш сосед поднимает на опоры огромную бочку, стоически заполняет её из шланга, также гордо сливает цветущую водорослями жидкость каждую осень — вы решили подружиться с солнцем ещё ближе и технологичней. Сегодня поговорим о разработке «переводчика» с солнечного на человеческий — контроллера для солнечного коллектора. Это устройство будет поддерживать оптимальную температуру воды для банного душа, используя солнечную энергию.

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

Изначальными причинами были только хорошо аргументированные «лень ходить из бани в дом, чтобы помыться», «не хочу бочку выше головы», «хочу хороший душ в бане» и т. д. Чтобы читатели были в курсе — баня мобильная, режим работы — финская парная, но возможно поставить душевую кабину в предбаннике. Расстояние до дома метров 15, прокладывать дополнительную сеть ГВС экономически оказывается не выгодным.

Читать далее

Включаем функции сбора статистики в ESP32-arduino для PlatformIO

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

При использовании arduino framework в PlatformIO нет возможности конфигурирования esp32 arduino core, больша́я часть функций по умолчанию отключена, а для изменения конфигурации предлагается вручную пересобирать SDK. Давайте пройдем этот квест.

Речь пойдет о функциях FreeRTOS vTaskGetRunTimeStats / vTaskList, но таким же образом можно изменить и другие опции sdkconfig.

Читать далее

Подключить педали экспрессии к компьютеру за полчаса

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

Эта статья — сжатый туториал на тему подключения педалей экспрессии к компьютеру. От читателя не требуется специальных навыков в области электроники, но умение паять желательно. На минималистичное повторение подключения при наличии всех узлов и материалов действительно достаточно полчаса (автор проверил с секундомером и уложился в 10 минут). С другой стороны, верхнего предела нет: потенциал по обработке сигнала с педалей (кривые, лимиты) при этом ограничивается разве что фантазией, средствами языка Python и быстродействием контроллера.

Читать далее

Мини обзор контроллеров от Artery (AT32)

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

В этой статье я хочу поделиться своим опытом знакомства с микроконтроллерами компании Artery Technology, которые представляют собой одну из альтернатив STM. Рассмотрим, какие модели микроконтроллеров и макетных плат доступны для покупки, скачаем ПО и библиотеки от производителя и сравним их с привычным STM32. Цель статьи — на примере своего опыта показать, что из себя представляют микроконтроллеры Artery, какие у них есть приятные и сомнительные стороны, и что нового они могут предложить. Надеюсь, этот материал станет полезным ориентиром в выборе компонентов для ваших разработок.

Читать далее

Настройка ToolChain-нa для Разработки на Микроконтроллерах YTM32x

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

Абсолютно все микроконтроллеры программируются одинаково, если собирать код из make файлов.

Настало время освоить очередное семейство ARM-совместимых микроконтроллеров. За плечами уже AVR, MSP430x, LPC21x, STM32x, MDR32x, ESP32x, SPC58x, CC26x2, NRF53x, AT32Fx. Теперь вот YTM32x от компании YUN TU (Suzhou YTM Semiconductor Co Ltd).

С какой же стороны следует подходить к микроконтроллерам YTM32x?
Давайте разбираться...

Читать далее

Создание CAN-концентратора на базе esp8266

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

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

Читать далее

Пора ли менять DCS на универсальную систему управления?

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

Что такое универсальная система управления (UCS), и действительно ли она способна заменить распределённые системы управления (DCS) в будущих задачах по управлению технологическими процессами? Каковы основные преимущества UCS?

Читать далее

STM32F4xx + DCMI + USB Custom (CDC + UVC)

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

В этой публикации рассмотрено использование микроконтроллера STM32F4xx для создания устройства с поддержкой DCMI (Digital Camera Interface), USB custom CDC+UVC (Communication Device Class + USB Video Class). Показано, как настроить и интегрировать эти функции с использованием STM32CubeMX и STM32CubeIDE, а также предоставлена ссылка на проект.

Результаты:

Продемонстрирована успешная работа устройства, которое может передавать изображения и видео через USB, а также использовать виртуальный COM-порт для обмена данными с компьютером.

далее

Ода структурам на примере работы с блоком питания Fnirsi DPS 150

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.6K
В предыдущих двух статьях цикла, мы сначала научились разбирать протокол для управления блоком питания FNIRSI DPS150, а затем – изучили все основные команды для работы с ним. Теперь с одной стороны, было бы полезно показать готовую программу для работы с этим блоком питания, но с другой… А уровень ли это Хабра? Ну программа, ну для управления железкой… Да мы, системные программисты, по три библиотеки в день пишем на основе готовых команд… Нет! Для уровня Хабра в статье должна быть какая-то изюминка!

Поэтому я решил при разработке функционала, подробно рассказать про важность перехода от структур к «сырым» данным и обратно, от «сырых» данных к структурам. А чтобы было интереснее, сделаю это не только на языках C/C++, но ещё и на Питоне.

Кому интересно, приступаем!


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

Cyfral Intel. Перепрошиваем «говорящий» домофон

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.8K
Приветствую всех!
Давным-давно, когда ещё не перевелись оптические и магнитные ключи, некоторые компании разрабатывали домофоны с какими-то дополнительными функциями: охранная сигнализация, диспетчеризация, релейные входы или выходы и тому подобные возможности. Можно сказать, что это прямой предок нынешних «умных» домофонов.

У меня давно уже лежал такой девайс, и я всё думал, что бы такого интересного про него рассказать. И вот, увидев пост товарища zatim про звонок (и немало им вдохновившись), я вдруг догадался: да это же почти что более навороченный преемник того самого девайса! А раз так, то как насчёт препарировать и его?


Итак, в сегодняшней статье поговорим про устройство и работу таких домофонов, их адовый UX, кодовые панели и ещё много про что. Заодно узнаем, как он говорит и можно ли загрузить в него свои собственные звуки. Как водится, будет много интересного.
Читать дальше →

Использование OpenOCD для установки/снятия запрета чтения памяти CH32V20x

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

Запретить чтение памяти МК можно из кода программы, но для повторного программирования придется снять запрет. И все бы ничего, но под Linux, для микроконтроллеров WCH, нет решения «из коробки» для разблокировки памяти. Для преодоления этого неудобства появилось решение — расширить возможности скрипта OpenOCD для работы с МК.

Читать далее

Исследуем «вредоносную» флешку RJ45

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

Обратная разработка аппаратного обеспечения бывает очень сложна — но иногда для неё может потребоваться только уютное кресло и Google Translate.

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

Недавно юный предприниматель взбаламутил соцсети, заявив, что приобретённый им в Китае девайс для подключения Ethernet-to-USB сразу был начинён вредоносом, который «ускользал от виртуальных машин», «считывал клавиатурный ввод» и «использовал характерные русскоязычные элементы».

Считайте, что я этого не говорил.

Читать далее

Язык Crystal на микроконтроллерах

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

Язык Crystal каждый раз удивляет меня. Я думал что язык с синтаксисом Руби не может быть быстрым как Си. Я думал что учитывая что его авторы сидят на Маке или Линуксе его никогда не портируют на винду. Я думал что не справятся с многопоточностью учитывая насколько это усложняет шедулер. И уж совершенно точно я был уверен что портировать его на микроконтроллеры нереальная задача - большой рантайм, ориентированная на GC стдлиба.

Сейчас я покажу как можно писать для микроконтроллеров на Crystal.

Читать далее

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

Портирование приложения под RISC-V в прямом эфире и не только: 12 лекций по разработке под открытую архитектуру

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

Уже второй год мы проводим бесплатную Зимнюю школу по программированию для RISC-V. В этом году она стала масштабнее, ведь и интерес к открытой процессорной архитектуре значительно возрос. Онлайн-лекторий, доступный каждому, продлится до конца января: вы сможете выбрать интересующий вас доклад и послушать его в «прямом эфире» или посмотреть в записи. Анализ производительности, примеры оптимизации программ, особенности разработки под GPU — актуальными знаниями поделятся эксперты из YADRO и преподаватели ведущих технических вузов России и Беларуси. 

Читать далее

Очень самодельная сенсорная система для инфракрасного счётчика людей

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

Два моих хороших товарища потратили несколько лет на разработку адаптивной автоматической системы управления. Управления эвакуацией людей из здания. При пожаре. Слово «адаптивная» здесь означает, что система должна уметь сама приспосабливаться к меняющейся ситуации.

Что же тут необычного? Мало ли тех, кто создаёт автоматические системы профессионально. За хорошую зарплату. Согласно словарю, профессионал — это тот, кто за работу получает деньги. Но тут — особый случай. Мои товарищи системой занимаются в свободное время, не получая ни рубля.

Почему они это делают? Из сочувствия к гибнущим на пожарах людям? Конечно. Но... бесплатно работать в течение нескольких лет... Всё ясно: любители. Не подумайте, что это означает некомпетентность. Мои товарищи компетентны. Ещё как! Нет, это означает, что они влюблены в задачу. Хотя временами ненавидят её. В любви это бывает: задача трудная.

Не знаю, хорошо это или плохо, но любительство — заразительно. Однажды, «эти двое» мне говорят: «Как здорово было бы, если бы система знала, как люди прямо сейчас распределены по зданию. Сколько их находится на каждом этаже. Эх, да чего там! Общее количество людей в здании знать — и то было бы полезно.»

Я, не задумываясь даже, ответствую им: «Подумаешь, проблема какая! Надо лишь расставить кое‑где инфракрасные счётчики людей. Вроде тех, что установлены на входах в магазины. Счётчик замечает человека, когда тот пересекает невидимый инфракрасноый луч. Если у счётчика два параллельных луча, один рядом с другим, то он может „сообразить“, входит человек или выходит. Счётчики должны быть связаны в сеть, чтобы сеть суммировала людей по всем входам и выходам. Это же просто.»

Читать далее

Небольшая переделка одного устройства

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

Понадобился мне на самолете цифровой компас, какое-то подобие привычному КИ-13.
Чтобы можно было определить направление на истинный север.

Читать далее

Запускаем советский процессор из журнала «Радио» с помощью Arduino

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

Привет! Меня зовут Илья Мамай, я инженер-программист в группе разработки операционных систем YADRO. В этой статье я хочу поделиться опытом некромантии сборки советского компьютера по мотивам «Микро-80», схемы которого были опубликованы в журнале «Радио». Но собирать я буду не по этим схемам. Используя их как опору и источник вдохновения, я начну с запуска процессора КР580ВМ80А (советского клона Intel 8080), определения признаков жизни и продолжу постепенным наращиванием функционала и возможностей системы. Здесь мы займемся и радиотехникой, и DIY, и программированием как самого процессора, так и современных микроконтроллеров. Но перед этим поделюсь историей, как я, будучи студентом 4 курса, дошел до этого…

Читать далее

Как взломать Harley Davidson. Часть 2

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

В прошлой части дизассемблировали код прошивки ECM последнего поколения мотоциклов в Ghidra, подправили его и запустили на тестовой плате Aurix TC275 Lite Kit, получили возможность обмениваться с ним сообщениями CAN и отлаживать его в winIDEA. Теперь настало время посмотреть, что же там интересного.

Читать далее

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 4: переход на Си и Таймеры

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

Макетная плата GD32VF103


Часть 1. Введение


Часть 2. Память и UART


Часть 3. Прерывания


Часть 4. Си и таймеры


Часть 5. DMA


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

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

Преимущества Edge AI (из Отчёта  о  технологиях EDGE AI)

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

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

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

Читать далее

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