Innholdsfortegnelse:

Test Bare Arduino, med spillprogramvare som bruker kapasitiv inngang og LED: 4 trinn
Test Bare Arduino, med spillprogramvare som bruker kapasitiv inngang og LED: 4 trinn

Video: Test Bare Arduino, med spillprogramvare som bruker kapasitiv inngang og LED: 4 trinn

Video: Test Bare Arduino, med spillprogramvare som bruker kapasitiv inngang og LED: 4 trinn
Video: Зачем использовать резисторы с кнопками и как использовать их с Arduino 2024, Desember
Anonim
Test Bare Arduino, med spillprogramvare ved hjelp av kapasitiv inngang og LED
Test Bare Arduino, med spillprogramvare ved hjelp av kapasitiv inngang og LED
Test Bare Arduino, med spillprogramvare ved hjelp av kapasitiv inngang og LED
Test Bare Arduino, med spillprogramvare ved hjelp av kapasitiv inngang og LED

"Push-It" interaktivt spill ved bruk av et arduino-brett, ingen eksterne deler eller ledninger nødvendig (bruker en kapasitiv "touch" -inngang). Vist ovenfor, viser at den kjører på to forskjellige brett.

Push-It har to formål.

  1. For raskt å demonstrere/bekrefte at Arduino -kortet fungerer og at du er riktig konfigurert for å laste ned en ny kodeskisse til den. Du vil kunne se at den utfører inngang og utgang (registrer digitalt inngangsnivå, utgang til den innebygde LED -en); lagre og gjenopprette en verdi fra det ikke-flyktige EEPROM-minnet. Alt uten å feste noen ledninger eller enheter.
  2. Gi et underholdende og utfordrende spill i samspill med et Arduino -brett.

Denne instruksen forutsetter at du allerede har installert en Arduino IDE og er minst kjent med bruken. Hvis ikke, henviser jeg deg til disse linkene:

Komme i gang med Arduino

Legger til Digispark (med bootloader) støtte til eksisterende Arduino 1.6.x IDE

Push-It vil fungere med de fleste Arduino-brett, f.eks. et Nano-, Uno- eller DigiSpark Attiny85 -kort. Jeg har testet det med et Nano 3.1 og et DigiSpark. I teksten når jeg refererer til pinsnavn/tall, vil de være som brukt på Nano -kortet (i motsetning til DigiSpark).

Trinn 1: Ha de tingene du trenger

Som rett og slett er hvilken som helst Arduino eller et sammenlignbart brett.

Hvis du ikke allerede har en, anbefaler jeg å komme i gang med en DigiSpark Pro (~ $ 12), eller en Nano 3.0 fra eBay for ~ $ 3 (men du har en ekstra uke eller to å vente på at den kommer fra Kina; og du må installere en CH340 USB -driver). DigiSpark ~ $ 10 (ikke Pro) er veldig godt egnet for dette enkeltbits 'videospillet (Denne avkledde enheten, som bare har 6 I/Os, er litt vanskeligere å laste opp til)

Lenker til maskinvaren som brukes her:

Nano V3.0 Atmega328P på eBay

Digispark USB Development Board

Trinn 2: Hent og last ned koden

Hent og last ned koden
Hent og last ned koden

Kopier koden nedenfor til en arduino -skissefil (f.eks. …/Push_It/Push_It.ino) Jeg har prøvd å kommentere den ganske bra. Jeg håper du finner koden lett forståelig. Logikken for å bestemme når man skal øke, redusere og når man ikke skal, er noe komplisert, men den delen er også spesialisert kode og er ikke av generell nytte. For flere detaljer om hvordan du setter opp en ny 'skisse' (kodeprosjekt) som skal brukes med Arduino IDE se:

Lag en ny Arduino -skisse

Last ned "Push_It" -skissen til mikrokontrolleren vår i henhold til Arduino IDE -instruksjonene for brettet ditt.

Trinn 3: Spiller

Spiller
Spiller

Målet med spillet er å få LED-en (ombord) til å blinke så mange ganger som mulig i et sett med blitser som deretter gjentas

Å spille spillet:

Push-It starter med en enkelt blits, som deretter vil gjenta seg. Hvis du berører fingeren nær inngangspinnen mens LED -lampen er på, vil neste syklus blinke LED -lampen to ganger.

Hver gang du trykker på pseudoknappen under den første blitsen av et sett med blitser, vil det bli lagt til en annen blits i det settet. Det spiller vanligvis ingen rolle når du løfter/fjerner fingeren.

Men hvis du 'skyver' før eller etter den første blitsen, vil antallet blink i et sett reduseres.

Hvis du ikke gjør noe mer, beholdes antallet blink i et sett. Når tellingen blir uendret i en hel syklus, blir telletallet lagret i EEPROM -minnet.

Hver gang du klarer å øke blitsantall, øker timingen litt, noe som gjør det vanskeligere og vanskeligere å komme opp til høye flashtall. Når du slipper opp og antallet blink blir redusert, vil det ta en lengre pause før startblitsen til neste syklus. Dette gir en ekstra utfordring, da det kan øke sannsynligheten for at du hopper på pistolen. Så vær våken.

Når du har fått enheten opp til et høyt blitsantall, kan du ta den (eller sende den, som DigiSpark er bra for) til en venn, hvor de ved å koble den til vil se hvor høyt blitsantall du har fått din opp til. Jeg synes det er en utfordring å få den opp til mer enn 8. Med en faktisk knapp festet har jeg klart å få den opp til over et dusin. For å gå tilbake til et lavere tall kan du trykke på det gjentatte ganger når som helst før eller etter den første blitsen. Også hvis du hopper inngangspinnen til bakken under en oppstart, blir tellingen tilbakestilt til 1.

Vær oppmerksom på at det originale DigiSpark-kortet har en forsinkelse på 10 sekunder etter at det ble slått på, før det vil begynne å utføre 'Push-It' -koden og spille spillet. Den bruker denne tiden til å prøve å snakke gjennom USB -pinnene for å motta en mulig ny nedlastingskodeoppdatering.

Hvis Arduino -kortet du bruker har en USB TX LED på, vil denne LED -en få en liten liten blits når du effektivt har trykket på knappen. Det vil bli mer betydelig blinking av denne LED -en når telleverdien i EEPROM noen gang oppdateres med en ny verdi. Denne tilbakemeldingen kan hjelpe deg sterkt med å vite når eller sikre at du effektivt har utløst en "trykknapp" -hendelse. Du må kanskje sørge for at du ikke berører kretsjord (som metallet rundt en mikro-USB-kontakt), slik at figuren din virkelig kan forårsake støy på den åpne inngangspinnen. Det vil bli lagt til og litt uforutsigbare utfordringer på grunn av at inngangspinnen flyter (ikke trekkes opp eller ned av en ledende/resistiv belastning) og den variable signalstøyen som kommer gjennom fingeren.

En firkantbølge på 250 Hz sendes til en pinne ved siden av inngangspinnen, noe som forbedrer sikkerheten til et injisert inngangssignal når fingeren din dekker begge pinnene.

Jeg har funnet ut at DigiSpark-brettets svar er ganske konsekvent forutsigbare til et lite klem av fingrene til hjørnet av brettet der D3-D5 er.

Når jeg spiller 'Push-It', liker jeg å gjøre det med brettet koblet til en USB 5v mobilbatteripakke (se bilder). Disse kan vanligvis bli funnet billig i kasser ved siden av USB AC og 12v auto adaptere; i de fleste varehus elektronikkavdeling.

Trinn 4: Valgfrie eksperimenter med eksterne komponenter

Valgfrie eksperimenter med eksterne komponenter
Valgfrie eksperimenter med eksterne komponenter

Vær oppmerksom på: Hvis du legger ved en ekte knapp, er det en kodelinje som må kommenteres, som angitt i koden.

Med en høyttaler, den ene siden til bakken, hvis du berører den andre ledningen til D4, hører du lyden av en firkantbølge på 250 Hz. Ved D3 er det en kvadratbølge på 500 Hz. Hvis du kobler høyttaleren mellom D3 og D4, vil du høre en sammensetning av de to signalene.

Det er veldig interessant å koble til en LED i stedet for en høyttaler. Det er ikke nødvendig å være bekymret for spenning, strømnivåer, motstandere eller til og med polaritet for den saks skyld (i verre fall lyser det ikke, så bare snu det). Prøv først med den negative (katode) ledningen koblet til bakken og den andre til enten D3 eller D4. LED -lampen lyser "halvt" på grunn av firkantbølgene. Videre er det ikke nødvendig med noen motstand, ettersom utgangen til MicroControllerUnits er begrenset til nåværende. Jeg foretok nåværende målinger som resulterte i 15ma og 20ma for henholdsvis Attiny85 og Atmega328 MCU. Disse nivåene er omtrent halvparten av den nåværende begrensede verdien for disse delene på grunn av 50% driftssykluskarakteren til de drivende firkantbølgesignalene. Målerens avlesninger er faktisk et gjennomsnitt av strømmen gjennom den testede kretsen.

Interessant nok, hvis du bygger bro mellom D3 og D4 med LED -en (se bildet ovenfor og til venstre), vil den lyse begge veier, og med omtrent ½ lysstyrken som den gjorde med den ene siden koblet til bakken. Jeg inviterer deg til å tenke over hvorfor.

Anbefalt: