Inhoudsopgave:
- Stap 1: Stap 1: Afstandssensor
- Stap 2: Stap 2: Servomotor
- Stap 3: Stap 3: RGB-LED
- Stap 4: Stap 4: LCD
- Stap 5: Stap 5: de code
Video: Snelle reactiegame: afstandsversie: 5 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Hoi. Dit is een Instructable over hoe je een spel kunt maken dat zowel je reactietijd als je gevoel voor afstand test. Dit project is gebaseerd op een oud project dat ik deed waarbij twee spelers strijden om te zien wie een snellere reactietijd had door op een knop te klikken wanneer een lampje groen werd. Deze heeft een soortgelijk doel, behalve dat het voor één speler is en in plaats van dat er een lampje uitgaat, krijgt de speler een tijdsbestek om zijn hand op een bepaalde afstand van een afstandssensor te plaatsen.
Zoals alle Arduino-projecten, vereist dit spel een groot aantal elektrische componenten in het Arduino-circuit. De belangrijkste componenten, behalve de bedrading en de Arduino zelf, zijn het breadboard, een servomotor, een LCD-scherm, een RGB-led en een afstandssensor.
Met https://abra-electronics.com is de prijs exclusief de draden en Arduino $ 32,12 CAD.
Stap 1: Stap 1: Afstandssensor
De eerste stap is om de ultrasone afstandssensor op het breadboard in te stellen en deze op de Arduino aan te sluiten. De exacte positie van de sensor doet er eigenlijk niet toe, maar idealiter is het dicht bij een rand zodat er ruimte is voor de andere componenten, zoals weergegeven in de afbeelding hierboven. Er zijn vier pinnen op de sensor; GND, VCC, TRIG en ECHO. GND en VCC moeten respectievelijk in de grond en de stroomrails worden aangesloten en de andere twee pinnen in twee pinnen op de Arduino aansluiten. De twee pinnen die ik gebruikte waren 12 voor ECHO en 11 voor TRIG. Gebruik twee andere draden om de voedingsrail van stroom te voorzien en de aardingsrail te aarden door de voedingsrail aan te sluiten op de 5V-pin en de grondrail op een GND-pin.
Stap 2: Stap 2: Servomotor
De volgende stap is het instellen van de servomotor. In dit project fungeert de servomotor als timer. Het begint bij 1 graad, en gedurende de tijd dat de gebruiker zijn handen op afstand moet houden, zal het draaien tot 180 graden. Ik gebruikte 2 seconden voor wanneer de gebruiker erachter komt hoe ver ze hun handen moeten verwijderen, dus de servo roteert 179 graden over een periode van 2 seconden en roteert met korte intervallen. De servomotor heeft drie draden; meestal een gele, een rode en een bruine. De rode gaat in de stroomrail die al is aangesloten op 5V, en de bruine gaat in de grondrail die al is aangesloten op GND. De laatste draad wordt aangesloten op een Arduino-pin. Ik koos pin #9 voor deze. Dan hebt u een condensator nodig die dezelfde rail verbindt waarop de voedings- en aardingsdraden van de servomotor zijn aangesloten, zoals te zien is in de bovenstaande afbeelding.
Stap 3: Stap 3: RGB-LED
De functie van de LED hierin is om als schaal voor de partituur te fungeren. Wanneer de score van de speler rond de 0 is, zal de LED wit zijn en zal meer rood worden als de score van de speler daalt en groen als de score van de speler stijgt. Deze LED heeft vier poten; een roodlichtbeen, een blauwlichtbeen, een groenlichtbeen en een gemeenschappelijke kathode gedeeld tussen de andere drie poten. De gemeenschappelijke kathode, het langste been, is aangesloten op de stroomrail, zodat deze 5 volt ontvangt. Bevestig weerstanden van 330 ohm aan de andere drie kleurenpoten en bevestig de andere uiteinden van die weerstanden aan digitale PWM-pinnen op de Arduino. Degene die ik gebruikte waren digitale pinnen 3, 5 en 6 voor respectievelijk de rode, groene en blauwe poten.
Stap 4: Stap 4: LCD
Het laatste onderdeel is het LCD-scherm, wat staat voor liquid crystal display. Het doel hiervan is om de speler zijn huidige score te vertellen, evenals de afstand die hij nodig heeft om zijn handen weg te houden van de sensor. Er zijn hier vier pinnen; GND, VCC, SDA en SCL. GND en VCC zullen respectievelijk worden aangesloten op de grond en de stroomrails van het breadboard. De SDA-pin moet worden aangesloten op de analoge pin A4 en de SCL-pin moet worden aangesloten op de analoge pin A5. In tegenstelling tot de andere componenten, moet u de SDA- en SCL-pinnen aansluiten op A4 en A5.
Stap 5: Stap 5: de code
Nu we alle componenten hebben aangesloten, kunnen we de code schrijven. Het eerste deel van de code is om de benodigde bibliotheken te importeren en onze variabelen te declareren en op welke pinnen de componenten zijn aangesloten. We moeten de Wire-, LiquidCrystal_I2C- en Servo-bibliotheken voor deze code importeren.
#erbij betrekken
#erbij betrekken
#erbij betrekken
Servo mijnServo;
int const trigPin = 11;
int const echoPin = 12;
int redPin = 3;
int groenePin = 5;
int blauwePin = 6;
int-score = 0;
int-tim = 500;
int stroom = willekeurig (8, 16); // willekeurige waarde waarbij de gebruiker zijn hand van de sensor moet verwijderen
LiquidCrystal_I2C lcd (0x27, 16, 2); //LCD-configuratie
Nu moeten we de void setup() gebruiken om onze pintypes te declareren en andere noodzakelijke componenten in te stellen.
void setup() { myServo.attach(9); Serieel.begin(9600); pinMode (trigPin, UITGANG); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode (bluePin, UITGANG); lcd.init(); lcd.achtergrondverlichting(); lcd.begin (16, 2); lcd.wissen(); //LCD-configuratie}
Nu moeten we de RGB LED-code instellen met behulp van een functie en PWM:
void setColor (int rood, int groen, int blauw) {
rood = 255 - rood;
groen = 255 - groen;
blauw = 255 - blauw;
analogWrite(redPin, rood);
analogWrite(greenPin, groen);
analogWrite(bluePin, blauw);
}
Nu moeten we de void loop() toevoegen. Hier gaan we willekeurige gehele getallen genereren en een reeks if-statements gebruiken om het spel voor de speler te besturen. De huidige variabele, hierboven ingesteld, is voor de huidige afstand die de speler moet nemen van de sensor.
Omdat de code in de void loop() erg lang is, plak ik een link naar een document met die code:
docs.google.com/document/d/1DufS0wuX0N6gpv…
Ten slotte moeten we de eigenlijke berekeningen uitvoeren om de waarden van de ultrasone afstandssensor om te zetten in inches. De ultrasone afstandssensor meet de afstand niet direct; het geeft geluid af en registreert de tijd die de sensor nodig heeft om het geluid terug te krijgen van welk object het ook weerkaatst.
lange microsecondenToInches(lange microseconden) {
retour microseconden / 74 / 2;
}
Nu pluggen we de bedrade Arduino in de computer met de code, stellen de poorten in en voeren het uit! Er zijn twee modi in dit spel. Of je kunt alleen het LCD-scherm, de servomotor, de sensor en de RGB-LED gebruiken en je weet alleen de afstand die je moet hebben van de sensor, wat de hardere modus is. De eenvoudigere modus omvat het gebruik van de seriële monitor in Extra > Seriële monitor, die u elke seconde zal updaten over hoe ver u zich van de sensor bevindt, zodat u de nodige aanpassingen kunt maken.
Bedankt voor het lezen!
Aanbevolen:
"The Unsettling Machine": een snelle Junk-Art-sculptuur voor beginners: 8 stappen (met afbeeldingen)
"The Unsettling Machine": een snelle Junk-Art-sculptuur voor beginners: (Als je deze instructable leuk vindt, stem er dan op in de "Trash to Treasure"-wedstrijd. Maar als je op zoek bent naar een minder verontrustend project, bekijk dan mijn laatste een: Hoe maak je een Lambada Walking Robot! Bedankt!) Laten we aannemen dat je een school
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Snelle Arduino-case: 3 stappen (met afbeeldingen)
Snelle Arduino-case: dit is een korte instructie over een slim klein Arduino-case-idee dat je kunt maken uit een lege schroefdoos
Snelle en gemakkelijke Bluetooth Skype-handset: 3 stappen (met afbeeldingen)
Snelle en gemakkelijke Bluetooth Skype-handset: Ik heb een van de Motorola HS820-headsets gekocht zoals voorgesteld in een andere instructable en deze in een traditionele telefoonhoorn geplaatst. Dit is echt een prototype totdat ik een mooie 'klassieke' handset vind. Gewoon wat vrijdagmiddag onzin op kantoor
Snelle en eenvoudige zachte schakelaars (voor snelle prototypen): 5 stappen
Quick and Simple Soft Switches (voor Quick Prototyping): Er zijn veel verschillende manieren om softswitches te maken. Deze instructable toont een andere optie van een zeer snel prototype voor de zachte schakelaar, met behulp van een aluminiumtape in plaats van geleidende stof, en massieve draden in plaats van een geleidende draad, die bot