Мазмуну:

Ыкчам реакция оюну: Дистанциялык версия: 5 кадам (Сүрөттөр менен)
Ыкчам реакция оюну: Дистанциялык версия: 5 кадам (Сүрөттөр менен)

Video: Ыкчам реакция оюну: Дистанциялык версия: 5 кадам (Сүрөттөр менен)

Video: Ыкчам реакция оюну: Дистанциялык версия: 5 кадам (Сүрөттөр менен)
Video: ВСЕ БОССЫ DARK SOULS 2 ОТ ХУДШЕГО К ЛУЧШЕМУ ТОП 2024, Ноябрь
Anonim
Ыкчам реакция оюну: Distance Version
Ыкчам реакция оюну: Distance Version

Салам. Бул сиздин реакция убактыңызды жана аралыкты сезүүңүздү текшерүүчү оюнду кантип түзүү керектиги боюнча инструкция. Бул долбоор эски проектке негизделген, мен жашыл жарык күйгөндө баскычты басуу менен кимдин реакциясы тез болгонун көрүү үчүн мелдешкен эки оюнчу катышкан. Бул окшош максатка ээ, ал жалгыз оюнчу жана жарык өчпөсө, оюнчуга колун аралык сенсорунан белгилүү бир аралыкты алыстатуу үчүн убакыт берилет.

Бардык Arduino долбоорлору сыяктуу эле, бул оюнда Arduino схемасында көптөгөн электрдик компоненттер талап кылынат. Өткөргүчтөрдөн жана Arduinoдон башка негизги компоненттерге нан, servo мотор, ЖК дисплей, RGB LED жана аралык сенсору кирет.

Https://abra-electronics.com колдонуп, зымдарды жана Arduino кошпогондо баасы $ 32.12 CAD.

1 -кадам: 1 -кадам: Алыстык сенсору

1 -кадам: аралык сенсор
1 -кадам: аралык сенсор

Биринчи кадам - УЗИ аралык сенсорун нан тактасына орнотуу жана аны Arduinoго туташтыруу. Сенсордун так орду мааниге ээ эмес, бирок идеалдуу түрдө анын четине жакын, башка бөлүктөргө орун бар, жогорудагы сүрөттө көрсөтүлгөндөй. Сенсордо төрт казык бар; GND, VCC, TRIG жана ECHO. GND жана VCC тийиштүү түрдө жерге жана электр рельсине, калган эки казыкка зым Arduinoдогу эки казыкка туташтырылышы керек. Мен колдонгон эки казык ECHO үчүн 12 жана TRIG үчүн 11 болчу. Электр темир жолун күчөтүү үчүн дагы эки зымды колдонуңуз жана электр темир жолун 5V пинге жана жер темир жолун GND пинге туташтыруу менен жер темир жолун жерге көмүңүз.

2 -кадам: 2 -кадам: Серво мотору

2 -кадам: Servo Motor
2 -кадам: Servo Motor

Кийинки кадам - servo моторун орнотуу. Бул долбоордо servo мотор таймер катары иштейт. Бул 1 градуста башталат жана колдонуучу колдорун алыстаткан убакыттын ичинде 180 градуска айланат. Колдонуучу колдорун канчалык алыстатыш керек экенин билгенде мен 2 секунд колдондум, андыктан серво 2 секунда ичинде 179 градуска айланат, кыска аралыктарда. Серво моторунда үч зым бар; көбүнчө сары, кызыл жана күрөң. Кызыл бирөө 5Вга кошулган электр темир жолуна кирет, ал эми күрөң GNDге кошулган жер темир жолуна кирет. Акыркы зым Arduino төөнөгүчүнө туташтырылат. Мен бул үчүн #9 пин тандадым. Андан кийин, жогорудагы сүрөттө көрүнүп тургандай, servo мотордун күчү жана жерге зымдары туташкан ошол темир жолду туташтырган конденсатор керек.

3 -кадам: 3 -кадам: RGB LED

3 -кадам: RGB LED
3 -кадам: RGB LED

Бул жердеги LEDдын милдети - бул балл үчүн масштаб катары иштөө. Оюнчунун упайы 0дүн тегерегинде болгондо, LED ак түскө ээ болот, эгерде оюнчунун упайы төмөндөп кетсе көбүрөөк кызыл түскө, ал эми оюнчунун упайы жогоруласа жашыл түскө ээ болот. Бул LEDдин төрт буту бар; кызыл жарык бут, көк жарык бут, жашыл жарык бут жана башка үч буттун ортосунда бөлүшүлгөн жалпы катод. Эң узун буту болгон жалпы катод электр рельсине туташтырылган, ошондуктан ал 5 вольтту алат. Башка үч түстүү бутка 330 омдук резисторлорду тиркеңиз жана ал резисторлордун башка учтарын Arduinoдогу PWM санарип казыктарына бекиңиз. Мен колдонгондор кызыл, жашыл жана көк буттар үчүн 3, 5 жана 6 санарип төөнөгүчтөр болчу.

4 -кадам: 4 -кадам: ЖК

4 -кадам: ЖК
4 -кадам: ЖК

Акыркы компонент - бул LCD, ал суюк кристалл дисплейди билдирет. Мунун максаты - оюнчуга учурдагы упайын, ошондой эле колду сенсордон алыстатуу керек болгон аралыкты айтуу. Бул жерде төрт казык бар; GND, VCC, SDA жана SCL. GND жана VCC, тиешелүүлүгүнө жараша, панелдин жерге жана электр рельсине зымданат. SDA пини A4 аналогдук пинге, ал эми SCL пини A5 аналогдук пинге туташтырылышы керек. Башка компоненттерден айырмаланып, сиз SDA жана SCL төөнөгүчтөрүн A4 жана A5ке туташтырышыңыз керек.

5 -кадам: 5 -кадам: Кодекс

Эми биз бардык компоненттерге зым салдык, биз кодду жаза алабыз. Коддун биринчи бөлүгү - керектүү китепканаларды импорттоо жана өзгөрмөлөрүбүздү билдирүү жана компоненттер кайсы казыктарга туташкан. Бул код үчүн Wire, LiquidCrystal_I2C жана Servo китепканаларын импорттошубуз керек.

#кошуу

#кошуу

#кошуу

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int score = 0;

int tim = 500;

int учурдагы = туш келди (8, 16); // колдонуучу сенсордон колун алыстатышы керек болгон туш келди маани

LiquidCrystal_I2C lcd (0x27, 16, 2); // ЖК орнотуу

Эми биз пиндин түрлөрүн жарыялоо жана башка керектүү компоненттерди орнотуу үчүн 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 (); // ЖК орнотуу}

Эми биз функцияны жана PWMди колдонуп RGB LED кодун орнотушубуз керек:

жараксыз setColor (кызыл, ички жашыл, көк көк) {

кызыл = 255 - кызыл;

жашыл = 255 - жашыл;

көк = 255 - көк;

analogWrite (redPin, кызыл);

analogWrite (greenPin, жашыл);

analogWrite (bluePin, blue);

}

Эми биз void loop () кошушубуз керек. Бул жерде, биз туш келди бүтүн сандарды жаратабыз жана оюнчу үчүн оюнду көзөмөлдөө үчүн if операторлорун колдонобуз. Учурдагы өзгөрмө, жогоруда орнотуу, оюнчу сенсордон алысташы керек болгон учурдагы аралык үчүн.

Void loop () коду өтө узун болгондуктан, мен ошол коду бар документке шилтемени чаптайм:

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

Акыр -аягы, биз УЗИ аралык сенсорунун баалуулуктарын дюймга айландыруу үчүн чыныгы эсептөөлөрдү кылышыбыз керек. УЗИ аралык сенсор аралыкты түз өлчөй албайт; ал үндү чыгарат жана сенсордун кайсы нерседен чыкпасын үнүн кайтарып алуу үчүн керектүү убакытты жазат.

узун микросекундToInches (узак микросекунддар) {

кайтаруу микросекунддары / 74/2;

}

Эми биз зымдуу Arduino коду менен компьютерге туташтырып, портторду орнотуп, иштетебиз! Бул оюндун эки режими бар. Же сиз LCD дисплейди, серво моторун, сенсорду жана RGB LEDди гана колдоно аласыз жана сенсордон болгон аралыкты гана билесиз, бул кыйын режим. Жөнөкөй режим Сериялар мониторун Аспаптар> Сериялык Монитордо колдонууну камтыйт, ал сенсордон канчалык алыс экениңизди ар бир секунд сайын жаңыртып турат, андыктан керектүү өзгөртүүлөрдү киргизе аласыз.

Окуганыңыз үчүн рахмат!

Сунушталууда: