Как стать автором
Обновить
200.46

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

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

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

Все мои Ардуинки: часть вторая, ATtiny и STM

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

Продолжаю перебирать все мои Ардуинки и делиться опытом работы с ними.

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

Сегодня это будут довольно редкоземельные элементы — платы, не так часто встречающиеся в самоделках. Но возможно, это именно то, что вы искали для решения какой-то особенно нестандартной задачи. А я расскажу о некоторых связанных с ними граблях, по которым уже сплясал лично, чтобы вам не пришлось повторять этого дома.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+59
Комментарии35

Новости

Измеритель толщины филамента

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

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

            В продаже можно найти различные по конструкции и цене:

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

STM32 — грамотно включаемся от кнопки

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

Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных камней, и в этой статье я расскажу, как на них не попасть.

Читать далее
Всего голосов 78: ↑78 и ↓0+102
Комментарии47

CH32V307 и сколько же на самом деле FLASH в микроконтроллерах WCH

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

В течении последнего года я запустил серийные проекты на микроконтроллерах CH32V307 и CH32V203. И в том или ином виде попробовал работать почти со всеми RISC‑V ядрами от WCH. Анализ опыта работы, это отдельная история, сейчас хотел бы рассказать про структуру памяти старшей линейки WCH. В первую очередь, потому что, я, даже в сегменте англоязычных форумов, не нашел полной информации на эту тему. А небольшой объем памяти анонсируемый в даташитах, возможно многих отпугивает.

Читать далее
Всего голосов 18: ↑18 и ↓0+23
Комментарии26

Истории

Калибровка MEMS Акселерометра [Часть 2]

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

В этом тексте я написал про то какая математика скрыта за алгоритмом калибровки трёх осевого MEMS акселерометров.

Этот текст является продолжением предыдущего текста Геометрия Стенда для Калибровки MEMS Акселерометра.

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии25

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2

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

Прошло уже достаточно времени с публикации моей предыдущей статьи. За это время я значительно улучшил приложение. Миграция проекта с WPF на Avalonia UI, обновленный дизайн, работа с числами типа float, а также другие возможности появились в новой версии моего Modbus терминала.

Обо всем об этом, а также небольшие заметки о разработке читайте в продолжении статьи.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Геометрия Стенда для Калибровки MEMS Акселерометра

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

В этом тексте я решил полезную логическую задачу по стереометрии: расчет прямоугольной пирамиды.

Эта фигура очень полезна при калибровки MEMS акселерометров. Поэтому и пришлось ее решить.

Читать далее
Всего голосов 13: ↑12 и ↓1+15
Комментарии38

Стабилизируем положение потенциометра, считанное с АЦП

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров6.4K
Считать показания потенциометра для удобного аналогового управления системой, что может быть проще? Сеть завалена примерами работы с АЦП. Считали значение, вот мы и знаем положение… Но не всё так просто – эти значения всё время будут разными. Близкими, но разными. То есть, программа будет считать, что положение головки регулятора всё время дрожит.



В статье будет показано несколько методов борьбы с этими дрожаниями, начиная от самых простых (которые в подавляющем большинстве случаев достаточны), через более сложные и вплоть до алгоритма, придуманного специально для недавнего проекта. Наверняка, я уже 100500-й, кто такой алгоритм придумал, но после опроса знакомых, оказалось, что в списке тех, кто его собирается опубликовать, мой номер значительно меньше. Среди типовых он не находится. Возможно, кому-то он тоже окажется полезным.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+39
Комментарии134

UART-терминал из LCD-дисплея, PS/2 клавиатуры и любого МК

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

Совсем коротенький рассказ — о довольно бесполезной но забавной штуковине, извините :)

Как-тораз я написал интерпретатор BASIC, который можно использовать на контроллере хоть с 1кб памяти (в частности AVR / Arduino). В основном мы им пользовались через Bluetooth‑модуль с телефона (я уж рассказывал). Но у меня руки чесались сделать своеобразный «терминальчик» — ну я и сделал.

Как видите — в качестве экрана тут дисплей 4 строки по 20 символов. А клавиатура полноценная — обычная c PS/2 разъёмом. Между ними и UART‑ом воткнут контроллер (младший STM32). Вообще‑то можно было без него, реализовать общение с клавиатурой и дисплеем в том же контроллере где интерпретатор крутится — но тогда это не был бы терминал, его нельзя было бы использовать с любым другим UART‑интерфейсом.

Покажу картинки, код — и немножко расскажу про устройство. А если сами строили что‑то похожее — расскажите и вы :)

Что ж, посмотрим!
Всего голосов 20: ↑20 и ↓0+27
Комментарии14

Датчик линейного положения, работающий по принципу электронного штангенциркуля

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

Вы когда-нибудь мечтали о 500-герцовой системе датчиков линейного положения? Тогда вам повезло — для этого достаточно печатной платы, простого микроконтроллера и немного математики!

См. также полный исходный код и журнал моих исследований по этому проекту.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+74
Комментарии42

Обновление Прошивки из Make Скрипта

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

В этом тексте показано как можно обновить прошивку из-под GNU Make скрипта.

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

Вот например можно на GNU Make написать код загрузки *.bin (аря) в микроконтроллер

Легко...

Читать далее
Всего голосов 10: ↑7 и ↓3+5
Комментарии20

Принцип цифрового управления непосредственным преобразователем напряжения

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

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

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

Подразумевается, что читатель понимает: основы ТОЭ (теоретические основы электроцепей), принципы формирования ШИМ (широтно-импульсной модуляции).

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии31

Оценка токопотребления батарейных радиоканальных устройств

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+11
Комментарии22

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

Конечный Aвтомат Аппаратного I2C-Трансивера

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

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

Меня удивляет, что в оригинальном коде от вендоров микроконтроллеров программисты прошли мимо конечных автоматов при написании I2C кода внутри своих официальных uHAL. Непорядок...

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

Читать далее
Всего голосов 21: ↑16 и ↓5+14
Комментарии25

Цифровая настройка хода в часах на STM32 простым языком

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

В этой статье будет формула для расчёта значений регистров подстройки скорости хода часов в STM32 (функция RTC smooth calibration) на основе величины отклонения времени за сутки. Информации по этой теме много, но именно для компенсации нужного количества секунд в день я не нашёл понятных формул, поэтому изучил этот вопрос, поэкспериментировал с реальным микроконтроллером и написал статью.

Читать далее
Всего голосов 17: ↑17 и ↓0+20
Комментарии27

Ретроспектива: создание одних из первых автоматизированных рабочих мест

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

Продолжаю рассказ о предшественниках ПЛК, и сегодня расскажу об одних из первых в стране АРМов – автоматизированных рабочих мест и периферии для поверки датчиков.

Читать далее
Рейтинг0
Комментарии0

Старое, доброе, немного ламповое ИК управление

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

Давно вынашивал в планах написать статью на тему ИК управления. После прочтения https://habr.com/ru/companies/flipperdevices/articles/566148/ собрал необходимый материал. В этой статье я задавал вопросы разработчикам Flipper об используемых ими методах копирования и воспроизведения ИК посылок их устройством. На некоторые вопросы я так и не получил ответа, а другие по информативности были близки к описанию в стиле Ардуино.

О чем эта статья? Прежде всего о двух методах копирования и воспроизведения ИК команд управления. Поэтому я не буду останавливаться на описании протоколов передачи различных пультов ИК управления, так как они достаточно хорошо описаны. В одном из разработанных устройств управления по инфракрасному каналу (далее просто ИК), решили использовать один нечасто используемый метод считывания и генерации ИК команд управления различным оборудованием. Нельзя сказать, что это что-то совсем необычное. Такой подход используется к примеру в оборудовании Global Cash для управления по ИК.

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

В начале немного общей информации, которая и так хорошо знакома.

Инфракрасное дистанционное управление (ИК ДУ) применяется практически во всей бытовой электронной аппаратуре. Хотя в последнее время появляются системы, основанные на радиосвязи, которые возможно, в будущем станут преобладать над ИК-системами, но в настоящее время ИК управление оказалось самым надежным, и что самое важное – самым дешевым видом беспроводной односторонней связи на короткие расстояния в пределах одного помещения. Ведь прежде всего оно начало использоваться в бытовых телевизорах. Наиболее массово ИК используется и поныне. Это большой зоопарк – каждая фирма разрабатывала свои собственные протоколы и работала на разных частотах модуляции. В результате мы имеем около 2-х десятков(!) совершенно несовместимых между собою систем, из которых наиболее массово, к счастью, используются 6-7.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии3

Программирование контроллера звуком с телефона — заметки на полпути

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

С настольного компьютера или ноутбука мы прошиваем микроконтроллеры обычно через USB, да часто и с каким-нибудь программатором. А что если мы хотим прошить или сконфигурировать поделку с телефона? Некоторые телефоны имеют USB-OTG. Некоторые контроллеры умеют BlueTooth. Существуют системы поддерживающие WiFi. К сожалению всё это не носит массового характера - нужен подходящий телефон, подходящий контроллер и т.п.

Стало интересно - можно ли "пропищать" данные через динамик телефона - и уловить их микрофоном присоединённым к микроконтроллеру? В этой статье я кратенько расскажу о своих жалких попытках в этом направлении. Пока "с полпути" - потому что, предположительно, демонстрация самого принципа для Ардуино может оказаться полезнее для большинства коллег, чем конечный, узконаправленный результат - загрузчик для конкретного проца.

Был "предшествующий этап" - передача через аудиоразъём телефона, по проводу - об этом тоже вкратце расскажу и покажу (можете попробовать).

Бип-бип-бззззззз
Всего голосов 11: ↑11 и ↓0+15
Комментарии53

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

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

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

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

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

Опыты с акселерометром и гироскопом на платформе S7V30

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

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

Читать далее
Всего голосов 15: ↑14 и ↓1+20
Комментарии14
1
23 ...

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