СОДЕРЖАНИЕ ►
Настольная игра на Ардуино с двумя джойстиками и моторами — интересный и простой проект. Принцип работы игры — джойстиками 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); } }
Пояснения к коду:
- скорость вращения моторов можно поменять, уменьшив значение
setSpeed; - светодиоды с подсветкой подключены к аналоговым портам с АЦП — A0 и A5, которые работают в режиме OUTPUT.
Этапы сборки настольной игры на Ардуино
1. соберите электрическую схему игры, как на картинке выше;
Для подключения УЗ датчика, джойстиков и светодиодов через Motor Shield придется припаивать провода или коннекторы к аналоговым портам A0-A5 платы расширения.
2. загрузите в микроконтроллер скетч, размещенный ниже;
Так как цифровые пины используются для управления шилдом, УЗ датчик и светодиоды подключены к аналоговым пинам, которые используются, как цифровые.

3. протестируйте правильную работу джойстиков и моторов;
При необходимости поменяйте полярность у моторов, чтобы они вращались в нужную сторону. Помните, что без редукторов моторы не смогут поднять груз.
4. соберите корпус из фанеры для настольной игры на Ардуино;
Скачать чертеж корпуса для лазерного или фрезерного ЧПУ станка можно по ссылке вначале поста, при большом желании корпус можно сделать и без ЧПУ.

5. закрепите моторы и редукторы на внутренней стороне крышки;
Здесь вам потребуется термоклей для крепления моторов на крышке. Для быстрого крепления самой крышки на корпусе можно использовать магниты.
6. надежно закрепите нитки на шкиве и подъемнике.
Используйте супер клей или момент для крепления ниток. Шкивы можно распечатать на 3D принтере или использовать подручные материалы.

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










Отличный проект! Добавьте, пожалуйста, архив с чертежом корпуса и моделью для печати шкива, очень хочется повторить!