Популярные статьи

Arduino

Фоторезистор и датчик звука: аналоговые датчики освещённости и звука

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

STL

std::optional в C++: где использовать вместо проверок на nullptr

Введение Долгое время C++-разработчики выражали «значение может отсутствовать» через указатели и nullptr, через специальные «магические» значения (-1, 0, пустая строка) или через пару «значение + флаг успешности». Все…

Arduino

Геймпад PS2 для Arduino: управление проектом через джойстик

Введение Модуль игрового контроллера PS2 для Arduino даёт готовый, эргономичный интерфейс пользовательского ввода (два аналоговых стика, несколько кнопок) для проектов, требующих более развитого управления, чем простой потенциометр или…

DevOps

Docker для Qt: контейнеризация сборочной среды

Введение Сборка Qt-приложения зависит от конкретной версии Qt, компилятора, и системных библиотек — Docker даёт способ зафиксировать это окружение в воспроизводимом, переносимом виде, устраняя классическую проблему «у меня…

Arduino

Итоговый мини-проект: многофункциональная метеостанция-робот на основе нового набора

Введение В заключительной статье цикла и всего расширенного плана статей собираем итоговый проект — гибрид метеостанции и простого мобильного робота, объединяющий значимую часть модулей нового набора: датчики окружающей…

Потоки и многопоточность

Параллельная обработка больших коллекций данных через QtConcurrent::map и reduce

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

DevOps

GitHub Actions: первый workflow для сборки Qt-проекта

Введение Ранее мы рассмотрели минимальный концептуальный пример GitHub Actions — в этой статье разберём этот конкретный CI-сервис подробнее: структуру workflow-файлов, использование готовых, опубликованных действий (actions) сообщества, и кеширование…

CUDA

Оптимизация CUDA-ядер: coalesced memory access и occupancy

Введение Написать корректное CUDA-ядро — относительно простая задача; написать эффективное ядро, использующее реальную пропускную способность GPU, требует понимания двух ключевых концепций: coalesced memory access (объединённый доступ к памяти)…