Pull to refresh
50
2
Сергей Новиков @Pisikak

Embedded-разработчик

Send message

Нескучный туториал по NumPy

Reading time19 min
Views246K
Меня зовут Вячеслав, я хронический математик и уже несколько лет не использую циклы при работе с массивами…

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

Не забываем про

import numpy as np

и поехали!
Читать дальше →

Перспективы 6G и системный подход к мобильным сетям — что почитать

Level of difficultyEasy
Reading time6 min
Views580

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

Читать далее

Драйвер фитолампы с фотодатчиком и таймером отключения на жесткой логике

Level of difficultyMedium
Reading time8 min
Views5.2K
image

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

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

А что из этого получилось, вы можете узнать под катом.
Читать дальше →

FFmpeg компоненты — назначение, входные/выходные данные, настройка

Level of difficultyMedium
Reading time30 min
Views2.5K


Исторически сложилось так, что автору в течение достаточно длительного периода приходилось разрабатывать мультимедийную поддержку для Windows-приложений. Вначале использовался DirectShow, но в какой-то момент произошло знакомство с проектом FFmpeg, который привлек своей мощью, универсальностью и гибкостью. В процессе работы с FFmpeg было написано немало кода: обертка на C++ для FFmpeg API, а также ряд утилит и GUI решений для .NET. Когда эти результаты достигли определенной степени зрелости, возникло желание поделиться ими с программистским сообществом и заодно изложить свое понимание архитектуры FFmpeg и компьютерного мультимедиа вообще.

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

ПИД vs Интеллектуальные системы

Level of difficultyMedium
Reading time9 min
Views3.2K

Циклы управления на основе ПИД контролируют большинство автоматизированных процессов на промышленных предприятиях. Алгоритм пропорционально-интегрально-дифференциального (ПИД) регулирования прост, надёжен и за последние 50 лет применялся в сотнях тысяч систем управления.

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

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

AStar Pathfinding для агентов различного размера с использованием пространственного хэширования

Level of difficultyMedium
Reading time10 min
Views762

Наверное, большинству людей, связанных с программированием игр, известен алгоритм AStar.

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

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

Данный пробел я постараюсь восполнить в рамках этой статьи.

Читать далее

Первые впечатления от 1921вг015, отечественного RISC-V контроллера

Reading time9 min
Views24K

рис.1


Недавно мне в руки противоестественными путями попал интересный представитель RISC-V контроллеров производства НИИЭТ. Упакован он в пластиковый lqfp100 корпус, в котором скрывается ядро на 50 МГц, мегабайт флеш-памяти и 256 кБ оперативки. Разумеется, в наличии и стандартная периферия вроде UART-ов, SPI и USB. А вот из необычного — сигма-дельта АЦП на 16 бит. Ну и всякая неинтересная периферия вроде аппаратных модулей шифрования. Сразу оговорюсь, что тыкаю палочкой я его меньше двух недель, поэтому здесь описаны именно первые впечатления.

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

Уникальные редкие игровые механики в забытых играх

Level of difficultyEasy
Reading time10 min
Views64K

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

Время от времени появляется игра, которая показывает что-то новое и по-настоящему революционное. Например, Metal Gear Solid (1998), разработанная Konami, представила игровой процесс, основанный на скрытности, в жанре приключенческого боевика. Игрокам предлагалось избегать конфронтации и придумывать хитрые тактики для прохождения, пробираясь мимо врагов, прячась в картонных коробках и используя гаджеты для отвлечения охранников. Этот акцент на механике скрытности выделил Metal Gear Solid среди других экшн-игр того времени и породил целый поджанр стелс-игр, включая серии Hitman, Splinter Cell и Dishonored.

Но хорошая игровая механика — это лишь часть самой игры. Если повествование и геймплей хромают, то механика, какой бы крутой она ни была, не спасёт. Мы полюбили Super Mario Bros. (1985) не потому что, там впервые появилась механика скольжения персонажа, а из-за того что, это игра подарила нам множество часов весёлых приключений в удивительном мире.

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

Taigram: Начало работы

Reading time8 min
Views9.2K

Всем привет!

На этой неделе мы объявили о начале работы над Open Source проектом Taigram, название которому, к слову, выбрали вы в опросе.

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

Проектом занимаемся мы вдвоём: Иван и Виктор, а также с логотипом нам помог наш бессменный дизайнер Евгений. (Больше никто не захотел к нам присоединиться 😭)

Начнём мы, как водится, с самого начала...

Читать далее

Пишем простой драйвер на Rust

Reading time9 min
Views14K

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

В своей повседневной работе я по-прежнему придерживаюсь C++, так как основная её часть связана с низкоуровневым программированием систем и ядра, а из этого языка легко задействовать написанный на С Windows API и COM API.

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

Короче говоря, я решил попробовать написать простой и полезный драйвер WDM. Это будет Rust-версия драйвера «Booster», о котором я пишу в своей книге (Windows Kernel Programming), позволяющего изменять приоритет любого потока на любое значение.
Читать дальше →

Разбор тестового задания по электронике в Яндекс

Level of difficultyHard
Reading time9 min
Views35K

Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:

Читать далее

Pebble, живи! Вернутся ли умные часы с E-Ink-дисплеем и что под капотом у Pebble Time 2015 года

Reading time6 min
Views5.7K

В 2012 году кампания по сбору средств на умные часы Pebble стала одной из самых успешных на краудфандинговом сайте Kickstarter за всю историю существования ресурса. Разработчики девайса собрали 10 млн долларов США. Покупателей привлекло, что у часов был E-Ink-дисплей, они могли работать много дней без подзарядки и были действительно «умными». Например, выводили уведомления о сообщениях, позволяли менять дизайн циферблата, напоминали о событиях. И, конечно, поддерживали сторонние приложения.

Раскупали часы как горячие пирожки. Казалось, все идет отлично, развивайся да радуйся. Но через несколько лет компания столкнулась с финансовыми трудностями, и в 2016 году ее купил производитель смарт-браслетов и часов Fitbit. Новый владелец прекратил выпуск Pebble, оставил пользователей без апдейтов, даже серверы отключили. Но теперь, похоже, Pebble возвращаются — об этом сегодня и поговорим. А еще вспомним, что из себя представляла модель Pebble Time от 2015 года — она как раз оказалась в моих запасах и сегодня я ее разберу.

Читать далее

CanHacker на базе Adruino (без глюков)

Level of difficultyEasy
Reading time3 min
Views32K

Итак, моя задача: подключение рулевой рейки тигуана на столе без подключения к машине. Для этого требуется имитация активности в CAN шине. Для этого требуется адаптер, позволяющий работать с программой CanHacker и, собственно, трейс CAN пакетов с автомобиля.

Читать далее

Как я купил ноутбук для дошколят на MIPS-процессоре и все заверте…

Level of difficultyMedium
Reading time9 min
Views24K

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

Я очень большой фанат портативных гаджетов с полноценными QWERTY-клавиатурами: ноутбуков, коммуникаторов и различных хэндхелдов. Когда в мои руки попадает девайс с Linux или Windows CE в том или ином виде, я стараюсь максимально расширить функционал устройства и порой даже портирую программы с других платформ! Недавно мне удалось купить китайский детский обучающий ноутбук с MIPS-процессором и поворотным дисплеем всего за 1 000 рублей. Интересно узнать о том, как я хакнул девайс и причём здесь Dingoo A320? Тогда жду вас под катом!

Читать далее

PAL видеоадаптер на FPGA с буфером кадра

Level of difficultyMedium
Reading time18 min
Views5K

Наверное, каждый второй разработчик на ПЛИС в начале своего пути пытался визуализировать работу своих схем. Кто-то подключал TFT-дисплей, кто-то — VGA монитор. А у меня под рукой оказался только телевизор с композитным входом. Ну что ж, работаем с тем, что есть!

Читать далее

Обнаружение сигнала в шумах

Reading time3 min
Views36K

По роду своей деятельности мне приходится осуществлять контроль различных параметров наземных импульсно-фазовых радионавигационных систем (ИФРНС) «Чайка» и Loran-C. В этой статье я хочу поделиться одним из методов обнаружения времени прихода импульса ИФРНС при наличии шумов. Метод применим во многих задачах поиска сигнала известной формы.
Читать дальше →

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 5: DMA

Reading time15 min
Views2.5K

Макетная плата GD32VF103


Часть 1. Введение


Часть 2. Память и UART


Часть 3. Прерывания


Часть 4. Си и таймеры


В предыдущих частях мы научились работать с RISC-V контроллерами в стиле восьмибиток из прошлого тысячелетия. Конечно, периферия у наших посложнее, но все равно управляли мы ей напрямую. Теперь же рассмотрим периферийный модуль, который сам может управлять другими периферийными модулями, пока ядро занято вычислениями. Речь идет о DMA (Direct Memory Access, оно же Прямой Доступ к Памяти, ПДП).

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

Вот, к вам идет IoT: как цифровизировать старый жилфонд

Level of difficultyMedium
Reading time8 min
Views3.3K

Тем, кто жил и живет в старых домах — «хрущевках», «панельках», «человейниках», — знакома беда разбалансировки систем жизнеобеспечения. Весной батареи обжигают, а зимой — еле теплые, вытяжки работают «не пойми как», подъезд освещен «не пойми где». А счет за такой сервис приходит как за нормально работающий. Возможно, вы будете удивлены, но сегодня столь знакомая многим проблема «кривого ЖКХ» отнесена к вопросам цифровизации, а для ее решения подключают не только домовые чаты в Телеграме или WA, но и передовые ИТ‑технологии: предсказательную аналитику, парсинг и анализ больших данных, интернет вещей. Причем речь уже идет не только о домах премиального класса. Цифровизация затронет и огромный советский и ранний постсоветский устаревший жилфонд, в котором, согласно последней переписи населения, до сих пор живет большинство россиян.

Как начинался EnergyStart

Технологическая компания «Конст» во главе с Альвиной Малышевой решила ответить на этот вызов. Команда разработала IoT (интернет вещей) — решение EnergyStart для многоквартирных жилых домов сегмента старой застройки. В том числе для совсем устаревшего жилфонда. Как рассказала Альвина, проект стартовал в 2023 году с запроса в Институт энергетики и электроники БГТУ им. В. Г. Шухова от Центра энергосбережения Белгородской области.

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

Читать далее

Первая часть исследования Nau Engine

Level of difficultyMedium
Reading time13 min
Views3.5K

Этой статьёй мы начинаем трилогию об игровом движке Nau Engine. В первой части мы сосредоточимся на его функциональности, уделяя особое внимание трём ключевым блокам ошибок: проблемам с памятью, копипасте и логическим ошибкам.

Читать далее

Биперная музыка на Arduino

Level of difficultyMedium
Reading time23 min
Views7.4K

Любимый отечественными энтузиастами компьютерной ретро-техники компьютер «Синклер» ZX Spectrum родом из начала 1980-х годов — восьмибитный. Любимый самодельщиками нынешнего тысячелетия Arduino родом из середины 2000-х годов — тоже восьмибитный. Они похожи, но такие разные. Сегодня попробуем навести мостик между этими мирами, преодолеть пропасть в два десятка лет, и заставить два разных устройства проиграть одни и те же мелодии.

В этой статье сплетаются сразу три темы: как устроены некоторые музыкальные полифонические процедуры на ZX Spectrum, как воспроизвести результат их работы в совершенно иной реализации на Arduino, а заодно немного электроники для начинающих — рассуждения на тему, как можно правильно или неправильно подключить динамик для вывода звука к этой самой Ардуине.
Читать дальше →
1
23 ...

Information

Rating
1,295-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Lead
From 450,000 ₽
STM32
Arduino
AVR C
FPGA