Управление Chrome Dino Game с Arduino: физический контроллер для прыжков и приседаний
Компоненты и материалы
- Arduino MKR Zero (или любая плата с поддержкой Keyboard: Leonardo, Esplora, Zero, Due, MKR family) — 1 шт.
- Макетная плата — 1 шт.
- Датчик силы (Force Sensing Resistor, FSR) — 1 шт.
- Растяжной датчик (Conductive Rubber Cord) — 1 шт.
- Резисторы 10 кОм — 2 шт.
- Перемыечные провода — несколько шт.
Приложения и сервисы
- Arduino IDE
О проекте
Суть и видео
Chrome Dino Game — скрытая игра в браузере Chrome, доступная без интернета. Динозавр должен перепрыгивать кактусы (пробел/стрелка вверх) и приседать под птицами (стрелка вниз). Это устройство управляет игрой в реальной жизни: когда вы физически прыгаете или приседаете, Arduino эмулирует нажатия клавиш.
FSR фиксирует удар ногой о пол (прыжок) → эмулируется пробел. Растяжной датчик на поясе фиксирует наклон (присед) → эмулируется стрелка вниз. Плата MKR Zero (или совместимая) работает как HID-клавиатура.
Инструкция
- Соберите схему по рисунку в разделе «Схемы».
- Загрузите скетч (раздел «Код»).
- Настройте пороговые значения в строках 3–4 (
stretchThreshold,forceThreshold) под свои датчики. - (Опционально) 3D-печатайте клипс для крепления на пояс (раздел «Custom parts»).
- Подключите устройство к USB, отключите интернет, откройте Chrome — играйте телом! После игры верните интернет.
Код
#include <Keyboard.h>
int stretchThreshold = 990; // порог растяжения (присед)
int forceThreshold = 1000; // порог силы (прыжок)
void setup() {
Keyboard.begin();
pinMode(A1, INPUT); // растяжной датчик
pinMode(A2, INPUT); // FSR
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int stretchValue = analogRead(A1);
int forceValue = analogRead(A2);
Serial.print("stretch: "); Serial.print(stretchValue);
Serial.print(" force: "); Serial.println(forceValue);
if (stretchValue < stretchThreshold) { // присед
digitalWrite(LED_BUILTIN, HIGH);
Keyboard.press(KEY_DOWN_ARROW);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
}
if (forceValue < forceThreshold) { // прыжок
digitalWrite(LED_BUILTIN, HIGH);
Keyboard.press(' ');
delay(200);
digitalWrite(LED_BUILTIN, LOW);
}
Keyboard.releaseAll();
}
Схемы

FSR и растяжной датчик подключены как делители напряжения к A1 и A2 с подтяжкой 10 кОм к 3.3В/5В.
Производственный процесс
- Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
- Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Arduino Breakout на сенсорном TFT 2.4″: классическая аркада своими руками
- Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
- Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
- Голосовой робот на Arduino Nano: Управление речью через Bluetooth
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- PiBot: Робот-пианист на Arduino для точного исполнения музыки
- Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python