Программирование микроконтроллеров *
Учимся программировать микроконтроллеры
Ни дня без спорта — 2: перепрограммируем китайский браслет
Root-of-Trust для IoT и другие тенденции безопасности устройств интернета вещей
Алгоритмы рандома
Про что статья
Про алгоритмы генерирующие псевдослучайные числа, которые отличаются между собой качеством результата и скоростью исполнения. Статья будет полезна тем, кто хочет получить высокопроизводительную генерацию чисел в своих программах или разработчикам софта для микроконтроллеров и старых платформ по типу ZX Spectrum или MSX.
Истории
Разработка и создание с нуля аркадного автомата на четверых игроков
В ноябре 2019 года я уволился с работы и решил посвятить несколько месяцев изучению нового навыка, которому я уже давно хотел научиться. В то время я работал веб-разработчиком. До этого я изучал разработку ПО. А ещё раньше, детстве, я постоянно экспериментировал с электроникой и программами. Поэтому я достаточно уверенно ощущал себя в создании ПО.
Однако всегда существовала эта волшебная штука под названием «железо», которую я использую ежедневно, но понятия не имею, как она на самом деле работает. Разработчику ПО (и в особенности веб-разработчику) нет необходимости разбираться в оборудовании. Так как весь код веб-разработки очень высокоуровневый, редко оказывается, что проблема нашего ПО связана с аппаратной частью.
Поэтому я никогда не занимался «железом» и не имел никаких общих знаний об электротехнике, кроме тех, которые нам давали в старшей школе. И я хотел изменить эту ситуацию. Я поставил перед собой нелепую цель, которая в то время казалась очень далёкой от моего набора знаний. А потом… я просто начал экспериментировать. Я планировал проверить, как далеко смогу зайти, прежде чем у меня иссякнет запас мотивации. Не ожидал, что достигну своей цели, но каким-то образом мне это удалось.
Вот мой результат:
Моя невероятная цель заключалась в создании с нуля аркадной игровой консоли на четырёх игроков. В качестве мозгов в ней используется микроконтроллер, в качестве дисплея — светодиодные ленты. При помощи одного джойстика и четырёх кнопок на каждого игрока, расположенных по краям стола, игроки управляют игрой, которая динамически загружается в систему с чипа памяти. Благодаря этому игровой процесс на устройстве напоминает старые добрые консоли. Только теперь нам не нужно дуть на картридж, чтобы избавиться от багов.
Обзор возможностей Qt Creator 4.12 и QBS 1.16 для программирования микроконтроллеров
Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QBS 1.14, QtC 4.11 и QBS 1.15.
Кому эта тема интересна, добро пожаловать по кат.
Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения
Всем привет! В результате перехода на удаленную работу у меня появилось больше свободного времени на разработку гексапода (+2 часа в день за счет экономии на дороге). Я наконец-то смог сделать универсальный алгоритм для построения траектории движения в реальном времени. Новая математика позволила реализовать базовые движения путем изменения всего двух параметров. Это очередной шаг к внедрению «автопилота». В этой статье я постараюсь подробно рассказать о новой математике и как это вообще работает. Будет много картинок и gif.
Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
IAR + Clion = дружба
Доброго здравия всем!
Карантин заставил меня проводить все свое время дома, в том числе и свободное время, и хотя дома есть куча дел, я умело спихнул их на сына, а сам решил наконец-то доизучать среду разработки Clion от JetBrains, тем более, что в релизе 2020.1 появилась поддержка IAR toolchain.
Все кому интересен пошаговый гайд и куча картинок велком…
Работа с SD-картой по интерфейсу SPI. Реализация на VHDL
«Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Canny или Arduino) и Raspberry PI
Итак, сегодня мы будем делать охранную систему для моей любимой ручки. Вы удивлены почему именно ручка? Секрет прост, я весьма неопытен во всяких там вопросах электроники и поэтому, когда заказывал датчик давления думал, что он будет действовать по всей площади, а оказалось, что он работает только для определенной контактной площадки. Как ни странно, но во всём доме не оказалось ничего достаточно увесистого, устойчивого и подходящего по размерам, кроме этой ручки. Ну и кроме моего пальца, но экспериментировать с ним я был не готов .
В статье я поделюсь своим опытом подключения датчика давления и доплеровского датчика движения, к микроконтроллерам. Сами контроллеры через проводной интерфейс UART подключим к GPIO Raspberry PI 3. Затем напишем на Python простенькую программку для отображения статуса охранной системы, а в конце подключим смартфон к «малине» с помощью VNC, чтобы следить за охранной системой на удалении от компьютера.
Хотите оставить Индиану Джонса не у дел? Тогда милости прошу под кат.
Использование процессорной системы Nios II без процессорного ядра Nios II
Продолжим традицию предыдущего блока и будем дальше искать необязательные части. Сегодня мы научимся обходиться без процессорного ядра Nios II. Да-да. В процессорной системе Nios II само процессорное ядро – важный, но не обязательный элемент. Мы потренируемся делать систему без него, вынося все управляющие функции на уровень центрального процессора комплекса Redd.
Простой робот на МК esp8266 c micropython
Эта статья описывает процесс апгрейда самоходной платформы на базе МК esp8266 с micropython, до простейшего робота, оснащённого сканирующим ультразвуковым датчиком препятствий, мигающим светодиодом, кнопкой «старт/стоп», а также встроенным веб-сервером, в рамках учебного проекта.
КДПВ:
Flipper Zero/One — теперь два устройства. Подготовка к Кикстартеру
Flipper — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2].
Сайт проекта: flipperzero.one
Пока мы работали над линуксовой частью флиппера, у нас в руках был почти готовый модуль на STM32, который управлял периферией, экраном, кнопками. Без линукса он умел 433MHz радио, домофонные ключи и RFID карты. Чем не готовый девайс – подумал я. Так мы решили сделать из него отдельное устройство. Теперь флипперов два — Zero и One.
Под катом я расскажу про изменения в проекте, и как мы готовимся к краудфандингу.
Ближайшие события
Отладочная плата STM32
Вступление
На рынке представлено огромное количество отладочных плат на любой цвет и вкус. Поэтому для начинающих разработчиков электроники самым быстрым способом освоения программирования микроконтроллеров является покупка готовой отладочной платы, поскольку на разработку и изготовление собственной платы необходимо затратить значительные материальные и временные ресурсы.
Автор данной статьи разработал и изготовил собственную плату.
Вашему вниманию предлагается проект отладочной платы на базе микроконтроллера STM32F107.
Данная плата является плодом труда автора, схемотехнические решения заимствованы из технической документации других аналогичных плат. Разводка платы, возможно, требует корректировки, в частности разводка микросхемы RT8201BL для Ethernet. Соединение платы с сетью по Ethernet было протестировано с использованием готового проекта.
Плата модуля контроллера является универсальным средством на базе микроконтроллера STM32F107VCT6, предназначенным для встраивания в различные системы в качестве узла управления.
Ещё раз про аппаратные ключи GPG за копейки
В февралe 2020 года на Хабре появилась увлекательная статья про преобразование программатора ST-Link v2 в аппаратный ключ шифрования. Уже тогда в комментариях появились жалобы на то, что результат не удаётся повторить, но они остались без ответа.
За прошедшее время до меня дошла пара посылок с Aliexpress и теперь, самостоятельно пройдя весь путь, я попытаюсь представить более или менее полную инструкцию с комментариями, которая поможет неспециалисту перепрошить микропроцессор в китайском клоне ST-Link v2. Постараюсь не повторять уже известное, поэтому про пайку контактов и использование GPG с аппаратным ключом смотрите в исходной статье.
Пузырьковый дисплей на ардуино
Всем привет!
В этот раз я выкладываю продолжение экспериментов с воздушно-пузырьковым дисплеем.
Тем кто не видел первую часть, могут пройти и посмотреть видео по ссылке.
В результате первого опыта выяснилось, что при минимально возможном размере пузырьков, расстояние между ними должно быть не менее 4-5 см. Иначе в жидкости, между пузырьками происходит взаимное влияние друг на друга, как в горизонтальной, так и в вертикальной плоскости.
Для устранения одной из этих проблем, я заказал акриловые перегородки, изготовленных на лазерной резке.
PCI Express в ПЛИС V-й серии Intel: основы интерфейса и особенности аппаратных ядер
Введение
Знакомый многим интерфейс PCI Express или PCIe был доступен разработчикам систем на ПЛИС уже тогда, когда он только начинал распространяться в цифровой технике. В это время существовало решение, в котором программное ядро подключалось ко внешней микросхеме физического уровня [5]. Это позволяло создавать одноканальную линию PCIe со скоростью 2,5 гигатранзакций в секунду. В дальнейшем, благодаря развитию технологий, физический уровень интерфейса перекочевал в аппаратные блоки PCIe внутри самих ПЛИС; количество возможных каналов увеличилось до 8, а в ряде новых микросхем — и до 16; вслед за современными стандартами выросли возможные скорости передачи данных.
В то же время, в русскоязычных источниках по-прежнему затруднительно найти вспомогательные материалы по работе с аппаратными ядрами современных ПЛИС, не так и много информации доступно по самому интерфейсу PCIe. Руководство к аппаратным ядрам PCI Express подразумевает, что разработчик уже ознакомился со стандартом и понимает основы передачи данных между устройством и персональным компьютером (ПК). Однако обилие информации в самом стандарте PCIe не дает сразу же разобраться в том, какие шаги необходимо предпринять, чтобы успешно передать данные от устройства в память ПК или обратно. Чтобы получить более полную картину, немалую часть сведений приходится собирать по крупицам из разных источников. Для разработчиков систем на ПЛИС фирмы Intel сложность также заключается в том, что большинство доступных материалов и статей описывают работу с аппаратными ядрами ПЛИС фирмы Xilinx.
В данной статье автор постарается рассказать о том, что необходимо знать разработчику систем на ПЛИС для работы с интерфейсом PCI Express; рассмотрит особенности работы с аппаратными ядрами PCI Express ПЛИС V-й серии фирмы Intel в варианте Avalon-ST.
Обзор отечественных микросхем, соответствующих 719 постановлению
Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20
Предполагается, что читатель уже имеет начальные знания языка C, что-то знает о Zigbee, чипе cc2530, методах его прошивания и использования, а также знаком с такими проектами, как zigbee2mqtt. Если нет — подготовьтесь или сходите почитать на https://myzigbee.ru и https://www.zigbee2mqtt.io/
Статья написана сперва подробно, но постепенно ускоряется и уже не останавливается на деталях, а описывает готовый код прошивки. Если кому-то не интересны рассуждения, то просто открывайте исходники прошивки и читайте их.
Исходный код готовой прошивки
Код и подход к разработке не претендует на идеальность. “Я не волшебник, я только учусь.”
Цель
Основная цель — разобраться, как писать прошивки под Z-Stack, давно хотел. Поэтому решил реализовать альтернативную прошивку под готовое оборудование (в качестве примера выбрано реле Sonoff BASICZBR3) и добавить возможность подключения популярного датчика температуры ds18b20.
Дополнительно хотел показать начинающим Zigbee-разработчикам пример разработки прошивки под чип TI cc2530 на Z-Stack.
Lua на STM32
Иногда хочется быстро что-то попробовать на микроконтроллере, запрограммировать маленький работающий прототип какой-то идеи. Для этих целей, как известно, хорошо подходят скриптовые языки. В этой статье я хочу рассказать, как с помощью Embox запустить интерпретатор Lua (cтандартный, не eLua) на STM32. Для демонстрации помигаем светодиодом по сети с помощью библиотеки luasocket, а также немного поработаем с http.
Вклад авторов
YuriPanchul 1850.2smart_alex 1299.4EasyLy 1200.6Indemsys 1155.0MaFrance351 1118.0iliasam 1090.6aabzel 995.0dlinyj 741.0GarryC 619.4haqreu 575.0