Pull to refresh
90
-3

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

Send message

Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I

Reading time 18 min
Views 23K

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. Каждый день нашим мессенджером пользуются миллионы людей, поэтому мы уделяем особое внимание интерфейсу пользователя. Он должен быть не только функциональным и отзывчивым, но ещё и привлекательным с эстетической точки зрения. Для создания графических интерфейсов мы используем Qt Framework, и уже накопили много опыта в решении нетривиальных задач с помощью этого инструмента. Настолько много, что статью пришлось разделить на две части. 

Под катом мы пройдём путь от создания отдельных компонентов-примеров, экспериментов с маскированием, прозрачностью, размытием и перекрывающимися компонентами до разработки небольшого демонстрационного приложения, объединяющего все полученные ранее решения.
Читать дальше →
Total votes 47: ↑46 and ↓1 +45
Comments 7

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Опрашиваем клавиши, генерируем ШИМ. Часть первая

Reading time 15 min
Views 30K

Вступление


Отступление

С последней написанной мною статьи прошло уже довольно много времени, за что прошу прощения: ЕГЭ, поступление, начало учебы. Теперь же, когда до сессии еще далеко, а учебный процесс уже отнимает не так много времени, я могу продолжить писать статьи об освоении нашего К1986ВЕ92QI.

План работы

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

Цель

В качестве учебной цели, давайте помигаем светодиодом по средствам ШИМ-а (Широтно-импульсной модуляции.), при этом регулируя кнопками его частоту. Кнопки так же будем опрашивать в прерывании, вызванного другим таймером, а в момент опроса — будем инвертировать состояние второго светодиода. В реализации данной задачи нам понадобится:

1. Настроить вывод порта ввода-вывода, подключенного к светодиоду, для ручного управления. Этим светодиодом будем показывать, что мы зашли в прерывание и опросили кнопки.
2. Настроить вывод порта ввода-вывода, подключенного ко второму светодиоду, в режим управления от таймера. Именно сюда будет подаваться ШИМ сигнал от первого таймера.
3. Настроить первый таймер в режим подачи ШИМ сигнала на второй светодиод.
4. Настроить таймер для вызова прерывания, в котором мы будем опрашивать клавиши.
5. Разрешить использование прерываний на уровне таймера (по конкретному событию) и на уровне общей таблице векторов прерываний от второго таймера в целом.


Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 6

Импортируем DXF чертеж в программе на Java, наступая на все грабли этого «простого» формата

Reading time 7 min
Views 18K
AutoCAD и подобные ему САПР давно уже стали стандартом в области проектирования, и неудивительно что таким же стандартом стали широко используемые в них форматы файлов DWG/DXF. Так что если вы разрабатываете какое-то решение для архитекторов и проектировщиков, то умение работать с этими форматами (ну или хотя бы с одним из них) — must have фича вашего продукта.



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

В общем под катом — перечисление граблей и решений, которые не удалось нагуглить и пришлось добывать полуночными бдениями над чертежами.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 4

AGLoRa. Или прототип простого самодельного спутникового LoRa-трекера

Reading time 9 min
Views 16K

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

Было очень любопытно самому убедиться, а правдивы ли обещания дальности работы? Попробовать это очень просто, готовые модули LoRa можно без проблем кликнуть со всем известного китайского маркетплейса. Но проверять дальность, просто мигая лампочкой на расстоянии, как-то не наглядно, так что напрашивается подключение GPS-приемника и самостоятельного подсчета расстояния. Ну и вы уже поняли, что в этом месте запахло прототипом спутникового трекера, передающим данные не по GSM-каналу, как обычно, а по радиоканалу LoRa...

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 16

Согласование импедансов: как сломать и как починить

Reading time 8 min
Views 32K

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

Данная статья является попыткой начать с конца. Я возьму работающую схему, выполненную в текстолите. Затем постараюсь ухудшить её характеристики так, чтобы рассогласование линий стало причиной сбоев в работе или хотя бы стало заметно на осциллографе. А затем постараюсь устранить возникшие проблемы.

Согласовать импедансы
Total votes 90: ↑89 and ↓1 +88
Comments 40

Измерения малых ёмкостей (аналоговый ёмкостной датчик)

Reading time 3 min
Views 19K
Предлагаю сообществу датчик малых ёмкостей, работающий почти от 0 пФ. Можно использовать в любительской электронике, роботостроении.

Разрабатывая хобби-электронику, мне понадобился какой-нибудь простой датчик расстояния на ёмкостном эффекте. Поискав в Интернете, нашёл только датчики касания, но они имеют малое расстояние срабатывания и дискретный выход. Другие же датчики слишком сложные или с долгой настройкой. Нужен был очень простой и дешёвый, работающий от микроконтроллера. Что получилось — под катом…
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 30

Information

Rating
Does not participate
Registered
Activity