Pull to refresh
2
0
Рустам Хабибуллин @premierhr

Пользователь

Send message

Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: проект программируемой логики

Level of difficultyHard
Reading time20 min
Views4.9K

Привет, Хабр! Меня зовут Павел Панкратов, я ведущий инженер-программист в дивизионе искусственного интеллекта YADRO. Этим текстом я запускаю цикл статей — экскурс в особенности работы с SoC, комбинирующей в себе реализованные в «железе» аппаратные блоки (Hard IP’s) и программируемую логику (Soft IP’s). Основная задача, которая объединит все три статьи, — параллельный запуск встраиваемой операционной системы на двух различных по архитектуре процессорах, представленных в виде Hard и Soft IP-блоков.

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

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

Мультитул для разработчика электроники

Level of difficultyEasy
Reading time12 min
Views21K

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

Идея понятна - заменить генераторы частоты, терминалы RS-485 и CAN одним самодостаточным прибором. В этой статье расскажу о том, что за девайс я собрал.

Читать далее
Total votes 33: ↑31 and ↓2+41
Comments17

Самостоятельно добавляем динамическую подсветку Ambilight на свой телевизор или монитор

Reading time6 min
Views17K

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

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

Обзор основных возможностей инструмента SimPCB для расчета параметров линий передач в программе Delta Design

Level of difficultyMedium
Reading time5 min
Views710

В.С. Кухарук, В.А. Ухин, Д.С. Коломенский, О.В. Смирнова

В статье рассматриваются основные возможности инструмента SimPCB в составе Delta Design. Выделяются его преимущества над аналогичными программными реализациями.

Одним из ключевых элементов в конструкции печатной платы (ПП) является линия передачи (ЛП). Эта система прямых и возвратных проводников, расположенных в непосредственной близости друг от друга и формирующих единое электромагнитное поле. Управление параметрами ЛП на ПП позволяет минимизировать потери, связанные с деградацией целостности сигналов и ЭМС. [1]

Для обеспечения надежной работы высокоскоростных и высокочастотных электронных устройств необходимо контролировать параметры ЛП. ЛП - это не только сигнальный трек, расположенный на одном слое, внешнем или внутренним, как представляют его большинство систем автоматизированного проектирования (САПР), но и контактные площадки (КП) компонентов, переходные отверстия (ПО). Параметры КП возможно учесть, представив их через обычные структуры ЛП. Это будет или микрополосковая, копланарная или копланарная микрополосковая ЛП без маски. Расчет ПО полностью отсутствует, а их параметры выбираются, как правило, из технологических возможностей производства. В результате межслойный переход становится неоднородностью на пути следования сигнала и может привести к серьезному снижению его качества.  

Инструмент SimPCB, входящий в состав программы Delta Design, кардинально отличается от программ подобного назначения. SimPCB дает возможность рассматривать ЛП более полно, так как позволяет вычислять параметры не только ЛП в привычном их понимании, но и ПО. Следует отметить еще раз, что во всех современных зарубежных САПР печатных плат таких, как Altium Designer, PADS, VX и другие, не реализован расчет первичных и вторичных электрических параметров межслойных переходов, что в значительной степени может негативно повлиять на качество разработки, особенно высокочастотных устройств.  

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

Проектная, конструкторская или технологическая документация. Основные системы стандартов

Level of difficultyMedium
Reading time8 min
Views6.5K

Правовая основа стандартизации в России заложена в ст. 71 Конституции Российской Федерации — «В ведении Российской Федерации находятся: … р) метрологическая служба, стандарты, эталоны, метрическая система и исчисление времени; геодезия и картография; наименования географических объектов; метеорологическая служба; официальный статистический и бухгалтерский учет; …»

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

— Федеральный закон «О стандартизации в Российской Федерации» от 29.06.2015 N 162-ФЗ;
— Федеральный закон «О техническом регулировании» от 27.12.2002 N 184-ФЗ.

Читать далее
Total votes 2: ↑2 and ↓0+3
Comments24

Новый принтер из Anycubic Mega S

Level of difficultyEasy
Reading time7 min
Views3.2K

Улучшение принтера Anycubic Mega S!

Установка новый драйверов шаговых двигетелей, замена держателя экструдера на AI3M X-Carriage, печать с ABS.

Установка и настройка Klipper-а с внешним экраном для управления принтером.

---------------------------------------

Года 3 назад я купил свой первый 3д принтер. Не очень долго смотрел и читал форумы, но часто попадался производитель Anycubic и конкретная модель Mega i3 S: данная модель была идеальным экземпляром соотношения цены и качества.

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

Почти все, что вы хотели бы знать про Docker

Level of difficultyEasy
Reading time11 min
Views59K

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

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

Читать далее
Total votes 65: ↑60 and ↓5+65
Comments57

Работа с YOLOV8. Детекция, сегментация, трекинг объектов, а также подготовка собственного датасета и обучение

Level of difficultyMedium
Reading time26 min
Views10K

Если вам кажется, что начать работу с нейросетями - это сложно, то этот материал для вас!

В статье подробно, с примерами кода, разберем основные функции базовой модели YOLOV8 - детекция, сегментация, трекинг объектов, а также создание собственного датасета и дообучение нейросети для работы с собственными объектами!

Читать далее
Total votes 15: ↑15 and ↓0+19
Comments6

PyQt6 — полное руководство для новичков. Продолжение

Reading time35 min
Views55K

В первом материале мы рассказали о создании первого окна, о сигналах, слотах и событиях, а также о виджетах. Сегодня, к старту курса по Fullstack-разработке на Python, делимся продолжением — о макетах, работе с панелями инструментов и меню при помощи QAction, дополнительных и диалоговых окнах. За подробностями приглашаем под кат.

1. Макеты

2. Панели инструментов, меню и QAction

3. Диалоговые окна и окна предупреждений

4. Дополнительные окна

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

Разглядывая JTAG: самый быстрый программный JTAG на Arduino

Level of difficultyMedium
Reading time26 min
Views10K

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

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

Субъективно, практическое применение программного JTAG мне по‑прежнему видится не вполне оправданным.
Но, во‑первых, это хороший повод рассмотреть предельные возможности микроконтроллеров.
А во‑вторых, есть формальная причина сказать, что в данной статье предлагается Решение Прикладной Задачи :)

Итак, сегодня мы поговорим про прерывания, поллинг и прочее. А протокол JTAG станет фоном для повествования.

jmp start
Total votes 40: ↑40 and ↓0+55
Comments30

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views13K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.


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

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Читать дальше →
Total votes 65: ↑63 and ↓2+80
Comments13

Ускорение MicroPython

Reading time4 min
Views26K
MicroPython — реализация языка программирования Python для микроконтроллеров, даёт возможность аудитории этого языка, используя знакомый синтаксис и принципы программирования работать с небольшими вычислительными устройствами.

В своей работе я использую MicroPython для прототипирования, быстрой проверки идей и для создания небольших стендов. Благодаря REPL и простому синтаксису MicroPython также отлично подходит для DIY проектов и для обучения программированию.

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

Но в некоторых аспектах, скорость работы и время реакции важно и встаёт вопрос о целесообразности использования MicroPython. Поэтому я провел небольшое исследование, на которое меня вдохновило видео с выступления создателя MicroPython Damien George. Мне стало интересно как быстро программа, написанная на Micropython будет реагировать на входное воздействие.

Подопытным устройством будет микроконтроллер ESP8266, на плате NodeMcu с MicroPython версии esp8266-2018511-v1.9.4 на борту.


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

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

Level of difficultyHard
Reading time127 min
Views12K

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

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

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

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

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

Как создать простой LoRa мессенджер: обмен зашифрованными текстовыми сообщениями между устройствами без интернета

Level of difficultyMedium
Reading time30 min
Views14K

В современном мире IoT, когда связь в отдаленных районах становится все более актуальной, технология LoRa (Long Range) предоставляет нам возможность создать дальнобойный, надежный, энергоэффективный и зашифрованный канал связи без необходимости иметь какую-либо сетевую инфраструктуру. 

В этой статье мы рассмотрим, как создать простой LoRa мессенджер с использованием своего протокола обмена и готовых модулей, работающих в режиме P2P (peer-to-peer) – не идеального, но интересного решения для обмена текстовыми сообщениями в условиях ограниченной инфраструктуры.

Для упрощения и автоматизации процесса обмена сообщениями мы воспользуемся Node-RED. Этот инструмент, помимо реализации основной логики обмена сообщениями, также предоставит графический интерфейс для мессенджера, что сделает процесс более доступным и интуитивно понятным. 

Выглядеть будет просто, потому что воспользуемся всем готовым :)

Свистать всех наверх!
Total votes 25: ↑23 and ↓2+27
Comments36

api2app — быстрое создание графического интерфейса для API

Level of difficultyEasy
Reading time3 min
Views19K

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

При помощи api2app можно быстро создать графический интерфейс для API. Его можно использовать для тестирования или демонстрации работы вашего API. Созданным приложением можно поделиться со всеми желающими или использовать по приватной ссылке.

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

«Отучаем» WinFXNet от жадности (часть 1)

Level of difficultyEasy
Reading time18 min
Views11K

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу
Total votes 87: ↑82 and ↓5+90
Comments28

Microsoft отозвала сертификаты драйверов устройств — последствия для пользователей

Level of difficultyEasy
Reading time5 min
Views39K

Если после установки накопительных обновлений безопасности Windows 10 (разных, актуальных версий) вышедших в июле 2023 года и позже вы столкнулись с проблемой в работе (сетевых) устройств - предлагаю ознакомится с данной статьёй. Здесь изложена причина появления ошибки с кодом 39, ссылающейся на невозможность использования драйвера устройства в связи с отсутствующей (отозванной) цифровой подписью.

Читать далее
Total votes 34: ↑28 and ↓6+33
Comments62

Учимся создавать простых ботов или туториал по библиотеке TeleBot

Level of difficultyEasy
Reading time9 min
Views50K

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

Бегу изучать ботов
Total votes 6: ↑5 and ↓1+5
Comments10

Об импортозамещении MATLAB/Simulink на примере модели динамики авиационного средства поражения

Level of difficultyMedium
Reading time6 min
Views12K

Когда-то давно меня попросили разработать модель динамики полета АСП (авиационного средства поражения) в отечественном ПО, в среде SimInTech, причем разработать не с нуля, а тупо повторив уже созданную ранее модель в Матлабе (с Симулинком), и любезно выложенную в публичный доступ на гитхабе.

Я подумал - почему бы и нет, ведь в Симинтеке есть практически все требуемые блоки, а каких нет, я доработаю по образу и подобию. Без погружения в детали, в конце концов так оно и вышло. Но мне справедливо возразили - а чем докажешь, что твоя модель считает в точности так же, в динамике, как и исходная матлабовская модель?

Читать далее
Total votes 69: ↑50 and ↓19+44
Comments44

Малоизвестные и интересные особенности C и C++

Level of difficultyMedium
Reading time43 min
Views48K

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Total votes 127: ↑126 and ↓1+159
Comments61

Information

Rating
Does not participate
Location
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity