Pull to refresh
21
0
Сергей Лобарев @Mexanik

User

Send message

Реверс-инжиниринг и замедление «Казаков»

Reading time5 min
Views61K


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

  1. Искусственно загрузить ядро процессора, на котором запущена игра
  2. Запускать игру в виртуальной машине с ограниченными ресурсами
  3. Играть не по локальной сети, а по интернету — там задержки побольше
4. Только дизассемблинг, только хардкор!
Total votes 84: ↑81 and ↓3+78
Comments29

Как пользоваться i2pd: исчерпывающая инструкция под MS Windows

Reading time4 min
Views114K


I2p — это сеть со специализацией на анонимности внутрисетевых ресурсов, этим она отличается от сети tor, основной задачей которой являются не внутренние ресурсы, а построение безопасного доступа к интернету. Зная об этих двух особенностях, люди могут гораздо эффективнее работать в обеих сетях.

В i2p ты можешь заниматься множеством вещей: посещать и создавать сайты, форумы и торговые площадки, принимать почту, чатиться и скачивать торренты, и многое многое другое. Программа i2pd способна работать с большим числом программ и сервисов.
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments48

STM32F4: GNU AS: Программирование на ассемблере (Часть 1)

Reading time15 min
Views70K
Обсуждение статьи после прочтения или задать вопросы можно в VK: vk.com/topic-200545792_46641834

Так же теперь (2021 год) я написал небольшой редактор для программ на ассемблере, начинать читать можно с Редактор ассемблера для ARM микроконтроллеров для компилятора gnu as. Старт там же можно будет и создавать проект в более удобном формате нежели описано в этой и нескольких последующих статьях. При этом рекомендую все таки ознакомится со всеми статьями по этой тематике в моих публикациях, так как не везде я повторяю прошлые материалы.

Это моя первая статья для сообщества Хабрахабр и написать ее я решил про то что сейчас волнует меня самого: написание программ для микроконтроллеров STM32 (семейство АRМ) на языке ассемблера. Я использую отладочную плату на основе микроконтроллера STM32F407 (STM32F4 Discovery, Open407I-C), но статья будет не менее полезна и для программирования других микроконтроллеров STM32.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments45

GammaRay — средство интроспекции Qt-приложений

Reading time4 min
Views15K
Фреймворк Qt предоставляет неплохие средства разработки — входящая в него IDE Qt Creator включает дизайнер, отладчик, профайлер и другие удобные вещи. К сожалению, даже со всем этим иногда не очень понятно, почему приложение в данные момент выглядит так, как выглядит: чего-то не видно, что-то выглядит не так, как ожидалось, где-то неподходящий размер шрифта или неверная картинка.

Часть этих проблем может быть решена в Qt Designer, но только часть. Qt Designer имеет несколько существенных недостатков: во-первых, он неверно отображает положение Qt Quick компонентов в случае активного использования Javascript при расчете их координат и размеров, во-вторых в дизайнере мы видим состояние только «пустой» формы, без загруженных в неё данных. В общем, очень не хватает чего-то вроде инструментов разработчика в любом современном браузере: чтобы можно было посмотреть всё дерево компонентов, найти нужный, увидеть его положение относительно других, свойства, поправить на лету что-то, подобрать цвет\шрифт\размер, увидеть какие обработчики повешены на события и т.д.

И такой инструмент в мире Qt появился! Встречайте — GammaRay, средство интроспекции приложений на Qt. GammaRay понимает, что такое Qt, из чего состоит ваше Qt-приложение, как в нём взаимодействую компоненты, как они выглядят, как генерируются и обрабатываются события и т.д. Давайте посмотрим, что умеет GammaRay.


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

Переходим с STM32F103 на К1986ВЕ92QI. Или первое знакомство с российским микроконтроллером

Reading time8 min
Views172K

Введение


В преддверии нового года я, как и многие россияне, активно следил за состоянием зарубежной валюты. Но не просто из-за собственного интереса, а из-за того, что на тот момент заканчивал свое устройство, которое требовалось показать на школьной и районной конференции. Так как в названии работы было такое слово как «бюджетное», то приходилось в презентации указывать стоимость каждого компонента, вплоть до резисторов и перемычек. Изначально, когда доллар стоил порядка 30 рублей, устройство и вправду было бюджетным. Как при домашней сборке, так и при конвейерной. Но когда цена доллара перевалила за 100 рублей, я решил, нужно искать альтернативу зарубежным компонентам.

К этому моменту уже как несколько месяцев изучал работу микроконтроллеров STM32F100 и STM32F103, применяя их на практике в презентационном устройстве. От таких гигантов, как STM32F429, мне пришлось отказаться. Так как стоимость в 1800 рублей за корпус является заоблачной для «бюджетного» устройства, функционал которого только начал превосходить возможности AVR Atmega32.
Читать дальше →
Total votes 81: ↑72 and ↓9+63
Comments56

Arduino & Modbus

Reading time6 min
Views208K
В предыдущей статье мы соединили открытую платформу домашней автоматизации OpenHAB с контроллером Arduino использовав очень простой, текстовый протокол. Но это решение поставит нас в тупик, если мы захотим подключить наш контроллер к другой системе, что же делать?

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

Что нам необходимо знать об этом стандарте?
Протокол Modbus использует последовательные линии связи (например, RS232, RS485), а протокол Modbus TCP рассчитан на передачу данных по сетям TCP/IP.
Протокол Modbus имеет два режима передачи RTU и ASCII, в режиме ASCII каждый байт передается как два ASCII символа его шестнадцатеричного представления.
В сети Modbus есть только один ведущий, который с заданным интервалом опрашивает несколько ведомых устройств, каждое из которых имеет свой уникальный адрес от 1 до 254, адрес 0 широковещательный и на него отвечают все устройства, так как ведущий в сети один у него нет своего адреса.
В спецификации Modbus определено два типа данных, один бит и 16 битное слово. Данные организованны в четыре таблицы с 16 битной адресацией ячеек, адресация в таблицах начинается с 0. Для доступа к данным из разных таблиц предназначены отдельные команды.
Discrete Inputs 1 бит только чтение
Coils 1 бит чтение и запись
Input Registers 16 бит только чтение
Holding Registers 16 бит чтение и запись

Как нам подключить Modbus устройство к OpenHAB?
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments49

Arduino & OpenHAB

Reading time8 min
Views52K
В предыдущей статье мы познакомились с промышленным стандартом Modbus и встроили его поддержку в Arduino, осталось состыковать устройство с платформой OpenHAB.

В этот раз мы узнаем, как настроить плагин и интерфейс OpenHAB для работы с устройством, основы адресации и отладки протокола Modbus. В работе представлен эксперимент с исходным кодом плагина, а на страничке vk.com/myremoter можно обсудить открытый контроллер умного дома, который мы будем использовать в следующих экспериментах.

Но, давайте ещё раз посмотрим, какие преимущества даст нам применение стандарта Modbus?
Современный дом — сложное инженерное сооружение, где управление освещением не самая главная функция. Кроме датчиков в доме устанавливают системы кондиционирования и вентиляции, управления отоплением, дренажными насосами и скважинами. Такие задачи можно поручить специальному или промышленному контроллеру, в этом случае протокол Modbus поможет объединить все инженерные системы в единую сеть, а простой и недорогой контроллер, работающий на одной с ними шине, добавит дополнительный контроль и функционал, сэкономив немало средств. В пользу этого низкие требования к оборудованию, открытость стандарта, массовость его применения, хотя, быть может, основной секрет популярности Modbus его гибкость при стыковке программ и оборудования.

Ну что же, пора приступать к работе.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments4

Как подружить OpenHAB и Arduino. Способ #3: MQTT

Reading time4 min
Views69K
Эта статья показывает ещё один способ взаимодействия микроконтроллера из семейства Arduino с универсальной платформой для объединения всей домашней «умной» техники в единую систему управления openHAB. На Хабре уже представлены статьи про взаимодействия с помощью Serial и HTTP. Для своего нового проекта я выбрал MQTT, т.к. два предыдущих способа я уже пробовал и хотелось попробовать что-то ещё.

Приступим…
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

CMS Koken для фотогалерей

Reading time3 min
Views69K


Появилась надобность создать сайт с фотогалереей. И пошел искать CMS для сих утех. После некоторого поиска обнаружил неприятную тенденцию. Есть CMS для фотогалерей, но не с современной навигацией, без Lightbox и так далее. Есть красивые HTML шаблоны с всякими вкусностями (например, Gamma Gallery), но без системы управления контентом. Рассматривать Wordpress и др. для сайта только с фотками — слишком накладно. Даже опечалился, но поиск натолкнул на одну новую CMS Koken. После небольшого рассмотрения понял, что это именно то, что мне нужно: первоклассная админка с множеством настроек, и современное отображение галерей. А с напильником так вообще красота получается.
Читать дальше →
Total votes 57: ↑48 and ↓9+39
Comments52

STM32 и FreeRTOS. 2. Семафорим по-черному

Reading time7 min
Views65K
Часть первая, про потоки

В реальной жизни часто случается так, что некоторые события происходят с разной переодичностью (а могут и вообще не происходить). Скажем, заказ сока в «Макдональдсе», нажатие кнопки пользователем или заказ лыж в прокате. А наш могучий микроконтроллер должен все это обрабатывать. Но как это сделать наиболее удобно?

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments5

STM32 и FreeRTOS. 1. Развлечение с потоками

Reading time7 min
Views150K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments35

NASA подтверждает работоспособность «невозможного» волнового двигателя, не использующего реактивную массу — EmDrive

Reading time4 min
Views220K
Дисклеймер: данная статья написана неспециалистом в данной области. Коррективровки, замечания и развёрнутые комментарии всячески приветствуются.

Суть новости


30 июля на 50th AIAA/ASME/SAE/ASEE Joint Propulsion Conference — пятидесятой совместной конференции Американского Института Аэронавтики и Астронавтики, Американского Сообщества Инженеров-Механиков, Сообщества Автомобильных Инженеров и Американского Сообщества Инженерного Образования, посвященной двигательным системам, если кому интересно значение сокращений, представители лаборатории NASA предоставили отчёт, согласно которому EmDrive, двигатель, создающий тягу без выброса реактивной массы, работает.
Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments260

OpenHAB — стань программистом собственного жилища

Reading time9 min
Views198K
image
Дом — это машина для жилья
Ле Корбюзье

В этом посте я расскажу об opensource проекте домашней автоматизации openHAB.
openHAB переводится как "Open Home Automation Bus". Это значит, что он нацелен на создание универсальной платформы для объединения всей домашней «умной» техники в единую систему управления.

Что же это дает на практике? Под катом я расскажу о том, как с помощью этого решения можно создать настоящий интернет вещей в своем доме.

Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments96

Мой web-интерфейс управления умной квартирой

Reading time2 min
Views44K
Привет!

Последние 1.5 года я работаю над очень интересным проектом — это система управления домом по сценариям. Она позволяет навешивать произвольную логику (сценарии) на различные события в доме (срабатывание датчиков, нажатия кнопок, события от внешних сервисов, например, получнеие email или сообщения в twitter). Система имеет модульную архитектуру, весь функционал находится в плагинах. Если нужно добавить новый тип события или новые команды «домашнего API», нужно просто добавить плагин для этого.

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



UI теперь — модульное одностраничное приложение. Плагины могут описывать свой UI в виде html/js/css файлов, расположенных в ресурсах DLL. Клиентская часть UI основана на backbone.js и marionette.js, модули загружаются через require.js. В целом получилось довольно удобно для авторов плагинов — даже не имея глубоких знаний java script, можно, смотря в примеры, описать полноценный UI, который будет автоматически подключен в интерфейс управления домом.

А теперь - слайды!
Total votes 43: ↑37 and ↓6+31
Comments41

Собираем за один вечер Virtual Reality шлем своими руками, с HD изображением и трекингом головы

Reading time25 min
Views603K
Практически не осталось уже людей, которые бы не слышали о виртуальной реальности, и, наверное все уже слышали о VR-шлеме Oculus Rift, который можно сказать стал стандартом для подобного рода устройств. Так же на рынке есть решения, позволяющие использовать экран смартфона диагональю 4-5" в качестве экрана VR-очков, такие как Durovis Dive или нашумевший Google Cardboard, которые снизили планку демократичности вхождения в виртуальную реальность можно сказать уже для всех, но, тем не менее, пока что эта технология не стала повсеместной: не у всех есть смартфон с нужной диагональю, чтобы воспользоваться тем же картонным проектом гугла, покупать пусть не дорогое, но стоящее денег устройство типа Durovis Dive без какого либо понимания, что с ним конкретно делать дальше, а тем более заказывать и ждать сам шлем Oculus Rift простому обывателю довольно проблематично по многим причинам — начиная от цены за устройство, что делать с которым пока не совсем понятно и заканчивая довольно длительным ожиданием доставки заказа. Естественно, самым главным тормозом, помимо цены, является обычная лень и потухшая любознательность.

В этой статье я расскажу вам о своем пути к виртуальной реальности, опишу детальное и практически исчерпывающее руководство по изготовлению VR-шлема с использованием любого относительно современного андроид-смартфона или планшета любой диагонали, этот проект обойдется примерно в 5-8 часов работы и в 500-2000 рублей затрат, в зависимости от ваших пожеланий и возможностей, а на выходе вы получите очень интересное устройство, которое позволит вам смотреть fullHD 3D фильмы и фотографии, играть в андроид-игры а также использовать шлем для игр в ваши любимые PC-игры любой степени современности. Да, с трекингом головы и погружением в VR.

Поэтому, если вами не овладевает лень и вы любознательны, прошу под кат, но предупреждаю, статья наполнена тремя десятками «potato quality» изображений, общим весом на 4 мегабайта.
Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments66

Резистор изгиба своими руками

Reading time2 min
Views143K
Наверняка те, кто увлекается электроникой и программированием микроконтроллеров слышали о датчике изгиба, который меняет свое сопротивление в зависимости от степени его изгиба. Сегодня я расскажу о том, как можно изготовить такой датчик (резистор) изгиба своими руками.

Идея

Когда мне понадобился такой датчик, то первым делом я зашел и нашел его на Амперке. Но цена, 890 рублей за штуку (за датчик длинной 95мм именно такая цена), меня не устроила и тогда в голову пришла отличная идея
Читать дальше →
Total votes 114: ↑113 and ↓1+112
Comments69

Работа с базами данных в Qt

Reading time6 min
Views204K
Qt дает возможность создания платформо-независимых приложений для работы с базами данных, используя стандартные СУБД. Qt включает «родные» драйвера для Oracle, Microsoft SQL Server, Sybase Adaptive Server, IBM DB2, PostgreSQL, MySQL и ODBC-совместимых баз данных. Qt включает специфичные для баз данных виджеты, а также поддерживает расширение для работы с базами данных любых встроенных или отдельно написанных виджетов.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments89

Раздвоение личности или еще раз о MultiseatX

Reading time10 min
Views15K
Хочу рассказать одну историю успеха, произошедшую в моей семье.

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

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

Так что ограничений по линии железа нет(хотя подводные камни есть, их я опишу позже), осталось разобраться какой софт для этого использовать.
Последние 8 лет на моем домашнем компьютере установлена Linux, так что я буду использовать ее, конкретно — kubuntu, но для интереса поискал решения для Windows. Судя по отзывам, программа АСТЕР позволяет это сделать, но я пока не тестировал ее, так что конкретно сказать не могу. Кстати ПО платное — около 2000 руб. Не забыт также Windows MultiPoint Server, но видео там не используешь. Делать это на OS X как минимум нецелесообразно из-за цены, как максимум из-за того что просто нет компьютеров Apple с мощной игровой графикой (даже две самые мощные FirePro последнего Mac Pro проигрывают одной GTX780).
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments24
2

Information

Rating
Does not participate
Location
Ярославль, Ярославская обл., Россия
Date of birth
Registered
Activity