Cuprins:
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
"Ai jocuri pe telefonul tău?"
"Nu chiar."
Introducere:
Simplu de controlat, ușor de programat și imortalizat de Nokia 6110, Snake a devenit un proiect preferat printre ingineri. Acesta a fost implementat în orice, de la matrici LED, LCD-uri, iluminat pentru rafturi și chiar ferestre de clădiri întregi. Vom implementa Snake pe o placă mică și pe un ecran OLED. Oamenii au făcut cu siguranță jucători de șarpe mai tineri, dar acest lucru folosește în mod specific o placă, eliminând necesitatea de a proiecta PCB-uri sau lipire.
(Puteți crea o aplicație pe telefonul dvs., dar noi nu facem lucruri pentru că sunt ușoare.)
Condiții preliminare:
O înțelegere de bază a circuitelor, cum să faceți panoul de testare și o înțelegere solidă a programării în Arduino.
Provizii
- Arduino Nano
- 2 rezistențe destul de mari (1kOhm)
- Pană mică
- 2 butoane
- Sârmă cu miez solid de 22 AWG
- 128 x 64 OLED
Acestea sunt linkuri de afiliere Amazon, așa că câștig un mic comision cu fiecare vânzare. Dacă nu aveți deja aceste consumabile și doriți să sprijiniți viitoarele proiecte ale mele, urmați aceste linkuri!:)
Pasul 1: Breadboard
Pentru a realiza produsul nostru final, trebuie să montăm hardware-ul pentru a programa și testa proiectul nostru. Diagrama de sistem pentru acest proiect este destul de simplă, deoarece implică doar un total de 4 componente.
1. Așezați-l:
Luați componentele și așezați-le pe tablă, asigurându-vă că totul se potrivește. Vizualizați ce fire și pini veți folosi și în ce scopuri. Asigurați-vă că firele dvs. anticipate nu se încrucișează, deoarece acest lucru face ca o placă mai dificilă. Scrieți ce puncte va trebui să vă conectați! Deși aceasta este o placă simplă, aceasta vă va face viața mult mai ușoară în timpul procesului de cablare și în general. Datorită cât de mic este spațiul nostru de lucru, acesta este un pas incredibil de important.
Note:
Deoarece OLED utilizează magistrala I2C, trebuie folosiți pinii A4 și A5. Dimensiunea plăcii nu permite o șină de alimentare și de sol, așa că am folosit câteva trucuri pentru ca totul să funcționeze. Tensiunea pozitivă pentru butoane este furnizată de pinii D13 și A2. Am descoperit că pinii Arduino nu numai că pot furniza curent, ci și curent de scufundare, așa că am folosit A3 ca bază pentru butonul din dreapta. Pentru a maximiza spațiul de pe panou, am atârnat jumătate din Nano de pe tablă și am sprijinit pinii din stânga cu o bucată de spumă.
2. Conectați-l:
Cu o pereche de decapanti de sârmă și o cantitate decentă de sârmă solidă de 22 AWG, conectați bine componentele. Folosirea miezului solid pentru realizarea de proiecte semipermanente este esențială, deoarece le puteți tăia la lungime, spre deosebire de firele jumper. Asigurați-vă că nu lăsați prea multă lungime pe firele dvs., aceasta va face o placă dezordonată. Tăiați cablurile rezistențelor de tragere în jos, astfel încât să se potrivească perfect cu placa.
(Puteți urmări, de asemenea, ceea ce am făcut mai sus.)
Pasul 2: Programați și testați
Pentru a vă salva o durere de cap mai târziu, asigurați-vă că OLED-ul și butoanele funcționează așa cum ar trebui, realizând programe de testare de bază.
1. Planifică, planifică, planifică:
Saltul direct în cod nu este o practică înțeleaptă. Crede-mă, am încercat! De aceea ar trebui să subliniați cum va funcționa programul dvs. O diagramă a fluxului de programe este un mod destul de solid de a planifica ceea ce trebuie să facă codul dvs. și vă va ține cu siguranță pe drumul cel bun. Luați-o pe a mea de exemplu (mai sus)
2. Cod, cod, cod:
Sincer, acest proiect este un exercițiu de programare mai mare decât este un exercițiu hardware. Singura bibliotecă pe care am folosit-o a fost biblioteca OLED a Adafruit, fără a lua în calcul bibliotecile GFX și Wire.
Faceți-vă să instalați biblioteca OLED Adafruit prin intermediul managerului de bibliotecă Arduino IDE.
Nu pot documenta fiecare linie de cod pe care am scris-o, dar iată câteva sfaturi:
Sfaturi:
Comentarii:
- În primul rând, scrieți comentarii îngrijite și utile în timp ce codificați. Viitorul dvs. și alții care vă vor citi codul vă vor mulțumi cu siguranță.
Memorie:
- Cu astfel de proiecte mai complexe, SRAM devine o marfă fierbinte. În biblioteca Adafruit, memoria tampon OLED de 128 x 64 ocupă 1 kB singur, ceea ce reprezintă aproximativ jumătate din memorie într-un ATMega328p. Prin urmare, gestionarea inteligentă a memoriei este mai importantă ca niciodată.
- Cu structuri mari de date, datele deținute se vor acumula și vor ocupa mult spațiu. Pentru a reduce amprenta de memorie a variabilelor mele, am folosit tipuri de date mai mici (cum ar fi scurt și octet) când am putut.
- Șirurile sunt de obicei stocate în SRAM, dar folosind funcția F () le veți introduce în PROGMEM, economisind memorie prețioasă.
Millis:
- Pentru a obține o sincronizare mai precisă a ciclurilor de joc, utilizați funcția millis (). Există o mulțime de tutoriale și exemple bune online.
Definiți în prealabil:
- Utilizați directiva #define preprocesor ca o modalitate ușoară de a seta valori permanente în cod.
Test:
- Testați-vă codul pe măsură ce mergeți. Va fi mult mai ușor să distrugeți erorile.
Pasul 3: Bucurați-vă
Distrează-te cu noul tău joc de șarpe!
(Știu că am câștigat la 20 de puncte în videoclipul de mai sus, puteți seta condiția de câștig mai mare în codul meu.)
Lucruri de extins:
- O baterie pentru portabilitate
- Butoane mai sigure
- Un joc de șarpe și mai mic
- Chiar și mai multe jocuri?
Recomandat:
Robot șarpe imprimat 3D: 7 pași (cu imagini)
Robot de șarpe imprimat 3D: Când mi-am luat imprimanta 3D, am început să mă gândesc ce pot face cu el. Am tipărit o mulțime de lucruri, dar am vrut să fac o construcție întreagă folosind imprimarea 3D. Apoi m-am gândit să fac un animal robot. Prima mea idee a fost să fac un câine sau un păianjen, dar o
NeoPixels Matrix Game Joc Șarpe: 4 pași
NeoPixels Matrix Game Joc Șarpe: Vă mai amintiți jocul șarpe pe care l-am jucat pe cutia noastră de joc sau pe mobil în timpul copilăriei noastre? Astăzi vom învăța cum să facem un joc de șarpe cu 8 * 8 NeoPixels Matrix. Alegem Arduino uno ca centru de control și modul de separare Joystick pentru a co
Șarpe: mașina inutilă: 5 pași
Șarpe: Mașina inutilă: Știi când erai copil și joci șarpe pe Nokia? La un moment dat, șarpele ar începe să-și alerge propria coadă și atunci ai știut că jocul era pe punctul de a se termina. Am decis să transformăm acest lucru într-un robot, doar că jocul niciodată
Jucării adaptabile la comutare: șarpe controlat de la distanță cu ou accesibil !: 7 pași (cu imagini)
Jucării adaptabile la comutare: șarpe controlat de la distanță cu ou! În multe cazuri, copiii care au nevoie de jucăriile adaptate nu pot să
Șarpe robotizat bioinspirat: 16 pași (cu imagini)
Șarpe robotic bioinspirat: Am fost inspirat să încep acest proiect după ce am văzut videoclipuri de cercetare atât ale șerpilor robotici care se cățără în copaci, cât și ale anghilelor robotizate. Aceasta este prima mea încercare și construirea roboților folosind locomoția serpentină, dar nu va fi ultima mea! Abonați-vă pe YouTube dacă doriți