Как стать автором
Обновить
-7
0
Ghost007 @svitoglad

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

Отправить сообщение

Путешествие в мир эмуляторов микропроцессоров

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров12K

Всем привет!

Не так давно на Хабре появился занятный пост о разработке процессора, и я понял, что созрел для своей первой статьи как раз в этом направлении.

Тема разработки эмуляторов олдскульных микропроцессоров типа того же Intel 8080 не нова. Если вы уже разбираетесь в вопросе, то для вас этот пост не будет чем-то новым, разве что вы увидите еще один подход к реализации такого проекта. Для тех, кто ничего об этом не слышал – прошу под кат.

Читать далее
Всего голосов 47: ↑46 и ↓1+61
Комментарии17

Невероятно быстрый подсчёт байтов

Время на прочтение5 мин
Количество просмотров3.3K

Оказалось, что тема суммирования целых чисел в кодировке ASCII в Haswell со скоростью memcpy гораздо популярнее, чем я мог ожидать. Именно поэтому я решил поучаствовать и в другом челлендже в жанре HighLoad: подсчёт uint8. В настоящее время я занимаю всего лишь 13 место в списке лидеров, проигрываю первому месту около 7%, но уже узнал немало интересного. В этом посте я полностью опишу моё решение, в том числе, удивительный паттерн считывания из памяти. Используя его, можно примерно до 30% (по сравнению с обычным последовательным доступом) повысить скорость передачи в контексте одноядерных рабочих нагрузок, ограниченных размером кэша. По-видимому, этот метод малоизвестен.

Как и в других постах автора, программа настроена для следующих входных характеристик высоконагруженной системы: Intel Xeon E3-1271 v3 @ 3,60 ГГц, ОЗУ 512 МБ, Ubuntu 20.04. В ней используется только AVX2, а AVX512 не используется.

Читать далее
Всего голосов 15: ↑14 и ↓1+22
Комментарии10

Компьютерное зрение на С++: подключаем ML-библиотеки и обрабатываем результаты поиска объектов

Время на прочтение25 мин
Количество просмотров3.9K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO и изучаю нестандартные подходы к машинному обучению: создаю ML-проекты на С++. 

Это вторая часть цикла о разработке приложения для обнаружения предметов на С++. В прошлом материале мы выяснили, как создать проект в IDE Android Studio, реализовать сессию непрерывного захвата и преобразовать изображение в матрицу OpenCV. Ссылку вы найдете в конце статьи.

В этой статье продолжим реализацию проекта и обсудим следующие шаги:

• Как подключить к проекту библиотеки машинного обучения PyTorch и NCNN.

• Как получить модели YOLOv5 и YOLOv4 для использования на мобильном устройстве.

• Как реализовать инференс моделей для обнаружения объектов.

• Как обработать результаты работы моделей YOLO, реализовав алгоритмы Non-Maximum-Suppression и Intersection-Over-Union.

В конце сравним производительность PyTorch и NCNN и решим, какой фреймворк подойдет для задачи лучше.

Читать далее
Всего голосов 16: ↑15 и ↓1+20
Комментарии5

Аккумулятор для «электровелосипеда» из 130 использованных вейпов

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7K

Большинство одноразовых батареек для вейпов на самом деле можно перезаряжать. И вот очередное тому доказательство. Блогер Крис Доэл собрал 130 одноразовых батареек для вейпа и превратил их в аккумулятор для электровелосипеда.

Читать далее
Всего голосов 13: ↑12 и ↓1+13
Комментарии27

Обзор Акселерометра LIS3DH

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.6K

В этом тексте я написал о своем опыте работы с акселерометром LIS3DH. Это трёх-осевой цифровой 12-битный MEMS акселерометр с перегрузкой 16g и управлением по I2C.

В этой заметке я изложил с какой стороны следует подходить к ASIC акселерометрам.

Читать далее
Всего голосов 9: ↑6 и ↓3+7
Комментарии71

Как я создал устройство, которое может удаленно эмулировать мышку и клавиатуру на stm32

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

Всем привет, совсем недавно я начал изучать протокол USB на STM32F103C8, а именно HID-устройства. Я такой человек, который не сильно любит теорию, но обожает учиться всему на практике, поэтому я тут же начал думать над будущим проектом. И я вспомнил, что совсем недавно заказал себе wifi модуль - ESP8266.

Читать далее
Всего голосов 13: ↑12 и ↓1+15
Комментарии10

Rickroll с помощью ESP32. Имитация Bluetooth-клавиатуры

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.1K

Однажды я узнал про существование микроконтроллеров ESP32, обладающих встроенными Bluetooth и Wi-Fi модулями. Тогда я начал всем рассказывать, какая крутая железка, пока мне ее наконец-то не подарили.

На момент создания материала, такой микроконтроллер можно купить в РФ с доставкой менее, чем за 1000 рублей. Ну не чудо ли?

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

Тут я вспомнил времена учебы в институте, где мы имитировали HID-устройство с помощью микроконтроллеров. Поэтому, задался вопросом, можно ли то же самое сделать для Bluetooth-клавиатуры. Оказывается, таких проектов довольно много, и я решил один из них повторить.

На GitHub существует прекрасная библиотека, позволяющая реализовать мою идею.

Читать далее
Всего голосов 7: ↑4 и ↓3+2
Комментарии25

Raspberry Pi за 500 рублей — это реально? Что он может и почему стоит так дешево

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров52K

Возможно, вы уже слышали о том, что Raspberry Pi объявила о выпуске Pico 2, микроконтроллерной платы второго поколения на базе RP2350. Благодаря более высокой тактовой частоте ядра, вдвое большему объему памяти, более мощным ядрам Arm, новым функциям безопасности и обновленным интерфейсным возможностям Pico 2 должен обеспечить значительный прирост производительности и функциональности, сохраняя при этом аппаратную и программную совместимость с предыдущими представителями серии. Сейчас, когда шум вокруг новинки немного стих, пришло время поговорить о ней более подробно. А заодно понять, будет ли она на самом деле стоит 500 рублей. Спойлер: маловероятно!

Читать далее
Всего голосов 17: ↑16 и ↓1+23
Комментарии54

Quake на плате микроконтроллера с 276 килобайтами ОЗУ

Время на прочтение14 мин
Количество просмотров7.9K

Введение


В прошлом году в рамках празднования 30-летней годовщины Doom мы продемонстрировали его порт для платы Sparkfun Thing Plus Matter MGM240P. В этом году мы портируем Quake на плату Arduino Nano Matter.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+28
Комментарии6

Детальный взгляд на Breadbox Ensemble. Что умела продвинутая оболочка для MS-DOS?

Время на прочтение5 мин
Количество просмотров10K

Привет, любители старого «железа». Это Антон Комаров, и сегодня мы изучим ИТ-артефакт, одно из имен которого — Breadbox Ensemble. Это графическая оболочка для MS-DOS, которая значительно опередила свое время. К примеру, концепция меню «Пуск» в ней появилась на 2,5 года раньше, чем в Windows 95. Компанию-разработчика, Berkeley Softworks, пытались купить Microsoft, Apple Notebooks и Sun Microsystems. Но руководство не согласилось, решив продолжить самостоятельное «плавание». И оно было довольно успешным: последняя версия оболочки вышла аж в 2009 году.

Так что заваривайте себе чайку, доставайте печеньки и давайте посмотрим, ради чего в начале 90-х шла нешуточная борьба между крупнейшими софтверными корпорациями. И как Breadbox Ensemble повлияла на внешний облик операционных систем того времени. Приятного чтения.

Читать далее
Всего голосов 54: ↑54 и ↓0+84
Комментарии55

Создание аппаратно-независимых библиотек для микроконтроллеров

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров10K

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

Суть создания аппаратно-независимой библиотеки состоит в том, чтобы отвязаться от того уровня абстракции (библиотеки и фреймворки), который предоставляет производитель микроконтроллеров, внутри реализуемой библиотеки. Например, для STM32 - HAL, ESP32 - ESP-IDF или Arduino, для AVR зачастую используют Arduino. Это позволит использовать одну и ту же библиотеку на различных микроконтроллерах (и не только) без изменения кода библиотеки под каждый камень.

Читать далее
Всего голосов 26: ↑25 и ↓1+35
Комментарии36

«Голая Java» или разработка без всего

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров24K

Рассказываю что можно сделать на одном только голом JDK. Это старое и ныне почти забытое искусство разработки без внешних библиотек и фреймворков. Работать будем «как в былинные времена» — киркой и лопатой голыми руками и немного мозгом.

Читать далее
Всего голосов 73: ↑67 и ↓6+79
Комментарии107

Создаем свою простую (C++) библиотеку с документацией, CMake и блекджеком

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров16K

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

Если вы ловили себя на мысли: ‭«А почему мне бы не создать свою полноценную библиотеку?‭», то я рекомендую прочитать вам мою статью.

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

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

Читать далее
Всего голосов 49: ↑48 и ↓1+59
Комментарии68

Предшественники ПЛК — К1-20, МС2102 — история создания первых отечественных АРМов

Время на прочтение5 мин
Количество просмотров3.5K

Уважаемые коллеги, позвольте поделиться экскурсом в прошлое отечественной автоматизации, а именно в историю создания одних из первых отечественных аппаратных и программных средств АСУ ТП. Меня зовут Михаил Непомнин, ранее я был начальником КБ автоматизации ЭПО «Сигнал» и, как говорится из первых уст, готов рассказать о разработке первых автоматизированных рабочих мест.

Читать далее
Всего голосов 21: ↑18 и ↓3+24
Комментарии42

Угломеры разные нужны, разбираем до винтика (часть 1)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.7K

Когда я был ребёнком, меня всегда тянуло к разборке различных устройств. Электроника, механика, электрика — всё это казалось мне удивительным миром, который требовал исследования. Всё, что попадалось под руку, будь то сломанные устройства или даже исправные 😊, подвергалось изучению. Именно тогда и началась моя страсть к разборке всего и вся. С годами интерес к устройствам не угас. Сегодня я решил вернуть это чувство и взяться за разборку угломеров — инклинометров, при этом постаравшись сделать это аккуратно, чтобы после сборки не оставалось лишних деталей 😊
Читать дальше →
Всего голосов 38: ↑38 и ↓0+58
Комментарии23

Еще один способ передачи данных по радиоканалу

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров18K

Эта статья написана по мотивам вот этой. Чтобы повторить успех к имеющейся Baofeng uv-5r была приобретена Quansheng uv-k5, а потом и ещё одна uv-k5, потому что uv-5r очень долго активировал функцию VOX. Кейс очень интересный, но практически использовать его тяжеловато из-за низкой скорости передачи. Ниже описана попытка избавиться от этого недостатка.

Читать далее
Всего голосов 21: ↑21 и ↓0+29
Комментарии31

Программирование на C в Linux на примере создания своей командной оболочки

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров18K

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать
Всего голосов 28: ↑25 и ↓3+36
Комментарии42

Разработка сложных процессорных систем на примере модуля SMARC. Заключение

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров7.4K
Приветствую, Хабр!



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

По просьбе Indemsys немного расширю эту статью и кратко расскажу о трассировке различных интерфейсов. Спасибо за замечание, почитываю Ваши статьи.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+68
Комментарии18

Как я собрал солнечную станцию своими руками: детальный обзор компонентов и процесса сборки

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров14K

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

В статье он рассказал, почему решил сделать именно солнечную станцию, и детально расписал основные её части, а ещё объяснил, что понадобится для сборки. Из последней части вы узнаете, как собрать подобный источник энергии. Спойлер: он прошёл испытания и отлично работает. 

Читать далее
Всего голосов 38: ↑35 и ↓3+37
Комментарии49

Создание приложения под Мурмулятор ОС (1)

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.6K

Как я писал ранее (https://habr.com/ru/articles/839976/), Murmulator - одноплатный ультрадешевый микрокомпьютер на основе платы Raspberry Pi Pico (пика), которая, в свою очередь, основана на микроконтроллере - RP2040.

RP2040 - одна из наиболее известных двухъядерных реализаций ARM Cortex-M0+ с 264 КБ встроенной SRAM памяти и от 2-ух до 16-ти МБ flash-памяти подключаемых по QSPI интерфейсу, распаянной на плате пики.

Отдельную статью-тутуриал я посвятил использованию Мурмулятор ОС (МОС): https://habr.com/ru/articles/840052/ с точки зрения пользователя. Теперь имеет смысл описать процесс создания приложений под МОС.

МОС (рассматриваем текущую версию 0.2.7) поддерживает три вида приложений:

Читать далее
Всего голосов 9: ↑9 и ↓0+16
Комментарии0
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Винница, Винницкая обл., Украина
Дата рождения
Зарегистрирован
Активность