Indholdsfortegnelse:

Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED: 4 trin
Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED: 4 trin

Video: Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED: 4 trin

Video: Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED: 4 trin
Video: Amazing arduino project 2024, November
Anonim
Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED
Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED
Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED
Test Bare Arduino, med spilsoftware ved hjælp af kapacitiv input og LED

"Push-It" interaktivt spil ved hjælp af et bar Arduino-bord, ingen eksterne dele eller ledninger nødvendig (bruger en kapacitiv 'touch' input). Vist ovenfor viser, at det kører på to forskellige tavler.

Push-It har to formål.

  1. For hurtigt at demonstrere/kontrollere, at dit Arduino -kort fungerer, og at du er konfigureret korrekt til at downloade en ny kodeskitse til det. Du vil kunne se, at den udfører input og output (registrer digitalt inputniveau, output til indbygget LED); gemme og gendanne en værdi fra den ikke-flygtige EEPROM-hukommelse. Alt sammen uden at tilslutte ledninger eller enheder.
  2. Giv et underholdende og udfordrende spil, der interagerer med et Arduino -bord.

Denne instruktive forudsætter, at du allerede har installeret en Arduino IDE og i det mindste er minimalt bekendt med dens brug. Hvis ikke henviser jeg dig til disse links:

Kom godt i gang med Arduino

Tilføjelse af Digispark (med bootloader) support til eksisterende Arduino 1.6.x IDE

Push-It fungerer med de fleste Arduino-plader, f.eks. et Nano, Uno eller DigiSpark Attiny85 board. I har testet det med en Nano 3.1 og en DigiSpark. I teksten når jeg refererer til pins navne/numre vil de være som brugt på Nano boardet (i modsætning til DigiSpark).

Trin 1: Have de ting, du har brug for

Hvilket simpelthen er ethvert Arduino eller lignende bord.

Hvis du ikke allerede har en, anbefaler jeg at komme i gang med en DigiSpark Pro (~ $ 12) eller en Nano 3.0 fra eBay til ~ $ 3 (men du har en ekstra uge eller to til at vente på, at den kommer fra Kina; og du skal installere en CH340 USB -driver). DigiSpark ~ $ 10 (ikke Pro) er meget velegnet til dette enkelt bit 'videospil' (Denne fjernede enhed, der kun har 6 I/Os, er lidt vanskeligere at uploade til)

Links til den hardware, der bruges her:

Nano V3.0 Atmega328P på eBay

Digispark USB Development Board

Trin 2: Hent og download koden

Hent og download koden
Hent og download koden

Kopier koden herunder til en arduino -skitsefil (f.eks. …/Push_It/Push_It.ino) Jeg har forsøgt at kommentere den ret godt. Jeg håber, at du finder koden let forståelig. Logikken til at bestemme, hvornår man skal øge, reducere og hvornår man ikke skal, er noget kompliceret, men den del er også specialiseret kode og er ikke af generel nytte. For flere detaljer om opsætning af en ny 'skitse' (kodeprojekt), der skal bruges med Arduino IDE se:

Oprettelse af en ny Arduino -skitse

Download skitsen 'Push_It' til vores mikrokontroller i henhold til Arduino IDE instruktionerne til dit bord.

Trin 3: Afspilning

Spiller
Spiller

Målet med spillet er at få LED'en (ombord) til at blinke så mange gange som muligt i et sæt blink, der derefter gentages

At spille spillet:

Push-It starter med en enkelt flash, som derefter gentages. Hvis du rører din finger i nærheden af indgangsstiften, mens LED'en er tændt, blinker LED'en to gange i den næste cyklus.

Hver gang du trykker på pseudoknappen under den første blitz i et sæt blink, tilføjes endnu en blitz til dette sæt. Det gør generelt ikke noget, når du løfter/fjerner din finger.

Men hvis du 'skubber' før eller efter den første blitz, reduceres antallet af blink i et sæt.

Hvis du ikke gør mere, bevares antallet af blink i et sæt. Når tællingen endvidere forbliver uændret i en hel cyklus, tælles nummeret i EEPROM -hukommelse.

Hver gang du formår at øge flashtællingen, øges timingen lidt, hvilket gør det sværere og sværere at nå op til høje flashtællinger. Når du laver en slip op, og antallet af blink bliver reduceret, vil der være en længere pause, før startblinket i den næste cyklus. Dette giver en ekstra udfordring, da det kan øge sandsynligheden for, at du hopper med pistolen. Så vær opmærksom.

Når du har fået din enhed op til et højt flashtal, kan du tage den (eller sende den, som DigiSpark er god til) til en ven, hvor de ved tilslutning vil se, hvor højt et flashtælling du har fået din op til. Jeg har oplevet, at det er en udfordring at få det op på mere end 8. Med en egentlig knap vedhæftet har jeg formået at få det op på over et dusin. For at vende tilbage til et lavere antal kan du gentagne gange trykke på det når som helst før eller efter den første flash. Hvis du også springer inputstiften til jorden under en opstart, tælles nulstillingen til 1.

Bemærk, at det originale DigiSpark-kort har en forsinkelse på 10 sekunder efter tænding, før det begynder at udføre 'Push-It' -koden og spille spillet. Det bruger denne tid til at prøve at tale gennem USB -stifterne for at modtage en mulig ny downloadkodeopdatering.

Hvis det Arduino -kort, du bruger, har en USB TX -lysdiode på, vil denne LED have en lille lille flash, når du effektivt har 'trykket på knappen'. Der vil blinke mere betydeligt af denne LED, når tællerværdien i EEPROM nogensinde opdateres med en ny værdi. Denne feedback kan hjælpe dig meget med at vide, hvornår eller sikre, at du effektivt har udløst en 'trykknap' -begivenhed. Du skal muligvis sikre, at du ikke rører kredsløbets jord (som metallet omkring et mikro-USB-stik), så din figur faktisk fremkalder støj til den åbne indgangsstift. Der vil blive tilføjet og lidt uforudsigelige udfordringer på grund af det faktum, at indgangsstiften flyder (ikke trukket op eller ned af en ledende/resistiv belastning) og den variable signalstøj, der kommer gennem din finger.

En firkantbølge på 250 Hz udsendes til en pin ved siden af inputstiften, hvilket i høj grad forbedrer sikkerheden for et injiceret indgangssignal, når din finger dækker begge stifter.

Jeg har fundet DigiSpark-tavlens svar til at være nogenlunde konsekvent forudsigeligt til et lille klem af fingrene til hjørnet af brættet, hvor D3-D5 er.

Når jeg spiller 'Push-It', gør jeg det gerne med kortet tilsluttet et USB 5v mobilbatteri (se fotos). Disse kan generelt findes billigt i skraldespande ved siden af USB AC og 12v auto adaptere; i de fleste stormagasiner elektronik afdeling.

Trin 4: Valgfri eksperimenter med eksterne komponenter

Valgfrie eksperimenter med eksterne komponenter
Valgfrie eksperimenter med eksterne komponenter

Bemærk: Hvis du vedhæfter en rigtig knap, er der en kodelinje, der skal kommenteres, som angivet i koden.

Med en højttaler, den ene side til jorden, hvis du rører den anden ledning til D4, hører du lyden af en 250 Hz firkantbølge. Ved D3 er der en 500Hz firkantbølge. Hvis du tilslutter højttaleren mellem D3 og D4, hører du en sammensat af de to signaler.

Tilslutning af en LED i stedet for en højttaler som ovenfor er meget interessant. Der er ingen grund til at bekymre sig om spænding, strømniveauer, modstandere eller endda polaritet for den sags skyld (værre tilfælde lyser det ikke, så drej det bare om). Prøv først og fremmest med den negative (katode) ledning forbundet til jorden og den anden til enten D3 eller D4. LED'en lyser 'halvt' på grund af de firkantede bølger. Desuden kræves der ingen resister, da output fra MicroControllerUnits er strømbegrænset. Jeg foretog aktuelle målinger, hvilket resulterede i 15ma og 20ma for henholdsvis Attiny85 og Atmega328 MCU'erne. Disse niveauer er cirka halvdelen af den nuværende begrænsede værdi for disse dele på grund af 50% driftscyklus karakter af de drivende firkantbølgesignaler. Målerens aflæsninger er faktisk et gennemsnit af strømmen gennem det testede kredsløb.

Interessant nok, hvis du bygger bro mellem D3 & D4 med LED'en (se billedet ovenfor og til venstre), lyser den begge veje, og med cirka ½ lysstyrken, som den gjorde med den ene side forbundet til jorden. Jeg inviterer dig til at overveje hvorfor.

Anbefalede: