Pull to refresh
8
0
Ераков Валерий @evkin

Java програмист

Send message

Методика нахождения потерь в обмотке дросселя вследствиe скин-эффекта и эффекта близости

Level of difficultyMedium
Reading time9 min
Views1.7K

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

Данные итерации к искомым показателям могут тянуться продолжительное время. Это может задержать дату завершения проекта и увеличить стоимость единицы изделия.

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

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

Курс лекций «Основы цифровой обработки сигналов»

Reading time12 min
Views180K
Всем привет!

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

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


Читать дальше →
Total votes 100: ↑100 and ↓0+100
Comments97

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

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

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

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

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

Command line interpreter на микроконтроллере своими руками

Reading time4 min
Views30K
В каждом разрабатываемом устройстве у меня присутствовал отладочный вывод в UART, как в самый распространённый и простой интерфейс.
И каждый раз, рано или поздно, мне хотелось помимо пассивного вывода сделать ввод команд через тот же UART. Обычно это происходило когда мне хотелось для отладки выводить какой-нибудь очень большой объём информации по запросу (например состояние NANDFLASH, при разработке собственной файловой системы). А иногда хотелось программно управлять ножками GPIO, чтобы отрепетировать работу с какой-нибудь переферией на плате.
Так или иначе мне был необходим CLI, который позволяет обрабатывать разные команды. Если кто-то натыкался на уже готовый инструмент для этих целей — буду благодарен за ссылку в комментариях. А пока я написал собствыенный.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments38

Затыкаем рот Windows 10

Level of difficultyHard
Reading time33 min
Views96K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

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

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Total votes 217: ↑207 and ↓10+197
Comments308

Project Loom. Не только виртуальные потоки

Level of difficultyHard
Reading time3 min
Views6.2K

Начиная с Java 19 нам доступны виртуальные потоки, которые отличаются от обычных, тем что умеют освобождать поток операционной системы во время блокирующих I/O операций. Для этого на уровне JVM был реализован механизм сохранения в хипе и восстановления из хипа стека вызова. Проще говоря, были реализованы полноценные корутины на уровне JVM.

И это небольшая революция, на которую мало кто обратил внимание. Само API для таких нативных корутин непубличное, доступно через класс jdk.internal.vm.Continuation, в котором есть методы yield() и run() для сохранения и восстановления стека вызова соответственно. Но получить доступ до него несложно, нужно лишь добавить пару аргументов в строку запуска JVM (либо воспользоваться инструментом, который позволяет обходить ограничения JPMS).

Поэтому представляю свою небольшую библиотеку для доступа к нативным корутинам на Java: https://github.com/Anamorphosee/loomoroutines.

Читать далее
Total votes 26: ↑21 and ↓5+16
Comments20

Паяльная станция «Магистр НеоТерм-3Т». Что внутри?

Level of difficultyEasy
Reading time4 min
Views13K

Вы любите паять? А я очень! В любом занятии важен инструмент. Вот и пайка не исключение. А если работать с другом, то всё становится гораздо интереснее и веселее. Сегодня познакомимся со станцией «НеоТерм-3Т», заглянем внутрь. Узнаем простое, но эффективное и красивое схемное решение и некоторые забавные, но весьма удобные хитрости пайки.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments76

Система водяных «тёплых полов» в квартире и частном доме. Что нужно знать, чтобы не пожалеть о содеянном?

Reading time16 min
Views61K

«Тёплые полы» в квартирах- это модная тема в ремонте ещё с 1990-х.

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

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

Кто тут прав?

Читать далее
Total votes 112: ↑108 and ↓4+104
Comments334

О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них

Reading time15 min
Views98K
DIY посвящается...

Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!

Читать дальше →
Total votes 115: ↑114 and ↓1+113
Comments194

Реализация многофункционального терминального интерфейса для МК AVR

Reading time29 min
Views3.8K

В данной статье речь пойдёт о разработке многофункционального терминального интерфейса для МК (на примере МК Atmega32 и терминала HyperTerminal. Многофункциональность в моём случае будет заключаться в обработке управляющих символов и управляющих последовательностей с целью реализации не только командного функционала, но и истории вводимых команд. Я постараюсь максимально приблизить свой интерфейс к интерфейсу командной строки Windows. Большая часть статьи - подробный комментарий программного кода, который может быть доступен даже начинающим в программировании. Никакого ООП нет - только элементы языка Си.

Читать сначала
Total votes 9: ↑9 and ↓0+9
Comments5

Самодельный симмер для ламп накачки лазеров

Level of difficultyMedium
Reading time2 min
Views6.4K


Для накачки активных элементов импульсных твёрдотельных лазеров часто применяют импульсные ксеноновые лампы накачки. Срок службы таких ламп увеличивается, если в них постоянно держать зажжённую дугу. Устройство, создающее дугу в лампе, называют симмером. Вариант исполнения самодельного симмера и будет представлен в этой статье.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments23

Симулятор электронных схем Qucs-S: обзор новшеств версии 2.1.0

Reading time6 min
Views13K

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. Для работы Qucs рекомендуется использовать также открытый движок моделирования Ngspice. Первый релиз Qucs, на котором основан Qucs-S, состоялся в 2003 году. В декабре этого года программе исполняется 20 лет. Актуальным релизом Qucs-S на текущий момент является версия 2.1.0. Далее будет рассказано о функциях, добавленных в релизах, вышедших в этом году.

Осторожно! Далее имеются анимированные GIF.

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

Диспетчер Задач для Микроконтроллера

Level of difficultyEasy
Reading time7 min
Views10K

В программировании микроконтроллеров часто нужно написать простые тестировочные прошивки. При этом надо некоторые функции вызывать чаще, а некоторые реже. Для этого, конечно, можно запустить FreeRTOS, однако тогда этот код не будет переносим на другие RTOS например Zephyr RTOS или TI-RTOS. Поэтому надо держать наготове какой-нибудь простенький NoRTOS планировщик.

В этот тексте я представил основные идеи алгоритма такого кооперативного планировщика.

Читать далее
Total votes 26: ↑24 and ↓2+22
Comments26

Разработан инструмент, позволяющий художникам «отравлять» свой контент для ИИ

Reading time4 min
Views12K

С тех пор, как год назад вышел ChatGPT, индустрия генерации цифрового контента находится в суматохе. Всех постепенно начинает вытеснять ИИ. Ряд художников, авторов, исполнителей, и даже звукозаписывающие компании подали многочисленные иски против компаний, занимающихся искусственным интеллектом, в основном против OpenAI. Все они касаются одного: обучающих данных. Компании ходят по всему интернету и собирают миллиарды фрагментов текста/звука, а также миллионы изображений в дата-сеты для тренировки своих моделей ИИ. Естественно, авторам или владельцам контента за это никто не платит, и их даже вообще никак не нотифицируют. Развитие технологии превыше всего.

Чтобы пресечь такой сбор данных, Reddit и X этим летом запретили доступ к своим API сторонним приложениям. Но обычные дизайнеры и цифровые художники не имели никакой возможности противостоять использованию их работ для обучения новых коммерческих ИИ. Теперь в их руках появляется более радикальный инструмент: система Nightshade. Которая отравляет любое изображение, которое ИИ просканировал без твоего разрешения.

Читать далее
Total votes 32: ↑29 and ↓3+26
Comments33

Электролизер для домашней мастерской

Level of difficultyMedium
Reading time10 min
Views14K

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

Электролизер - обычного, классического принципа действия и не претендует на волшебные параметры позволяющие задействовать его для отопления или питания ДВГ автомобиля. КПД прибора меньше 1.0 - энергии на получение горючего газа тратится больше, чем получается при его сжигании.

Структура прибора

Электролизер для получения гремучего газа не является и весьма простым аппаратом превращающим воду в горючее - это сложный прибор, требующий расходных материалов (ряд химикатов, электричество), внимания и регулярного обслуживания. Необходимо хорошо представлять процессы, происходящие в электролизере, способы и средства для изменения параметров прибора. Кроме самого реактора - емкости с электродами разлагающими воду из электролита, электролизер должен быть снабжен рядом дополнительных аппаратов для очистки и осушения газа, обогащения его углеводородами (важно при сварке, пайке стекла), блоком питания с автоматикой поддерживающей рабочий режим и устройствами безопасности (Рис. 2).  

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

Разработка универсального сетевого стабилизированного источника питания

Reading time16 min
Views15K

Одна из самых популярных микросхем ШИМ для источников питания – это TL494. Именно на ней и построен мой универсальный преобразователь, который использую для питания различных самодельных устройств.

А не почитать ли мне про это..?
Total votes 36: ↑36 and ↓0+36
Comments36

Библиотека libopencm3: Быстрый старт (Часть 2). Работа с GPIO, SPI, отладка проекта при помощи GDB

Level of difficultyMedium
Reading time16 min
Views3.9K

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

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

Создаем проект STM32 C++ FreeRTOS в vscode для очень маленьких

Level of difficultyEasy
Reading time4 min
Views10K

Жил себе спокойно, писал кодик в Keil и не парился. Писал изначально на СИ, но кода становилось все больше, а я все ленивее, перешел на С++ и ARM Compiler V6,19. Но пришел к тому что простых прерываний в таймере стало не достаточно, даже можно сказать не правильный подход. Задался желанием подключить какую-нибудь ОС. Выбор пал на FreeRTOS. Довольный, скачиваю операционку, подтягиваю файлы к проекту на плюсах, и получаю кучу ошибок. Попытка их устранить не увенчалась успехом. Вспомнил что есть CubeMX и там можно сгенерировать проект с уже подключенным freertoos. Проверил, 5-ым компилятором и языком СИ, проект отлично собирается, но как только переименовываем main.c в .cpp и выбираем компилятор 6,19, получаем кучу ошибок на ядро ОС, на определение inline и т.п. Так я и не смог подружить подружить ОС и C++ в Keil. Пришлось заменить среду разработки, изначально выбор пал на CubeIDE, все отлично дружится и собирается, но в душе оставались сомнения. В итоге финальным выбором стал vscode, далее опишу как создать проект именно в нем.

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments4

Cross-Detect для Проверки Качества Пайки в Электронных Цепях

Level of difficultyMedium
Reading time27 min
Views5K

Как известно электроника это наука о контактах. При этом в реальной разработке контакты часто отсутствуют или не там, где нужно.

Вот пришла электронная плата с производства. Как убедиться, что на этой конкретной плате всё корректно с контактами?

Для этого нужна какая-то технология. Назовем её Cross-Detect.

Читать далее
Total votes 21: ↑16 and ↓5+11
Comments152

Jackson ObjectMapper Streaming API без возни

Level of difficultyEasy
Reading time2 min
Views4.6K

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

mapper.readValue(inputStream,Model.class)

В итоге если модель большая маппер ее всю в памяти построит за раз, прочитав опять же весь json из стрима. Хуже когда даже json сначала в строку читают конечно. Потом приходит очередной ругатель и заявляет, что это java виновата. Что бы этого не делать, придумали ObjectMapper Streaming API. Что то вроде такого:

while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
if ("name".equals(fieldname)) {
jParser.nextToken();
parsedName = jParser.getText();
}

Но фактически руками парсить json это тоже головняк. Есть хак, который позволяет и модели сразу получать и стриминг использовать. Может кому пригодится.

Читать далее
Total votes 11: ↑1 and ↓10-9
Comments22
1
23 ...

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity