Search
Write a publication
Pull to refresh
0
0
Василий @Phantovas

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

Send message

Разработка системы управления электроприводом постоянного тока. Часть 1 — математическая модель

Level of difficultyHard
Reading time17 min
Views9.2K

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

Читать далее

Гайд по Aurora OS: как начать разработку для отечественной мобильной операционки

Reading time4 min
Views13K

Заканчивается бета-тестирование пятой версии отечественной мобильной операционной системы Aurora OS. И если до этого система позиционировалась только как рабочая лошадка для терминалов в сегменте B2B, то теперь авторы планируют выход на рынок персональных устройств для работы. В планах также создание собственной мобильной экосистемы для повседневных задач. Что стоит знать разработчикам об Авроре?

Читать далее

Септик и автономная канализация. Часть 1. Основы

Level of difficultyEasy
Reading time14 min
Views20K

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

Погрузиться в чтение

Замыкания и декораторы в Python: часть 2 — декораторы

Level of difficultyEasy
Reading time11 min
Views12K

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

Эта статья написана в первую очередь для тех, кто только начинает свой путь в программировании или начал изучать Python. Потому здесь я не буду рассматривать декораторы классов, чтобы сделать материал более доступным для новичков. Тем не менее, для тех, кто изучит данную статью, не составит труда разобраться в декораторах классов, так как они не имеют существенных отличий от рассматриваемых здесь декораторов функций.

Читать далее

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях

Level of difficultyMedium
Reading time18 min
Views33K
image


Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей по протоколу MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать под кат!
Читать дальше →

Концепции устройства приёмника умного звукового датчика на базе шины CAN

Level of difficultyMedium
Reading time9 min
Views2.2K

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

Мне представляется, что каждый специалист по АСУ самостоятельно изобретает общие видение задачи, чтобы потом перейти к практической работе по реализации или эксплуатации АСУ. Будучи разработчиком программ станков ЧПУ и систем управления технологическими установками, я тоже на практике выработал общие схемы, которые использовал для разработки архитектуры приёмника данных умных звуковых датчиков. Классификация приёма/передачи и обработки данных даётся в виде 3–ёх базовых схем.

Читать далее

Как работает yield

Reading time6 min
Views729K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

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

Level of difficultyMedium
Reading time28 min
Views30K

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

Читать далее

Сосульки на свесах скатной кровли: механизм образования и методы борьбы с ними

Reading time24 min
Views15K

Островерхая скатная и плоская крыша дома в ИЖС: Битва архаично-романтичного  «дизайна» с инженерной рациональностью.

Крыша дома в частном секторе- это не только инженерное сооружение, но и главный элемент внешнего вида здания в целом.

Если учесть, что частный дом в значительной степени строят ради «показать себя», то его крыша становится скорее ярмаркой тщеславия, чем ответственной инженерной конструкцией. (см.рис.1.)

Читать далее

Константность в C++

Level of difficultyMedium
Reading time31 min
Views22K


Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это седьмая статья из серии, список предыдущих статей приведен в конце в разделе 10. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена концепции константности в C++.


Переменные являются основой любого языка программирования. Если значение переменной нельзя изменить после инициализации, то такие переменные называются неизменяемыми (immutable) переменными или константными переменными или просто константами. Константные переменные в том или ином виде поддерживаются во всех языках программирования и играют в них важную роль. Такие переменные помогают компилятору оптимизировать код, улучшают читаемость и надежность кода, позволяют выявлять бОльшее количество ошибок на стадии компиляции. Константы помогают решать проблемы, связанные с многопоточным доступом к переменным. Использование константных переменных влияет на проектные решения в объектно-ориентированном программировании, а функциональное программирование изначально исходит из неизменяемости используемых переменных.


В C++ концепции константности уделяется значительное место. Для переменных используется два вида константности, имеются ссылки и указатели на константу, константные функции-члены, константные итераторы. Попробуем разобраться во всех этих понятиях.

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

Популярные конфигурационные опции для работы с git

Reading time10 min
Views15K

Привет! Я всегда мечтала, чтобы в инструментах для работы с командной строкой заранее сообщалось, насколько популярны те или иные конфигурационные опции, предусмотренные в них, например:

o    «В принципе, никто этим не пользуется»

o    «Этой опцией пользуется 80% аудитории, стоит ознакомиться»

o    «У этой опции предусмотрено 6 возможных значений, но в реальной практике применяется всего 2 из них».

Так что я решила спросить пользователей Mastodon, какие у них любимые опции конфигурации git:

А какие опции git config вы больше всего любите выставлять? В настоящее время у меня в ~/.gitconfig установлены только git config push.autosetupremote true и git config init.defaultBranch main, вот интересуюсь, а что выставляют другие люди.

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

Далее перечислю их по порядку, при этом (очень примерно) попытаюсь начать с наиболее популярных.

Все описанные опции документированы на странице man git-config, а также на этой странице.

Читать далее

Интерактивная диаграмма Ганта для тысяч работ

Level of difficultyMedium
Reading time5 min
Views17K

Всем привет! Я расскажу, с помощью каких алгоритмов и архитектуры можно разработать с нуля интерактивную диаграмму Ганта, способную без лагов отображать тысячи задач.

Читать далее

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

Reading time7 min
Views13K

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

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

Читать далее

Терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 1

Level of difficultyEasy
Reading time3 min
Views15K

Когда-то я активно работал с промышленным оборудованием. Часто мне приходило какое-то устройство, и оно общалось с внешним миром по волшебному протоколу Modbus.

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

Поэтому представляю вам мою версию Modbus терминала!

Читать далее

Датчик объёма на основе резонанса Гельмгольца (микрофон = датчик объёма)

Level of difficultyEasy
Reading time6 min
Views7K

Что общего между скрипкой и крылатой ракетой ФАУ-1?

Ответ прост - резонатор Гельмгольца.

На основе физических эффектов можно создавать различного рода датчики.

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

Читать далее

SimulIDE: открытый симулятор цифровых схем и микроконтроллеров

Reading time3 min
Views33K

В этой заметке я решил рассказать о SimulIDE. Это относительно новое программное средство с открытым исходном кодом, предназначенное для моделирования 8-битных микроконтроллеров семейств AVR и PIC, а также прочих электронных схем. По интерфейсу SimulIDE напоминает Proteus. SimulIDE кроссплатформенный и работает под Linux, Windows и Mac. Далее будут рассмотрены основные возможности этого симулятора и рассказано о моих личных впечатлениях от работы с данной программой.

Читать далее

Автоматический Wi-Fi выключатель и как с его помощью спасти дом от повреждений

Level of difficultyMedium
Reading time5 min
Views22K


Автоматические выключатели рычажного типа необходимы для защиты электропроводки и подключенного к нему оборудования. Но с развитием технологий появились WiFi автоматы которые предлагают еще больше комфорта и возможностей. В данном материале будет описываться мой опыт применения автоматического выключателя с управлением через Wi-Fi.
Читать дальше →

Применение контейнеров и алгоритмов STL в C++

Level of difficultyMedium
Reading time9 min
Views28K

Привет, Хабр!

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

Рассмотрим подробнее.

Читать далее

Исследование звука: удаление шумов

Level of difficultyHard
Reading time12 min
Views5.7K

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

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

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

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

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

Цель данной работы – исследовать алгоритмы удаления посторонних шумов из аудио дорожки.

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

Читать далее

STM32. Процесс компиляции и сборки прошивки

Level of difficultyEasy
Reading time30 min
Views38K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

Всем кому интересно — добро пожаловать под кат! 🙂

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

Information

Rating
Does not participate
Location
Ставропольский край, Россия
Date of birth
Registered
Activity