- Обзор:
- Необходимые компоненты:
- Описание схемы:
- Работа акселерометра:
- Программирование Arduino:
- Программирование обработки:
- Тестирование:
Дополненная реальность и виртуальные игры стали недавней тенденцией в игровой индустрии. Время использования клавиатуры / джойстика и мыши для компьютерных игр прошло. Теперь каждая игровая консоль поставляется с виртуальным контроллером, который помогает нам играть в игру, используя движения и жесты нашего тела, благодаря чему игровой процесс значительно увеличился, и пользователь чувствует себя более вовлеченным в игру.
В этом проекте давайте попробуем повеселиться, пока мы учимся в рамках проекта. Давайте создадим игру (да, вы меня правильно поняли, мы собираемся создать игру) и сыграем в нее движением руки. Мы создаем классическую игру с мячом в пинг-понг, используя Arduino и акселерометр.
Обзор:
В наши дни доступно множество программного обеспечения с открытым исходным кодом, которое принесло много счастья таким любителям, как мы, и Processing - одна из них. С помощью этого приложения на основе JAVA мы можем создавать собственное программное обеспечение (формат.exe), а также приложение для Android (файл.apk). Итак, мы собираемся использовать это программное обеспечение для создания нашей игры, мы ранее использовали обработку при создании комнаты чата Arduino.
Аппаратная часть будет состоять из Arduino, который будет получать входные данные от акселерометра для последовательной передачи их на наш компьютер / ноутбук.
Так что по магазинам !!!!
Необходимые компоненты:
- Arduino (любая версия или модель)
- Акселерометр
- Соединительные провода
- Интерес (Лолз)
Акселерометр и Arduino Nano
Описание схемы:
Схема проекта Arduino Ping Pong Ball Game Project не предполагает сложных подключений. Я использовал Arduino Nano с акселерометром. Но есть несколько вещей, о которых следует позаботиться, как указано ниже:
1. Ваш акселерометр не может работать с напряжением 5 В, поэтому всегда подключайте Vcc акселерометра к выводу 3,3 В на Arduino.
2. Каждый акселерометр страдает от действия силы тяжести, с которой приходится работать при программировании (просто используя фильтр).
Имея это в виду, давайте посмотрим, как работает акселерометр и как мы его используем.
Работа акселерометра:
Акселерометр является устройством, которое может преобразовать ускорение в любом направлении к соответствующему переменного напряжения. Это достигается за счет использования конденсаторов (см. Изображение), поскольку по мере движения Accel конденсатор, присутствующий внутри него, также будет претерпевать изменения (см. Изображение) в зависимости от движения, поскольку емкость изменяется, также можно получить переменное напряжение.
Итак, как уже упоминалось выше, каждый акселерометр страдает проблемой гравитации. Независимо от того, насколько точно откалиброван ваш датчик (даже если ваш Apple телефон Accel.), На него будет влиять сила тяжести. Ниже приводится более техническое объяснение этой проблемы.
Теперь в Arduino мы можем уменьшить влияние гравитации с помощью простого фильтра. Этот фильтр будет состоять из двух массивов, один используется для хранения значений выборки от датчика, а другой используется для сортировки значений выборки и поиска наиболее повторяющегося значения. Давайте реализуем этот алгоритм в нашем Arduino и подготовим наше оборудование.
Программирование Arduino:
Программа Arduino приведена ниже в разделе «Код». Нет критических данных, которые нужно изменять. Но вы можете подумать о следующем:
Увеличьте размер выборки, если ваш Accel по-прежнему показывает случайные значения.
#define Samplesize 13 // filterSample number
Поиграйте со скоростью 9600 бод, чтобы увеличить скорость связи между Arduino и Processing. Но убедитесь, что вы изменили их в обоих программах (программах).
void setup () {Serial.begin (9600); }
Мой акселерометр на оси X дает 193 на дальнем левом конце и 280 на дальнем правом конце, измерьте их для своего Accel и обновите значение.
toSend = карта (smoothData1, 193, 280, 0, 255);
Значения отображаются в один байт данных для последовательной связи.
Далее проверьте Комментарии в приведенном ниже Кодексе, чтобы четко его понять.
Программирование обработки:
Обработка - это программное обеспечение с открытым исходным кодом, которое используется художниками для создания графики. Это программное обеспечение используется для разработки программного обеспечения и приложений для Android. Его довольно легко разработать, и он очень похож на среду разработки для Android. Поэтому я сократил объяснение.
Код обработки для игры в пинг-понг приведен здесь:
- Код обработки для Arduino Ping Ball Game
Щелкните его правой кнопкой мыши и выберите «Сохранить ссылку как…», чтобы загрузить файл кода. Затем откройте файл в программе «Обработка» и нажмите кнопку «Выполнить», чтобы начать игру. Для открытия файлов *.pde необходимо установить программное обеспечение «Обработка». Раздел комментариев открыт для запросов, а также проверьте комментарии в программе, чтобы лучше понять это.
Строка ниже, в функции void setup () кода обработки важна, поскольку она решает, с какого порта передавать данные.
порт = новый последовательный (это, Serial.list (), 9600); // Читает 4-й ПОРТ со скоростью 9600 бод
Здесь я прочитал данные с 4-го порта моего Arduino.
Так, например, если у вас есть COM COM COM COM COM
Затем приведенный выше код будет читать данные из COM.
Тестирование:
Теперь, когда наш скетч Processing и Arduino готов, просто загрузите приведенную ниже программу в Arduino, подключите Arduino к ПК пользователя с помощью кабеля для программирования и запустите игру, запустив файл кода обработки (.pde). Это оно! Переместите акселерометр и начните играть в пинг-понг. Видео проведет вас через весь проект.
После того, как вы разобрались с программой, вы можете создать много похожих игр и играть в них с помощью Arduino. Кроме того, для игр могут быть включены оси Y и Z.