Мазмуну:

Arduino Video Game Controller: 4 кадам
Arduino Video Game Controller: 4 кадам

Video: Arduino Video Game Controller: 4 кадам

Video: Arduino Video Game Controller: 4 кадам
Video: Самодельный Ардуино руль для игр из водопроводных труб (Arduino micro ATmega 32u4) 2024, Ноябрь
Anonim
Arduino Video Game Controller
Arduino Video Game Controller

Сизде Arduino комплект бар, бирок аны менен эмне кылуу керек экенин билбейсизби? Балким, андай эмес, бирок бул Нускоодо мен сизге кадам сайын кадамды көрсөтөм, кантип Arduino'yу долбооруңузга курууну, коддоону жана интеграциялоону. Учурда бул колдонмо Clickteam Fusion Developer 2.5 менен гана сыналган, бирок куруу жана Arduino кодунун кадамдары универсалдуу түрдө колдонулушу мүмкүн. Бул колдонмо келечекте Unreal жана Unity үчүн жаңыртылышы мүмкүн.

1 -кадам: соода тизмеси

  • Arduino Uno же окшош
  • USB кабели
  • (400 упай) Нан тактасы же 1 x perf/strip board
  • Arduino менен шайкеш келген зымдар.
  • Ар кандай сенсорлор. Мен мисал долбоорумда төмөнкүлөрдү колдондум:
  • Панелдик потенциометрдин 10K панелине ылайыктуу
  • Photoresistor
  • Сезимге каршы резистор

2 -кадам: Байланыштар

Байланыштар
Байланыштар

Эскертүү: Булар менин долбоорум үчүн жеке колдонгон сенсорлор. Бул жерде дагы көптөгөн варианттар бар экенин билдирет. Сенсорго жараша ар кандай сайттарда аларды кантип зым кылуу боюнча этап -этабы менен көрсөтмөлөрдү табууга болот.

3 -кадам: Arduino коду

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

// Булар башында коюлган жана программа иштеп жатканда өзгөртүлбөйт. Кандай ANALOG IN пин колдонот.

const int potPin = A0; const int fsrAnalogPin = 5; const int photocellPin = 2; // Variables: // LIGHT SENSOR: // Жарыктын өлчөмү өзгөрмөлүү: int photocellReading; // ПОТЕНТИОМЕТР // Потенциометрдин мааниси int мааниси; // КЫСЫМ СЕНСОРУ // Бул басым сенсорунун чийки маалымат өзгөрмөсү. int fsrReading; // fsrReading өзгөрмөлүү int басымынын картага түшүрүлгөн версиясы; void setup () {// бир жолу иштетүү үчүн орнотуу кодуңузду бул жерге коюңуз: pinMode (potPin, INPUT); Serial.begin (9600); } void loop () {// PRESSURE SENSOR // Бул жерде биз ошол пинден маалыматтарды окуу үчүн көрсөтүлгөн fsrAnalogPin колдонобуз. fsrReading = analogRead (fsrAnalogPin); // Картанын мааниси 0-1023тен 0-255ке чейин. басым = карта (fsrReading, 0, 1023, 0, 255); // Кысымдын төмөндүгүн же белгилүү бир өлчөмдө экөөнүн бирин басып чыгарганын текшериңиз. Бул басылган өзгөрмө кийинчерээк оюн кыймылдаткычында колдонулат. if (басым 70) {Serial.print ("6"); } // POTENTIOMETER мааниси = analogRead (potPin); // Окуу жана потенциометрдин маанисинен аналогдук маанини сактоо = карта (маани, 0, 1023, 0, 360); // Картанын мааниси 0-1023төн 0-360ка чейин // Бул жерде биз 360ты алты башка сегментке бөлөбүз. // Сиз сегменттердин суммасын жогорку суммага өзгөртө аласыз. Ар бир сегмент андан кичирээк диапазонго ээ болмок. Мисалы, 8 сегменттин ар биринин диапазону 45 болмок. (360 /сегменттердин суммасы) // Эгерде учурдагы мааниси сегментке түшсө, анда ал ошол сегменттин атын басып чыгарат. if (мааниси 60 жана мааниси 120 жана мааниси 180 жана мааниси 240 жана мааниси 300 жана мааниси <375) Serial.print ("Алты"); // LIGHT SENSOR // Бул жерде биз дагы бир жолу өзгөрмөнү окуйбуз жана орнотобуз, бул учурда photocellReading. photocellReading = analogRead (photocellPin); // Биз жарыктын көлөмүн текшеребиз, караңгы жана өтө караңгы басуу менен 3 жана кадимки жарык маанилерин басып чыгаруу 4. if (photocellReading <10) {Serial.println (" - 3"); } else if (photocellReading <200) {Serial.println (" - 3 -"); } else if (photocellReading <500) {Serial.println (" - 4 -"); } // Сериалдагы сандар: // Биринчи сан - басым сенсору, 5 басылбайт жана 6 басылат. // Андан кийин потенциометр кайсы сегментте турат. // Ал эми акыркы сан 3 = караңгы же 4 = жарык.

4 -кадам: Оюн кыймылдаткычында: Команда 2.5 чыкылдатыңыз

Кеңейтүү менеджеринен Сериялык объектти таап, аны орнотуңуз.

Сериялык объектти, эсептегичти жана жипти алкагыңызга коюңуз. (Кадрдын оң баскычы - объектти киргизүү)

Окуя редакторунда бир окуя түзүңүз: Эгерде маалыматтар күтүп жатса: GetData ("Сериялык объект") үчүн өзгөрүлүүчү сапты коюңуз.

Бул сапты Arduino жөнөтүп жаткан бардык маалыматтарга орнотот, сап эми Сериялык Мониторго окшош болушу керек.

Дагы бир окуя түзүңүз Ар дайым: Эсептегичти төмөнкүгө коюу: Табуу ($ ("String"), "4", 0)

Бул мисал Arduino кодексинде көрүнүп тургандай, жарыкка барабар 4тү табууга аракет кылат.

Эгерде ал 4тү тапса, эсептегичти 4кө коёт, эгер 4тү таба албаса, эсептегич -1 болот.

Эми сиз бул натыйжа менен бир нерсе кылуу үчүн жаңы окуя кошо аласыз:

Эгерде эсептегич = -1: Бул жерде жалган болсо, эмне болушу керектигин коюуга болот, мисалы, чырактын анимациясы.

Эгерде эсептегич = -1: Бул өзгөрмөнү тапкандыгын жана эсептегич бул өзгөрмөнүн кандай болбосун коюлганын билдирет (эгер -1 эмес болсо), бул жерде чырак анимациясы күйгүзүлгөндөй кылып жасай аласыз.

Негизи эсептегичтерди колдонуу менен -1 -бул жалган же -1 -бул окуяларды ишке ашырууга мүмкүндүк берет.

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