Pull to refresh
-1
0
Alexander Belousov @belav

User

Send message

День Радио: смотрим видео на радиоспектре через SDR

Reading time5 min
Views9.3K


Привет, Хабр! На дворе День радио, а значит у нас есть отличный повод сделать что-нибудь интересное. На днях мой взгляд упал на пылившийся в углу SDR-приемник, и тут понеслось.

Читать дальше →
Total votes 87: ↑103 and ↓-16+119
Comments17

Универсальный контроллер моторов на ARM Cortex-M85. Трассировка

Reading time6 min
Views5.5K

Новейшее семейство микроконтроллеров RA8M1 просится быть использованным в умном электроприводе. Вычислительная мощь ядра ARM Cortex-M85 (480 МГц) позволяет легко управлять на нашей плате одновременно двумя PMSM/BLDC или тремя DC коллекторными моторами с использованием алгоритмов машинного обучения и еще оставляет ресурс для комплексной удаленной диагностики в реальном времени. Добавим сюда IoT на ESP32-С6, дисплей, интерфейсы энкодеров, полевые шины и в результате получаем универсальный контроллер моторов.

Читать далее
Total votes 24: ↑26 and ↓-2+28
Comments20

Связь между Arduino по оптоволокну через SFP трансиверы

Level of difficultyEasy
Reading time8 min
Views9.4K

Изучаем оптический SFP трансивер. Рассматриваем его внутреннее устройство, элементный состав, электрические подключения. Для закрепления материала попробуем отправить и принять сообщение по оптоволокну, используя платформу Arduino.

Читать далее
Total votes 47: ↑56.5 and ↓-9.5+66
Comments30

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views70K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 211: ↑222.5 and ↓-11.5+234
Comments361

Решение проблемы дымки на изображениях с использованием .NET: Простой и эффективный подход

Level of difficultyMedium
Reading time3 min
Views2.5K

Простое .NET решение для четких фото: избавьтесь от дымки или тумана на изображениях всего за несколько шагов!

Читать далее
Total votes 10: ↑10.5 and ↓-0.5+11
Comments18

Распознавание, хранение и поиск лиц в базе данных

Level of difficultyMedium
Reading time3 min
Views10K

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

Читать далее
Total votes 30: ↑29 and ↓1+28
Comments6

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

Reading time7 min
Views5.4K

Снова рады приветствовать дорогих читателей! Продолжаем рубрику статей "Без про-v-ода" в которой мы обозреваем для вас различные инструменты, уязвимости и атаки на беспроводные технологии или протоколы. Wi-Fi технология стала неотъемлемой частью нашей повседневной жизни. Мы используем беспроводные сети для доступа в интернет, обмена данными, стриминга видео и музыки, и многих других целей. Однако, с увеличением популярности Wi‑Fi сетей, также возрастает и риск для безопасности информации, передаваемой по этим сетям. В этой статье будет задействован мощный инструмент который поможет нам оценить уровень безопасности Wi‑Fi сетей и выявить потенциальные уязвимости и плата для тестирования на безопасность Wi‑Fi сетей.

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

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments0

Разработка цифровой аппаратуры на C++/SystemC глазами SystemVerilog программиста

Reading time19 min
Views34K


SystemC это библиотека для C++ позволяющая моделировать всевозможные аппаратные системы на различном уровне абстракции. Поддерживается как традиционное дискретно-событийное моделирование, привычное программистам на Verilog и VHDL, так и аналоговое моделирование в духе SPICE/Verilog AMS. В комплект также входит библиотека и методология для виртуального прототипирования, библиотеки для написания тестовых окружений и верификации с использованием рандомизированных тестов.

В этой я расскажу о синтезируемом подмножестве SystemC, сравнивая его с синтезируемым SystemVerilog. Сам я пользуюсь SystemC уже где-то 3 года, а до этого несколько лет писал на Verilog/SystemVerilog. Попытаюсь охватить предмет с разных сторон: начиная с философских рассуждений о причинах возникновения SystemC, краткого обзора экосистемы и инструментария и заканчивая практическими примерами синтаксиса и семантики.

Подразумевается, что читатели знакомы с Verilog и C++.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments28

Небольшая щепотка ультразвуковых чудес

Level of difficultyMedium
Reading time9 min
Views9.9K
Картинка Freepik

Несмотря на свою практически неслышимость и незримость, ультразвук имеет множество применений в современной жизни. В связи с этим мы и рассмотрим некоторые весьма любопытные его реализации, вдвойне интересные ещё с той точки зрения, что они содержат полный набор исходников проектов, что позволяет любому желающему испытать свои силы в реализации описанного. Итак…
Читать дальше →
Total votes 68: ↑65.5 and ↓2.5+63
Comments23

Вскрытие детали за 40 тысяч. Ремонт и реверс высоковольтного модуля Traco Power MHV12-2.0K1000N

Level of difficultyMedium
Reading time10 min
Views14K

В этой статье мы заглянем под заливочный компаунд стабилизированному высоковольтному преобразователю напряжения производства Traco Power. Данный прибор из напряжения 12 В вырабатывает отрицательное высокое напряжение в диапазоне от 0 до 2000 В при токе до 1 мА, которое задается внешним резистивным делителем или управляющим напряжением. Выходное напряжение хорошо стабилизировано (декларируется нестабильность в 0,03% при изменении нагрузки или питающего напряжения во всем допустимом диапазоне). Подобные модули — наиболее легкий способ обеспечить стабильным высоковольтным питанием ФЭУ (например, сцинтилляционного детектора радиоактивных излучений), но к сожалению, они слишком дороги (текущая цена, по которой подобный модуль можно приобрести у российских поставщиков элементной базы — около 40 000 руб). Мне такой преобразователь попал в руки неисправным — так что давайте его вскроем, посмотрим, как он устроен и попробуем починить.

Вскрыть
Total votes 134: ↑155 and ↓-21+176
Comments70

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

Level of difficultyHard
Reading time118 min
Views2.3K

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

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

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Total votes 24: ↑24 and ↓0+24
Comments15

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч.1)

Level of difficultyHard
Reading time127 min
Views7.9K

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

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

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

А еще эту статью можно рассматривать как глубокое погружение в то, что происходит вот на этом новогоднем видео.

Погрузиться сполна
Total votes 60: ↑59 and ↓1+58
Comments40

Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

Level of difficultyMedium
Reading time24 min
Views8K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

как организовать работу с данными и загрузку обучающего датасета, 

как описать структуру нейронной сети, 

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

как организовать конвейер обучения сети, 

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments15

Как взломают ваш Postgres

Level of difficultyEasy
Reading time2 min
Views14K

Все знают что плохо оставлять дефолтные пароли. Но что произойдет если поднять PostgreSQL позабыв о безопасности? Нас взломают? Как быстро взломают?

Я развернул PostgreSQL, настроил сборку логов и ниже расскажу что будет (спойлер — вас очень быстро похекают).

Что случилось?
Total votes 20: ↑16 and ↓4+12
Comments27

115 лет прогресса: от механического осциллографа до самодельного цифрового

Level of difficultyEasy
Reading time9 min
Views12K


Привет, Хабр! Вы ещё не собирали осциллограф DSO138? — Если нет, то вам можно позавидовать: впереди увлекательный проект со множеством перспектив. Если да, то почему бы не усовершенствовать уже собранный или собрать ещё один.

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

А начнём мы с истории осциллографов, и она гораздо интереснее, чем можно представить.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments27

Как калькуляторы вычисляют синус?

Level of difficultyEasy
Reading time3 min
Views54K

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

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

Читать далее
Total votes 99: ↑97 and ↓2+95
Comments52

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

Level of difficultyMedium
Reading time28 min
Views20K

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

Читать далее
Total votes 162: ↑161 and ↓1+160
Comments246

Рыбачим в эфире: данные с метеостанции, номер борта, соседский звонок и другие интересные находки

Level of difficultyEasy
Reading time6 min
Views17K

Широкополосный радиоприемник – штука полезная. Можно получить информацию с соседского уличного термометра или авто на частоте 433 МГц, либо определить бортовой номер пролетающего самолета.

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

В статье мы расскажем о подключении «USB-свистка» RTL-SDR к контроллеру Wiren Board. С помощью софта мы переведем полученную информацию в удобные топики MQTT, затем обработаем данные.

Интересно? Ныряйте под кат

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments17

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

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

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

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

Читать дальше →
Total votes 124: ↑123 and ↓1+122
Comments67

Универсальная плата для E-Ink экранов. Ч1. Разработка системы питания

Level of difficultyMedium
Reading time13 min
Views7.3K

Однажды мне попался один весьма интересный проект платы, поддерживающей большое количество разнообразных E-Ink экранов. Проект довольно быстро заинтересовал, появилось желание несколько переработать плату, внести улучшения, узнать и попробовать что-нибудь новое. Больше всего изменений претерпела система питания: она была разработана практически с нуля. Процесс оказался очень познавательным и увлекательным, а отладка прототипа преподнесла много поучительных и забавных сюрпризов. Это жизненный рассказ о разработке как есть.
Читать дальше →
Total votes 70: ↑70 and ↓0+70
Comments30
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity