В программировании микроконтроллеров часто возникает задача найти угол между векторами.
Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.
В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.
Техножрец Омниссии.
Гайд по сплит клавиатурам
Этот гайд создан для тех, кто интересуется сплит клавиатурами, но еще не знаком с их особенностями и преимуществами или рассматривает переход на них. Главная цель гайда – предоставить всестороннюю информацию о сплит клавиатурах: от их истории и типов до подробного рассмотрения их конструкции, обучения слепой печати, изменения раскладки и так далее.
Мы стремимся сделать переход на сплит клавиатуру максимально плавным и безболезненным. Понимание того, как они устроены и как их можно адаптировать под свои нужды, снизит барьер входа и поможет преодолеть опасения перед переходом.
Краткий справочник по «всем-всем» командам Linux
Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.
STM32. Процесс компиляции и сборки прошивки
Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?
Всем кому интересно — добро пожаловать под кат! 🙂
Заметка про сохранение структур во flash памяти на STM32
При разработке проекта для микроконтроллера часто возникает необходимость сохранения данных во Flash-память перед выключением устройства. Глобальные структуры содержат информацию о настройках различной периферии, данные с внешних датчиков и прочее. В этом посте я хочу показать простенький механизм записи структуры во FLASH память микроконтроллера STM32, которым я сам часто пользуюсь в своих проектах.
Лазерный DIY или как с помощью дешевого гравера делать качественные платы
Привет, Хабр!
В этой статье хочу поделиться своей историей, как спонтанная покупка на местном маркетплейсе упростила процесс изготовления прототипов печатных плат в домашних условиях, сэкономив время, при этом повысив качество. Интересно? Тогда добро пожаловать под кат!
Малоизвестные и интересные особенности C и C++
В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.
Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.
Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.
Часы на газоразрядных лампах (ГРИ), они же Nixie clock
Концепция проекта
Концепция этого изделия состоит в удовлетворении потребности смотреть на настоящее пламя. Тлеющий разряд в газе строго говоря не совсем пламя, хотя и похож на настоящее пламя.
Мне нравится его цвет и это было единственной побудительной причиной заняться созданием таких часов для себя в единственном экземпляре.
Задачи создать прибор для массового производства не ставилось.
Поэтому бюджет проекта заметно больше разумного. Решения принимались исходя из собственных представлений о красоте, стоимость комплектующих не учитывалась. Реально ограничения конечно есть всегда и, например, покупать большие ГРИ (газоразрядные индикаторы) типа ИН18 я не стал – цена их больше интуитивно определенной границы и они не вписывались в мою концепцию внешнего вида изделия. Я использовал ГРИ типа ИН-12.
Затыкаем рот Windows 10
Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.
Однако жизнь сложная штука и не ограничивается только стандартными вариантами. Существуют ситуации, когда подобная сетевая активность операционной системы (ОС) нежелательна и даже вредна. За примерами далеко ходить не надо. Попробуйте подключить к Интернету давно не используемый резервный компьютер, собранный на старом железе. Пока софт на нём не обновится, использовать его будет практически невозможно, всё будет дико тормозить и еле шевелиться. А если вам в этот момент нужно срочно что-то сделать?
Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Использвание Blender и FreeCad для импорта 3D-моделей компонентов в KiCad
Есть лишь одно неудобство: KiCad не поддерживает широкораспространенный формат step. Многие производители электронных компонентов предоставляют 3D-модели своих изделий именно в этом виде. И, чтобы воспользоваться этими файлами, приходится конвертировать их в формат vrml, понимаемый KiCad’ом.
Способы конвертирования и подключения модели не совсем очевидны, особенно при использовании свободно распространяемого программного обеспечения.
В этой статье я расскажу, как без регистрации и смс преобразовать 3D-модель объекта для подключения его к посадочной площадке в библиотеке KiCad.
О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них
Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!
Взгляд на телеграм-ботов изнутри
Боты позволяют предоставлять услуги и обслуживание клиентов в режиме 24/7, без необходимости иметь человеческий персонал на стойке приема заказов или в службе поддержки. Они также обеспечивают конфиденциальное и безопасное взаимодействие с пользователем, что делает их идеальным инструментом для обработки чувствительных данных.
Боты на платформе Telegram особенно популярны благодаря ее широкой аудитории и высокой степени защиты данных. Они могут быть использованы для самых разных целей, будь то автоматизация бизнес-процессов, предоставление новостей и обновлений, обучение или развлечение пользователей.
DCF77: как работает система передачи сигналов точного времени?
Наверное многие, приобретающие часы или метеостанцию, видели на упаковке логотип Radio Controlled Clock или даже Atomic Clock. Это весьма удобно, ведь достаточно поставить часы на стол, и они через некоторое время автоматически настроятся на точное время.
Разберемся как это работает и напишем декодер на языке Python.
Видеокарта VGA для микроконтроллера
Иногда, при разработке устройств на микроконтроллерах, возникает потребность в выводе на дисплей большого количества информации или же в выводе информации на крупный дисплей для возможности ее считывания с большого расстояния. К сожалению, готовых решений этой проблемы нет, а те что есть – весьма дороги. Например, графические ЖК-дисплеи с возможностью подключения к микроконтроллеру обычно имеют диагональ не более нескольких дюймов и достаточно существенную цену (причем, даже монохромные, о цветных вообще можно не говорить).
В то же время есть огромный парк старых ЖК мониторов. Модели с диагональю 15-19 дюймов можно приобрести в рабочем состоянии за 200 – 500 руб. Особенно это касается моделей с немодным сейчас соотношением сторон 4:3. Эти модели достаточно надежные. Лампы CCFL, используемые для подсветки, конечно, теряют яркость за годы эксплуатации и их спектр свечения уходит в неприятный красноватый оттенок, но благодаря большому количеству таких мониторов всегда есть возможность выбрать более-менее живой экземпляр. Кроме того, лампы CCFL относительно несложно заменить обычной светодиодной лентой, подключив ее напрямую к источнику питания 12 В монитора. Однако при этом обычно необходимо заблокировать цепи обратной связи от микросхемы управления подсветкой к контроллеру самого монитора, иначе монитор будет думать что подсветка неисправна и просто выключится. Также придется пожертвовать функцией регулировки яркости. Однако, этой функцией мало кто пользуется. Обычно яркость монитора настраивается один раз в жизни, сразу после его покупки и потом никогда не меняется.
Виртуальный COM-порт на STM32 или как управлять контроллером через USB не привлекая внимания санитаров
Написать эту статью меня сподвигли те сложности, которые пришлось пройти в попытке разобраться, как же именно ядро контроллера STM32F103 работает с драйвером USB, который находится на борту. Имеющиеся туториалы по созданию устройств, в том числе и композитных, в основном сфокусированы на особенностях использования библиотек. Но когда оставшегося места в памяти контроллера мало а парамеры его работы полностью предсказуемы, лучшим решением становится написать собственный обработчик прерываний. А для этого нужно понять,
Простая схема на оптроне создает «ламповый» звук
Текст, приведенный ниже, строго говоря не является переводом, а представляет собой оригинал статьи, написанной автором для российского тематического издания. Сначала статья была предложена последовательно сначала одному, а затем второму российскому изданию. В ответ тишина. Тогда статья была предложена журналу "Радиолоцман", который довольно быстро сообщил, что статья их не устраивает - типа маленькая.
Тогда я написал в Electronic Design News, который довольно быстро принял статью к рассмотрению и через некоторое время опубликовал ее. Теперь собственно статья.
Эта простая схема основана на схеме, показанной на рис. 2 в моей статье (1). Известно, что главной особенностью ламповых усилителей является наличие небольших искажений. В этих искажениях преобладает вторая гармоника. Некоторые оптроны имеют проходную характеристику, близкую к проходной характеристике лампы, например, типа EL34.
Простая схема с оптроном типа TLP621 показана на рис. 1.
STM32 bootloader DFU mode с использованием CubeMX. Инструкция пошаговая, step by step
Великое множество обнаруженных в сети bootloader-ов, иногда весьма занятных, к сожалению «заточены» под какой-либо конкретный кристалл.
Предлагаемый материал содержит процедуру использования пакета CubeMX, «загружалки» DfuSeDemo и утилиты подготовки прошивки Dfu file manager, т. е. Мы абстрагируем наши «хотелки» от железки, да простят меня гуру макроассемблера и даташита.
Сам себе сотовый оператор
Приветствую всех!
Многие из вас наверняка слышали про OsmocomBB. Однако каких-то исчерпывающих мануалов по запуску почему-то крайне мало. Итак, в ходе данной статьи постараемся максимально простым образом запустить собственную базовую станцию из доступных комплектующих. Постараемся разобраться, как сделать так, чтобы оно точно заработало.
Умные указатели в современном C++ с точки зрения новичка
Новые (?) пути управления памятью
Указатели в языках C и C++ — те еще штучки. Они чрезвычайно мощные, но в то же время такие опасные: достаточно небольшого недосмотра, чтобы сломать все ваше приложение. Проблема в том, что управление указателями полностью зависит от вас. За каждым динамическим выделением объекта (например, new T) должно следовать ручное удаление (например, delete T). Забудете это сделать, и в итоге получите хорошенькую утечку памяти.
Более того, динамически выделяемые массивы (например, new T[N]) необходимо удалять с помощью другого оператора (например, delete[]). Поэтому приходится мысленно отслеживать, что вы выделили, и соответственно вызывать нужный оператор. Ошибки с выбором формы приводят к неопределенному поведению, чего при работе на C++ нужно избегать любой ценой.
Другая деликатная проблема заключается во владении. Сторонняя функция возвращает указатель: а не динамически ли были выделены эти данные? Если да, то кто отвечает за очистку? Невозможно получить такую информацию, просто посмотрев на возвращаемый тип.
Создание своей эргономичной клавиатуры (часть 1: создание раскладки)
Всякий, кто работает за компьютером, каждый рабочий день касается клавиатуры. (И мыши, разумеется). Мы меняемся -- и предпочтения как и на что нажимать тоже меняются со временем.
Я самоучка, учился набирать когда тренажеров клавиатуры не было -- или они были ужасно скучными. В итоге я выработал свою собственную технику набора, которая включает в себя даже несколько "запеченных" ошибок -- когда я точно знаю что левый палец сейчас нажмет неправильную кнопку, поэтому палец правой руки уже на бэкспейсе. Но это не цель, и часть опечаток просто опечатки.
Я не особо беспокоился ни о туннельном синдроме ни об эргономике клавиатуры помимо того, чтобы было удобно печатать. Но когда начались локдауны в связи с короной, мне пришлось оборудовать домашнее рабочее место, а запасы клавиатур были очень ограничены. Помимо всего прочего, их больше не выпускают (ну, я нашел что они еще есть под другим брендом, но всё же). Так пришла пора поискать что-нибудь новое, желательно более удобное.
Привыкание к разломанной потребовало времени -- и я всё еще не полностью адаптировался... -- в основном из-за моего навыка печати. Как я уже писал, я самоучка, и средние столбцы общие для обеих рук. Я могу нажать "y" как левой так и правой рукой, то же с другими средними кнопками -- в итоге я часто жал вместо "y" -- "t" или "n" вместо "b". Так же неприятно ткнуть в пустое место клавиатуры вместо нажатия на "7". Заметив эту проблему, я попытался найти клавиатуру у которых средние столбцы продублированы, но таких клавиатур на рынке просто нет. После изучения доступного инструментария я понял, что создание клавиатуры своей мечты гораздо проще чем я думал. А если можно -- почему бы и не попробовать? Будет весело!
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность