Cuprins:

Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED: 4 pași
Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED: 4 pași

Video: Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED: 4 pași

Video: Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED: 4 pași
Video: Marlin Firmware 2.0.x Explained 2024, Iulie
Anonim
Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED
Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED
Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED
Testați Bare Arduino, cu software de joc care utilizează intrare capacitivă și LED

Joc interactiv „Push-It” folosind o placă Arduino goală, fără piese externe sau cabluri necesare (utilizează o intrare „tactilă” capacitivă). Afișat mai sus, demonstrează că rulează pe două plăci diferite.

Push-Are două scopuri.

  1. Pentru a demonstra / verifica rapid că placa dvs. Arduino funcționează și că sunteți configurat corect pentru a descărca o nouă schiță de cod pe ea. Veți putea vedea că efectuează intrare și ieșire (detectează nivelul de intrare digitală, ieșire la LED-ul de la bord); stocați și recuperați o valoare din memoria EEPROM nevolatilă. Totul fără a atașa fire sau dispozitive.
  2. Oferiți un joc distractiv și provocator interacționând cu o placă Arduino.

Această instrucțiune presupune că ați instalat deja un IDE Arduino și că sunteți cel puțin minim familiarizați cu utilizarea acestuia. Dacă nu, vă trimit la aceste linkuri:

Noțiuni introductive despre Arduino

Adăugarea suportului Digispark (cu bootloader) la IDE Arduino 1.6.x existent

Push-It va funcționa cu majoritatea oricărei plăci Arduino, de ex. o placă Nano, Uno sau DigiSpark Attiny85. Am testat-o cu un Nano 3.1 și un DigiSpark. În text, când mă refer la numele / numerele pinilor, vor fi așa cum sunt folosiți pe placa Nano (spre deosebire de DigiSpark).

Pasul 1: Având lucrurile de care ai nevoie

Care este pur și simplu orice Arduino sau o placă comparabilă.

Dacă nu aveți deja unul, vă recomand să începeți cu un DigiSpark Pro (~ 12 USD) sau un Nano 3.0 de la eBay pentru ~ 3 USD (dar veți avea o săptămână sau două în plus să așteptați să vină din China; și va trebui să instalați un driver USB CH340). DigiSpark ~ 10 $ (non Pro) se potrivește foarte bine pentru acest joc „video” cu un singur bit (Această unitate decupată, având doar 6 E / S, este puțin mai dificilă de încărcat)

Link-uri către hardware-ul utilizat aici:

Nano V3.0 Atmega328P pe eBay

Placa de dezvoltare USB Digispark

Pasul 2: preluați și descărcați codul

Aduceți și descărcați codul
Aduceți și descărcați codul

Copiați codul de mai jos într-un fișier schiță arduino (de exemplu… / Push_It / Push_It.ino) Am încercat să comentez destul de bine. Sper să găsiți codul ușor de înțeles. Logica pentru a determina când să crească, să scadă și când să nu este oarecum complicată, dar acea porțiune este, de asemenea, un cod specializat și nu are o utilitate generală. Pentru mai multe detalii despre configurarea unei noi „schițe” (proiect de cod) pentru a fi utilizat ID-ul Arduino vezi:

Crearea unei noi schițe Arduino

Descărcați schița „Push_It” în microcontolerul nostru conform instrucțiunilor Arduino IDE pentru placa dvs.

Pasul 3: Joacă

Joc
Joc

Scopul jocului este de a face ca LED-ul (la bord) să clipească cât mai mult timp posibil într-un set de flash-uri care apoi se repetă

Jucand jocul:

Push-It începe cu un singur bliț, care apoi se va repeta. Dacă atingeți degetul lângă pinul de intrare în timp ce LED-ul este aprins, următorul ciclu va lumina intermitent LED-ul de două ori.

De fiecare dată când apăsați butonul pseudo în timpul primei blițuri a unui set de blițuri, un alt bliț va fi adăugat la acel set. În general, nu contează când ridicați / scoateți degetul.

Dar dacă „împingeți” înainte sau după primul bliț, numărul de blițuri dintr-un set va fi redus.

Dacă nu mai faceți nimic, numărul de blițuri dintr-un set este menținut. Mai mult, atunci când numărul rămâne neschimbat pentru un ciclu complet, numărul contorului este stocat în memoria EEPROM.

De fiecare dată când reușiți să măriți numărul de bliți, viteza de sincronizare crește puțin, făcând din ce în ce mai greu să ajungeți la un număr mare de bliți. Când faceți o alunecare și numărul de blițuri se reduce, va exista o pauză mai lungă înainte de blițul de pornire al ciclului următor. Aceasta oferă o provocare suplimentară, deoarece poate crește probabilitatea să sari cu arma. Așadar, rămâneți alert.

Odată ce ați obținut unitatea până la un număr mare de blițuri, îl puteți duce (sau trimite prin poștă, pentru care DigiSpark este bun) unui prieten, unde, după conectare, vor vedea cât de mare este numărul dvs. de blițuri pe care l-ați ridicat. la. Mi s-a părut că a renunțat la provocare să-l duc la mai mult de 8. Cu un buton real atașat am reușit să-l ridic la peste o duzină. Pentru a reveni la un număr mai mic, puteți să îl apăsați în mod repetat oricând înainte sau după primul bliț. De asemenea, dacă treceți pinul de intrare la masă în timpul unei porniri, numărul va fi resetat la 1.

Rețineți că placa originală DigiSpark are o întârziere de 10 secunde după pornire, înainte de care va începe să execute codul „Push-It” și să joace jocul. Folosește acest timp pentru a încerca să vorbească prin pinii USB pentru a primi o posibilă nouă actualizare a codului de descărcare.

Dacă placa Arduino pe care o utilizați are un LED USB TX pe acesta, acest LED va avea un bliț mic rapid când ați „apăsat butonul” în mod eficient. Acest LED va clipi mai semnificativ atunci când valoarea contorului din EEPROM este actualizată cu o nouă valoare. Acest feedback vă poate ajuta foarte mult să știți când sau să vă asigurați că ați declanșat în mod eficient un eveniment „apăsat pe buton”. Este posibil să trebuiască să vă asigurați că nu atingeți masa circuitului (cum ar fi metalul din jurul unui conector micro-USB), astfel încât figura dvs. să inducă într-adevăr zgomot pe pinul de intrare deschis. Vor fi provocări adăugate și oarecum imprevizibile datorită faptului că pinul de intrare este plutitor (nu este tras în sus sau în jos de o sarcină conductivă / rezistivă) și zgomotul semnalului variabil care vine prin degetul tău.

O undă pătrată de 250Hz este trimisă către un pin de lângă pinul de intrare, ceea ce îmbunătățește foarte mult siguranța unui semnal de intrare injectat atunci când degetul acoperă ambii pini.

Am găsit că răspunsul plăcii DigiSpark este destul de consecvent previzibil la o mică apăsare a degetelor în colțul plăcii unde se află D3-D5.

Când joc „Push-It”, îmi place să fac acest lucru cu placa conectată la un acumulator mobil USB 5v (vezi fotografiile). Acestea pot fi găsite, în general, ieftin în coșurile de gunoi lângă cele ale adaptoarelor USB AC și 12v; în majoritatea oricăror magazine universale.

Pasul 4: Experimente opționale cu componente externe

Experimente opționale cu componente externe
Experimente opționale cu componente externe

Vă rugăm să rețineți: dacă atașați un buton real, există o linie de cod care trebuie comentată, așa cum se menționează în cod.

Cu un difuzor, de o parte la masă, dacă atingeți celălalt cablu la D4 veți auzi sunetul unei unde pătrate de 250 Hz. La D3 există o undă pătrată de 500Hz. Dacă conectați difuzorul între D3 și D4, veți auzi un compozit din cele două semnale.

Este foarte interesant să conectați un LED în loc de difuzor ca mai sus. Nu este nevoie să vă faceți griji cu privire la tensiune, niveluri de curent, rezistențe sau chiar polaritate pentru acest subiect (caz mai rău nu se aprinde, apoi doar întoarceți-l). Încercați, în primul rând, cu cablul negativ (catod) conectat la masă și celălalt fie la D3, fie la D4. LED-ul va fi „pe jumătate” aprins, din cauza undelor pătrate. În plus, nu este necesară nicio rezistență, deoarece ieșirea unităților MicroController este limitată în prezent. Am făcut măsurători de curent rezultând 15ma și 20ma pentru MCU-urile Attiny85 și respectiv Atmega328. Aceste niveluri sunt aproximativ jumătate din valoarea limitată curentă pentru aceste piese datorită naturii ciclului de funcționare de 50% a semnalelor de undă pătrată de conducere. Citirile contorului sunt de fapt o medie a curentului prin circuitul testat.

Interesant, dacă faceți o legătură între D3 și D4 cu LED-ul (a se vedea imaginea de mai sus și în stânga), acesta se va aprinde în ambele sensuri și la aproximativ ½ luminozitatea, așa cum a făcut-o cu o parte conectată la masă. Te invit să te gândești de ce.

Recomandat: