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

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

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

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

Я у мамы не инженер

Время на прочтение14 мин
Количество просмотров65K
intro

Я уже сбился со счёта часов, которые я потратил на то, чтобы сделать “небольшую коробочку” и вдруг я поймал себя на мысли, что я очень зауважал инженеров — людей, который умеют и могут проектировать и создавать новые вещи. В голове сразу нахлынули воспоминания об устройствах, который я разбирал в детстве (да и не только). Эти забавные ситуации, когда при откручивании последнего болтика, как чёрт из табакерки, вылетало несколько мелких пружинок и деталек, которые было совершенно невозможно упаковать обратно.

Однажды я решил сделать небольшое устройство (“Security Access Tuner” из игры Alien: Isolation) — контроллер, экран, пара элементов управления, да упаковать это всё в небольшой корпус, который планировалось напечатать на 3d принтере. Тогда я ещё и подумать не мог, сколько же времени потребуется, чтобы все эти мелочи собрались в одно целое…
Читать дальше

Как запустить Doom на УАЗ Буханке 2022

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

Прошедший 2022 год сильно повлиял на отечественных автопроизводителей. Появились антикризисные комплектации (а остальные исчезли). Произошли откаты на старые экологические нормы, вплоть до евро-2. Кто-то прогнозировал возврат к карбюраторным двигателям, чего, к счастью, не случилось. Люди в шапочках из фольги особенно рады, что из отечественных машин исчезла система ЭРА-Глонасс. Глупцы, она стала ненужной, потому что всех уже чипировали через вакцину.

Мы же продолжали пилить RusEFI - свой ЭБУ с преферансом, барышнями, открытым программным кодом и открытыми аппаратными реализациями.

Читать далее

Прошиваем AVR вручную

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

Картинка для привлечения внимания — xkcd

Представьте себе, что вы попали на необитаемый остров. И вам жизненно необходимо запрограммировать микроконтроллер. Зачем, спросите вы? Ну, допустим, чтобы починить аварийный радиомаяк, без которого шансы на спасение резко падают.

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать дальше →

Дампер картриджей для Денди/Famicom

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров23K
Восемь лет назад я уже писал статью о том, как я делал простенький дампер (устройство для чтения картриджей) для Денди/Famicom. Думаю, пора рассказать о том, как этот проект преобразился спустя эти годы вместе с ростом моих скиллов.


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

Газоразрядное табло для машины времени, или как я оказался в титрах к японской дораме

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

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

Большинство конструкций на газоразрядниках, которые мне попадались в категории «для начинающих», использовали давно снятые с производства микросхемы по типу К155ИД1 или SN74141. Также многие встреченные схемы экономили на оных, используя один дешифратор для всех ламп сразу, коммутируя аноды через оптопары.

Поставить же две ИН-12, валявшихся в ящике уже десяток лет, хотелось в свой проект CD-плеера — отображать номер трека или радиостанции. Поэтому хотелось иметь такой же модуль, как и любой другой дисплей — не сильно крупнее геометрически, чем сами лампы, подключающийся по какой-нибудь стандартной шине и не требующий от процессора никаких заморочек с обновлением динамической индикации и всего такого, да и на производящихся по сей день компонентах до кучи.

Кто же знал, чем это всё для меня обернётся!

Читать далее

Эмулятор RFID

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

Эмулятор карт EM Marine



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

Загадочное дело о Raspberry Pi в шкафу для сетевого оборудования

Время на прочтение4 мин
Количество просмотров59K
Как-то я получил от своего отца (мы вместе с ним работаем на одного клиента) сообщение с приложенной фотографией.


Сообщение от отца

Я попросил его отключить устройство, положить в безопасное место, сфотографировать со всех сторон и сделать образ SD-карты (потому что в основном я работаю удалённо). Я работал над многими проектами с Raspberry Pi и был уверен, что разберусь в назначении этого устройства.

В тот момент ещё никто не думал, что оно может быть зловредным, скорее, все думали, что это экспериментирует кто-то из сотрудников клиента.
Читать дальше →

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

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

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

Читать далее

SDR приемник GPS на микроконтроллере

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

В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных (от АЦП) выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.

Читать далее

STM32F1xx — лечимся от ардуинозависимости вместе

Время на прочтение14 мин
Количество просмотров269K
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →

Прерывания в конвейеризированных процессорах

Время на прочтение10 мин
Количество просмотров77K
Наверняка вы знаете, что такое прерывания. Возможно, даже интересовались устройством процессора. Почти наверняка вы нигде не видели внятный рассказ про то, как именно процессор обнаруживает прерывание, переходит к обработчику и, самое главное, возвращается из него именно туда, куда положено.

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

Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Читать дальше →

Нахлобучиваем домофонные ключи iButton с помощью Flipper Zero

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14]

iButton — это общее название для формата электронного ключа в форм-факторе металлической “таблетки”. Еще его называют Dallas Touch Memory. Часто его ошибочно называют “магнитным” ключом, но это неправильно, ничего магнитного в нем нет. Внутри iButton полноценный микрочип, работающий по цифровому протоколу.

В статье разберем формат ключей iButton от физического устройства до протоколов, а также трюки, которые можно с ним делать при помощи Flipper Zero.

Аппаратный ключ шифрования за 3$ — возможно ли это?

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

Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
Читать дальше →

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

Телефон на 600 квартир

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров29K
Приветствую всех!
Когда-то давно попался мне на просторах вот такой мем:


Посмотрел я тогда на всё это и забыл. А недавно, встретив его ещё раз, подумал: что, если попробовать сделать такой девайс в реальности? Как насчёт собрать такой телефон, по которому в самом деле можно будет позвонить? Именно этим-то мы сейчас и займёмся.
Читать дальше →

Как бороться с использованием ChatGPT студентами (не запрещая его прямо)

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

Студенты обожают ChatGPT. В идеале, они хотят закоротить профессора и чатгопоту напрямую, то есть посылать задачу от профессора гопоте, пересылать ответ профессору, возражения слать гопоте назад итд - пока не получится решения. Лучше всего это делать скриптом, чтобы студент вообще не был вовлечен в решение задачи и занимался своими студенческими делами, пока чатгопота и профессор разговаривают.

Как же обломать крылья этой мечте? Запрещать чатгпт бессмысленно, но как сделать так, чтобы с чатгпт стало сильно труднее чем без него? Чтобы студенты пинали его и так и сяк, но решения бы не получалось, а вот у студентов, которые решили сесть и подумать сами - решение бы получалось?

Читать далее

Linux на esp32s3

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

Вопрос о том, можно ли загрузить линукс на микроконтроллерах Espressif я
впервые услышал в 2015, в период бума esp8266. Тогда мой ответ на него
был: "нет, не это ядро и не на этом железе". Но прошло 8 лет и ответ
изменился на "да, и у меня есть рабочий пример". Дальше рассказ о том,
как это произошло.

Читать далее

OpenRPNCalc: делаем бескомпромиссный калькулятор

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

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

Но зачем?

Пишем телеграм-бота на Rust, предварительно спаяв сетевую карту

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

Что делать, если ваш микроконтроллер не умеет работать с сетью, а бота для телеграма написать хочется? Конечно же, сделать свой сетевой адаптер на логических микросхемах!

Читать далее

ESP32 тоже отчасти немножко ПЛИС? Делаем динамическую индикацию на матрице светодиодов за 0 тактов процессора

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

Пару месяцев назад в очередной раз занесло меня в Акихабару, и конечно же я не мог не заглянуть в свой любимый Akizuki Denshi.

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

Делать нечего, придётся пилить — и давайте попробуем сделать это, совершенно не занимая процессор!

Читать далее

Первые впечатления от 1921вг015, отечественного RISC-V контроллера

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

рис.1


Недавно мне в руки противоестественными путями попал интересный представитель RISC-V контроллеров производства НИИЭТ. Упакован он в пластиковый lqfp100 корпус, в котором скрывается ядро на 50 МГц, мегабайт флеш-памяти и 256 кБ оперативки. Разумеется, в наличии и стандартная периферия вроде UART-ов, SPI и USB. А вот из необычного — сигма-дельта АЦП на 16 бит. Ну и всякая неинтересная периферия вроде аппаратных модулей шифрования. Сразу оговорюсь, что тыкаю палочкой я его меньше двух недель, поэтому здесь описаны именно первые впечатления.

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

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