Satura rādītājs:

Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED: 4 soļi
Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED: 4 soļi

Video: Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED: 4 soļi

Video: Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED: 4 soļi
Video: CS50 2015 - Week 7 2024, Jūlijs
Anonim
Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED
Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED
Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED
Pārbaudiet Bare Arduino ar spēļu programmatūru, izmantojot kapacitatīvo ievadi un LED

"Push-It" interaktīvā spēle, izmantojot tukšu Arduino plāksni, nav nepieciešamas ārējas detaļas vai vadi (tiek izmantota kapacitatīva "pieskāriena" ievade). Iepriekš parādīts, tas parāda, ka tas darbojas uz diviem dažādiem dēļiem.

Push-Tam ir divi mērķi.

  1. Lai ātri parādītu/pārbaudītu, vai jūsu Arduino plate darbojas un vai esat pareizi iestatīts, lai tajā lejupielādētu jaunu koda skici. Jūs varēsit redzēt, ka tā veic ievadi un izvadi (uztver digitālās ievades līmeni, izvada uz borta LED); saglabāt un atgūt vērtību no nepastāvīgās EEPROM atmiņas. Viss bez vadu vai ierīču pievienošanas.
  2. Nodrošiniet izklaidējošu un izaicinošu spēli, mijiedarbojoties ar Arduino dēli.

Šajā pamācībā tiek pieņemts, ka esat jau instalējis Arduino IDE un vismaz minimāli esat iepazinies ar tā lietošanu. Ja nē, es atsaucos uz šīm saitēm:

Darba sākšana ar Arduino

Digispark (ar sāknēšanas ielādētāju) atbalsta pievienošana esošajam Arduino 1.6.x IDE

Push-It darbosies ar lielāko daļu jebkuras Arduino plates, piem. Nano, Uno vai DigiSpark Attiny85 tāfele. Es to pārbaudīju ar Nano 3.1 un DigiSpark. Teksts, kad es atsaucos uz tapu nosaukumiem/numuriem, tie tiks izmantoti Nano plāksnē (pretstatā DigiSpark).

1. darbība. Nepieciešamo lietu iegūšana

Kas ir vienkārši jebkura Arduino vai līdzīga tāfele.

Ja jums tāda vēl nav, iesaku sākt darbu ar DigiSpark Pro (~ 12 ASV dolāri) vai Nano 3.0 no eBay par ~ 3 ASV dolāriem (bet jums būs jāgaida papildu nedēļa vai divas, kamēr tas tiks piegādāts no Ķīnas); un jums būs jāinstalē CH340 USB draiveris). DigiSpark ~ 10 ASV dolāri (nav Pro) ir ļoti labi piemērots šai viena bita 'video' spēlei (šo noņemto vienību, kurai ir tikai 6 I/O, ir nedaudz grūtāk augšupielādēt)

Saites uz šeit izmantoto aparatūru:

Nano V3.0 Atmega328P vietnē eBay

Digispark USB attīstības padome

2. darbība: ielādējiet un lejupielādējiet kodu

Ielādējiet un lejupielādējiet kodu
Ielādējiet un lejupielādējiet kodu

Nokopējiet zemāk esošo kodu arduino skices failā (piemēram,…/Push_It/Push_It.ino) Esmu mēģinājis to diezgan labi komentēt. Es ceru, ka kods jums būs viegli saprotams. Loģika, lai noteiktu, kad palielināt, samazināt un kad to nedarīt, ir nedaudz sarežģīta, taču šī daļa ir arī specializēts kods un nav vispārēji noderīga. Lai iegūtu sīkāku informāciju par jaunas “skices” (koda projekta) izveidi, kas jāizmanto kopā ar Arduino IDE skatiet:

Jaunas Arduino skices izveide

Lejupielādējiet skici “Push_It” mūsu mikrokontrolerī saskaņā ar Arduino IDE norādījumiem uz tāfeles.

3. darbība. Spēlēšana

Spēlē
Spēlē

Spēles mērķis ir panākt, lai gaismas diode (bortā) mirgo pēc iespējas ilgāk zibspuldžu komplektā, kas pēc tam atkārtojas

Spēles spēlēšana:

Push-It sākas ar vienu zibspuldzi, kas pēc tam atkārtojas. Ja pieskaraties pirkstam pie ievades tapas, kamēr gaismas diode ir ieslēgta, nākamajā ciklā gaismas diode mirgos divas reizes.

Katru reizi, kad zibspuldzes pirmās zibspuldzes laikā nospiežat pseido pogu, šai kopai tiek pievienota cita zibspuldze. Parasti nav nozīmes tam, kad paceļat/noņemat pirkstu.

Bet, ja jūs “uzspiežat” pirms vai pēc pirmās zibspuldzes, zibspuldžu skaits komplektā tiks samazināts.

Ja neko vairāk nedarāt, zibspuldžu skaits komplektā tiek saglabāts. Turklāt, ja skaitlis nemainās visu ciklu, skaitīšanas numurs tiek saglabāts EEPROM atmiņā.

Katru reizi, kad izdodas palielināt zibspuldžu skaitu, laiks nedaudz paātrinās, tādējādi kļūstot arvien grūtāk sasniegt augstu zibspuldžu skaitu. Kad jūs veicat slīdēšanu uz augšu un zibspuldžu skaits samazinās, pirms nākamā cikla sākuma zibspuldzes būs ilgāka pauze. Tas rada papildu izaicinājumu, jo tas var palielināt varbūtību, ka jūs lēksit ieroci. Tāpēc esiet modrs.

Kad esat sasniedzis augstu zibspuldzes skaitu, varat to nogādāt (vai nosūtīt pa pastu, kam DigiSpark ir piemērots) draugam, kur pēc pievienošanas viņi redzēs, cik liels ir zibspuldžu skaits. uz. Es atklāju, ka ir grūti izlaist to līdz vairāk nekā 8. Ar pievienotu faktisko pogu man ir izdevies iegūt to līdz vairāk nekā duci. Lai atgrieztos pie zemāka skaita, varat to atkārtoti piespiest jebkurā laikā pirms vai pēc pirmās zibspuldzes. Arī tad, ja ieslēgšanas laikā ievades tapu pārslēgsiet pie zemes, skaitīšana tiks atiestatīta uz 1.

Ņemiet vērā, ka oriģinālajai DigiSpark plāksnei pēc ieslēgšanas ir 10 sekunžu aizkave, pirms kuras tā sāks izpildīt “Push-It” kodu un spēlēt spēli. Tas izmanto šo laiku, lai mēģinātu runāt caur USB tapām, lai saņemtu iespējamu jaunu lejupielādes koda atjauninājumu.

Ja jūsu izmantotajai Arduino plāksnei ir USB TX gaismas diode, šai gaismas diodei būs ātra, maza zibspuldze, kad būsit efektīvi 'nospiedis pogu'. Ja LED skaitlis EEPROM tiks atjaunināts ar jaunu vērtību, šī gaismas diode mirgos daudz nozīmīgāk. Šī atgriezeniskā saite var jums ļoti palīdzēt zināt, kad esat pārliecinājies, ka esat efektīvi izraisījis “nospiestu pogu” notikumu. Jums, iespējams, būs jāpārliecinās, ka nepieskaraties ķēdes zemei (piemēram, metālam ap mikro-USB savienotāju), lai jūsu figūra patiešām izraisītu troksni uz atvērtās ievades tapas. Būs papildu un nedaudz neparedzami izaicinājumi sakarā ar to, ka ieejas tapa ir peldoša (to nevelk uz augšu vai uz leju vadoša/pretestības slodze) un mainīgais signāla troksnis, kas nāk caur pirkstu.

250 Hz kvadrātveida vilnis tiek izvadīts uz tapas blakus ievades tapai, kas ievērojami uzlabo ievadītā ievades signāla noteiktību, kad pirksts aptver abas tapas.

Es atklāju, ka DigiSpark paneļa reakcija ir diezgan konsekventi paredzama, nedaudz saspiežot pirkstus uz tā dēļa stūra, kur atrodas D3-D5.

Kad es spēlēju “Push-It”, man patīk to darīt, ja tāfele ir pievienota USB 5v mobilajam akumulatoram (skat. Fotoattēlus). Tos parasti var lēti atrast atkritumu tvertnēs blakus USB maiņstrāvas un 12 V automātisko adapteru konteineriem; lielākajā daļā universālveikalu elektronikas nodaļa.

4. darbība. Neobligāti eksperimenti ar ārējiem komponentiem

Neobligāti eksperimenti ar ārējiem komponentiem
Neobligāti eksperimenti ar ārējiem komponentiem

Lūdzu, ņemiet vērā: ja pievienojat īstu pogu, ir viena koda rinda, kas ir jākomentē, kā norādīts kodā.

Izmantojot skaļruni, no vienas puses uz zemi, ja pieskaraties otram vadam pie D4, jūs dzirdēsit 250 Hz kvadrātveida viļņa skaņu. Pie D3 ir 500 Hz kvadrātveida vilnis. Pievienojot skaļruni starp D3 un D4, jūs dzirdēsit abu signālu salikumu.

Gaismas diodes pievienošana skaļruņa vietā, kā minēts iepriekš, ir ļoti interesanta. Šajā jautājumā nav jāuztraucas par spriegumu, strāvas līmeni, pretestību vai pat polaritāti (sliktākajā gadījumā tas nedeg, tad vienkārši pagrieziet to apkārt). Vispirms mēģiniet ar negatīvo (katoda) vadu savienot ar zemi, bet otru ar D3 vai D4. Kvadrātveida viļņu dēļ gaismas diode iedegsies līdz pusei. Turklāt nav nepieciešams pretestība, jo MicroControllerUnits produkcija ir ierobežota. Es veicu pašreizējos mērījumus, kā rezultātā Attiny85 un Atmega328 MCU tika iegūti 15ma un 20ma. Šie līmeņi ir aptuveni puse no šo daļu pašreizējās ierobežotās vērtības, jo braukšanas kvadrātveida viļņu signāli ir 50% darba cikla rakstura. Skaitītāja rādījumi faktiski ir vidējais strāva caur pārbaudīto ķēdi.

Interesanti, ka, ja jūs savienojat tiltu starp D3 un D4 ar gaismas diodi (skatiet attēlu augšā un pa kreisi), tas iedegsies jebkurā veidā un aptuveni ar pusi spilgtuma, kā tas bija ar vienu pusi, kas savienota ar zemi. Es aicinu jūs pārdomāt, kāpēc.

Ieteicams: