Указатели на функции и их применение
Введение Указатели могут указывать не только на данные, но и на функции — в этой статье разберём указатели на функции, их синтаксис (один из наиболее визуально сложных в…
Фоторезистор и датчик звука: аналоговые датчики освещённости и звука
Введение Фоторезистор и микрофонный модуль датчика звука — два простых аналоговых датчика окружающей среды, часто используемые вместе для проектов вроде автоматического ночника или звукового триггера. В статье разберём…
std::optional в C++: где использовать вместо проверок на nullptr
Введение Долгое время C++-разработчики выражали «значение может отсутствовать» через указатели и nullptr, через специальные «магические» значения (-1, 0, пустая строка) или через пару «значение + флаг успешности». Все…
Геймпад PS2 для Arduino: управление проектом через джойстик
Введение Модуль игрового контроллера PS2 для Arduino даёт готовый, эргономичный интерфейс пользовательского ввода (два аналоговых стика, несколько кнопок) для проектов, требующих более развитого управления, чем простой потенциометр или…
Docker для Qt: контейнеризация сборочной среды
Введение Сборка Qt-приложения зависит от конкретной версии Qt, компилятора, и системных библиотек — Docker даёт способ зафиксировать это окружение в воспроизводимом, переносимом виде, устраняя классическую проблему «у меня…
Итоговый мини-проект: многофункциональная метеостанция-робот на основе нового набора
Введение В заключительной статье цикла и всего расширенного плана статей собираем итоговый проект — гибрид метеостанции и простого мобильного робота, объединяющий значимую часть модулей нового набора: датчики окружающей…
Параллельная обработка больших коллекций данных через QtConcurrent::map и reduce
Введение Когда нужно применить одну и ту же операцию к каждому элементу большой коллекции (например, изменить размер тысяч изображений или провести вычисления над массивом данных), часто такая обработка…
GitHub Actions: первый workflow для сборки Qt-проекта
Введение Ранее мы рассмотрели минимальный концептуальный пример GitHub Actions — в этой статье разберём этот конкретный CI-сервис подробнее: структуру workflow-файлов, использование готовых, опубликованных действий (actions) сообщества, и кеширование…
Оптимизация CUDA-ядер: coalesced memory access и occupancy
Введение Написать корректное CUDA-ядро — относительно простая задача; написать эффективное ядро, использующее реальную пропускную способность GPU, требует понимания двух ключевых концепций: coalesced memory access (объединённый доступ к памяти)…