Indholdsfortegnelse:

Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C: 7 trin
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C: 7 trin

Video: Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C: 7 trin

Video: Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C: 7 trin
Video: Pwnagotchi - The Open Source Wi-Fi Hand Shake Hacker 2024, November
Anonim
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C
Håndholdt Arduino Paper Rock -saksespil ved hjælp af 20x4 LCD -display med I2C

Hej alle sammen eller måske skulle jeg sige "Hej verden!"

Det ville være en stor fornøjelse at dele et projekt med dig, der har været min indgang til mange ting Arduino. Dette er et håndholdt Arduino Paper Rock -saksespil, der bruger et I2C 20x4 LCD -display. Jeg ved, at du måske tænker, "Endnu et Paper Rock Scissors -spil?" Men de fleste Arduino Paper Rock -saksespil bruger enkle LED'er, og jeg så også en, der brugte papirsymboler løftet af servoer. De er seje. Dette projekt bruger 20x4 LCD -display og lavede et med I2C og et uden det (ikke vist her). Ønskede en billig sag med et færdigt look, ikke bare et brødbræt-rod. Ikke alle har adgang til en 3D -printer og vil betale nogen, der gør det. Og jeg ville have det let at lave, så jeg kunne dele ideerne med andre. Da mine programmeringsevner er nybegynder, er skitsen temmelig enkel og let at forstå og redigere. Dette var min personlige uddannelse til at skabe en skitse. Du finder mange noter i skitsen, og det er gået igennem mange, mange (20+?) Iterationer, indtil jeg tror, det er helt rigtigt. Projektet koster mindre end $ 20 at lave (ikke I2C).

Kom i gang med Arduino i 2018 og gik gennem deres hjemmeside og læste alt, hvad jeg kunne. Bygget og eksperimenteret med de eksempelprojekter, det følger med, og læst en masse instruktioner, så mange af jer har delt gennem årene. Sætter virkelig pris på dem og har lært så meget af jer alle. Tak skal du have. Nu vil jeg dele noget af det, jeg har lært, og tilføje min egen kreativitet. Inden kommentarfeltet hober sig op med masser af spørgsmål om, hvordan du gør dette og det, skal du huske på, jeg startede dette uden erfaring i Arduino. Jeg lærte ved at bygge eksempelprojekterne på Arduino og Instructables -webstederne. Jeg lærte af jer. Når du sidder fast, kan det være den hurtigste måde for dig at finde en løsning.

Trin 1: Projektindledning

Projekt introduktion
Projekt introduktion
Projekt introduktion
Projekt introduktion

Valgte LCD -displayet fra Amazon og valgte I2C 20x4 LCD på grund af lave omkostninger (ca. $ 12 - $ 18) og nem kabelføring og programmering. Hvis du vil, kan du bruge en uden I2C og kan få en så billig som $ 7. Men du bliver nødt til at bruge et andet bibliotek og ledningsskema og bruge flere Arduino -ben. Bare rolig, det er nok til at gå begge veje. Seriel I2C 20x4 ville være lettere at bygge, færre ledninger er mindre forvirrende. Men parallel 20x4 LCD er omkring $ 5 billigere. Jeg tegnede skemaer for begge ledningsskemaer. De fleste andre dele købte jeg fra Amazon og et par lokale butikker. Min æske er en tom cappuccino drink -blandingsboks. Jeg kan godt lide, at låget let springer af for at tænde/slukke for strømmen, arbejde på komponenter eller skifte batteri. Og "Hej!" æsken var gratis, og jeg kan godt lide cappuccino. Genbrug af plast er godt for miljøet. Du kan bruge den kasse, du kan lide, som alt passer ind i eller endda springe boksen over eller brødbræt projektet. Jeg ville have en "færdig projekt look" på billige. Jeg vedder på, at nogen opretter en 3D -printet version. Arduino spiller Paper Rock Scissors -spillet med dig på LCD -skærmen, holder score, du kan indtaste med knapperne, og hvis du vælger, er der en mulighed, der lader dig snyde. Oprindeligt blev cheat -funktionen skrevet til fejlretning, og da jeg var færdig med det, kommenterede jeg det. Bare for sjov satte jeg det tilbage.

Trin 2: Brødbræt

Brødbræt
Brødbræt
Brødbræt
Brødbræt

Jeg brød-boardede mine kredsløb ved hjælp af Arduino Uno, men da jeg satte det hele sammen, brugte jeg Arduino Nano, fordi det passer bedre i kassen. Så du kan bygge dette med en af dem. Men husk at ændre et par indstillinger i IDE. Nano er installeret på bagsiden af LCD'et ved hjælp af kommandostrimler eller dobbeltsidet klæbende tape. Placer Arduino Nano ved siden af I2C -piggyback -kortet, så USB -stikket vender udad (til højre for LCD). Du kan bruge en 9v eller 4x AA (hvilket giver dig 6v) batteriboks med SPST -skydekontakt til strøm monteret inde i boksen også med Command Strips. Bygget det begge veje, Arduino har en indbygget spændingsregulator, der bringer den ned til de 5 volt, den har brug for. Hvis du tænker over det, kan dette spil faktisk genbruge "for det meste døde 9v batterier" til strøm og fungere fint. (Du skifter røgalarmbatterier to gange om året, ikke?) Andre enheder, der bruger et 9v batteri, siger måske, at det er dødt ved 6 - 8 volt; men den er ikke død, før den er "Arduino Dead!"

Mens jeg designede projektet, brugte jeg 4 SPST -knapper til input. Men at bygge det færdige spil ind i boksen brugte 5 SPST -trykknapper, og tænkte i fremtiden, at jeg måske ville prøve at lave et spil, der havde brug for flere knapper. Måske et labyrintspil? En modstandsspændingsdeler til knapperne monteres sammen på et skrotstykke proto -plade, der også kan monteres med Command Strips.

Trin 3: Montering

montage
montage
montage
montage
montage
montage

Montage:

De 4 hovedsamlinger er LCD -skærmen med valgfri I2C -piggyback -kort, Arduino Nano, modstande og kontakter daisy lænket til det sammenkoblede proto -kort og batterikassen med tænd/sluk -kontakt.

Du bør begynde med at brød-boarding kredsløbet eller hard wire proto board efter skematisk. Jeg kan godt lide at gemme LCD'en med forsiden nedad i æsken, så den ikke ridser den. Jeg brugte kun en header på den ene side af Arduino, der har 5v til at forbinde den med proto board. Jeg lavede en bro med 3 overskrifter (masser af loddearbejde) fra Arduino til proto-pladen, så de lå fladt på bagsiden af LCD'et med kommandostrimler eller dobbeltsidet klæbende tape. Men virkelig kan brædderne forbindes bare lodningstråde fra den ene til den anden. Brugte en kvindelig header til at forbinde proto -kortet til LCD I2C. Proto board modstandsbenene kan bruges til at lave de 5 loddepunkter til knapperne. Det andet ben på hver knap går til Arduino pin A0. Hver knap skal bruge 2 tråde loddet. Brug en Ohm -måler til at bestemme, hvilke knapben der skal bruges, men generelt kan du ikke gå galt med ikke -tilstødende ben (diagonalt fra hinanden).

Vælg dine indstillinger for din Arduino i IDE. Download skitsen, og indlæs den på Arduino og test / fejlfinding.

Klar til at lægge den i en æske? Fjernede etiketten til cappuccino, vaskede og tørrede min æske. Mål omhyggeligt og skær hullet i boksen til LCD'en ud, som du kan se, og den er monteret med 3 dyvler skruet til tre LCD -hjørnehuller (2 til bunden af kassen, 1 nær låget) lige længe nok til at nå bagsiden af kassen og hold den på plads med friktion. Skruehullet på LCD -skærmen er muligvis for tæt på terminalen, så jeg udelader det. Brugte en Exacto -kniv til at bore styrehuller til skruer i dyvlerne, så de ikke splittes (pas på, glid ikke og stikk dig selv, hold dyvler med tænger). Var nødt til at bøje / moske kassen lidt til den sidste installation, men den klikker tilbage til den korrekte form. Hullerne til knapperne "bores" ved at placere dem (tegne linjer med lige kant) og opvarme terminalerne med et loddejern, indtil de "smelter igennem" boksen. Fjernede derefter knapperne, efter at de var kølet af og loddet på 6 " - 9" CAT 5e trådrester eller 18ga til 22ga wire til knapperne. Installer knapperne tråd-først tilbage i deres huller og lod derefter til modstandens proto-board. En prik med superlim, varm lim eller endda bare friktion holder knapperne på plads. På et byggeri brugte nogle telefonkabelskærere (de røde cirkler i de klare plastikblokke) til at gøre den sidste håndfuld forbindelser lettere mellem batterikassen, modstandens proto-kort og LCD / Arduino-samling. Hvis du vil, kan du bruge loddemetal og varmekrympning i stedet. Skub derefter forsigtigt og langsomt alle ledninger og komponenter ind i kassen og luk låget. Har du installeret et batteri og uploadet Arduino -skitsen, før du gjorde alt dette? Du skal også bruge biblioteket til et 20x4 LCD -display med eller uden I2C (alt efter hvad du vælger), som du kan downloade gratis på Github. Start det, prøv det og se om det virker. Senere redigerede jeg min skitse med pauser for at gøre den lettere at læse, tilføjede "blinkende prikker -effekten" og nogle andre ting sammen med masser af kommentarer. Prøv at placere Arduino, så USB stadig kan tilsluttes og en ny skitse uploades. Brugte naturligvis et rutediagram ved oprettelsen af skitsen. Du finder kommentarerne stort set definere, hvor hver blok af flowdiagram var.

Du vil opdage, at knapperne er i et serie / parallelt kredsløb, der giver dig mulighed for at bruge en Arduino -indgangsstift til så mange knapper, som du vil. Kredsløbet fungerer som en spændingsdeler til at føde en værdi til den analoge pin og ændre værdien, der læses med hver tast, der trykkes på. Du kan bruge den serielle skærm til at finde ud af dine kredsløbsværdier baseret på dine modstande og ændre de "accepterede værdier" i din skitse.

Håber du har det sjovt med at bygge din egen! Hvis du laver en eller endda laver nogle mods af dette, kan du dele med os andre. Tak fordi du læste.

Trin 4: Programmering og indstillinger

Programmering og indstillinger
Programmering og indstillinger
Programmering og indstillinger
Programmering og indstillinger

Nu for sjov med IDE. Jeg håber du har drukket lidt cappuccino. Du har måske brug for det for at hjælpe dig med at holde dig vågen.

Det kan være, at du bliver nødt til at oprette nogle biblioteker. Du skal bruge Wire.h Til I2C, LCD.h til LCD, LiquidCrystal_I2C.h til I2C kontrolleret LCD. Du bliver også nødt til at bruge kommandoen lcd.begin (20, 4) for at fortælle Arduino, at du bruger en 20 tegn 4 -linjers LCD, og der kan være andre indstillinger.

For oplysninger om installation af biblioteker, se:

I Arduino IDE finder du måske, at du bliver nødt til at indstille dit kort og den port, du har det tilsluttet. Porten findes i din computers kontrolpanel/enhedshåndtering/Universal Serial Bus -controllere. Du skal finde ud af, hvilken Arduino du bruger. Jeg bruger Arduino Nano, men Uno fungerer også til dette. Vælg dine indstillinger omhyggeligt.

Du skal muligvis finde ud af din I2C -adresse. Du burde være i stand til at læse den direkte fra brættet jumpere. Du kan også downloade en I2C -scanner fra Arduino.cc eller også https://www.gammon.com.au/forum/?id=10896 og andre steder.

Et eller andet sted omkring dette punkt skulle du kunne indlæse programmet til Arduino og teste funktionalitet. Lyser LCD -skærmen? Kan du læse karakterer? En gang jeg byggede kredsløbet testede det baggrundsbelysningen, men tegn var ulæselige. Brugte timer (det er rigtigt, HOURS) på at prøve indstillinger og toningforbindelser for at sikre, at den blev bygget rigtigt. Gav op i et par dage. Kom tilbage til det senere og indså, at den variable modstand på piggyback -pladen var sat til et minimum. Skruet op og karaktererne var synlige. Bang hoved på skrivebordet. En anden grund til at banke hovedet på skrivebordet? Hvis du skal skifte batteri, skal du muligvis justere denne variable modstand igen. Da dette skete, skar jeg et lille hul bag i kassen for at få adgang.

Du skal muligvis indstille dine egne knapværdier i dette program baseret på de modstande, du bruger til dine knapper. Du kan bruge denne praktiske lille skitse til det og husk at aktivere den serielle skærm. Kør skitsen, og tryk på hver knap, og skriv hver værdi ned. Rediger derefter skitsen for at afspejle dine knapværdier. Upload derefter den redigerede skitse til dit board og se om det virker.

Der er mange små variabler, der alle skal være helt rigtige, og din kan være anderledes end min. At være tålmodig og prøve forskellige ting hjælper dig med at få din til at fungere. Husk også, at når du har angivet dine Arduino-variabler (som tavlenavn, com 3, 5 eller hvad som helst, processor og programmør [alt under værktøjer]) kan du få dem alle indstillet rigtigt, men det virker ikke, fordi du skal genstarte. Tag Arduino -stikket ud, og sæt det tilbage i din computer. Du skal muligvis også gemme og genstarte din computer igen.

Upload denne skitse, kør skærmen, tryk på knapperne og registrer værdierne, rediger derefter Paper Rock Scissors -skitsen og erstat mine modstandsværdier med dine. Kør Paper Rock Scissors -skitsen, og se om den virker rigtigt. Åh ja, installerede du dine knapper i den forkerte rækkefølge? Du skal muligvis geninstallere dem, hvis du vil have dem i en bestemt rækkefølge.

Hav det sjovt!

Trin 5: Knaplæseskitse hjælper dig med at finde dine Resister -værdier til redigering i hovedskitsen. Tryk på hver knap, og registrer dine modstandsværdier for at komme ind i hovedskitsen

// knaplæsningskitse

ugyldig opsætning () {

// sæt din opsætningskode her for at køre en gang:

Serial.begin (9600);

}

void loop () {

// sæt din hovedkode her for at køre gentagne gange:

int buTTon; // Til læsning af knapper

buTTon = 0; // Til læsning af knapper

buTTon = analogRead (A0); // Kommando bruges til at læse knapperne

forsinkelse (100);

Serial.println (buTTon);

Trin 6: Delelister og værktøjer, du måske har brug for

Deleliste fra Amazon:

Arduino Uno eller Arduino Nano

20x4 LCD -display med eller uden I2C

9v eller 6v batteriboks med SPST -skydekontakt (eller få skydekontakten separat)

5x SPST trykknapper

1x pull -up modstand 1k - 5k

5x modstande mindre end 1k, 200 - 500 ohm er godt

Reservedelslister Andre steder eller butikker:

9v eller 4x 1,5 volt batteri (med 9v mulighed kan du genbruge "for det meste døde" batterier)

Kommandostrimler (brugt en påfyldningspakke) eller dobbeltsidet klæbende tape

Telefonkabelskærere (valgfri, men gør det let at tilslutte ledninger)

Et par centimeter 1/4 dyvel

Små træskruer til montering af dyvler på LCD

Lodde

Varmekrymp til 18 ga ledninger

Skrot eller genbrugsdele:

Tom blandingsboks til cappuccino -drikke (ikke alle har en 3D -printer, har lidt cappuccino og genbruger noget plast)

Cirka 1 "x 2" Proto board skrot selvom jeg brugte protoboard fra Amazon

Forskellig længde på 18ga til 22ga wire eller Cat 5e solid core

Værktøjer, du måske har brug for:

Lille Philips skruetrækker

Lille fladskruetrækker

Exacto Kniv

Loddejern og loddetin

Kraftig saks

Nålestang

Lineal

Trin 7: Nogle flere oplysninger og hovedskitsen

Tak fordi du læste. Jeg ved, det er meget. Dette er min første Intructable, og det alene var lidt lærerigt for mig. Når jeg ser tilbage, kan jeg se, at jeg er ordrig nogle steder og for kort andre steder. Jeg skulle have brudt samlingen mere ned i trin. Og da jeg byggede dette projekt omkring et dusin gange, indtil det var helt rigtigt, er nogle af billederne fra en eller anden model. Jeg skal tilbage og tage billeder af kun en model. Jeg vil også inkludere en video eller to. Så ja, jeg kommer tilbage og ordner det her. Men nu lægger jeg det i dine hænder. Jeg håber du nyder at bygge det lige så meget som jeg gjorde. Tak igen fordi du læste.

Anbefalede: