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

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

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

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

Летающее крыло

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

Нет, я не плачу и не рыдаю
На все вопросы я открыто отвечаю
Что наша жизнь игра, и кто ж тому виной
Что я увлёкся этою игрой


Описываемые события относятся к староглиняным временам и происходили в одной пластилиновой местности, когда Arduino было еще не особо популярно, на каждом углу пучок за пятачок еще не продавалось. 3D принтер в личном пользовании в виде кубического Reprap был у очень немногих — а большинство просто не подозревали о их существовании. Ценность рассказа сопоставима с руководством по ремонту телефона с дисковым номеронабирателем — чисто археологическая. Да и задуман он был как вступление, но это вступление переросло основной рассказ и, как-то незаметно для меня, поглотило его.
Читать дальше →

Самодельный текстовый лазерный проектор

Время на прочтение8 мин
Количество просмотров73K
В этой статье я рассажу о том, как сделать достаточно простой лазерный проектор из подручных деталей.

Медленная работа SD карточек — кто виноват и что делать?

Время на прочтение6 мин
Количество просмотров127K
Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.

Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
Читать дальше →

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

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

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

Читать далее

Разгадываем ребус вторичных часов «Воронеж»

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

В предыдущей статье я затеял создание контроллера вторичных часов «Воронеж», и даже добился некоторой работоспособности. Однако так и не разгадал окончательно ребус формы и длительности передаваемого сигнала. На ту публикацию откликнулось большое количество людей, и предложило свою помощь. Кто-то помогал советом, кто-то снял живые осциллограммы с различных первичных часов, кто просто помог добрым словом и оказал поддержку. В результате понял, что нельзя бросить это устройство в стадии недоделки, потому что за ним следит такое количество людей. Поэтому было принято волевое решение довести всё до конца, при этом с максимальным качеством, доступным в домашних условиях. Главный девиз этой разработки был:
Делай хорошо — плохо само получится.
В результате на вторую часть я потратил в полтора-два раза больше времени, чем на первую: причёсывал код, занимался механикой, чертил детали корпуса, печатал их на принтере, точил на токарном станке, а главное, страдал от перфекционизма. Как обычно бывает, механическая часть съела чуть ли не 40% всего времени. В общем, поехали, будет интересно: от идеи до законченного устройства.
Читать дальше →

Сравниваем микроконтроллеры до 50 рублей: ARM жаждет крови

Время на прочтение3 мин
Количество просмотров128K
Года так 2 назад на одном из форумов по радиоэлектронике я попросил посоветовать, какой микроконтроллер изучать — и больше всего голосов было в поддержку AVR — популярных, 8-и битных МК, под которые легко писать, программатор можно сделать одной рукой (из проводов и резисторов)… Будущее было ясным и безоблачным, пока в 2009-м году не пошли новости про новые микроконтроллеры на ядре ARM Cortex-M0, которые должны были стоить меньше 1$ (во что в принципе никто не верил) и перекрыть кислород 8-и битным микроконтроллерам.

Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
Читать дальше →

Teensy 4: Arduino на скорости 600 МГц (почувствуй себя властелином вселенной)

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


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

Оказывается, последняя версия Teensy 4 сделана на основе Cortex M7 и работает на частоте 600 МГц, причём ядро там довольно продвинутое и позволяет исполнять две инструкции за такт, использует предсказание ветвлений и аппаратную обработку 64-битных чисел с плавающей точкой, а также много чего ещё, в том числе имеет на борту много RAM, Flash и PSRAM памяти и т. д.

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

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

Робот-не-пылесос с ножом или как мы делали смарт-ножницы на колесах

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

Эта история началась в октябре 2019 года. К нам пришел владелец  крупного производства натяжных потолков и сказал: «Хочу максимально оптимизировать производство, избежать ошибок, вызванных человеческим фактором, повысить производительность и точность, не теряя качества готовой продукции». Подумав и оценив свои силы, мы решили попробовать создать робота-раскройщика. Мы - это тимлид, 3 программиста, инженер-конструктор и безопасник

Читать далее

Пример применения кода Рида-Cоломона

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

Пример применения кода Рида-Cоломона

О чём это всё?

Всем привет! Наконец дошли руки описать то как я проверял на практике знания, полученные в ходе написания трёх статей об избыточном кодировании по методу Рида-Соломона (раздватри)

Читать далее

Запускаем камеру от телефона, или что делать, когда ничего не получается?

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


Лет восемь назад работал я в одном… а в прочем, не важно где. Делали мы там всякие разные интересные вещи. В том числе занимались системами технического зрения для роботов. Роботы были немного маленькие. И если привод для них маленький сделать не было для нас особой проблемой, то вот сделать миниатюрную цифровую камеру, которая не была бы размером с половину робота, было трудно (когда же мы наконец похороним PAL в таких разработках и везде будет цифра?). Если вам любопытно узнать, чем же всё закончилось, прошу под кат!

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

STM32 и USB-HID — это просто

Время на прочтение14 мин
Количество просмотров385K
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать

Вытаскиваем ПО из запароленного микроконтроллера Renesas M16C

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


Есть у меня знакомый, который занимается ремонтом автомобильного железа. Он как-то принес мне микроконтроллер, выпаянный из блока управления автономного отопителя. Сказал, что его программатор это не берет, а ему хотелось бы иметь возможность переливать прошивки туда-сюда, т.к. блоков много, в железе они часто одинаковые, а вот агрегаты, которыми они управляют отличаются. И вроде и блок есть взамен неисправного, но ПО разное и заменить просто так нельзя. Так как задачка была интересной, решил покопаться. Если тема интересна и вам, прошу под кат…
Читать дальше →

Наследники перфокарт в мире электронных ключей

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров15K
Приветствую всех!
С появлением электронных замков было создано огромное количество типов ключей для них, от совсем экзотических до прижившихся и используемых повсеместно и сейчас.
И если магнитные экземпляры всё же были редкостью, то вот предмет сегодняшнего обзора, думаю, успели застать многие из вас.



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

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

Микроконтроллеры по 5 рублей. Программируем микросхемы PADAUK

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

Впервые известие о том, что фирма PADAUK Tech продаёт микроконтроллеры по три цента появилось в 2018 году. Эта новость вызвала интерес и обсуждение на форумах, а затем благополучно была забыта (по крайней мере в русскоязычном комьюнити).

В статье расскажу о своём опыте освоения микроконтроллеров PADAUK. Кратко рассмотрим особенности архитектуры, средствах разработки и отладки, посмотрим что нужно учесть перед тем как использовать эти микросхемы в своих проектах. Протестируем микроконтроллер PFC161 на отладочной плате.

Читать далее

Оптимизация кода: процессор

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров118K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

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

ARM — это сложно…?

Время на прочтение3 мин
Количество просмотров105K
После моей недавней статьи на хабре про рвущие все по цене армы было высказано много мнений, что ARM-у нужна 4-6-слойная плата, ну уж 2 то как минимум, и куча обвязки.

Я решил попробовать доказать, что это далеко от истины, и сделал платку, проще которой трудно: 1 сторонняя, 1 обязательный конденсатор (до стабилизатора не обязательно), 1 резистор, один стабилизатор 3.3V, и наконец младший STM32: STM32F100C4T6B — 16кб флеш, 4кб SRAM, 48 ног, Cortex-M3(!!!) с DMA, дебагом на лету, 32*32+32->32 за 1 такт и всеми прочими радостями за 28 рублей.
Читать дальше →

Пол — это лава: разработка прототипа интерактивной светодиодной игровой платформы

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

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

Читать далее

Все мои Ардуинки: часть первая, восьмибитные на ATmega

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

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

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

Название является отсылкой к мыльной опере «Все мои детальки» из Футурамы. Ведь разных видов Arduino настолько много, что намечается целый сериал. Впрочем, не буду пытаться объять необъятное и перечислять всю сотню. Вместо этого сосредоточусь на тех, которыми обладаю или хотя бы подержал в руках. Приступаем!
Читать дальше →

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

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

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

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

Читать далее

Разработка флешки с функцией самоуничтожения

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

Ведь всем нам известно, что лучший способ сохранить данные в безопасности – это их уничтожить, не так ли?

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

Мой замысел – создать USB-накопитель, который косметически и функционально будет полностью идентичен типичной флешке, за одним отличием – при подключении стандартным образом он не будет показывать никаких данных.

А что разумный человек точно не станет делать, прежде чем подключать обычную флешку? Лизать пальцы!

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

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