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

Пользователь

Отправить сообщение

Тетрис на ATtiny10

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

Решив использовать последние дни отпуска для приведения имеющихся у меня запасов электронных компанентов к некоторому подобию порядка я наткнулся на неизвестную михросхему SOT-23-6 с еле читаемой маркировкой.

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

Конструкторы, деструкторы, операторы — частые практики при программировании на C++

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

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

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

Logger C++

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

Этот проект представляет собой простую и гибкую библиотеку для логирования на C++. Библиотека поддерживает разные уровни логирования, форматирование сообщений и возможность записи логов в разные потоки.

Читать далее)
Всего голосов 11: ↑8 и ↓3+7
Комментарии23

Зачем Программисту Микроконтроллеров Диофантовы Уравнения

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

Школьные уроки математика не прошли даром.

Вот, настал день, когда впервые пришлось решить на работе Диофантовое уравнение.

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

Зачем Программисту Микроконтроллеров Численные Методы?

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

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

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

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

Читать далее
Всего голосов 21: ↑19 и ↓2+20
Комментарии33

Зачем Программисту Микроконтроллеров Математическая Статистика? (или так ли хороши UWB трансиверы?)

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

Настал день, когда мне для работы программистом микроконтроллеров наконец пригодилась математическая статистика из ВУЗ(овского) курса по теории вероятностей.

Есть очень интересная технология для автоматического радиоизмерения расстояния. Технология основана на UWB трансиверах. Позволяет измерять время пролёта радиоволны.

В этом тексте написал как я исследовал измерения расстояния, при помощи ASICа UWB трансивера DWM1000.

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

Зачем программисту микроконтроллеров тригонометрия? (или Обзор Усилителя Звука из Apple AirTag)

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

На 12ом году опыта программирования микроконтроллеров мне наконец-то пригодилась школьная тригонометрия (6-класс).
Это настолько специфический случай, что я решил накропать про это заметку.

Когда Вам надо добавить в устройство звук, то можно воспользоваться микросхемой MAX98357A. Это по сути DAC у которого на входе I2S на выходе PWM.

В этой заметке я расскажу о своём опыте работы с усилителем MAX98357A и о том как его тестировать.

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

Зачем программисту микроконтроллеров комплексные числа (или обзор MEMS микрофона MP23DB01HPTR)

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


На 12ом году работы программистом-микроконтроллеров мне наконец-то пригодились комплексные числа из школьной математики. Где они тут нужны? Пояснение в тексте.

Есть много организаций, которые так или иначе разрабатывают и производят оборудование со звукоизлучателями. Очевидно, что между производством и продажей аудио оборудование надо тестировать.

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

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

Сканирование шины RS485

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

В электронике есть множество проводных полудуплексных асинхронных последовательных интерфейсов типа "общая шина". Это 1-Wire, RS485, 10BASE2(thin Ethernet), LIN, K-Line, CAN, I2C, MIL-STD-1553, ARINC 429.

Во всех этих shared-bus интерфейсах так или иначе возникает задача сканирования шины. То есть надо автоматически определить адреса устройств которые подключены к витой паре проводов.

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

Читать далее
Всего голосов 16: ↑11 и ↓5+12
Комментарии46

NVRAM Поверх off-chip SPI-NOR Flash

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

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

В этом тексте поговорим о том как можно построить эффективную программную реализацию энергонезависимой Key-Value Map(ки) над дешевой SPI NOR Flash для микроконтроллерных проектов. Суть проста. Нужна NVRAM.

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

Вывод формулы для двустороннего определения дальности между UWB трансиверами

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

Настал третий за 12 лет случай, когда в профессии программист-микроконтроллеров понадобилось вспомнить школьную математику. В этом тексте я представил перевод AppNote(а) "The mathematics of two-way ranging". Также добавил свои комментарии в те места, которые неочевидны при первом прочтении.

Тема нужна для определения расстояния между двумя UWB радио трансиверами, которые могут определять моменты времени прихода и отправки радиоволны. Такое умеют делать UWB трансиверы, например чип DW1000 и DW3000.

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

Теория управления шаговым двигателем (или как вертеть PTZ камеру)

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

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

При управлении шаговыми двигателями важно решать кинематическую задачу. Правда по уровню сложности её можно отнести к школьной программе 6 класса.

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

Гибкие шестерни

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров17K
Картинка Jahobr, Youtube-канал «3DprintedLife»

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

В этой статье мы поговорим о том, как можно решить этот вопрос наиболее простым способом.
Читать дальше →
Всего голосов 66: ↑64 и ↓2+91
Комментарии42

Зачем Программисту Микроконтроллеров Линейная Алгебра (или Как Найти Угол Между Векторами?)

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

В программировании микроконтроллеров часто возникает задача найти угол между векторами.

Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.

В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.

Читать далее
Всего голосов 21: ↑18 и ↓3+21
Комментарии105

Обзор схемотехнических решений BMS для литиевых батарей

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров44K
Давно ушли те времена, когда для контроля за состоянием аккумуляторной батареи было достаточно стрелочного амперметра. Литиевые аккумуляторы вполне заслуженно обрели популярность в современных автономных устройствах. Они обладают достаточно высокими характеристиками при весьма доступной стоимости, но очень капризны в эксплуатации.

image

В этой статье представлен краткий обзор на специализированные микросхемы мониторинга и защиты для литиевых аккумуляторов. Давайте вместе попробуем разобраться, как максимально эффективно и безопасно использовать эти аккумуляторы в своих устройствах и какие схемы для этого лучше подойдут.
Читать дальше →
Всего голосов 73: ↑73 и ↓0+73
Комментарии87

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

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

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

Читать далее
Всего голосов 128: ↑127 и ↓1+160
Комментарии278

USB Type-C SWD Adapter

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

Прочитав статью Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB у меня сразу появилась идея, как сделать более правильно и удобнее (как хочешь втыкай кабель, по привычке и рабочий USB 2.0 порт). Получился вот такой вот адаптер для J-Link (для JTAG 10 pin):

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

От падений успешных компаний к индустриализации СССР: запускаем стратегическое планирование. Часть 1

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

19 ноября 1942 года началась операция "Уран": контрнаступление с целью окружения и уничтожения нацистской группировки около Сталинграда.

В итоге операции "Уран" войска стран "Оси" потеряли более 900 тысяч человек, а в Великой Отечественной Войне начался перелом. Перелом, который был бы невозможен, если бы СССР не был в состоянии произвести и поставить на фронт десятки тысяч артиллерийских орудий и миллионы снарядов к ним. Если бы СССР не развернул военную промышленность. Если бы уже для неё не была обеспечена ресурсная и кадровая база. Если бы не запустили в своё время I пятилетку и ГОЭЛРО, Их-то я и собираюсь разобрать в качестве выдающихся примеров стратегического планирования.

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

Первая часть.

Погрузиться в стратегическое планирование
Всего голосов 47: ↑38 и ↓9+35
Комментарии124

Согласование волнового сопротивления на СВЧ

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

Иногда приходится наблюдать борьбу за каждую долю Ватта, а то и миллиВатта при первых запусках аналоговых СВЧ-схем. Когда разработчик делает плюхи раскатанным индием по поверхности печатной платы устройства. Либо просто недоумевают откуда возник повышенный уровень отражений на его входе, хотя покупные СВЧ-компоненты соединены между собой дорожками по 50 Ом, которые не предполагают сильных рассогласований. А если детально покопаться, то замечаешь, что в погоне за 50 Ом произошло пренебрежение, казалось бы, мелкими, но важными вещами, влияющим на качество согласования узлов между собой. Кто-то пытается досогласовывать вот так, по факту, хотя проще это сделать на этапе проектирования. Как можно было избежать подобных неприятностей?

Попробуем разобраться...
Всего голосов 55: ↑55 и ↓0+55
Комментарии18

Малоизвестные и интересные особенности C и C++

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

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Всего голосов 127: ↑126 и ↓1+159
Комментарии61
1

Информация

В рейтинге
2 462-й
Зарегистрирован
Активность