Переделка квадроцикла в ходовую для мобильной робототехники

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

Для тех, у кого руки растут из нужного места

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

Редкий Musical Fidelity M1 с тонармом SME M2-9 находится в 3000 километрах, а покупать его только на слух и по фотографии не хочется. Из игровой Sound Blaster G3, старого Sony и ноутбука собираю измерительный комплекс: WFGUI, тон 3150 Гц, советские тестовые пластинки и собственный DAT Viewer. Сам M1 пока не измерен — статья о подготовке комплекса, контрольных опытах и ограничениях метода.
Всем привет! Меня зовут Петрович и я работаю техлидом java команды в небольшом международном финтехе. В прошлый раз я рассказывал, как мы меняли Redis на Hazelcast, а сегодня расскажу как мы делали свой MCP-сервер для Jira, Confluence и GitLab (все self-hosted). От пустого репозитория до прода прошло две недели, а сейчас у сервера уже почти 100 инструментов. Расскажу, почему не взяли готовое с GitHub, как все устроено внутри и на какие грабли мы наступили (спойлер: почти все грабли назывались null).

В первой части Лягушка научилась смотреть на человека, говорить и поворачивать голову. Теперь добавляю знакомые лица, память о разговорах, вопросы по фотографии, объяснения на экране и помощь со стихами. По дороге робот пропускает собственные команды, узнаёт своего «Создателя» и отправляет рисунок в принтер. А ещё выяснилось, что сильнее всего тормозило Лягушку…

Хижину на высоте 3 930 метров в Кыргызстане пришлось сделать шире, чем в чертежах. Причина простая: матрасы оказались на несколько сантиметров больше, чем рассчитывали. К этому моменту материалы уже лежали на леднике: их привёз вертолёт, а недостающее мы дотаскивали в рюкзаках. Я работаю в Postgres Professional и около двадцати лет хожу в горы. Сейчас вместе с друзьями строю здесь новую хижину для альпинистов. Пока мы утепляем стены и собираем электрику, на ней уже ночуют люди, а по ночам заглядывают куницы. Для них мы закрыли все щели, но куницы всё равно нашли путь.

Я хотел разработать собственный AI-процессор, нашёл openTPU, купил FPGA за $50 с 4ГБ памяти, подключил её к обычному мини-ПК и запустил на ней языковую модель.

Статья посвящена криптографически защищённому сопряжению и взаимодействию двух плат ESP32 через обычный светодиод по протоколу LX.25 или через ESP-NOW и LoRa.
Согласование ключей происходит с использованием протокола Диффи-Хеллмана на эллиптических кривых (X25519), а сообщения шифруются с помощью алгоритма AES-256-GCM. Библиотека SecurePair поддерживает любые средства передачи. Она работает через ESP-NOW, LoRa и любой другой канал связи, способный пересылать пакеты. А с помощью PacketLED можно реализовать обмен сообщениями даже через обычные светодиоды.

В статье описано, как реализовать многоканальный звук на RP2040 с использованием HD аудиокодека ALC889. Будет краткий разбор интерфейса HDA link и ссылки на пару рабочих демо-проектов с описанием их работы.

Как и любая другая эволюция, развитие приёмно-усилительных электровакуумных приборов (ЭВП) имело и тупиковые ветви, образцы, из которых сейчас выглядят престранно и чужеродно. Одна из таких ветвей — внешние электроды. Взглянем же на некоторые примеры этих технических курьёзов, попытаемся понять причину их появления и исчезновения, полюбуемся своеобразной «тёплой ламповой» эстетикой, присутствующей даже в таких нежизнеспособных уродцах.

Привет Хабр! Кремний и видеокарты дорожают, а квантовые компьютеры не поместятся в квартире. Поэтому я решил собрать биопроцессор своими руками из денежного дерева на подоконнике…

В прошлой статье я выдвинул интересную идею, которую никогда до этого не встречал в интернете — гашение вибраций и гашение звука на домашних компактных фрезерных станках, например, известного и широко распространённого типа 3018.
Как я рассказывал, одним из, пожалуй, основных проблемных моментов для использования ЧПУ-станков на дому является шум, причём не шум двигателей (с этим-то как раз можно жить, он довольно щадящий), а шум режущего инструмента, в основном фрез, которые издают довольно противный визг на больших оборотах во время обработки материала.
Проблема особенно усугубляется на относительно жёстких материалах: фрезеровка печатных плат (вырезание по контуру), а также обработка металлов.
В ходе размышления над этой проблемой мне пришла в голову довольно интересная мысль: «А что, если обработку производить под толстым слоем жидкости, в частности воды или жидкого, гелеобразного мыла?!»
Как я писал в прошлой статье, я весьма плотно искал хоть какой-нибудь прецедент, чтобы пытались гасить звук таким образом, и не нашёл!
Да, льют СОЖ (смазывающе-охлаждающую жидкость) в зону резания относительно тонким слоем — но в основном только для постоянного вымывания продуктов обработки (проще говоря, стружки и пыли) и смазки/охлаждения инструмента во время работы.
Но покрывать деталь толстым слоем жидкости именно для гашения вибраций и звука (грубо говоря, залить её толстым слоем жидкости и вести обработку прямо под ней) — похоже, что не додумался вообще никто (не факт, но есть такое подозрение ;-) )!
Ввиду того, что у меня уже есть цельнометаллический ЧПУ-станок серии 3018, про который я писал вот тут, мне показалось совершенно непростительным, если бы эта интереснейшая мысль по поводу глушения жидкостью осталась в виде непроверенной теории!
Я никак не мог этого допустить, и работа закипела… :-)

Окна открываются по расписанию, ночная подсветка загорается на 10% яркости, а настенные клавиши работают даже при выключенном контроллере. В квартире площадью около 175 м² интегратор объединил проводную автоматику и беспроводные устройства, а владельцу оставил возможность самому менять сценарии. Заглянем в щит, разберем световой потолок на 800 Вт и посмотрим, какие задачи решает автоматика после переезда — и что еще предстоит настроить.

Доброго времени суток, уважаемые посетители Habr!
Данная статья будет короткой, но полезной.
В одной из предыдущих статей, уже описывал вычисление sin(x)/cos(x) с применением разложения в ряд Фурье с фиксированной точкой. Вычисление тригонометрических функций, в моем случае занимало порядка 125-130 тактов на пару (sin+cos) на процессорном ядре Cortex M7 (STM32H750). При этом, код компилировался для архитектуры Cortex M3. Точность sin/cos просчитанного таким образом составила менее 1.5LSB. Google посчитал ее как 1.2-1.3LSB, с минимальной дисперсией. Это уже дало динамический диапазон ~183dB. Для сравнения, полный динамический диапазон человеческого уха 120dB от болевого порога до шелеста листвы. А динамически диапазон звука который человек слышит одновременно порядка 40-60dB. Несколько позже поясню для чего приведено сравнение.
В общем и целом такого динамического диапазона и скорости уже достаточно чтобы производить операцию квадратурной свертки сигнала с частотой дискретизации до 450-500KHz. Кстати, на STM32F103C8T6, это заняло бы ~1.8uS на квадратурный отсчет. Т.е. с отключенными прерываниями процессор бы успел выполнить расчет одного бина честного преобразования Фурье в реальном времени. Это эквивалентно квадратурной демодуляцию на одной произвольной поднесущей до частоты 250КГц (хотя лучше брать Fsample/4 ), что позволяет работать с полосой до 125КГц, на простом контроллере в реальном времени.
Однако, этого мало для полноценной обработки сигналов. И тут я задумался. Как можно значительно повысить скорость работы и почти не потерять в точности? Первое что сделал,- разбил преобразование на блоки, фаза которых непрерывна. Это позволило работать с блоками отсчетов, которые, затем можно суммировать скользящим окном со сложностью O(1). Это привело к эффекту квадратурной демодуляции сигнала и без повышения сложности позволяло работать с малыми временными сдвигами. Фактически пришел к поблочной корреляция. Нечто вроде временного Rack-приема.

Я несколько раз попал в длинные очереди за бензином, конкретно за АИ‑95. В конце августа четыре часа простоял в очереди на московской заправке, чтобы заправиться за минуту. В другой раз два часа ждал в Моршанске, хотя это город с населением меньше 50 тысяч человек. Очереди меня жутко выбешивали, поэтому решил навайбкодить монитор бензина. Он должен был сообщать, когда бензин появляется на нужной заправке и туда можно ехать. И у меня это получилось, хотя самостоятельно я до этого ничего не разрабатывал.
На связи Игорь, менеджер продуктов Outlines Tech. В статье покажу, как ставил задачу ChatGPT, что приходилось уточнять и как проверил инструмент в деле. В конце оставлю ссылку на код на GitHub, чтобы вы могли попробовать его у себя. Бесплатно, разумеется.

Когда устройству нужна относительно большая энергонезависимая память с возможностью быстрой замены, SD или microSD-карта — один из самых удобных и доступных вариантов.
Компактность, простое подключение, поддержка микроконтроллерами и низкая цена при большом объёме делают SD-карту стандартом для логирования, хранения конфигураций и обновления прошивок.
Многие считают работу с SD-картой чем-то сложным и низкоуровневым. На практике, если использовать SDIO + FatFS, бо́льшая часть сложности уже спрятана библиотеками и аппаратными модулями микроконтроллера.
В этой статье я покажу, как добавить поддержку SD-карт в проекты на STM32: что лежит в основе, и как она настраивается.

В какой-то момент я заметил довольно глупую вещь: чем дольше работаешь с моделями над реальными проектами, тем больше сам начинаешь выполнять роль, которую вроде бы собирался отдать машине. Не писать код и не придумывать архитектуру — это как раз модели уже умеют неплохо. Хуже другое. Нужно помнить, что мы вчера решили не трогать Elasticsearch до тех пор, пока не появится реальная боль. Что вот этот кусок интерфейса пока временный. Что в том чате был хороший вариант названия. Что одна гипотеза уже проверялась и оказалась плохой. Что вот это надо сделать потом, а вот это — никогда. Пока всё живёт в одном разговоре, проблема почти незаметна. Потом разговор заканчивается, контекст вымывается, открывается новый чат, меняется модель, запускается отдельный агент — и внезапно выясняется, что «мы это уже обсуждали» хранится в довольно ненадёжном месте. Во мне.
Мне это надоело. С этого, собственно, и начался Later, Bender. Название появилось позже. Сначала был гораздо менее романтичный вопрос: как сделать так, чтобы полезное состояние работы переживало чат и не требовало от человека каждый раз заново пересказывать машине, что вообще происходит?

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

Если я шутя спрошу вас: «что мы любим на завтрак? Что мы любим на ужин?» — думается, что ответы будут очень разными, но, наиболее очевидным ответом наверняка будет то, что, хотя бы изредка, мы позволяем откусить себе, что утром, что вечером — маленький, ароматный кусочек килограмма на полтора душистого сыра!

В апреле 2026 года я решил ради эксперимента установить на старый смартфон OnePlus 6 Linux (Mobian) и использовать его в качестве сервера. Через некоторое время пришлось немного повозиться, чтобы правильно настроить режим зарядки, чтобы аккумулятор жил в наиболее безопасном и комфортном режиме.
Полгода спустя на нём работают 26 Docker-контейнеров. Рассказываю, что там крутится, как устроены мониторинг, CI/CD, Caddy и Nginx.

Подарок сыну и списанный прибор
Не так давно мой сын, которому тогда было 5 лет, попросил игровую консоль. Я немного подумал, и решил, что до полноценной консоли ему бы ещё подрасти… и решил сделать её сам. Проведя ревизию полезного «железа» я нашёл 2.4“” TFT SPI дисплей, шилд джойстика и ESP8266. Сначала был написан в Arduino IDE код, затем найден корпус… но я начну от обратного. Поиск подходящего корпуса начался с Авито. Куплена нерабочая китайская консоль, но сразу после получения успешно отремонтирована подключением шлейфа дисплея и поиск продолжился… На работе был присмотрен списанный нормирующий преобразователь интерфейсов, замерен, и… признан пригодным к адаптации в качестве корпуса.