Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
Компоненты и материалы
- Arduino Nano R3 — 1 шт.
- Модуль GY-521 с датчиком MPU-6050 (6 DOF) — 1 шт.
- Графический OLED-дисплей 128×64 (SSD1306, SPI) — 1 шт.
- Светодиод 3 мм — 1 шт.
- Резистор 220 Ом — 1 шт.
- Тумблеры (slide switch) — 2 шт.
Инструменты
- Паяльник
Программное обеспечение
- Arduino IDE
- Библиотека U8glib (для OLED)
- Библиотеки I2C и Kalman (идут с примерами MPU-6050)
О проекте
Игра «Поймай квадраты»: наклоняя датчик MPU-6050, управляйте шариком на OLED-экране. За 60 секунд нужно поймать максимум квадратов, не задевая границы экрана. Второй режим (переключатель D7 на GND) — тест гироскопа: отображение pitch/roll, XY-график, пищалка меняет тону в зависимости от отклонения от нуля.
Весь монтаж размещён в коробке из 3 мм ПВХ. Подробная схема и инструкции на сайте автора cassiopeia.hk.
Схема подключения
- MPU-6050: VCC → 3.3 В, GND → GND, SCL → A5, SDA → A4 (I2C).
- OLED (SPI): CS → D10, DC → D9, RES → D8, SDA → D11, SCL → D13.
- Пищалка/LED: через резистор 220 Ом на цифровой пин (например, D7).
- Тумблеры: один — выбор режима (D7–GND), второй — питание.
Особенности реализации
- Фильтр Калмана для сглаживания данных акселерометра/гироскопа.
- Библиотека U8glib обеспечивает быструю графику и шрифты на OLED.
- Код игры и теста объединены в один скетч, переключение по пину D7.
Код
Полный скетч доступен только для скачивания (см. раздел Code на исходной странице). Основные модули:
- Инициализация MPU-6050 и Kalman-фильтра.
- Отрисовка шарика, квадратов, границ, таймера на OLED.
- Логика столкновений и подсчёта очков.
- Режим теста: вывод углов, график, генерация тона на пищалке.
Производственный процесс
- TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- Интерактивный гироскопический LED-дисплей на NeoPixel Ring и Arduino
- Создание рулетки на 37 светодиодов с Arduino Nano
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- Сборка аудиореактивной настольной лампы на Arduino Nano
- Медное гальваническое покрытие: умная система на Arduino UNO