Съдържание:

Игра за бърза реакция: Разстояние версия: 5 стъпки (със снимки)
Игра за бърза реакция: Разстояние версия: 5 стъпки (със снимки)

Видео: Игра за бърза реакция: Разстояние версия: 5 стъпки (със снимки)

Видео: Игра за бърза реакция: Разстояние версия: 5 стъпки (със снимки)
Видео: Хейтър гони Гибо по нощница🤣😂 2024, Ноември
Anonim
Игра за бърза реакция: Версия за разстояние
Игра за бърза реакция: Версия за разстояние

Здравейте. Това е инструкция за това как да създадете игра, която тества както времето за реакция, така и чувството за разстояние. Този проект се основава на стар проект, в който участвах двама играчи, които се състезаваха да видят кой е имал по -бързо време за реакция, като натиснат бутон, когато светлината стане зелена. Този има подобна цел, с изключение на това, че е за един играч и вместо да светне лампата, на играча се дава времева рамка, за да отдалечи ръката си на определено пространство от сензора за разстояние.

Както всички проекти на Arduino, тази игра ще изисква многобройни електрически компоненти в схемата на Arduino. Основните компоненти, различни от окабеляването и самия Arduino, включват макет, серво мотор, LCD дисплей, RGB LED и сензор за разстояние.

Използвайки https://abra-electronics.com, цената без кабелите и Arduino е $ 32,12 CAD.

Стъпка 1: Стъпка 1: Сензор за разстояние

Стъпка 1: Сензор за разстояние
Стъпка 1: Сензор за разстояние

Първата стъпка е да настроите ултразвуковия сензор за разстояние на макета и да го свържете към Arduino. Точното положение на сензора всъщност няма значение, но в идеалния случай е близо до ръба, така че да има място за другите компоненти, както е показано на снимката по -горе. На сензора има четири пина; GND, VCC, TRIG и ECHO. GND и VCC трябва да бъдат свързани съответно към земята и захранващите релси, а другите два щифта да бъдат свързани към два щифта на Arduino. Двата щифта, които използвах, бяха 12 за ECHO и 11 за TRIG. Използвайте други два проводника за захранване на захранващата шина и заземете заземителната релса, като свържете захранващата шина към 5V щифта и заземителната шина към GND щифт.

Стъпка 2: Стъпка 2: Серво мотор

Стъпка 2: Серво мотор
Стъпка 2: Серво мотор

Следващата стъпка е да настроите серво мотора. В този проект серво моторът функционира като таймер. Той ще започне от 1 градус и през периода от време, през който потребителят трябва да отдалечи ръцете си, ще се завърти на 180 градуса. Използвах 2 секунди, когато потребителят разбере колко далеч трябва да раздалечи ръцете си, така че сервото се завърта на 179 градуса за период от 2 секунди, като се върти на кратки интервали. Сервомоторът има три проводника; обикновено жълто, червено и кафяво. Червената влиза в захранващата шина, която вече е свързана към 5V, а кафявата отива в заземителната шина, вече свързана към GND. Последният проводник се включва в щифт на Arduino. Избрах щифт #9 за този. След това се нуждаете от кондензатор, свързващ същата релса, към която са свързани захранването и заземяването на сервомотора, както се вижда на снимката по -горе.

Стъпка 3: Стъпка 3: RGB LED

Стъпка 3: RGB LED
Стъпка 3: RGB LED

Функцията на светодиода в това е да действа като скала за резултата. Когато резултатът на играча е около 0, светодиодът ще бъде бял и ще стане по -червен, ако резултатът на играча се понижи, и зелен, ако резултатът на играча се увеличи. Този светодиод има четири крака; крак с червена светлина, крак със синя светлина, крак със зелена светлина и общ катод, споделен между другите три крака. Общият катод, най -дългият крак, е свързан към захранващата шина, така че той получава 5 волта. Прикрепете резистори 330 ома към другите три цветни крака и прикрепете другите краища на тези резистори към PWM цифрови щифтове на Arduino. Тези, които използвах, бяха цифрови щифтове 3, 5 и 6 за червените, зелените и сините крака съответно.

Стъпка 4: Стъпка 4: LCD

Стъпка 4: LCD
Стъпка 4: LCD

Крайният компонент е LCD, който означава дисплей с течни кристали. Целта на това е да се каже на играча текущия им резултат, както и разстоянието, от което се нуждаят, за да отдалечат ръцете си от сензора. Тук има четири пина; GND, VCC, SDA и SCL. GND и VCC ще бъдат свързани съответно към земята и релсите на захранващата платка. Щитът SDA трябва да бъде свързан към аналоговия щифт A4, а SCL щифтът трябва да бъде свързан към аналоговия щифт A5. За разлика от другите компоненти, трябва да свържете щифтовете SDA и SCL към A4 и A5.

Стъпка 5: Стъпка 5: Кодът

Сега, когато сме свързали всички компоненти, можем да напишем кода. Първата част от кода е да импортирате необходимите библиотеки и да декларирате нашите променливи и в кои пинове са свързани компонентите. Трябва да импортираме библиотеките Wire, LiquidCrystal_I2C и Servo за този код.

#включва

#включва

#включва

Серво myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int резултат = 0;

int tim = 500;

int ток = случаен (8, 16); // случайна стойност, при която потребителят трябва да отдалечи ръката си от сензора

LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD настройка

Сега трябва да използваме void setup (), за да декларираме нашите типове щифтове и да настроим други необходими компоненти.

void setup () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.backlight (); lcd.begin (16, 2); lcd.clear (); // LCD настройка}

Сега трябва да настроим RGB LED кода, като използваме функция и ШИМ:

void setColor (int червено, int зелено, int синьо) {

червено = 255 - червено;

зелено = 255 - зелено;

синьо = 255 - синьо;

analogWrite (redPin, червено);

analogWrite (greenPin, зелен);

analogWrite (bluePin, син);

}

Сега трябва да добавим void loop (). Тук ще генерираме произволни цели числа и ще използваме поредица от оператори if, за да контролираме играта за играча. Текущата променлива, настроена по -горе, е за текущото разстояние, което играчът трябва да се дистанцира от сензора.

Тъй като кодът в void loop () е много дълъг, ще поставя връзка към документ, който има този код:

docs.google.com/document/d/1DufS0wuX0N6gpv…

И накрая, трябва да направим действителните изчисления, за да преобразуваме стойностите на ултразвуковия сензор за разстояние в инчове. Ултразвуковият сензор за разстояние не измерва директно разстоянието; той издава звук и записва времето, необходимо на сензора да получи звука обратно от какъвто и да е обект, от който отскача.

long microsecondsToInches (дълги микросекунди) {

връщане на микросекунди / 74 /2;

}

Сега включваме кабелния Arduino в компютъра с кода, настройваме портовете и го стартираме! В тази игра има два режима. Или можете да използвате само LCD дисплея, серво мотора, сензора и RGB LED и знаете само разстоянието, което трябва да бъдете от сензора, което е по -трудният режим. По -лесният режим включва използването на сериен монитор в Инструменти> Сериен монитор, който ще ви актуализира всяка секунда колко далеч сте от сензора, така че можете да направите необходимите корекции.

Благодаря за четенето!

Препоръчано: