Обновить
222.46

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

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

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

Детектирование движения в видеопотоке на FPGA

Время на прочтение13 мин
Охват и читатели27K

Предисловие


Меня давно интересовала тема обработки видео, вот только на отладочных платках 7-х и 9-х ARM-ов это получалось очень медленно и от этого становилось не интересно.

В настоящее время полным-полно мощного многоядерного железа и создано много библиотек для работы с видео, но мой выбор пал на ПЛИС.
Читать дальше →

Оптимизация кода: память

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели97K
Большинство программистов представляют вычислительную систему как процессор, который выполняет инструкции, и память, которая хранит инструкции и данные для процессора. В этой простой модели память представляется линейным массивом байтов и процессор может обратиться к любому месту в памяти за константное время. Хотя это эффективная модель для большинства ситуаций, она не отражает того, как в действительности работают современные системы.

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

image

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

Странное поведение компании STmicroelectronics

Время на прочтение2 мин
Охват и читатели96K
Наша компания успешно использовала некоторое время чипы серии DSM компании STmicroelectronicsDSM2150F5V. Это микросхема в корпусе TQFP80, которая предназначена для совместной работы вместе с сигнальными процессорами DSP Blackfin компании Analog Devices. Мы эту микросхемку именно так и использовали. В составе DSM2150F5V находятся сразу и FLASH-память для программы, откуда может загрузиться DSP, и программируемая логика, которую можно использовать для каких-то дополнительных функций. Как написано в даташите (который найти в Интернете становится все труднее и труднее, об этом далее), DSM2150F5V специально предназначена для упрощения подключения памяти, внешней логики, портов ввода/вывода к DSP-процессорам Analog Devices семейств ADSP-218x, 219x, 2106x, 2116x, 2153x и TS101. Все в одном, удобная микросхема.

image

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

Перепрограммируем заводской Zigbee датчик протечки от компании Tuya

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

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

Читать далее

Апгрейд по реверс-инженерски: хакаем прошивку кнопочного телефона и пишем для него программы

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5K

Осторожно: в данной серии статей я рассказываю о реверс-инжиниринге и хакинге простых кнопочных звонилок. Цель простая: расширить скудный функционал телефонов ценой до 1 000 рублей и сделать их привлекательной платформой для самых разных гиков. Если вам интересно узнать, как происходит процесс взлома и изучения прошивок, а также написания новых программ для кнопочников — жду вас под катом!

Читать далее

Все мои детальки: переход на отечественные микроконтроллеры

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

 Привет, читатель!

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

Программирование микроконтроллеров сейчас для меня больше как хобби и научный интерес, которому уделяю свободное от работы время. На сегодняшний день 8-ми битные контроллеры использую в небольших роботах, для опроса различных датчиков или вывода информации. Поэтому выбирал для первых экспериментов простой и понятный микроконтроллер, совместимый или подобный чипам AVR. Для тех, кому интересен этот эксперимент — прошу под кат.

Читать далее

Запускаем Intel 87C51 — первый крупносерийный микроконтроллер (1980)

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

  Мы принимаем как должное удобства современных микроконтроллеров - все ключевые компоненты интегрированы в один корпус: флэш-память/EEPROM, SRAM, само процессорное ядро, PLL, ADC/DAC, PWM, последовательные порты и многое другое.

  Но так было не всегда. Первым монолитным микроконтроллером был Intel 8048 (MCS-48) выпущенный в 1976 по n-МОП технологии. Не планировалось что у него будет длинный жизненный цикл и уже через 4 года в 1980 на смену ему пришел Intel 8051 (MCS-51), завоевавший мир. Не планировалось что у него будет длинный жизненный цикл и уже через 4 года в 1980 на смену ему пришел Intel 8051 (MCS-51), завоевавший мир. Он имел на борту 4КиБ однократно-программируемой памяти, 128 байт SRAM, GPIO, последовательные порт и, собственно, 8-битное процессорное ядро. Intel 87C51FC был вариантом на базе УФ-стираемой EPROM памяти (объемом 32КиБ), C-версия - на КМОП процессе, объем памяти увеличен до 256 байт.

Пару недель назад ко мне в руки случайно попал D87C51FC-20 - и я решил его запустить, чтобы прочувствовать проверенные временем технологии. Сразу отмечу - не стоит тут искать практической пользы, это скорее экскурс в историю на 44 года назад...

Читать далее

Разработка hexapod с нуля (часть 12) — новое ядро передвижения

Время на прочтение11 мин
Охват и читатели11K

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

Также в гексаподе появилась стабилизация тела относительно горизонта на базе MPU6050. Прошивка сама компенсирует углы наклона во время движения — в будущем это очень пригодится, когда я буду реализовывать адаптацию к неровностям. В этом направлении уже ведутся разработки (датчики касания на базе тензорезисторов), настало время для следующего шага.

В этой статье расскажу, насколько простая может быть математика ядра передвижения гексапода и какие красивые движения можно выполнять с помощью неё. Разработка продолжается, и я переписал около 80% математики. Это позволило выкинуть явное указание координат точек назначения во время движения — траектории теперь строятся в реальном времени. Все технические подробности в статье. Как всегда, вас ждёт фото и видео.
Читать дальше →

Хакаем CAN шину авто. VAG диагностический бортовой компьютер

Время на прочтение5 мин
Охват и читатели44K

С огромным увлечением исследую протоколы CAN шины и разрабатываю устройства взаимодействующие с автомобилем. У меня уже есть голосовое управление центральным замком, виртуальная панель приборов и даже мобильное приложение для моей Skoda Octavia A5.

Теперь я решил разработать диагностический бортовой компьютер для автомобилей группы VAG (VW, Audi, Skoda, Seat). Моими техническими требованиями было: OLED дисплей, лёгкая установка и подключение, множество диагностических параметров. В качестве компонентной базы выбрал:
Читать дальше →

Разбираемся с работой часовых сетей в лабораторных условиях

Время на прочтение8 мин
Охват и читатели23K

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

Заметки обо всем. Простые и опасные источники питания

Время на прочтение11 мин
Охват и читатели70K


О чем эта статья


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

Прошу желающих и интересующихся читать, критиковать, уточнять и дополнять на почту shiotiny@yandex.ru или на мой сайт в раздел «Контакты».

Вступление


Не так давно один мой знакомый влез пальцами в некую схему, которую собирался починить (проводок отвалился — так что просто припаять его надо было на место). И его ударило током. Не сильно ударило, но ему хватило, чтобы удивиться: «как так — тут микроконтроллер стоит, что тут может стукнуть? Он же от 5 вольт питается!».

Его удивление быстро разъяснилось: схема оказалась с бестрансформаторным питанием и без гальванической развязки от сети.

Далее последовали вопросы уже в мою сторону. Сводились они к двум вещам: «А чё? Так можно делать?!» и «А как оно работает?».

Хотя я и не считаю себя экспертом в электронике, но делать подобные блоки питания мне приходилось. Так что пришлось взять ручку и листок и объяснить как оно работает. Благо это совсем не сложно.

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

Как подключить термопринтер к микроконтроллеру

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

Тем не менее, подробного описания работы с такими железками я нигде не встречал.



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

Как я делаю дрон из Raspberry Pi и ESP32 (или мои первые шаги в робототехнике)

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

Всем привет, меня зовут Антон, и как вы могли уже догадаться из названия, решил я рассказать о своих попытках вкатиться в робототехнику, а в частности о своем дроне из Raspberry Pi и ESP32.

Читать далее

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

Делаем устройство для мониторинга концентрации CO₂

Время на прочтение8 мин
Охват и читатели28K

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

«Умная» детская коляска «Максимка»

Время на прочтение12 мин
Охват и читатели19K
Во время прогулки с ребенком в коляске мозг немного освобождается от ежедневных забот и начинает мыслить творчески. Так, в одной из прогулок, и родилась идея умной детской коляски, которая может предоставить родителям некоторую информацию, в какой-то мере обеспечить безопасность передвижения по улицам, сделать коляску выделяемой из множества других.
Как у меня обычно бывает, когда приходит какая-то идея, то она обдумывается, а потом (Остапа начинает нести) она обрастает дополнительными функциями о которых изначально не задумывался. Эти мысли зажигают страсть творчества и начинается процесс.

image

Итак, все началось с того, что во время прогулки необходимо было видеть текущее время, чтобы знать время прогулки…

Схемотехника и алгоритмы световых мечей: вызовы и решения

Время на прочтение13 мин
Охват и читатели22K

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

На этом интересе вырос целый рынок. Есть компании, которые производят световые мечи целиком. Есть те, кто специализируется только на отдельных компонентах: рукоятях, платах, светодиодных модулях и прочей электронике.

Привет, на связи Крэйл из команды умных устройств Яндекса. Но сегодня я расскажу не о Станциях, а о своём необычном хобби. Однажды ко мне обратились производители компонентов с задачей разработать электронику для кастомных световых мечей. Проект оказался ярким во всех смыслах. А в статье я расскажу о том, какие были условия и как я справлялся с поставленными задачами.

Читать далее

Embedded Linux для начинающих — Часть 1

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

Однажды по работе мне прилетела задача по сборке и запуску Linux на одноплатном ПК. Тогда я, будучи разработчиком ПО для микроконтроллеров, встал в небольшой ступор — задачка явно не решалась установкой IDE и нажатием в ней кнопки «Собрать проект». Гугл помог узнать о том, что существует некий Buildroot. В материалах по теме всё выглядело довольно просто: скачай, настрой, дерни пару команд, загрузи результат на одноплатник — и можно запускать! Получается, процесс не многим сложнее установки дистрибутива Linux или Windows на обычный ПК? Конечно же, нет. Ведь если у тебя в руках кастомный одноплатник неизвестного китайского бренда, а не BeagleBone или Raspberry Pi, то зарыться в Buildroot придётся с головой...

Читать далее

Разработка больших цифровых часов на светодиодной ленте

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

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

Читать далее

Мурмулятор — ультрабюджетный микрокомпьютер

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

Как я познакомился с Мурмулятором? Я искал какой-то недорогой одноплатный компьютер для запуска эмуляторов ретро-компов.Чем меня не устраивало использование эмуляторов на "настоящем" компьютере? Ничем. Просто хотелось отдельное устройство. Я рассматривал вариант покупки старого ноута специально под эту задачу, потом смотрел на Raspberry Pi 400, Orange Pi и на прочие одноплатники. В процессе поисков я наткнулся на видео самостоятельной сборки оригинального одноплатника с бюджетом в $5. Понятно, что впоследствии я в эту сумму и близко не вложился, но данное изделие меня всё-таки зацепило. Вот так у меня и появился первый ZX Murmulator.

Читать далее

Скибиди-бипер — асинхронная полифоническая однобитная музыка на ESP32 без ЦАП

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

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

Однако же за это время PIS-OS прирос кучей всего, навроде поддержки ещё одного типа экранов, системы меню, а также и функцией будильника — посему понадобились и более мелодичные рингтоны, чем просто пиликание одним тоном.

В процессе выяснилось, что пьезоэлемент был припаян к той ноге МК, на которой ЦАП отсутствует. Впрочем, если бы я хотел будильник, который звучит как mp3 — просто пользовался бы мобильником, так что самое время вспоминать наследие демосцены и делать самый настоящий однобитный драйвер звука!

Пошумим же!

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