Pull to refresh
-4
-0.1
Mikhail Ukhanov @ukhanov

User

Send message

Тысяча и одна библиотека С++

Reading time65 min
Views15K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 68: ↑67 and ↓1+77
Comments23

Обратная связь, творящая чудеса

Level of difficultyEasy
Reading time8 min
Views7K

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

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

Читать далее
Total votes 23: ↑22 and ↓1+31
Comments36

Открытый онлайн-курс по цифровой схемотехнике: от истоков до первого устройства

Level of difficultyEasy
Reading time4 min
Views14K

Привет, Хабр! У нас новости. Мы запустили онлайн-курс по цифровой схемотехнике для начинающих. Он подойдет всем, кому интересно собрать из простых компонентов готовое устройство на макетной плате и узнать больше о «внутренностях» электроники. Присоединяйтесь сами или рассмотрите курс для совместного досуга с ребенком, младшим братом или сестрой. Возможно, кому-то он поможет не только найти новое занимательное хобби, но и определиться с будущей профессией.

Всего в курсе 11 практических роликов с подробными теоретическими материалами к каждому. Будем не просто смотреть на картинки с электрическими схемами, а проводить эксперименты своими руками. Начнем с истоков: познакомимся с оборудованием и линейными электронными компонентами, а закончим сборкой секундомера с применением микросхем цифровой логики. Все подробности — на странице курса и под катом.

Читать далее
Total votes 56: ↑55 and ↓1+70
Comments23

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

Level of difficultyEasy
Reading time1 min
Views3.7K

В последнее время мне часто приходится печатать изделия с резьбой. Я создаю 3D-модель в программе FreeCad. Для создания отверстия с резьбой во FreeCad, необходимо создать отверстие с помощью окружности и нарисовать профиль резьбы в плоскости, перпендикулярной этой окружности. Например, если окружность создана в плоскости XY, профиль зуба должен быть нарисован в плоскости XZ.

Затем нужно создать спираль (если нужно добавить выступающую резьбу, то это будет инструмент Additive helix - "Аддитивная спираль", если нужно нарезать резьбу в отверстии, то это будет инструмент Subtractive Helix - "Субтрактивная спираль". Здесь нужно указать шаг и длину резьбы и нажать кнопку "Выполнить".

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

Поэтому я создал страничку на GitHub с [калькулятором профиля зуба резьбы](https://bigbigmdm.github.io/Freecad_thread_calculator/).

Читать далее
Total votes 22: ↑22 and ↓0+32
Comments21

Создание 3D модели местности по видео с дрона

Reading time3 min
Views7.6K

В данной статье речь пойдет про видеограмметрию-создание 3d моделей объектов на основе видео. Видеограмметрия появилась давно, но до сих пор используется редко из-за необходимости в более мощном "железе", чем при построении 3d моделей местности/объектов с помощью лидаров. В 2024 году производительность ПК настолько выросла, что теперь можно в течении разумного времени строить модели на домашних компьютерах и даже ноутбуках. Сначала покажу, какие модели получились у меня, затем поделюсь лайфхаками, которые помогут сразу строить модели обходя технические сложности, а в конце расскажу чем видеограмметрия может быть полезна.

Читать далее
Total votes 14: ↑13 and ↓1+17
Comments24

Научились делать лабораторные высоковольтные источники питания

Level of difficultyEasy
Reading time2 min
Views8.2K

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

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

Активизация тематики производства высоковольтных блоков питания вновь произошла после того, как мы окрепли кадрами и пересмотрели концепцию. Теперь мы не стремимся всех догнать и перегнать, а просто реализуем проект из доступных на сегодня компонентов.

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

интересно узнать подробности
Total votes 43: ↑41 and ↓2+51
Comments27

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

Level of difficultyHard
Reading time118 min
Views2.9K

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

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (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
Views10K

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

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

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

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

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

Заметка про сохранение структур во flash памяти на STM32

Level of difficultyEasy
Reading time5 min
Views8.8K

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

Читать далее
Total votes 16: ↑14 and ↓2+19
Comments18

Что нового в IMSProg?

Level of difficultyEasy
Reading time2 min
Views3K

Пару месяцев назад я писал историю создания программатора микросхем CH341a для Linux систем. Благодаря вашим отзывам и комментариям программа изменилась, надеюсь в лучшую сторону.

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

Знакомимся с Artery. AT-START-F423 – пробуем и подключаем дальномер AJ-SR04M

Level of difficultyEasy
Reading time5 min
Views3.5K

Микросхемы микроконтроллеров от Artery выглядят достаточно интересным вариантом замещения STM. Больше всего подкупают своей доступностью для заказа. Отладок много, собраны качественно, шелкография качественная(по крайней мере на тех, которые я видел и держал в руках). Посмотрим, что производитель предлагает по поддержке со стороны программного обеспечения и IDE

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

Загружаем OpenIPC по сети на камеру без удаления заводской прошивки

Level of difficultyMedium
Reading time13 min
Views17K


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

Из дополнительных железок нам понадобится мультиметр, USB UART-адаптер на 3.3 вольта и dupont-проводки от макетной платы, чтобы подключиться к камере. Сегодня будем настраивать загрузку OpenIPC на камере с сервера вместо классической загрузки с микросхемы флэш-памяти. Если понравится, можно даже оставить работать камеру таким образом навсегда.

Особенно такой вариант будет удобен тем, кто разрабатывает программы для камеры, и нужно быстрым и удобным способом подкидывать в систему программы, модули ядра, менять ядро и саму корневую файловую систему. А также тем, кто использует камеру как одноплатный компьютер вместо плодово-ягодных плат.
Дальше о том, как заставить загружаться камеры с сервера по сети
Total votes 60: ↑60 and ↓0+60
Comments7

Как установить GOWIN EDA для запуска примеров Школы Синтеза

Level of difficultyMedium
Reading time4 min
Views5.2K

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

Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.

В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.

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

Биномиальный тест

Level of difficultyHard
Reading time11 min
Views4.9K

Вы когда-нибудь задавались вопросом, как узнать, насколько хорошо работает ваша рекламная кампания, ваш новый продукт или ваша стратегия игры? Например, если вы запустили рекламу на сайте и хотите узнать, увеличилась ли конверсия клиентов после этого. Или если вы выпустили новый вкус чипсов и хотите узнать, нравится ли он покупателям больше, чем старый. Или если вы играете в монетку и хотите узнать, не жульничает ли ваш соперник, подбрасывая монету с двумя орлами. Для всех этих ситуаций вам может пригодиться биномиальный тест!

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

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

Немного о времени

Level of difficultyMedium
Reading time7 min
Views15K

Title: The Time

Abstract: Some thoughts about The Time

«И колёса Времени
Стачивались в трении
(Всё на свете портится от трения),
И тогда обиделось Время —
И застыли маятники Времени.»

В.С. Высоцкий

Ход времени нельзя повернуть назад.

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

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

Такие вот случайно выхваченные из разных теорий его свойства. Иакое вот оно — это обидчивое время. Но дальше‑больше.

«На границе наблюдаемой Вселенной происходит нечто»,‑ считает Кэти Мак, астрофизик из Института теоретической физики Периметра в Канаде. «Вселенная расширяется после Большого взрыва, и это расширение растягивает время.

Читать далее
Total votes 11: ↑8 and ↓3+8
Comments43

Пишем Python-макрос для FreeCAD

Level of difficultyMedium
Reading time10 min
Views6.3K

В этой статье мы напишем макрос для FreeCAD, который из N+1 цилиндров создаёт симметричный барабан с N отверстиями, разберемся с азами модуля FreeCAD в Python, а ещё изучим теорию сдвига и вращения фигур в пространстве.

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

Использование скрытого потенциала: как я активировал Intel AMT на мини-ПК от HP и получил удаленный доступ

Reading time14 min
Views30K

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

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

Стартуем на ПЛИС, но сначала припаяем его с конструктором беспилотного автомобиля Zoox

Reading time13 min
Views15K

Однажды мне не спалось ночью и я залип на сайтах про паяльники. Возникло желание купить и сразу появились вопросы: на сколько ватт? Не больше 30? А почему большинство на 60-80 ватт? 60/40 олово свинец? А почему куча паяльных станций идут в комплекте с lead-free проводами припоя? Канифоль сейчас внутри проводов? А почему есть и провода припоя без канифоли? Бронзовую мочалку для очистки? А почему столько комплектов с и белой и бронзовой?

Вспомнил и повод, чтобы научиться паять. Когда-то Руслан Тихонов, руководитель кружка из Москвы, говорил мне что хочет сделать простые упражнения на платах ПЛИС для школьников. Как часть триады "микросхемы малой степени интеграции - ПЛИС - Ардуино". По этому поводу я купил самую дешевую плату с CPLD Altera MAX II (ныне это Intel FPGA), но обнаружил что у нее не припаян переходник.

Я выставил вопросы по паяльники на фейсбук и после оживленной дискуссии мой приятель Денис Никитин вызвался научить меня паять как полагается. Денис работает проектировщиком печатных плат в компании Zoox, ныне часть компании Amazon. Zoox делает беспилотные автомобили, то есть Денис на передовом рубеже паятельного прогресса. Я заснял мастер-класс от Дениса на видео:

Читать далее
Total votes 30: ↑27 and ↓3+32
Comments50

Aspia — бесплатная программа для удаленного управления ПК

Reading time10 min
Views53K

Aspia - это OpenSource приложение под лицензией GPL-3.0 для удаленного управления компьютерами внутри локальной сети и за её пределами благодаря реализации ID сервера для обхода NAT.

Не нашел на хабре актуальной информации об этом бесплатном аналоге таких программ как TeamViewer, Radmin, AmmyAdmin, AnyDesk, а та информация какая есть - уже не является актуальной, поэтому попробую восполнить данную пустоту.

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

Читать далее
Total votes 37: ↑36 and ↓1+44
Comments64

TeamViewer из подручных материалов

Reading time3 min
Views24K

Всем привет!

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

И так, у сотрудника техподдержки есть необходимость подключаться к рабочему столу пользователя, что бы совместно что-то сделать. Раз нет TeamViewer, значить надо использовать что-то похожее, например VNC.Тут же “выплывают” проблемы.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments56
1
23 ...

Information

Rating
Does not participate
Location
Протвино (Московская обл.), Москва и Московская обл., Россия
Date of birth
Registered
Activity