Napravite buzz žicu s arduinom

  • Edmund Richardson
  • 0
  • 4607
  • 605
Oglas

U ovom zabavnom projektu naučit ćemo kako napraviti igru ​​žice s Arduinom. Mnogi potrebni dijelovi mogu se naći u startnom kompletu (što je u paketu za pokretanje Što je uključeno u Arduino Starter Kit? [MakeUseOf objašnjava] Što je uključeno u Arduino Starter Kit? [MakeUseOf objašnjava] Već sam predstavio Arduino otvoreni- izvorni hardver ovdje na MakeUseOf, ali trebat će vam više nego samo stvarni Arduino da biste nešto napravili od njega i zapravo započeli. Arduino "starter setovi" su ...?) i oko kuće. Ovaj projekt koristi Arduino, iako biste mogli koristiti gotovo bilo koji mikrokontroler koji imate oko sebe (pogledajte ovu usporedbu između 5 mikrokontrolera 5 USD Mikrokontroleri: Arduino, Raspberry Pi Zero ili NodeMCU? 5 Mikrokontrolera: Arduino, Raspberry Pi Zero ili NodeMCU? Nekada je to slučaj da ako želiš nabaviti računalo, moraš ponovno priložiti kuću kako bi je platio. Sad je možeš dobiti za Abrahama Lincolna..

Provjerite krajnji rezultat - čak svira glazba:

Što trebaš

Evo osnovnih dijelova koji će vam trebati za dovršetak ovog projekta:

  • 1 x Arduino UNO ili slično.
  • 1 x Metalna vješalica.
  • Otpornici 2 x 220 ohm.
  • 1 x krušna ploča.
  • 1 x Piezo zujalica.
  • 2 x kopče za krokodile.
  • Izvrsne cijevi za skupljanje topline.
  • Žice za spajanje od mužjaka do mužjaka.

Evo nekoliko neobaveznih dijelova za poboljšanje gradnje:

  • 1 x Dodatni piezo zujalica.
  • 1 x šipka za dizanje.
  • 1 x četverosegmentni zaslon.
  • Otpornik 1 x 220 ohm.
  • 1 x trenutni gumb.
  • Žice za spajanje od muškarca do žene.
  • Drvena daska (za kućište).
  • Vijci za drvo.

Gotovo svaki Arduino će raditi pod uvjetom da ima dovoljno igara. Pogledajte ovaj vodič za kupovinu Arduino vodič za kupnju: Koju ploču trebate nabaviti? Vodič za kupnju Arduinoa: Koji odbor trebate dobiti? Postoji toliko mnogo različitih Arduino ploča vani da bi vam bilo oprošteno što ste zbunjeni. Koje biste trebali kupiti za svoj projekt? Pomozite nam s ovim vodičem za kupovinu Arduino-a! ako niste sigurni što vam treba.

Plan gradnje

Iako ovo može izgledati složeno, to je zapravo prilično jednostavan projekt. Počet ću s osnovnom igrom, a zatim ću dodati dodatne komponente kako bih povećala složenost. Možeš “birati i birati” kako želite ovisno o komponentama koje imate na raspolaganju.

Mehanizam jezgre sastoji se od oblika žice i petlje na dršci. Igrač mora voditi petlju oko staze bez dva dodirivanja. Ako se dva dodirnu, krug je dovršen i čuje se zvučni signal. Naravno da je moguće izgraditi ovaj krug bez mikrokontrolera, ali gdje je zabava u tome (i kako biste inače mogli slušati Monty Python's “Leteći cirkus” tematska pjesma)?

Tečaj

Ovo je oblik koji će igrač morati voditi kroz svoju petlju. To je osnova cijele igre, pa neka bude dobra! Odlučio sam se za mali pad, nakon čega je uslijedio veliki uspon. Zavijte metalni vješalica u oblik koji vam je potreban. Mesingana žica ili bakrena cijev jednako će dobro raditi iako je vješalica za kaput možda najjeftinija.

Možda ćete trebati nositi rukavice i koristiti kliješta ili čekić da bi stvari bile savršene. Odrežite sve suvišne vijke rezačima. Ostavite dvije okomite osovine da se progurate kroz bazu. Na neki način želite pohraniti rezane krajeve radi sigurnosti. Na kraju, izrežite dva komada cijevi od topline i smanjite na krajeve na sljedeći način:

To će izolirati petlju s putanje, pružajući početak / kraj ili sigurnosnu zonu. S druge strane, traka ili čak i slama će učiniti ako nemate toplinski skupljene cijevi.

Sada priključite kabel jedan kraj tečaja. Ovdje imate dvije mogućnosti: možete lemiti ili koristiti isječak od krokodila. Isječak od krokodila je lakša opcija, ali lemljenje je pouzdanija i dugoročnija opcija. Biti siguran za “hrapav” površinu omotača kaputa najprije brusnim papirom i upotrijebite dosta fluksa. (Nikada prije lemljeno? Saznajte kako ovdje naučiti kako lemiti, pomoću ovih jednostavnih savjeta i projekata. Saznajte kako lemiti, pomoću ovih jednostavnih savjeta i projekata. Malo vas zastrašuje pomisao na vruće željezo i staljeni metal? Ako želite Za početak rada s elektronikom morat ćete naučiti lemiti. Pomozite nam.)

Ovisno o veličini otvora koji bušite u bazi na sljedećem koraku, možda ćete prvo trebati uvesti kabel kroz otvor za ugradnju. Upotreba dvije žice upletene zajedno povećava trajnost:


Korištenje vježbe za to puno pomaže:

Uporište

Vrijeme je za stvaranje baze. Ovo služi za držanje staze u uspravnom položaju, kao i osiguravanje mjesta za usidrenje elektronike. Koristio sam nekoliko borovih odreska, iako možete koristiti sve što imate oko kuće - čak i kartonsku kutiju.

Izrežite tri komada da formirate an “n” oblik. Jednostavno zavijte (ili zalijepite) ta tri komada zajedno. Ne zaboravite da prvo izbušite rupu u bočnim dijelovima kako biste spriječili njihovo cijepanje. Možda ćete htjeti izravnati vijke (pogotovo ako ćete ispuniti, a zatim slikati), a ja toplo preporučujem probijač. Ako nemate alat za probijanje ili bušilicu, trik s bušilicom većeg promjera će učiniti trik.

Izbušite dvije rupe dovoljno razmaknute za krajeve staze. Donja strana je spremna za lijepljenje.

Ručka


Sada je vrijeme za izradu petlje / regulatora. Uvijte mali komad vješalice na jednom kraju kako biste stvorili petlju s malom metalnom ručicom. Provjerite da li zarezati rub, a prema potrebi ga pokrijte trakom / pjenom.


To će tvoriti drugu polovicu kruga - kad ova petlja dodirne tečaj, dovršit će krug (točno poput prekidača). Lepite (ili koristite isječak od krokodila) još jednu žicu na dno ove, točno onako kako ste prethodno radili za tečaj.

Izrežite malu duljinu mozga za stvarnu ručku. Ova metalna petlja urezat će se u ovu ručicu. Ako nemate nikakav dekolte, komad četvrtastog četinara možete zaokružiti remenom ili brusilicom (možete koristiti i brusni papir, ali to bi potrajalo dosta vremena).

Probušite rupu kroz ovu ručicu. To mora biti dovoljno veliko da stane metalnu petlju i žicu kroz:


To je moguće učiniti na stupnoj bušilici, iako je lukavo. Stroj će savršeno obaviti posao:

Da, sasvim sam svjestan da je to metalni tokarski stroj (za sve koji su zainteresirani, to je tokarni stroj Boley iz uređenja 1930-ih. Mislim da je to 3C, ali volio bih vas čuti ako znate nešto više o tome).

Možete koristiti i kemijsku olovku s uklonjenim središtem.

Na kraju, vrućim ljepilom pričvrstite kabel i petlju u ručicu. Vruće ljepilo pružit će snažno (ali ne trajno) učvršćenje, tako da je savršeno za ovo.

Dovršetak isključen

Stavite žicu u rupe u bazi. Ne zaboravite prvo dodati petlju / kontroler. Ponovno upotrijebite vruće ljepilo kako biste pričvrstili podlogu tako što ćete na donjoj strani bazena popuniti rupe na dnu stranice, kao što slijedi:

Krug

Evo punog kruga. Ne morate biti toliko složeni kao ovo - čitajte dalje dok razgrađujemo svaki dio.


Prvo spojite dva piezo elementa na digitalne igle 10 i 11. Polaritet nije važan:


Ne morate koristiti dva piezosa - jedini razlog zbog kojeg sam to učinio je da se puno glasniji zvuk zujanja kada žice dodirnu. Jednu stranu spojite na digitalni pin, a drugu na zemlju.

Sada priključite metalni tečaj i ručku:


Opet, nije važno kojim putem su ta dva ožičena. Ovaj je dio kruga sličan gumbu ili prekidaču - igrač dovršava krug kada petlja dodirne tečaj. Obavezno uključite oba otpornika.

Jedan otpornik povezuje krug s masom (naziva se padajući otpornik) osiguravajući da nije “plivajući” (ovo omogućuje Arduinu da otkrije promjenu kruga). Drugi otpornik štiti Arduino. Kad se dva dijela dodirnu, + 5V prelazi u digitalni pin. Ako ovog otpornika nije bilo, postojalo bi mrtvo stanje - vaše računalo će isključiti USB utičnicu za crtanje prevelike struje ako imate sreće.

Spojite signalni kabel (purpurno, na dijagramu) na digitalni pin 9.

Zatim spojite tipku na digitalni pin 2:

Konačno, spojite sedam-segmentni LED zaslon:


Ovaj model je iz tvrtke Seeed. Tu se koristi TM1637 za pogon četiri zaslona - to znači da su potrebna samo dva digitalna igle. Spojiti GND na Arduino tlo i VCC do Arduino + 5V. Spojiti D10 na Arduino digitalni pin 13 i CLK na digitalni pin 12.

Kod

Za rad ovog projekta trebat će vam dvije dodatne datoteke. Prvi se zove pitches.h. Ova datoteka jednostavno preslikava imena nota u njihovu piezo vrijednost. To znatno olakšava pisanje melodija, kao što jednostavno možete reći “NOTE_C3” rađe nego “31”, na primjer. Ovo je javno vlasništvo, a dostupno je na web stranici Arduino ovdje. Slijedite upute za stvaranje nove datoteke pod nazivom pitches.h (ili, zalijepite kôd u postojeću skriptu).

Zatim vam je potrebna metoda za reprodukciju nota / melodija na piezou. Ovaj popis Anthony DiGirolamo na Githubu sadrži kôd koji vam je potreban. Kopirajte sve između “ništavno zujanje” i “” i zalijepite ga u svoju glavnu datoteku. Za referencu, evo:

void buzz (int targetPin, velika frekvencija, duga dužina) / * Primjer funkcije zujanja Rob Faludija http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / frekvencija / 2; // izračunati vrijednost kašnjenja između prijelaza //// Vrijednost mikrosekunde u sekundi, podijeljena s frekvencijom, zatim podijeliti na pola jer //// postoje dvije faze za svaki ciklus duge numCycles = frekvencija * dužina / 1000; // izračunati broj ciklusa za pravilno određivanje vremena //// pomnožiti frekvenciju, koja je stvarno ciklus u sekundi, s brojem sekundi da //// dobije ukupan broj ciklusa za proizvodnju (dugačak i = 0; i < numCycles; i++) // for the calculated length of time… digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphragm delayMicroseconds(delayValue); // wait for the calculated delay value digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphragm delayMicroseconds(delayValue); // wait again for the calculated delay value  

Posljednja knjižnica koja vam je potrebna za kontrolu prikaza segmenta u segmentu - ovaj korak možete preskočiti ako ga ne koristite. Ta se knjižnica zove TM1637 a stvorila ga je Seeed, ista tvrtka koja je kreirala ploču s upravljačkim programima.

Idite na Arduino IDE na “Upravljanje bibliotekama” (Skica > Uključi knjižnicu > Upravljanje bibliotekama). Ovo će prikazati upravitelja knjižnice. Dopustite nekoliko sekundi da se ažurira, a zatim pretražite u gornjem desnom kutu za pretraživanje “TM1637”. Pronaći će se dvije knjižnice - želite “TM1637” a ne “TM1637Display”. Odaberite, a zatim kliknite “instalirati”.

Još jedan zadnji zadatak s ovom bibliotekom - nije dovršen! Kako sada stoji, knjižnica može prikazati samo brojeve 0-9 i slova A-F. Ako ovo obuhvaća sve što želite prikazati, ovaj korak možete preskočiti. Ako nije, trebat ćete izmijeniti kôd. Opustiti! Ovo nije tako teško kao što zvuči, a ako možete pisati kôd koristeći Arduino IDE, to možete učiniti.

Prvo otvorite mapu biblioteke. Ovo će biti u vašoj Arduinovoj mapi. Na Mac OS X, ovo je u / Users / Joe / Dokumenti / Arduino / Knjižnice. Otvorite mapu pod nazivom TM1637. Morat ćete urediti pozvanu datoteku TM1637.cpp - možete sigurno zanemariti drugu datoteku s nastavkom .h. Otvorite ovu datoteku u svom omiljenom uređivaču teksta (za mene to je Sublime Text 3), bilježnici ili Arduino IDE.

Izmijenite treći redak koda iz ovoga:

statički int8_t TubeTab [] = 0x3f, 0x06,0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77,0x7c, 0x39,0x5e, 0x79,0x71; // 0 ~ 9, A, b, C, d, E, F

Na ovo:

statički int8_t TubeTab [] = / * zadane postavke * / 0x3f, // 0 0x06, // 1 0x5b, // 2 0x4f, // 3 0x66, // 4 0x6d, // 5 0x7d, // 6 0x07, / / 7 0x7f, // 8 0x6f, // 9 0x77, // A - 10 0x7c, // b - 11 0x39, // C - 12 0x5e, // d - 13 0x79, // E - - 14 0x71, // F - 15 / * dodatni * / 0x174, // h - 16 0x176, // H - 17 0x138, // L - 18 0x15, // M - 19 0x137, / / n - 20 0x73, // P - 21 0x67, // q - 22 0x131, // r - 23 0x78, // t - 24 0x240 // - 25;

Sada možete spremiti i zatvoriti ovu datoteku. Nakon svakog elementa, komentar opisuje koji je to znak. Sljedeći dio komentara je indeks elementa.

Vrijeme je za stvarni kod. Prvo uključite dvije spomenute knjižnice:

#include #include 

Sada stvorite prikazni objekt:

TM1637 * _display = novi TM1637 (12, 13);

Ne brinite ako ne razumijete sintaksu - ovaj redak govori Arduinu da su iglice 12 i 13 pričvršćene na zaslon sa sedam segmenata i da ih pravilno konfiguriraju..

Pjesma je pohranjena u melodija i tempo. Sadrže sve note i trajanje note za glazbu. Ako želite promijeniti glazbu, izmijenite te nizove (mada, nije tako jednostavno kao lijepljenje u vrijednosti note, vrijeme je vrlo važan dio glazbe). songState varijabla jednostavno pohranjuje poziciju zadnje reproducirane note. To osigurava da se melodija reproducira od početka do kraja, a ne da se dosljedno skače naokolo:

int songState = 0; int melodija [] = NOTE_F4,… int tempo [] = 8,…

Imajte na umu da sam uklonio sadržaj nizova, pogledajte cijeli kôd u nastavku.

Ovaj kôd ne blokira - to znači da Arduino može obavljati više zadataka istovremeno. Pogledajte ovo objašnjenje Arduino funkcije odgode i zašto je ne biste trebali koristiti Arduino odgodu funkciju i zašto je ne biste trebali koristiti dok je kašnjenje () prikladno za osnovne demonstracije kako Arduino radi, to stvarno ne biste trebali biti koristeći ga u stvarnom svijetu. Evo zašto i što biste trebali koristiti umjesto toga. za više informacija. Ovako se postavljaju timeri:

dugo potpisan prethodniMillis1 = 0; const dugački interval1 = 1500;

Varijabla previousMillis1 bit će ažurirani u kasnijoj fazi za pohranjivanje trenutnog vremena. interval1 varijabla pohranjuje koliko dugo treba čekati između izvođenja koda - u ovom slučaju 1,5 sekundi. To je definirano kao const, što znači da je konstantan i da se nikada neće mijenjati - to Arduinu omogućuje daljnju optimizaciju koda.

Unutar postaviti() Funkcija, događa se nekoliko stvari. Prvo, postavljaju se ulazi i izlazi. To se mora učiniti, tako da Arduino zna što je povezano sa svakom njegovom iglom:

pinMode (9, ULAZ); // instalacijski krug pinMode (10, OUTPUT); // postavi zujalica 1 pinMode (11, OUTPUT); // postavi zujalica 2 pinMode (2, INPUT); // gumb za postavljanje

Sad zaslon treba konfigurirati:

_display-> set (5); // postavite svjetlinu _display-> točka (lažno); // ukloniti debelo crijevo _display-> init (); // start prikaz

Metode set, točka, i u tome su sve sadržane u _prikaz objekt. Umjesto točke, pokazivač (“->”) koristi se za pristup tim. Opet, ne brinite se za sintaksu (iako, ako želite naučiti više, potražite pokazivače C ++).

Glavna petlja ima dva načina igre: izazov i slobodno igranje. Slobodna igra omogućuje igraču neograničenu količinu puta. Izazov način postavlja vremenski mjerač na 20 sekundi pomoću showCountdown metoda. Pomoću gumba pokreće i zaustavlja merač vremena. trenutno je jedini način promjene načina igre ručno uređivanje nazvane varijable način. Pogledajte možete li dodati još jedan gumb za to i ispravno izmijeniti kôd.

zujati metoda reproducira dane note. Koristi se zajedno s pjevati. Metoda pjevanja prolazi kroz svaku notu i reproducira je. Ova se metoda redovito naziva, iako će sljedeću notu reproducirati tek kad prođe dovoljno vremena od posljednjeg igranja. Nakon što pjesma dođe do kraja, ona vraća pjesmu u 1. stih (songState = 14). Možete postaviti ovu vrijednost na nulu da biste pjesmu započeli na početku, međutim razlog za to je preskočiti uvod. Uvod se reproducira jednom nakon što se Arduino uključi, a zatim se više ne reproducira.

showFree i showPlay metode jednostavno pišu riječi “Besplatno” i “IGRA” na zaslon. Primjetite kako “r” besplatno je mala slova, kada su svi ostali znakovi velika slova. Ovo je jedno od ograničenja zaslona sa sedam segmenata. Ne mogu prikazati svako slovo abecede, a neki znakovi koje mogu prikazati moraju biti u miješanoj slici.

toggleFreePlay metoda treperi prikaz između “BESPLATNO” i “IGRA”. Opet, to čini na neblokirajući način.

Još jedna korisna metoda je showNumber. Na ovo se upisuje broj u srednja dva znaka zaslona:

Zaslon nije dovoljno pametan da bi znao pokazati velike brojeve, mora mu biti izričito rečeno što učiniti. Ova metoda koristi neku jednostavnu logiku za prikaz odgovarajućeg broja na svakom znaku.

Završna metoda koja se koristi se naziva showCountdown. Ovo pokreće brojač u 20, a smanjuje ga za svaku sekundu. Ako ovo dostigne nulu, triput se oglasi, što znači da je vrijeme isteklo.

Evo svega što je ovaj kôd sastavljen:

#include // uključuju knjižnicu zaslona #include // uključuju parcele TM1637 * _display = novi TM1637 (12, 13); // stvoriti prikazni objekt, 12 = CLK (sat), 13 = D10 (podaci) // music int songState = 0; int melodija [] = NOTE_F4, NOTE_E4, NOTE_D4, NOTE_CS4, NOTE_C4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, 0, __4 NOTE_C4, NOTE_C4, NOTE_A3, NOTE_AS3, NOTE_AS3, NOTE_AS3, NOTE_C4, NOTE_D4, 0, NOTE_AS3, NOTE_G3, NOTE_G3, NOTE_G3, NOTE_FS3, NOTE_G3, NOTE_E4, NOTE_34, NOTE_34, NOTE_34, NOTE_34, NOTE_3 NOTE_C4, NOTE_A3, NOTE_A3, NOTE_A3, NOTE_GS3, NOTE_A3, NOTE_A4, NOTE_F4, NOTE_F4, NOTE_C4, NOTE_B3, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4, 0, NOTE_G4, NOTE_G4, NOTE_G4 NOTE_FS4, NOTE_G4, NOTE_C4, NOTE_B3, NOTE_C4, NOTE_B3, NOTE_C4, 0; int tempo [] = 8, 16, 8, 16, 8, 16, 8, 16, 16, 16, 16, 8, 16, 8, 3, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 16, 12, 17, 17, 17, 8, 12, 17, 17, 17, 8, 16, 8, 16, 8, 16, 8, 1; // ne blokiranje postavljanja // free play nepotpisan dugo prethodniMillis1 = 0; // posljednje promjene vremenskih riječi const long interval1 = 1500; // interval između promjene // music unsigned long previousMillis2 = 0; // posljednja promjena vremenskog intervala2 = 100; // interval između bilješki int displayStatus = 0; // pratiti što se prikazuje u načinu int = 0; // pratite način igre - promijenite u 0 ili 1 za različite načine bool countdown = false; dugo potpisan prethodniMillis3 = 0; // posljednje promijenjeno vrijeme const dugački interval3 = 1000; // interval između odbrojavanja int count = 20; // izazov timeer void setup () // stavi ovdje svoj instalacijski kôd, da se pokrene jednom: pinMode (9, INPUT); // instalacijski krug pinMode (10, OUTPUT); // postavi zujalica 1 pinMode (11, OUTPUT); // postavi zujalica 2 pinMode (2, INPUT); // gumb za postavljanje _display-> set (5); // postavite svjetlinu _display-> točka (lažno); // ukloniti debelo crijevo _display-> init (); // start display void loop () // stavi ovdje svoj glavni kôd, radi ponavljanja: if (mode == 0) // mode izaziva if (digitalRead (2) == HIGH) delay (25); if (digitalRead (2) == HIGH) odbrojavanje = istina; // zaustavi odbrojavanje else countdown = false; // zaustavi odbrojavanje if (odbrojavanje) showCountdown (); // unaprijed odbrojavanje else // slobodno igranje toggleFreePlay ();  if (digitalRead (10) == HIGH) kašnjenje (25); if (digitalRead (10) == HIGH) while (digitalRead (10) == HIGH) buzz (11, NOTE_B0, 1000/24);  ostalo pjevati ();  void showCountdown () // odbrojavanje preostalog vremena bez potpisa, trenutniMillis = millis (); // trenutno vrijeme ako je (trenutniMillis - prethodniMillis3> = interval3) prethodniMillis3 = trenutniMillis; --računati; showNumber (count); if (count == 0) // igra preko odbrojavanja = netočno; računati = 20; // resetiranje odbrojavanja // buzz 3 puta buzz (11, NOTE_B0, 1000/24); kašnjenja (100); zujanje (11, NOTE_B0, 1000/24); kašnjenja (100); zujanje (11, NOTE_B0, 1000/24);  poništeni showNumber (int broj) // prikaži brojeve (maksimalno 99) na zaslonu _display-> zaslon (0, 25); // pisati - u segment 1 _display-> prikaz (3, 25); // pisati - u segment 4 // upisati broj u sredinu prikaza ako je (broj == 10) _display-> zaslon (1,1); _display-> zaslon (2,0);  else if (broj> 9) _display-> zaslon (1,1); int newVal = broj - 10; _display-> zaslon (2, newVal);  else _display-> zaslon (1,0); _display-> zaslon (2, broj);  void toggleFreePlay () // pomicanje između riječi bez blokiranja nenapisane duge strujeMillis = millis (); // trenutno vrijeme ako (trenutniMillis - prethodniMillis1> = interval1) prethodniMillis1 = trenutniMillis; ako (displayStatus == 1) showPlay (); else showFree ();  void showPlay () // napiši "PLAY" na zaslon _display-> display (0, 21); // napiši P u segment 1 _display-> prikaz (1, 18); // napiši L u segment 2 _display-> prikaz (2, 10); // napiši A u segment 3 _display-> prikaz (3, 4); // napiši Y u segment 4 displayStatus = 2;  void showFree () // napiši "Besplatno" na zaslon _display-> display (0, 15); // napiši F u segment 1 _display-> prikaz (1, 23); // napiši r u segment 2 _display-> prikaz (2, 14); // napiši E u segment 3 _display-> prikaz (3, 14); // upiši E u segment 4 displayStatus = 1;  void buzz (int targetPin, velika frekvencija, duga dužina) / * Primjer funkcije zujanja Rob Faludija http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / frekvencija / 2; // izračunati vrijednost kašnjenja između prijelaza //// Vrijednost mikrosekunde u sekundi, podijeljena s frekvencijom, zatim podijeliti na pola jer //// postoje dvije faze za svaki ciklus duge numCycles = frekvencija * dužina / 1000; // izračunati broj ciklusa za pravilno određivanje vremena //// pomnožiti frekvenciju, koja je stvarno ciklus u sekundi, s brojem sekundi da //// dobije ukupan broj ciklusa za proizvodnju (dugačak i = 0; i = interval2) prethodniMillis2 = trenutniMillis; int noteDuration = 1000 / tempo [songState]; zujanje (10, melodija [songState], noteDuration); int pauseBet BetweenNotes = noteDuration; kašnjenja (pauseBetweenNotes); // zaustaviti sviranje tona: buzz (10, 0, noteDuration); ++ songState; // ponovo započnite pjesmu ako je gotova ako (songState> 79) songState = 14; // preskočite uvod

Spremite ovu datoteku kao “buzzwire” (Datoteka> Spremi kao), a zatim je prenesite na svoju ploču (Datoteka> Prijenos). Ako niste sigurni kako prenijeti Arduino ili taj kôd izgleda pomalo zastrašujuće, pogledajte naš vodič za početnike Arduinosa Prvi koraci s Arduinom: Vodič za početnike Početak rada s Arduinom: Vodič za početnike Arduino je open-source platforma za prototiranje elektronike koja se temelji na fleksibilnom hardveru i softveru koji se lako koristi. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. , Sve u redu, sad biste trebali imati vlastitu igru ​​žica za buzz - cool!

Ako ste nešto pročitali nakon što ste pročitali ovo, volio bih vidjeti - javite mi u komentarima u nastavku!




Još ne komentari