Innehållsförteckning:

Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED: 4 steg
Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED: 4 steg

Video: Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED: 4 steg

Video: Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED: 4 steg
Video: Introduction to M5Stack Core2 ESP32 2" Display Development Module -Robojax 2024, Juli
Anonim
Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED
Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED
Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED
Testa Bare Arduino, med spelprogramvara med kapacitiv ingång och LED

"Push-It" -interaktivt spel med ett rent Arduino-kort, inga externa delar eller kablar behövs (använder en kapacitiv "touch" -ingång). Visas ovan, visar att den körs på två olika brädor.

Push-It har två syften.

  1. För att snabbt visa/verifiera att ditt Arduino -kort fungerar och att du är korrekt inställd för att ladda ner en ny kodskiss till den. Du kommer att kunna se att den utför ingång och utmatning (känner av digital ingångsnivå, utmatning till den inbyggda lysdioden); lagra och återställ ett värde från det icke-flyktiga EEPROM-minnet. Allt utan att fästa några ledningar eller enheter.
  2. Ge ett underhållande och utmanande spel som interagerar med ett Arduino -bräda.

Denna instruerbara förutsätter att du redan har installerat en Arduino IDE och är åtminstone minimalt bekant med dess användning. Om inte hänvisar jag dig till dessa länkar:

Komma igång med Arduino

Lägger till Digispark (med bootloader) stöd till befintliga Arduino 1.6.x IDE

Push-It fungerar med de flesta Arduino-kort, t.ex. ett Nano-, Uno- eller DigiSpark Attiny85 -kort. Jag har testat det med en Nano 3.1 och en DigiSpark. I texten när jag hänvisar till stiftnamn/nummer kommer de att användas som på Nano -kortet (i motsats till DigiSpark).

Steg 1: Ha de saker du behöver

Vilket helt enkelt är vilken Arduino eller jämförbar bräda.

Om du inte redan har en rekommenderar jag att du kommer igång med en DigiSpark Pro (~ $ 12), eller en Nano 3.0 från eBay för ~ $ 3 (men du får en vecka eller två extra att vänta på att den ska komma från Kina; och du måste installera en CH340 USB -drivrutin). DigiSpark ~ $ 10 (icke -Pro) är mycket väl lämpad för detta enda bitars 'videospel' (Denna avskalade enhet, som bara har 6 I/O, är lite svårare att ladda upp till)

Länkar till hårdvaran som används här:

Nano V3.0 Atmega328P på eBay

Digispark USB Development Board

Steg 2: Hämta och ladda ner koden

Hämta och ladda ner koden
Hämta och ladda ner koden

Kopiera koden nedan till en arduino -skissfil (t.ex. …/Push_It/Push_It.ino) Jag har försökt kommentera det ganska bra. Jag hoppas att du hittar koden lättbegriplig. Logiken för att bestämma när man ska öka, minska och när man inte ska är något komplicerad, men den delen är också specialiserad kod och är inte av allmän nytta. För mer information om hur man skapar en ny 'skiss' (kodprojekt) som ska användas med Arduino IDE se:

Skapa en ny Arduino -skiss

Ladda ner "Push_It" -skissen till vår mikrokontroller enligt Arduino IDE -instruktionerna för ditt kort.

Steg 3: Spela

Spelar
Spelar

Målet med spelet är att få lysdioden (ombord) att blinka så många gånger som möjligt i en uppsättning blixtar som sedan upprepas

Spelar spelet:

Push-It startar med en enda blixt, som sedan upprepas. Om du rör ditt finger nära inmatningsstiftet medan lysdioden är tänd, blinkar nästa cykel lysdioden två gånger.

Varje gång du trycker på pseudoknappen under den första blixten av en uppsättning blixtar kommer ytterligare en blixt att läggas till den uppsättningen. Det spelar generellt ingen roll när du lyfter/tar bort fingret.

Men om du "trycker" före eller efter den första blixten kommer antalet blinkningar i en uppsättning att minska.

Om du inte gör något mer bibehålls antalet blinkningar i en uppsättning. När räkningen går oförändrad under en hel cykel lagras räkningsnumret i EEPROM -minne.

Varje gång du lyckas öka blixträkningen går hastigheten lite snabbare, vilket gör det svårare och svårare att få upp till höga blixtantal. När du gör en glidning och antalet blixtar minskar, kommer det att ta en längre paus innan nästa blixt startas. Detta ger en extra utmaning, eftersom det kan öka sannolikheten för att du hoppar på pistolen. Så var uppmärksam.

När du har fått din enhet upp till ett högt blixtantal kan du ta den (eller skicka den, vilket DigiSpark är bra för) till en vän, där de vid anslutning kommer att se hur högt blixtantal du har fått din upp till. Jag har tyckt att det har varit utmanande att få upp till mer än 8. Med en verklig knapp bifogad har jag lyckats få upp den till över ett dussin. För att återgå till ett lägre antal kan du trycka upprepade gånger när som helst före eller efter den första blixten. Även om du hoppar ingångsstiftet till marken under en uppstart kommer räkningen att återställas till 1.

Observera att den ursprungliga DigiSpark-tavlan har en fördröjning på 10 sekunder efter att den slagits på innan den börjar utföra "Push-It" -koden och spela spelet. Den använder den här tiden för att försöka prata genom USB -stiften för att få en eventuell ny nedladdningskoduppdatering.

Om det Arduino -kort du använder har en USB TX -lysdiod på den, kommer denna LED att få en snabb liten blixt när du effektivt har tryckt på knappen. Det kommer att bli mer betydande blinkning av denna LED när någonsin räkningsvärdet i EEPROM uppdateras med ett nytt värde. Denna feedback kan hjälpa dig mycket att veta när eller försäkra att du effektivt har utlöst en "tryckt knapp" -händelse. Du kan behöva se till att du inte vidrör kretsjorden (som metallen runt en mikro-USB-kontakt) så att din figur verkligen ger upphov till brus på den öppna ingångsstiften. Det kommer att läggas till och lite oförutsägbara utmaningar på grund av det faktum att ingångsstiftet flyter (inte dras upp eller ner av en ledande/resistiv belastning) och det variabla signalbruset som kommer genom ditt finger.

En fyrkantig våg på 250 Hz matas ut till en stift bredvid ingångsstiftet, vilket förbättrar säkerheten för en insprutad insignal när ditt finger täcker båda stiften.

Jag har tyckt att DigiSpark-styrelsens svar är ganska konsekvent förutsägbara till en liten klämning av fingrarna till hörnet av brädet där D3-D5 är.

När jag spelar 'Push-It' gör jag det gärna med kortet anslutet till ett USB 5v mobilbatteri (se bilder). Dessa kan generellt hittas billigt i papperskorgar bredvid USB -växelströms- och 12V -adaptrar. i de flesta varuhus elektronikavdelning.

Steg 4: Valfria experiment med externa komponenter

Valfria experiment med externa komponenter
Valfria experiment med externa komponenter

Observera: Om du lägger till en riktig knapp finns det en kodrad som måste kommenteras, som anges i koden.

Med en högtalare, ena sidan till marken, om du rör den andra ledningen till D4 hör du ljudet av en 250 Hz fyrkantvåg. Vid D3 finns en 500Hz fyrkantvåg. Om du ansluter högtalaren mellan D3 och D4 hör du en sammansättning av de två signalerna.

Att ansluta en LED istället för en högtalare enligt ovan är mycket intressant. Det finns ingen anledning att oroa sig för spänning, strömnivåer, motstånd eller till och med polaritet för den delen (i värre fall tänds det inte, vänd det bara). Försök först med den negativa (katod) ledningen ansluten till jord och den andra till antingen D3 eller D4. Lysdioden lyser "halvt" på grund av de fyrkantiga vågorna. Dessutom krävs ingen motståndare eftersom utmatningen från MicroControllerUnits är strömbegränsad. Jag gjorde strömmätningar som resulterade i 15ma och 20ma för Attiny85 respektive Atmega328 MCU: erna. Dessa nivåer är ungefär hälften av det nuvarande begränsade värdet för dessa delar på grund av 50% driftscykelkaraktär hos de drivande fyrkantvågssignalerna. Mätarens avläsningar är faktiskt ett genomsnitt av strömmen genom den testade kretsen.

Intressant nog, om du överbryggar mellan D3 och D4 med lysdioden (se bilden ovan och till vänster) kommer den att lysa åt båda hållen, och med ungefär ½ ljusstyrkan som den gjorde med ena sidan ansluten till marken. Jag inbjuder dig att fundera på varför.

Rekommenderad: