Mundarija:

Tezkor reaktsiya o'yini: masofali versiya: 5 qadam (rasmlar bilan)
Tezkor reaktsiya o'yini: masofali versiya: 5 qadam (rasmlar bilan)

Video: Tezkor reaktsiya o'yini: masofali versiya: 5 qadam (rasmlar bilan)

Video: Tezkor reaktsiya o'yini: masofali versiya: 5 qadam (rasmlar bilan)
Video: 1 kunda Google qidiruvidan $2000 ishlash | Google Qidiruvdan pul ishlash 2022 2024, Noyabr
Anonim
Tezkor reaktsiya o'yini: masofali versiya
Tezkor reaktsiya o'yini: masofali versiya

Salom. Bu sizning reaktsiya vaqtingizni ham, masofani ham sezadigan o'yinni qanday yaratish bo'yicha ko'rsatma. Bu loyiha eski loyihaga asoslangan bo'lib, men ikkita o'yinchi ishtirokida, chiroq yashil rangga aylanganda tugmani bosish orqali kim tezroq reaktsiya qilganini ko'rish uchun raqobatlashdi. Bu xuddi shunday maqsadga ega, faqat bitta o'yinchi va yorug'lik o'chmasin, o'yinchiga qo'lini masofa sensori masofasidan ma'lum masofada masofalashtirish uchun vaqt beriladi.

Barcha Arduino loyihalari singari, bu o'yin ham Arduino sxemasida ko'plab elektr komponentlarini talab qiladi. Simlar va Arduino -dan boshqa asosiy komponentlarga non paneli, servo dvigatel, LCD displey, RGB LED va masofa sensori kiradi.

Https://abra-electronics.com-dan foydalanib, simlar va Arduino-dan tashqari narx $ 32,12 SAPR.

1 -qadam: 1 -qadam: masofa sensori

1 -qadam: masofa sensori
1 -qadam: masofa sensori

Birinchi qadam - ultratovushli masofa sensorini non paneliga o'rnatish va uni Arduino -ga ulash. Sensorning aniq pozitsiyasi muhim emas, lekin u yuqoridagi rasmda ko'rsatilgandek, boshqa qismlar uchun joy bo'lishi uchun chekkaga yaqin. Sensorda to'rtta pin bor; GND, VCC, TRIG va ECHO. GND va VCC mos ravishda er va quvvat relslariga, qolgan ikkita pim esa Arduino -dagi ikkita pimga ulanadi. Men ishlatgan ikkita pin ECHO uchun 12 va TRIG uchun 11 edi. Quvvat panjarasini quvvatlantirish uchun boshqa ikkita simni ishlating va elektr tarmog'ini 5V pinli va tuproqli temir yo'lni GND piniga ulang.

2 -qadam: 2 -qadam: Servo dvigatel

2 -qadam: Servo dvigatel
2 -qadam: Servo dvigatel

Keyingi qadam - servo dvigatelni sozlash. Ushbu loyihada servo vosita taymer vazifasini bajaradi. U 1 darajadan boshlanadi va foydalanuvchi qo'llarini uzoqlashtirishi kerak bo'lgan vaqt davomida 180 gradusga buriladi. Foydalanuvchi qo'llarini qanchalik uzoqlashtirish kerakligini bilganida men 2 soniya ishlatardim, shuning uchun servo 2 soniya davomida 179 daraja burilib, qisqa vaqt oralig'ida aylanadi. Servo dvigatelda uchta sim bor; odatda sariq, qizil va jigarrang. Qizil temir yo'l 5V ga ulangan elektr tarmog'iga, jigarrang esa GND ga ulangan er osti yo'lakchasiga kiradi. Oxirgi sim Arduino piniga ulanadi. Buning uchun men 9 -pinni tanladim. Keyin, yuqoridagi rasmda ko'rinib turganidek, servo dvigatelning quvvati va topraklama simlari ulangan temir yo'lni bog'laydigan kondansatör kerak.

3 -qadam: 3 -qadam: RGB LED

3 -qadam: LED RGB
3 -qadam: LED RGB

Bunda LEDning vazifasi ballar shkalasi vazifasini bajaradi. O'yinchining bahosi 0 ga yaqin bo'lganida, LED oq rangda bo'ladi va agar o'yinchining hisobi pasaysa, qizil rang ko'proq yonadi va agar o'yinchi reytingi ko'tarilsa yashil bo'ladi. Bu LED to'rt oyoqli; qizil nurli oyog'i, ko'k oyog'i, yashil chirog'i va qolgan uch oyog'i o'rtasida umumiy katod. Umumiy katod, eng uzun oyoq, elektr tarmog'iga ulanadi, shuning uchun u 5 volt oladi. Qolgan 3 ta rangli oyoqqa 330 ohmli rezistorlarni ulang va rezistorlarning boshqa uchlarini Arduino -dagi PWM raqamli pinlariga ulang. Men ishlatganlar qizil, yashil va ko'k oyoqlari uchun mos ravishda 3, 5 va 6 raqamli pinlar edi.

4 -qadam: 4 -qadam: LCD

4 -qadam: LCD
4 -qadam: LCD

Oxirgi komponent - LCD, suyuq kristalli displey. Buning maqsadi - o'yinchiga qo'lini sensordan uzoqlashtirishi kerak bo'lgan masofani, shuningdek, hozirgi ballini aytib berish. Bu erda to'rtta pin bor; GND, VCC, SDA va SCL. GND va VCC navbati bilan taxtaning er va elektr panjaralariga ulanadi. SDA pin A4 analog piniga, SCL pin esa A5 analog piniga ulangan bo'lishi kerak. Boshqa komponentlardan farqli o'laroq, siz SDA va SCL pinlarini A4 va A5 ga ulashingiz kerak.

5 -qadam: 5 -qadam: Kod

Endi biz barcha komponentlarga ulanganmiz, kodni yozishimiz mumkin. Kodning birinchi qismi - kerakli kutubxonalarni import qilish va o'zgarmaydiganlarimizni e'lon qilish va komponentlar qaysi pimlarga ulanganligi. Biz ushbu kod uchun Wire, LiquidCrystal_I2C va Servo kutubxonalarini import qilishimiz kerak.

#qo'shing

#qo'shing

#qo'shing

MyServo xizmat ko'rsatish;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int bal = 0;

int tim = 500;

int joriy = tasodifiy (8, 16); // tasodifiy qiymat, bu erda foydalanuvchi qo'lini sensordan uzoqlashtirishi kerak

LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD sozlash

Endi biz pin turlarini e'lon qilish va boshqa kerakli komponentlarni o'rnatish uchun void setup () dan foydalanishimiz kerak.

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 sozlash}

Endi biz RGB LED kodini funksiya va PWM yordamida sozlashimiz kerak:

void setColor (ichki qizil, yashil yashil, ko'k) {

qizil = 255 - qizil;

yashil = 255 - yashil;

ko'k = 255 - ko'k;

analogWrite (redPin, qizil);

analogWrite (greenPin, yashil);

analogWrite (bluePin, ko'k);

}

Endi biz void loop () ni qo'shishimiz kerak. Bu erda biz tasodifiy tamsayılarni ishlab chiqaramiz va o'yinchi uchun o'yinni boshqarish uchun if iboralaridan foydalanamiz. Joriy o'zgaruvchi, yuqoridagi sozlash, o'yinchi sensordan uzoqlashishi kerak bo'lgan joriy masofaga to'g'ri keladi.

Void loop () kodi juda uzun bo'lgani uchun, men ushbu kodga ega bo'lgan hujjatga havola qo'yaman:

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

Nihoyat, biz ultratovushli masofa sensori qiymatlarini dyuymga aylantirish uchun haqiqiy hisob -kitoblarni bajarishimiz kerak. Ultrasonik masofa sensori masofani to'g'ridan -to'g'ri o'lchamaydi; u tovush chiqaradi va sensordan qaysi ob'ekt chiqsa, ovozni qaytarishi uchun zarur bo'lgan vaqtni qayd qiladi.

uzun mikrosaniyalarToInches (uzun mikrosaniyalar) {

qaytish mikrosaniyalari / 74/2;

}

Endi biz simli Arduino -ni kompyuterga kod bilan ulaymiz, portlarni o'rnatamiz va ishga tushiramiz! Ushbu o'yinning ikkita rejimi mavjud. Yoki siz faqat LCD displey, servo dvigatel, sensor va RGB LED -dan foydalanishingiz mumkin va siz sensordan qanchalik masofani bilishingiz kerak, bu qiyinroq rejim. Osonroq rejim asboblar> Serial monitorda ketma -ket monitordan foydalanishni o'z ichiga oladi, bu sensordan qanchalik uzoq bo'lganingizni har soniyada yangilab turadi, shuning uchun kerakli sozlashlarni amalga oshirishingiz mumkin.

O'qiganingiz uchun tashakkur!

Tavsiya: