Pull to refresh
1
@raalevikread⁠-⁠only

User

Send message

Векторное управление для асинхронного электродвигателя «на пальцах»

Reading time9 min
Views134K

В предыдущей статье «Векторное управление электродвигателем «на пальцах» рассматривалась векторная система управления для синхронных электродвигателей. Статья получилась большой, поэтому вопрос про асинхронные электродвигатели (induction motors) был вынесен в отдельную публикацию. Данная статья является продолжением предыдущей и опирается на приведенные там объяснения принципов работы электродвигателей. Она расскажет об особенностях работы асинхронного двигателя применительно к векторному управлению, а также покажет отличия в структуре векторной системы управления между синхронной и асинхронной машиной.
Как работает асинхронный электродвигатель? Наиболее популярное объяснение говорит что-то типа «статор создает вращающееся магнитное поле, которое наводит ЭДС в роторе, из-за чего там начинают течь токи, в результате ротор увлекается полем статора и начинает вращаться». Лично я от такого объяснения всю физику процесса понимать не начинаю, поэтому давайте объясню по-другому, «на пальцах».
Читать дальше →

ARM-ы для самых маленьких

Reading time8 min
Views209K


Пару дней назад я опубликовал и потом внезапно убрал в черновики статью о плане написать про создание своей ОС для архитектуры ARM. Я сделал это, потому что получил много интересных отзывов как на Хабре, так и в G+.

Сегодня я попробую подойти к вопросу с другой стороны, я буду рассказывать о том, как программировать микроконтроллеры ARM на нарастающих по сложности примерах, пока мы не напишем свою ОС или пока мне не надоест. А может, мы перепрыгнем на ковыряние в Contiki, TinyOS, ChibiOS или FreeRTOS, кто знает, их там столько много разных и интересных (а у TinyOS еще и свой язык программирования!).

Итак, почему ARM? Возиться с 8-битными микроконтроллерами хотя и интересно, но скоро надоедает. Кроме того, средства разработки под ARM обкатаны долгим опытом и намного приятнее в работе. При этом, начать мигать светодиодами на каком-то «evaluation board» так же просто, как и на Arduino.

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

Просто о make

Reading time6 min
Views483K
Меня всегда привлекал минимализм. Идея о том, что одна вещь должна выполнять одну функцию, но при этом выполнять ее как можно лучше, вылилась в создание UNIX. И хотя UNIX давно уже нельзя назвать простой системой, да и минимализм в ней узреть не так то просто, ее можно считать наглядным примером количество- качественной трансформации множества простых и понятных вещей в одну весьма непростую и не прозрачную. В своем развитии make прошел примерно такой же путь: простота и ясность, с ростом масштабов, превратилась в жуткого монстра (вспомните свои ощущения, когда впервые открыли мэйкфайл).

Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом 'пережитке прошлого' (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
Читать дальше →

Как установить и использовать ИИ модель DeepSeek R-1 на вашем компьютере

Level of difficultyMedium
Reading time6 min
Views193K

Многие говорят о DeepSeek R-1 - новой языковой ИИ-модели с открытым исходным кодом, созданной китайской ИИ-компанией DeepSeek. Некоторые пользователи утверждают, что по возможностям рассуждения она не уступает или даже превосходит модель o1 от OpenAI.

В настоящее время DeepSeek можно использовать бесплатно, что является отличной новостью для пользователей, но вызывает некоторые вопросы. Как при таком резком росте числа пользователей они справляются с затратами на сервера?

Ведь эксплуатационные расходы на оборудование не могут быть дешевыми, верно?

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

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

Читать далее

Пишем приложение для SIM-карты

Level of difficultyHard
Reading time12 min
Views29K
Приветствую всех!

Думаю, многим из вас доводилось слышать такое утверждение, что SIM-карта — по сути полноценный специализированный компьютер. А раз симка — это компьютер, то, очевидно, должен быть и софт для него. Как насчёт попробовать что-нибудь написать и заставить это работать прямо на карте? Давайте разбираться.



Итак, в сегодняшней статье поговорим про эту довольно редко упоминающуюся сторону сотовой связи. Узнаем, как писать приложения, чтобы они запускались на всех телефонах, от Nokia 3310 до последних айфонов. Попутно выясним, как загружать их в SIM-карты и насколько сложно это сделать, и, конечно же, напишем наш первый апплет. Традиционно будет много интересного.
Читать дальше →

Как перенести Linux Device Drivers на современные ядра

Reading time13 min
Views6.5K

Наверное, каждый разработчик рано или поздно задумывается о том, что же происходит в операционной системе на уровне ядра. Для ОС на базе ядра Linux относительно простой точкой входа является написание своих модулей. Модули по своей сути — это драйверы устройств (символьные char device, блочные block device, сетевые network device и другие).

В книге Linux Device Drivers (LDD) подробно описано, как создать свой модуль ядра для интересующего класса устройств. Однако эта книга очень устарела, поскольку в ней рассматриваются случаи, справедливые для ядра версии 2.X.X. А в 2025 году третьему изданию Linux Device Drivers исполняется 20 лет!

На сегодняшний день большинство устройств используют ядра 5.X.X или 6.X.X, в которых многое изменилось. Так и появилась идея этой статьи — адаптировать информацию из LDD под современные ядра.

Под катом рассмотрим следующие классы устройств: char device, block device и network device.

Читать далее

С++ — это настоящий кайфǃ

Level of difficultyEasy
Reading time18 min
Views45K

Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».

Например, я писал маленькую игру-«рогалик». У меня была такая идея: «Готов поспорить, что у меня получиться воспользоваться этим вашим алгоритмом Дейкстры для соединения комнат при генерировании карты, сначала инвертируя карту, а потом его запуская. Вероятно, мне удастся прокопать отличнейшие туннели между комнатами». То было благословенное время, когда я пытался справиться с этой задачей, и при этом не чувствовал, что C++ мне мешает. Мне тогда удалось решить эту задачу, попутно многому научившись. Потом у меня появилась такая мысль: «Интересно, получится мне взять пользовательский интерфейс, сделанный на FTXUI, и просто напрямую его отрендерить в окно визуализации SFML?». Как и следовало ожидать, у меня всё отлично получилось. И хотя это было не так уж и сложно, я по ходу дела много узнал о том, как в C++ обрабатывается юникод. Ни одна из этих задач лёгкой не была, но все их, в принципе, можно было решить, и я не могу напридумывать себе достаточно много «подводных камней», которыми C++ мог бы помешать мне сделать то, что я хочу. Это — то, что я называю «удовольствием».

Читать далее

50 исследований на тему нейросетей, которые помогут вам стать ИИ-инженером от бога

Reading time9 min
Views17K

В этом дайджесте мы собрали 50 знаковых научных работ в области ИИ за последние годы. Подборка охватывает десять ключевых направлений разработки нейросетей: от промтинга и проектирования бенчмарков до файнтюнинга и компьютерного зрения. 

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

Читать далее

Сложно о простом. Как работает интернет. Часть 1. Что такое коммутатор, маршрутизатор и примеры работы простых сетей

Level of difficultyEasy
Reading time14 min
Views78K

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

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

Читать далее

Разработка своего устройства от А до Я. Часть 1: От концепции до макета

Reading time10 min
Views26K

Задумывались ли вы когда-нибудь о том, чтобы разработать собственное электронное устройство, но не знали, с чего начать? Тогда приглашаем вас к прочтению данной статьи, в которой мы постараемся осветить весь процесс создания своего электронного устройства – от концепции до реального девайса на примере хобби-проекта одного из наших сотрудников. Статья разделена на две части и имеет следующий план:


  • Часть 1: От концепции до макета
    • Что такое электронное устройство
    • Концепция устройства
    • Функциональная схема
    • Принципиальная схема
    • Закупка компонентов
    • Макетирование и симуляция устройства
  • Часть 2: Создание устройства
    • Разработка печатной платы
    • Разработка корпуса и оснасток
    • Верификация и исправление ошибок
    • Отправка платы на производство
    • Создание корпуса
    • Сборка и отладка устройства

Далее повествование будет вестись от лица сотрудника.

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

Разработка своего устройства от А до Я. Часть 2: Создание устройства

Reading time12 min
Views42K

Разработка своего устройства от А до Я. Часть 2: Создание устройства


image


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


  • проработка концепции устройства;
  • разработка функциональной схемы;
  • разработка принципиальной схемы;
  • закупка компонентов;
  • макетирование и симуляция устройства.

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

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

Как установить Windows 11

Level of difficultyEasy
Reading time10 min
Views167K

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

Читать далее

Понимание алгоритма БПФ

Reading time7 min
Views119K
Здравствуйте, друзья. Уже завтра стартует курс «Алгоритмы для разработчиков», а у нас остался один неопубликованный перевод. Собственно исправляемся и делимся с вами материалом. Поехали.

Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов обработки сигналов и анализа данных. Я пользовался им годами, не имея формальных знаний в области компьютерных наук. Но на этой неделе мне пришло в голову, что я никогда не задавался вопросом, как БПФ так быстро вычисляет дискретное преобразование Фурье. Я стряхнул пыль со старой книги по алгоритмам, открыл ее, и с удовольствием прочитал об обманчиво простой вычислительной уловке, которую Дж. В. Кули и Джон Тьюки описали в своей классической работе 1965 года, посвященной этой теме.



Цель этого поста — окунуться в алгоритм БПФ Кули-Тьюки, объясняя симметрии, которые к нему приводят, и показать несколько простых реализаций на Python, применяющих теорию на практике. Я надеюсь, что это исследование даст специалистам по анализу данных, таким как я, более полную картину того, что происходит под капотом используемых нами алгоритмов.
Читать дальше →

Игра Жизнь и преобразование Фурье

Reading time5 min
Views62K
Многие слышали о великом и ужасном быстром преобразовании Фурье (БПФ / FFT — fast fourier transform) — но как его можно применять для решения практических задач за исключением JPEG/MPEG сжатия и разложения звука по частотам (эквалайзеры и проч.) — зачастую остается неясным вопросом.

Недавно я наткнулся на интересную реализацию игры «Жизнь» Конвея, использующую быстрое преобразование Фурье — и надеюсь, оно поможет вам понять применимость этого алгоритма в весьма неожиданных местах.
Читать дальше →

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

Reading time65 min
Views38K

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

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

Прикоснуться к сокровищнице языка С++

C++20 в bare-metal программировании, работа с регистрами микроконтроллеров Cortex-M

Level of difficultyMedium
Reading time43 min
Views15K

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

Статья предполагает, что читатель имеет базовые знания программирования bare-metal систем и языка С++, в том числе и современных стандартов. Это означает, что совсем базовые пояснения выходят за рамки этой статьи.

Читать далее

Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32

Reading time9 min
Views12K

Введение


Модель дисплея называется H016IT01. Данный дисплей интересен прежде всего тем, что он является трансфлективным(transflective). Это означает, что изображение на нем должно быть видно даже под ярким солнцем. А также это чуть ли не единственная доступная модель с этой особенностью на известном китайском сайте.

Статья же увидела свет потому, что информации по контроллеру SSD1283A очень мало(как в русском, так и западном сегменте сети), и руководства я нигде не встречал. В сети можно найти даташит, однако там нет информации по инициализации и работе с дисплеем, а из полезного только описания регистров.

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

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

Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля метапрограммирования

Reading time9 min
Views24K

Введение


Внимание, это не очередная «Hello world»статья о том как помигать светодиодом или попасть в свое первое прерывание на STM32. Однако, я постарался дать исчерпывающие объяснения по всем затрагиваемым вопросам, поэтому статья будет полезна не только многим профессиональным и мечтающим стать таковыми разработчикам (как я надеюсь), но и начинающим программистам микроконтроллеров, так как тема эта почему-то обходится стороной на бесчисленных сайтах/блогах «учителей программирования МК».

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

Помоги компилятору помочь тебе

Reading time18 min
Views55K

Предисловие


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


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


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

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

10++ способов работать с аппаратными регистрами на С++ (на примере IAR и Cortex M)

Reading time13 min
Views20K
Choosing the safest path
Рис. И. Кийко

Всем доброго здравия!

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

Примерно в том же ключе я хочу продолжить обсуждение использования С++ для микроконтроллеров и рассмотреть способы как можно работать с регистрами используя С++. И хочу заметить, что для достижения безопасного обращения к регистрам простого пути не будет. Попытаюсь показать все плюсы и минусы способов. Если вы знаете еще способы, кидайте их в комментарии. Итак начнем:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity