Pull to refresh
20
0
Send message

Домашняя масляная майнинг-ферма

Reading time21 min
Views62K

Это история одного моего хобби-проекта - создания встроенной в интерьер майнинг-фермы с видеокартами в масле, которая своим теплом отапливает лоджию.

Читать далее
Total votes 150: ↑146 and ↓4+187
Comments118

Как выбрать широкополосный модем для беспилотного летательного аппарата (БЛА) или робототехники

Reading time15 min
Views19K
Задача передачи большого объема данных с борта беспилотного летательного аппарата (БЛА) или наземной робототехники не редкость в современных приложениях. В данной статье рассматриваются критерии выбора широкополосных модемов и сопутствующие проблемы. Статья написана для разработчиков БЛА и робототехники.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments21

Что такое Strict Aliasing и почему нас должно это волновать? Часть 1

Reading time7 min
Views18K
(ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!)

Всем привет, уже через несколько недель мы запускаем новый поток по курсу «Разработчик С++». Этому событию и будет посвящен наш сегодняшний материал

Что такое strict aliasing? Сначала мы опишем, что такое алиасинг (aliasing), а затем мы узнаем, к чему тут строгость (strict).

В C и C ++ алиасинг связан с тем, через какие типы выражений нам разрешен доступ к хранимым значениям. Как в C, так и в C ++ стандарт определяет, какие выражения для именования каких типов допустимы. Компилятору и оптимизатору разрешается предполагать, что мы строго следуем правилам алиасинга, отсюда и термин — правило строгого алиасинга (strict aliasing rule). Если мы пытаемся получить доступ к значению, используя недопустимый тип, оно классифицируется как неопределенное поведение (undefined behavior — UB). Когда у нас неопределенное поведение, все ставки сделаны, результаты нашей программы перестают быть достоверными.

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



Чтобы лучше понять, почему нас должно это волновать, мы обсудим проблемы, возникающие при нарушении правил строго алиасинга, каламбур типизаций (type punning), так как он часто используется в правилах строгого алиасинга, а также о том, как правильно создавать каламбур, наряду с некоторой возможной помощью C++20, чтобы упростить каламбур и уменьшить вероятность ошибок. Мы подведем итоги обсуждения, рассмотрев некоторые методы выявления нарушений правил строго алиасинга.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments60

Про C++ алиасинг, ловкие оптимизации и подлые баги

Reading time6 min
Views42K
С удивлением обнаружил, что про явление алиасинга (aliasing) здесь постов нет. Ситуацию нужно исправить, тк. алиасинг в любой сколько-то сложной C++ программе обязательно хоть где-нибудь, да есть. Это может быть хорошо, давая возможность ловких оптимизаций, а может быть плохо, внося повышенной паршивости баги. Под катом вкратце про оба случая (ну и неизменное «компилятор бьет спина», конечно; для разнообразия сегодня это gcc).
Читать дальше →
Total votes 90: ↑89 and ↓1+88
Comments49

Препарируем дельфина: что внутри у Flipper Zero

Reading time12 min
Views44K
Для того, чтобы эффективно разрабатывать под Flipper, надо не только понимать, как писать код, но и понимать, что внутри у него.

На «больших» компьютерах есть куча уровней абстракции и аппаратных средств сделать жизнь пользователя и разработчика проще. В итоге, даже если вы пишете на голом С, вас все равно не волнует как конкретно по PCI передается информация, как работает система питания процессора и какая там микросхема используется для хранения BIOS/UEFI.



Тут все не так, слишком уж близко к железу происходит разработка. Статья — это краткий экскурс в то, как устроен Flipper с железной точки зрения. Поехали.
Читать дальше →
Total votes 152: ↑149 and ↓3+189
Comments85

ЧПУ, Arduino Uno и CoreXZ: как я собрал плоттер-головоломку

Reading time5 min
Views15K

Умелец собирает плоттер с ЧПУ из труб и показывает читателям, как он работает. А мы делимся этим материалом к старту курса по Data Science: проекты в науке о данных можно собирать подобным образом. Подробности о плоттере читайте под катом.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments7

ZVS генератор, сборка и принцип работы

Reading time2 min
Views37K

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

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

Фильтр Калмана: разбор навигационной системы БПЛА + исходный код

Reading time14 min
Views26K

В статье я бы хотел объяснить принципиальную разницу между фильтром Калмана (ФК) и классическими фильтрами, кратко рассмотреть преимущество выбранного ФК поделиться опытом использования данного ФК в во встраиваемой системе квадрокоптера для навигации на основе инерциального и ГНСС датчиков и поделиться исходным кодом с демкой для самостоятельного изучения.

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

Распознаём позу прямо в браузере в реальном времени

Reading time9 min
Views7.1K


Сегодня показываем и рассказываем, как прямо в браузере при помощи ИИ распознать сложную позу человека. Это пригодится, например, в разработке приложений для физических упражнений. Ранее с этой задачей не справлялись даже лучшие детекторы. За подробностями приглащаем под кат, пока у нас начинается флагманский курс Data Science.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments3

Многоканальный имитатор сигнала GPS на RFSoC

Reading time6 min
Views13K

Многоканальный имитатор GPS - зачем он нужен? Все знают, как используются одноканальные: для тестирования навигационных приемников при разработке и производстве, для обмана систем навигации в мирное и военное время. А зачем нужны многоканальные?

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

Тихая революция и новый дикий запад в ComputerVision

Reading time7 min
Views33K

Казалось бы, революция с Computer Vision уже была. В 2012 году выстрелили алгоритмы основанные на сверточных нейронных сетях. Года с 2014 они дошли до продакшна, а года с 2016 заполонили все. Но, в конце 2020 года прошел новый виток. На этот раз не за 4 года, а за один. поговорим о Трансформерах в ComputerVision. В статье будет обзор новинок, которые появились в последний год.

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

Оценивание пространственной ориентации, или Как не бояться фильтров Махони и Маджвика

Reading time14 min
Views28K

О чём речь


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

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

image
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments21

Как мы верифицированный полетный контроллер для квадрокоптера написали. На Ada

Reading time10 min
Views20K

Однажды на новогодних каникулах, лениво листая интернет, бракоделы в нашем* R&D офисе заметили видео с испытаний прототипа роботакси. Комментатор отзывался восторженным тоном – революция, как-никак. Но тренированное ухо расслышало в шуме с испытательной площадки еще кое-что. Контроллер скорости (штука для управления тягой винтов) сыграл мелодию при старте, как это любят делать пилоты дронов, которые часто используют полётный контроллер Betaflight. Неужели там бета-флайт? Ну, или какая-то из ее немногих разновидностей.

Перед глазами побежали флешбеки, где-то из глубин подсознания всплыла забытая уже информация о прошивках для Тойоты на миллионы тысяч строк Си и 2 тысячи глобальных переменных (Toyota: 81564 ошибки в коде).

После просмотра исходного кода Betaflight на гитхабе стало еще страшнее, и чем дальше, тем хуже. Это – управляющая программа для тяжелого устройства с острыми винтами, которое летает высоко, быстро. Становится страшно: игрушки это одно, но я бы не хотел летать, на таком такси. Но ведь можно иначе? Можно, решили мы! И решили это доказать. На Avito был куплен акробатический FPV-“квадрик” на базе STM32F405, для отладки – Discovery-платы для этого же контроллера, а дальше все как в тумане..

Читать далее
Total votes 70: ↑68 and ↓2+88
Comments58

Создание кубсата: часть первая. Техническая документация (корпус)

Reading time2 min
Views9.9K

Ноутбук осветил угол небольшой комнаты слепящим белым светом, красным загорелась подсветка на мыши. На рабочем столе горели две большие цифры: 5:59. Что ж, как всегда..

Первым делом я полез в гугл. И первым делом стал искать сайты не с информацией, а с возможностью купить детали для создания спутника. К примеру, isispace.nl или sputnix.ru Немало "удивившись" стоимости компонентов решил попытаться сделать спутник сам..

Читать далее
Total votes 8: ↑6 and ↓2+7
Comments25

Несеребряные пули или кратко про методы софтостроения

Reading time9 min
Views11K
Давайте пробежимся по способам софтостроения, придуманным примерно за 70 лет его существования. Их не так много, как может показаться. Но достаточно много, чтобы завести в тупик.
Читать дальше →
Total votes 16: ↑15 and ↓1+22
Comments8

Пластиковые сцинтилляторы – первый успех

Reading time4 min
Views17K


Пластиковые сцинтилляторы – это увлекательно. Они не особо эффективны для детекции гамма-излучения, но при этом дешевы, надежны и отлично подходят для обнаружения излучения частиц, при этом успешно различая альфа/бета/нейтронные лучи и не только.Такие сцинтилляторы можно отливать в любую форму и легко обрабатывать механически, благодаря чему они успешно применяются для специализированных детекторов, счетчиков и во многих других сферах.
Total votes 70: ↑70 and ↓0+70
Comments27

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

Reading time31 min
Views108K
Примерно в каждой второй теме на Хабре, касающейся космонавтики или электроники, всплывает тема радиационной стойкости. Через новости об отечественной космонавтике красной нитью проходит тематика импортозамещения радстойкой элементной базы, но в то же самое время Элон Маск использует дешевые обычные чипы и гордится этим. А изральтяне в «Берешите» использовали радстойкий процессор и тоже гордятся этим. Да и в принципе микроэлектронная отрасль в России живет по большей части за счет госзаказа с соответствующими требованиями. Наблюдение за регулярными спорами насчет того, как надо правильно строить спутники, показывает, что подготовка участников обычно невысока, а их аргументация отягощена стереотипами, случайно услышанными вырванными из контекста фактами и знаниями, устаревшими много лет назад. Я подумал, что читать это больше нет сил, поэтому, дорогие аналитики, устраивайтесь поудобнее на своих диванах, и я начну небольшой (на самом деле большой) рассказ о самых популярных заблуждениях на тему того, что такое радиационная стойкость интегральных микросхем.


Рисунок 1. Непременная красивая картинка про космическое излучение и хрупкую Землю.
Читать дальше →
Total votes 231: ↑230 and ↓1+229
Comments117

Мал, да удал: реальный взгляд на японский проект Minimal Fab

Reading time7 min
Views16K
16 мая в МИЭТ (Зеленоград) прошел уже традиционный семинар-встреча с японскими разработчиками и производителями компактной технологической линеек, так называемого Minimal Fab.


Предыдущий большой семинар проходил там же в 2017, и на youtube есть почти трехчасовая запись. Давно хотел написать большую заметку на эту тему, собрал много материала, а после этой встречи окончательно «дозрел». Все-таки живая встреча, с вопросами-ответами, гораздо эффективнее, чем изучение статей. К тому же, в последнее время появилось несколько статей, где эта линейка освещается однобоко, в каком-то восхищенном и не совсем адекватном ключе «восхищения». Давайте разбираться…
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments19

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

Reading time14 min
Views93K
Я работал в нашей космической промышленности достаточно долго (1983-1995, 2008-2012 годы). Когда читаешь статьи о наших неудачах, в них часто не видны основные действующие механизмы создания проблем.

Итак, я хотел бы начать это рассмотрение с принципа «фактической негативной селекции». Кому интересно – прошу под кат (много букв и никаких картинок).
Читать дальше →
Total votes 264: ↑245 and ↓19+226
Comments337

Введение в мир поддельных микросхем: методы обнаружения контрафакта

Reading time8 min
Views29K
Статья опубликована 23 декабря 2017 года

Введение


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

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

На подделках можно сказочно заработать. В исследовании рынка контрафакта говорится, что некоторые фирмы зарабатывают 2 миллиона долларов в месяц на продаже всего одного типа поддельных компонентов.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments52

Information

Rating
Does not participate
Location
Королев, Москва и Московская обл., Россия
Registered
Activity

Specialization

Specialist
Lead
C++
Applied math
Computer vision
Embedded system