Satura rādītājs:

Arduino videospēļu kontrolieris: 4 soļi
Arduino videospēļu kontrolieris: 4 soļi

Video: Arduino videospēļu kontrolieris: 4 soļi

Video: Arduino videospēļu kontrolieris: 4 soļi
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Jūlijs
Anonim
Arduino videospēļu kontrolieris
Arduino videospēļu kontrolieris

Vai jums ir Arduino komplekts, bet nav ne jausmas, ko ar to darīt? Varbūt ne, bet šajā pamācībā es soli pa solim parādīšu, kā izveidot, kodēt un integrēt Arduino savā projektā. Pašlaik šī rokasgrāmata tiek pārbaudīta tikai ar Clickteam Fusion Developer 2.5, bet uzbūves un Arduino koda darbības var izmantot universāli. Šī rokasgrāmata nākotnē var tikt atjaunināta Unreal un Unity.

1. darbība. Iepirkumu saraksts

  • Arduino Uno vai līdzīgi
  • USB kabelis
  • (400 punkti) Maizes dēlis vai 1 x perforators/sloksne
  • Ar Arduino saderīgi vadi.
  • Dažādi sensori. Savā piemēra projektā es izmantoju sekojošo:
  • Uz paneļa stiprināms potenciometrs 10K maizes dēlis
  • Fotorezistors
  • Spēka jutīgs rezistors

2. darbība. Savienojumi

Savienojumi
Savienojumi

Piezīme. Šie ir tikai sensori, kurus esmu personīgi izmantojis savam projektam. Tas nozīmē, ka ir daudz vairāk iespēju. Soli pa solim norādījumus par to vadu pievienošanu var atrast dažādās vietnēs atkarībā no sensora.

3. darbība: Arduino kods

Kopējiet un augšupielādējiet šo kodu savā Arduino, ja vēlaties izmantot tāda paša veida sensorus kā es. Pretējā gadījumā sensoriem varat izmantot savu kodu. Vienīgais, kas ir nepieciešams globāli, ir tas, ka mainīgie, kurus vēlaties izmantot spēļu dzinējā, tiek izdrukāti sērijas monitorā vai tos var nolasīt citā veidā.

// Tie ir iestatīti sākumā un netiek mainīti, kad programma darbojas. Piemēram, kuru ANALOG IN pin izmanto.

const int potPin = A0; const int fsrAnalogPin = 5; const int fotoelementsPin = 2; // Mainīgie: // GAISMAS SENSORS: // Gaismas daudzuma mainīgais: int photocellReading; // POTENTIOMETER // Potenciometra vērtība int vērtība; // SPIEDIENA SENSORS // Šis ir izejas datu mainīgais no spiediena sensora. int fsrReading; // Kartētā fsrReading mainīgā int spiediena versija; void setup () {// ievietojiet šeit savu iestatīšanas kodu, lai palaistu vienu reizi: pinMode (potPin, INPUT); Sērijas sākums (9600); } void loop () {// PRESSURE SENSOR // Šeit mēs izmantojam norādīto fsrAnalogPin, lai nolasītu datus no šīs tapas. fsrReading = analogRead (fsrAnalogPin); // Kartes vērtība no 0-1023 līdz 0-255. spiediens = karte (fsrReading, 0, 1023, 0, 255); // Pārbaudiet, vai spiediens ir zemāks vai lielāks par noteiktu daudzumu, drukājot vienu no abiem. Šo drukāto mainīgo vēlāk izmanto spēles dzinējā. ja (spiediens 70) {Sērijas nospiedums ("6"); } // POTENTIOMETRA vērtība = analogRead (potPin); // Analogās vērtības nolasīšana un saglabāšana no potenciometra value = map (vērtība, 0, 1023, 0, 360); // Kartes vērtība no 0-1023 līdz 0-360 // Šeit mēs sadalām 360 sešos dažādos segmentos. // Segmentu skaitu varat mainīt uz lielāku summu. Katram segmentam būtu mazāks diapazons. Piemēram, 8 segmentu diapazons ir 45. (360 /segmentu daudzums) // Ja pašreizējā vērtība ietilpst segmentā, tā izdrukā šī segmenta nosaukumu. ja (vērtība 60 un vērtība 120 un vērtība 180 un vērtība 240 un vērtība 300 un vērtība <375) Serial.print ("Seši"); // GAISMAS SENSORS // Šeit mēs vēlreiz lasām un iestatām mainīgo, šajā gadījumā fotoelementuReading. photocellReading = analogRead (photocellPin); // Mēs pārbaudām gaismas daudzumu, drukājot tumšā un ļoti tumšā krāsā a 3 un normālas gaismas vērtības drukājot 4. if (photocellReading <10) {Serial.println (" - 3"); } cits if (fotoelementsReading <200) {Serial.println (" - 3 -"); } cits if (fotoelementsReading <500) {Serial.println (" - 4 -"); } // Sērijas numuri: // Pirmais skaitlis ir spiediena sensors, 5 netiek nospiests un 6 tiek nospiests. // Pēc tam potenciometrs pašlaik ir ieslēgts. // Un pēdējais skaitlis ir vai nu 3 = tumšs, vai 4 = gaišs.

4. darbība. Spēļu dzinējā: noklikšķiniet uz Komanda 2.5

Paplašinājumu pārvaldniekā atrodiet sērijas objektu un instalējiet to.

Ievietojiet sērijas objektu, skaitītāju un virkni rāmī. (Ar peles labo pogu noklikšķiniet rāmī - ievietojiet objektu)

Notikumu redaktorā izveidojiet notikumu: Ja dati gaida: iestatiet maināmu virkni uz GetData ("Sērijas objekts")

Tādējādi virknei tiks iestatīti visi dati, kurus sūta Arduino, virknei tagad vajadzētu izskatīties līdzīgi sērijas monitoram.

Vienmēr izveidot citu notikumu: iestatīt skaitītāju uz: Find (string $ ("String"), "4", 0)

Šis piemērs mēģinās atrast 4, kas ir vienāds ar gaismu, kā redzams Arduino kodā.

Ja tas atrod 4, tas iestatīs skaitītāju uz 4, ja neizdosies atrast 4, skaitītājs būs -1.

Tagad varat pievienot jaunu notikumu, lai kaut ko paveiktu ar šādu rezultātu:

Ja skaitītājs = -1: šeit varat ievietot to, kam vajadzētu notikt, ja tas ir nepatiess, piemēram, ja ir izslēgta luktura animācija.

Ja skaitītājs = -1: tas nozīmē, ka ir atradis mainīgo un skaitītājs ir iestatīts uz jebkuru mainīgo (ja vien tas nav -1), šeit varat to iestatīt tā, lai lampas animācija pārslēgtos uz ieslēgtu.

Būtībā, izmantojot skaitītājus, kas ir iestatīti uz -1, kas ir nepatiess, vai -1, kas ir patiess, jūs varat panākt notikumus.

Ieteicams: