Настольная игра с джойстиком на Ардуино

Настольная игра с джойстиком Ардуино

Игра на Ардуино с джойстиками и моторами ► интересный и простой проект. Цель игры - поднять шарик по поверхности, не допустив его попадания в отверстия.

Настольная игра на Ардуино с двумя джойстиками и моторами — интересный и простой проект. Принцип работы игры — джойстиками Arduino управляются моторы, которые поднимают или опускают подъемник с шариком по наклонной поверхности. Цель игры поднять шарик, не допустив его попадания в отверстия. На этой странице мы разместили готовую программу (скетч) для платы и схему сборки проекта.

Видео. Настольная игра на Ардуино

Для изготовления корпуса потребуется несколько листов фанеры и небольшой набор инструмента. Чертеж корпуса для резки на лазерном станке в формате CDR, модели для печати шкива на 3D принтере и скетч для микроконтроллера можно скачать одним архивом здесь. Данный проект настольной игры можно изготовить в домашних условиях без дорогостоящего оборудования, используя ручной инструмент.

Игра на Ардуино с джойстиками и моторами




Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • 2 мотора с редукторами;
  • мотор шилд LD239;
  • 2 джойстика KY-023;
  • УЗ датчик расстояния;
  • светодиоды и резисторы;
  • фанера или другой листовой материал;
  • столярный клей, провода, изолента, паяльник и т.д.
Схема сборки электрической схемы для проекта
Схема сборки электрической схемы для проекта

Используйте провода достаточной длины для подключения джойстиков к плате. Для крепления передней крышки корпуса можно использовать магниты, чтобы легко снять крышку при необходимости. Внутри корпуса находится наклонная поверхность, по которой шарик скатывается в одну сторону. Для регистрации наличия шарика в корпусе устанавливается датчик HC-SR04 — УЗ сенсор расстояния Ардуино.

Скетч для игры с джойстиками и моторами

#include "AFMotor.h"        // библиотека для мотор шилда
AF_DCMotor motor1(3);  // подключаем 1 мотор к клеммнику M3
AF_DCMotor motor2(4);  // подключаем 2 мотор к клеммнику M4

#include <Ultrasonic.h>            // библиотека для уз сенсора
Ultrasonic ultrasonic(A3, A4);  // пины trig и echo

void setup() {
   pinMode(A1, INPUT);      // пины для джойстиков
   pinMode(A2, INPUT);
   pinMode(A0, OUTPUT);  // пины для светодиодов
   pinMode(A5, OUTPUT);

   Serial.begin(9600);

   motor1.setSpeed(250); // задаем макс. скорость моторам
   motor2.setSpeed(250);
   motor1.run(RELEASE);   // останавливаем моторы
   motor2.run(RELEASE);
}

void loop() {
   // получаем информацию с джойстиков
   int d1 = analogRead(A1);
   int d2 = analogRead(A2);
   // выводим информацию на монитор
   Serial.print(d1);
   Serial.print(" - ");
   Serial.println(d2);
  
   if (d1 > 800) {
      motor1.run(FORWARD);  // задаем направление
      motor1.setSpeed(250);   // задаем скорость
   }
   if (d1 < 200) {
      motor1.run(BACKWARD);  // задаем направление
      motor1.setSpeed(250);      // задаем скорость
   }
   if (d1 > 200 && d1 < 800) { motor1.run(RELEASE); }  // останавливаем мотор

   if (d2 > 800) {
      motor2.run(FORWARD);  // задаем направление
      motor1.setSpeed(250);   // задаем скорость
   }
   if (d2 < 200) {
      motor2.run(BACKWARD);  // задаем направление
      motor2.setSpeed(250);     // задаем скорость
   }
   if (d2 > 200 && d2 < 800) { motor2.run(RELEASE); }  // останавливаем мотор

   // узнаем информацию с уз датчика
   int cm = ultrasonic.Ranging(CM);
   Serial.println(cm);

   // включаем/выключаем светодиоды
   if (cm < 5) { digitalWrite(A0, HIGH); digitalWrite(A5, LOW); }
   if (cm > 5) { digitalWrite(A0, LOW); digitalWrite(A5, HIGH); }
}

Пояснения к коду:

  1. скорость вращения моторов можно поменять, уменьшив значение setSpeed;
  2. светодиоды с подсветкой подключены к аналоговым портам с АЦП — A0 и A5, которые работают в режиме OUTPUT.

Этапы сборки настольной игры на Ардуино

1. соберите электрическую схему игры, как на картинке выше;

Для подключения УЗ датчика, джойстиков и светодиодов через Motor Shield придется припаивать провода или коннекторы к аналоговым портам A0-A5 платы расширения.

2. загрузите в микроконтроллер скетч, размещенный ниже;

Так как цифровые пины используются для управления шилдом, УЗ датчик и светодиоды подключены к аналоговым пинам, которые используются, как цифровые.

Сборка схемы настольной игры на Ардуино
Сборка электрической схемы настольной игры Ардуино

3. протестируйте правильную работу джойстиков и моторов;

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

4. соберите корпус из фанеры для настольной игры на Ардуино;

Скачать чертеж корпуса для лазерного или фрезерного ЧПУ станка можно по ссылке вначале поста, при большом желании корпус можно сделать и без ЧПУ.

Установка УЗ датчика и моторов в корпусе
Установка УЗ датчика и моторов в корпусе из фанеры

5. закрепите моторы и редукторы на внутренней стороне крышки;

Здесь вам потребуется термоклей для крепления моторов на крышке. Для быстрого крепления самой крышки на корпусе можно использовать магниты.

6. надежно закрепите нитки на шкиве и подъемнике.

Используйте супер клей или момент для крепления ниток. Шкивы можно распечатать на 3D принтере или использовать подручные материалы.

Установка шкивов с нитками на моторы с редукторами
Установка шкивов с нитками на моторы с редукторами

Заключение. Данный проект игры на Ардуино с джойстиками имеет простой код программы, однако чтобы собрать корпус и электрическую схему потребуется немало усилий. Проект с моторами на Arduino можно повесить на стене, а для питания можно использовать обычную зарядку от телефона. Теперь остается только установить шарик от пинг-понга в подъемнике и протестировать работу игры на Ардуино.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Похожие записи по теме:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *