Sadržaj:

Interaktivna geodetska LED kupola: 15 koraka (sa slikama)
Interaktivna geodetska LED kupola: 15 koraka (sa slikama)

Video: Interaktivna geodetska LED kupola: 15 koraka (sa slikama)

Video: Interaktivna geodetska LED kupola: 15 koraka (sa slikama)
Video: Камеди Клаб - Эдуард Суровый\Музыкальный кастинг | Харламов, Батрутдинов, Мартиросян 2024, Srpanj
Anonim
Image
Image
Interaktivna geodetska LED kupola
Interaktivna geodetska LED kupola
Interaktivna geodetska LED kupola
Interaktivna geodetska LED kupola
Interaktivna geodetska LED kupola
Interaktivna geodetska LED kupola

Izgradio sam geodetsku kupolu koja se sastoji od 120 trokuta sa LED i senzorom na svakom trokutu. Svaki LED može se adresirati pojedinačno, a svaki senzor posebno je podešen za jedan trokut. Kupola je programirana s Arduinom da svijetli i proizvodi MIDI signal ovisno o tome koji trokut postavite svoju ruku.

Dizajnirao sam kupolu kao zabavan zaslon koji ljude zanima za svjetlo, elektroniku i zvuk. Budući da se kupola lijepo dijeli na pet dijelova, dizajnirao sam kupolu tako da ima pet zasebnih MIDI izlaza koji svaki mogu imati drugačiji zvuk. To čini kupolu divovskim glazbalom, idealnim za istovremeno sviranje s više ljudi. Osim što sam puštao glazbu, programirao sam i kupolu za svjetlosne predstave te svirao izvedbu Simona i Ponga. Konačna struktura ima promjer nešto više od metra i visok je 70 cm, a prvenstveno je izrađena od drveta, akrila i 3D ispisanih dijelova.

Postoji nekoliko sjajnih instruktora na LED stolovima i kockama koji su me inspirirali za početak ovog projekta. Međutim, htio sam pokušati postaviti LED diode u drugačijoj geometriji. Nisam se mogao sjetiti bolje strukture za projekt od geodetske kupole, koja je također dobro dokumentirana na Instructables. Dakle, ovaj projekt je remiks/miješanje LED stolova i geodetskih kupola. Dolje su navedene veze do LED tablice i geodetske kupole Instructables koje sam provjerio na početku projekta.

LED stolovi i kocke:

www.instructables.com/id/RGB-LED-Pixel-Touc…

www.instructables.com/id/Touch-LED-Table-Re…

www.instructables.com/id/Led-Cube-8x8x8/

www.instructables.com/id/500-LED-Pixel-RGB-…

Geodetska kupola:

www.instructables.com/id/Folding-Geodesic-D…

www.instructables.com/id/Geodesic-dome-kit/

Korak 1: Popis zaliha

Popis zaliha
Popis zaliha
Popis zaliha
Popis zaliha
Popis zaliha
Popis zaliha

Materijali:

1. Drvo za podupirače kupole i podnožje kupole (količina ovisi o vrsti i veličini kupole)

2. Adresibilna LED traka (16,4ft/5m adresibilna LED pixel traka u boji 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - sastavljeno)

4. Ploča s prototipom (Univerzalna dvostrana prototipska pločica Penta Angel, 7x9 cm)

5. Akril za difuzne LED diode (lijevani akrilni lim, proziran, veličina 12 "x 12" x 0,118 ")

6. Napajanje (Aiposen 110/220V do DC12V 30A 360W upravljački program napajanja)

7. Buck pretvarač za Arduino (RioRand LM2596 DC-DC Buck pretvarač 1,23V-30V)

8. Buck pretvarač za LED i senzore (DROK Mini električni pretvarač napona 15A)

9. 120 IR senzora (modul senzora za izbjegavanje infracrvenih prepreka)

10. Pet 16 -kanalnih multipleksera (analogno/digitalni MUX prekid - CD74HC4067)

11. Šest 8 -kanalnih multipleksera (prekid multipleksera - 8 -kanalni (74HC4051))

12. Pet dvokanalnih multipleksera (MAX4544CPA+)

13. Žica za omatanje (PCB lemljenje 0,25 mm bakarni kabel presvučen limenom žicom Dia žica za omatanje žice 305M 30AWG crvena)

14. Priključna žica (Puna jezgra, 22 AWG)

15. Pin zaglavlja (Gikfun 1 x 40 Pin 2,54 mm jednoredni odvojni muški pin zaglavlje)

16. Pet MIDI priključaka (MIDI priključak prilagođen Breadboard-u (5-pinski DIN))

17. Deset otpornika od 220 ohma za MIDI priključke

18. Odstojni odstojnici za ugradnju elektronike na kupolu (Odvojni odstojnik Šesterokutni M3 muški x M3 ženski)

19. Adaptori navoja za spajanje izdvojenih elemenata na drvo (E-Z Lok navojni umetak, mesing, navoj za nož)

20. Epoksid ili Gorilla Superglue

21. Električna traka

22. Lemljenje

Alati:

1. Stanica za lemljenje

2. Električna bušilica

3. Kružna pila

4. Orbitalna brusilica

5. Jig pila

6. Mitar pila

7. Kutomjer

8. 3D pisač

9. Rezači žice

10. Alat za omatanje žicom

11. Laserski rezač za rezanje LED ploča (izborno)

12. CNC shopbot za podnožje kupole (opcionalno)

Korak 2: Projektiranje geodetske kupole

Projektiranje geodetske kupole
Projektiranje geodetske kupole
Projektiranje geodetske kupole
Projektiranje geodetske kupole

Kao što sam spomenuo u uvodu, postoji nekoliko mrežnih izvora za izgradnju vlastite geodetske kupole. Ove web stranice nude kalkulatore kupola koji određuju duljinu svake strane (tj. Podupirač) i broj konektora potrebnih za bilo koju vrstu kupole koju želite izgraditi. Složenost geodetske kupole (tj. Gustoća trokuta) određena je njezinom klasom (1V, 2V, 3V itd.), A veća složenost postaje bolja aproksimacija savršene sferne površine. Da biste izgradili vlastitu kupolu, najprije morate odabrati promjer i klasu kupole.

Koristio sam web mjesto zvano Domerama da mi pomogne u projektiranju 4V kupole koja je bila skraćena na 5/12 sfere s radijusom od 40 cm. Za ovu vrstu kupole postoji šest podupirača različite duljine:

30 X “A” - 8,9 cm

30 X “B” - 10,4 cm

50 X “C” - 12,4 cm

40 X “D” - 12,5 cm

20 X "E" - 13,0 cm

20 X "F" - 13,2 cm

To je ukupno 190 podupirača koji dodaju do 2223 cm (73 stope) materijala. Koristio sam drvo od drveta 1x3 (3/4 "× 2-1/2") za podupirače u ovoj kupoli. Za povezivanje nosača dizajnirao sam i 3D ispisao konektore pomoću Autocada. STL datoteke dostupne su za preuzimanje na kraju ovog koraka. Broj konektora za 4V 5/12 kupolu je:

20 X 4-konektor

6 X 5-konektor

45 X 6-konektor

U sljedećem koraku opisujem kako je ova kupola konstruirana s drvenim podupiračima i 3D tiskanim konektorima koje sam dizajnirao.

Korak 3: Konstrukcija kupole s podupiračima i spojnicama

Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama
Konstrukcija kupole s podupiračima i spojnicama

Koristeći proračune iz Domerame za 4V 5/12 kupolu, izrezao sam podupirače kružnom pilom. 190 podupirača je nakon rezanja označeno i stavljeno u kutiju. 71 konektor (20 četiri konektora, 6 pet konektora i 45 šest konektora) 3D je ispisan pomoću Makerbota. Drveni podupirači umetnuti su u konektore prema dijagramu koji je izradila Domerama. Počeo sam gradnju s vrha i krenuo se radijalno prema van.

Nakon što su spojeni svi podupirači, uklanjao sam jedan po jedan nosač i drvu i spojnici dodao epoksid. Konektori su dizajnirani tako da imaju fleksibilnost u načinu povezivanja konstrukcija, pa je bilo važno provjeriti simetriju kupole prije dodavanja epoksida.

Korak 4: Lasersko rezanje i postavljanje osnovnih ploča

Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča
Lasersko rezanje i postavljanje osnovnih ploča

Sada kada je kostur kupole izgrađen, vrijeme je za rezanje trokutastih osnovnih ploča. Te su osnovne ploče pričvršćene na dno podupirača i koriste se za montiranje LED dioda na kupolu. U početku sam izrezivao osnovne ploče od šperploče debljine 5 mm (3/16”) mjerenjem pet različitih trokuta koji se nalaze na kupoli: AAB (30 trokuta), BCC (25 trokuta), DDE (20 trokuta), CDF (40 trokuta)) i EEE (5 trokuta). Dimenzije svake strane i oblik trokuta određeni su pomoću kalkulatora kupole (Domerama) i neke geometrije. Nakon što sam ubodnom pilom izrezao temeljne ploče za testiranje, nacrtao sam dizajn trokuta pomoću Coral Draw -a, a preostale osnovne ploče izrezao sam laserskim rezačem (mnogo brže!). Ako nemate pristup laserskom rezaču, možete izvući osnovne ploče na šperploču pomoću ravnala i kutomjera te ih sve izrezati ubodnom pilom. Nakon što su temeljne ploče izrezane, kupola se preokreće i ploče se lijepe za ljepilo za kupolu.

Korak 5: Pregled elektronike

Pregled elektronike
Pregled elektronike

Na gornjoj slici prikazana je shema elektronike za kupolu. Arduino Uno koristi se za pisanje i čitanje signala za kupolu. Za osvjetljavanje kupole, RGB LED traka prolazi kroz kupolu tako da je LED postavljena na svaki od 120 trokuta. Za informacije o tome kako LED traka radi pogledajte ove upute. Svaki LED može se zasebno adresirati pomoću Arduina, koji proizvodi serijske podatke i signal sata za traku (vidi A0 i A1 pin u shemi). Samo s trakom i ova dva signala možete imati sjajnu kupolu sa svjetlom. Postoje i drugi načini pisanja signala za puno LED dioda iz Arduina, poput Charlieplexinga i registara pomaka.

Kako bih stupio u interakciju s kupolom, postavio sam IR senzor iznad svake LED. Ti se senzori koriste za otkrivanje kada je nečija ruka blizu trokuta na kupoli. Budući da svaki trokut na kupoli ima vlastiti IC senzor i ima 120 trokuta, morat ćete napraviti neku vrstu multipleksiranja prije Arduina. Odlučio sam koristiti pet 24-kanalnih multipleksera (MUX) za 120 senzora na kupoli. Evo uputstava o multipleksiranju, ako niste upoznati. Za 24 -kanalni MUX potrebno je pet upravljačkih signala. Odabrao sam pinove 8-12 na Arduinu kako bih mogao izvesti manipulaciju portom (za više informacija pogledajte korak 10). Izlazi MUX ploča očitavaju se pomoću pinova 3-7.

Također sam uključio pet MIDI izlaza na kupolu kako bi mogao proizvesti zvuk (korak 11). Drugim riječima, pet ljudi može istovremeno svirati kupolu sa svakim izlazom koji svira drugačiji zvuk. Na Arduinu postoji samo jedan TX pin, pa pet MIDI signala zahtijeva demultipleksiranje. Budući da se MIDI izlaz proizvodi u različito vrijeme od očitanja IC senzora, koristio sam iste upravljačke signale.

Nakon što se svi ulazi IC senzora očitaju u Arduinu, kupola može zasvijetliti i reproducirati zvukove kako god programirali Arduino. Imam nekoliko primjera u 14. koraku ove upute.

Korak 6: Montiranje LED dioda na kupolu

Montiranje LED dioda na kupolu
Montiranje LED dioda na kupolu
Montiranje LED dioda na kupolu
Montiranje LED dioda na kupolu
Montiranje LED dioda na kupolu
Montiranje LED dioda na kupolu

Budući da je kupola tako velika, potrebno je izrezati LED traku kako bi se na svaki trokut postavila jedna LED. Svaka LED dioda je zalijepljena na trokut pomoću super ljepila. S obje strane LED diode kroz osnovnu ploču izbušena je rupa za provlačenje kabela kroz kupolu. Zatim sam lemio spojnu žicu na svakom kontaktu LED diode (5V, uzemljenje, sat, signal) i provodio žice kroz osnovnu ploču. Ove su žice prerezane tako da su dovoljno dugačke da dosegnu sljedeću LED diodu na kupoli. Žice se provlače do sljedeće LED diode i proces se nastavlja. Spojio sam LED diode u konfiguraciji koja bi smanjila potrebnu količinu žice, a ipak imala smisla za kasnije adresiranje LED dioda pomoću Arduina. Manja kupola eliminirala bi potrebu za rezanjem trake i uštedjela bi puno vremena lemljenja. Druga mogućnost je korištenje zasebnih RGB LED dioda s registrima pomaka.

Serijska komunikacija s trakom postiže se pomoću dva pina (pin za podatke i sat) iz Arduina. Drugim riječima, podaci za osvjetljavanje kupole prelaze s jedne LED na drugu dok napuštaju podatkovni pin. Evo primjera koda izmijenjenog s ovog Arduino foruma:

// Učinite da cijela kupola povećava i smanjuje intenzitet jedne boje

#define numLeds 120 // Broj LED dioda // OUTPUT PINS // int clockPin = A1; // definiramo pin pin int dataPin = A0; // definiramo pin podataka // VARIABLES // int red [numLeds]; // Inicijalizacija niza za LED traku int zelena [numLeds]; // Inicijalizacija niza za LED traku int blue [numLeds]; // Pokreni niz za LED traku // KONSTANTNA dvostruka ljestvicaA = {0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1, 0,9, 0,8, 0,7, 0,6, 0,5, 0,4, 0,3, 0,2, 0,1}; // dio intenziteta LED -a void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (crveno, 0, numLeds); memset (zelena, 0, numLeds); memset (plavo, 0, numLeds); } void updatestring (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) {for (int i = 0; i <numLeds; i ++) {shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut (dataPin, clockPin, MSBFIRST, greenA ); shiftOut (dataPin, clockPin, MSBFIRST, blueA ); }} void loop () {for (int p = 0; p <20; p ++) // petlja za povećanje intenziteta svjetlosti kupole {double scale = scaleA [p]; kašnjenje (20); for (int i = 0; i <numLeds; i ++) // kruženje kroz sve LED -e {crveno = 255 * ljestvica; zelena = 80 * ljestvica; plava = 0; } updatetestring (crveno, zeleno, plavo); // ažuriranje LED trake}}

Korak 7: Dizajn i implementacija nosača senzora

Dizajn i implementacija nosača senzora
Dizajn i implementacija nosača senzora
Dizajn i implementacija nosača senzora
Dizajn i implementacija nosača senzora
Dizajn i implementacija nosača senzora
Dizajn i implementacija nosača senzora

Odlučio sam koristiti IC senzore za kupolu. Ovi senzori imaju IR LED i prijemnik. Kad neki objekt dođe ispred senzora, dio IC zračenja iz IC LED reflektira se prema prijemniku. Ovaj sam projekt započeo izradom vlastitih IR senzora, koji su se temeljili na uputama Richarduvine. Lemljenje je trajalo predugo pa sam od eBay -a kupio 120 IR senzora koji svaki proizvode digitalni izlaz. Prag senzora postavlja se potenciometrom na ploči tako da je izlaz visok samo kada je kazaljka blizu tog trokuta.

Svaki trokut sastoji se od LED osnove od šperploče, lista difuznog akrila postavljenog oko 2,5 cm iznad LED ploče i IC senzora. Senzor za svaki trokut montiran je na list tanke šperploče u obliku peterokuta ili šesterokuta, ovisno o položaju na kupoli (vidi gornju sliku). Izbušio sam rupe u podnožju IC senzora za montažu IC senzora, a zatim spojio uzemljenje i 5V iglice žicom za omatanje i alatom za omatanje žice (crvene i crne žice). Nakon spajanja uzemljenja i 5V, omotao sam dugu žicu za omatanje na svakom izlazu (žuto), uzemljenje i 5V kako bih prošao kroz kupolu.

Nosači IC senzora sa šesterokutom ili peterokutom potom su epoksidirani do kupole, točno iznad 3D ispisanih konektora, tako da je žica mogla prolaziti kroz kupolu. Imajući senzore iznad konektora, također sam mogao pristupiti i prilagoditi potenciometre na IC senzorima koji kontroliraju osjetljivost senzora. U sljedećem koraku opisat ću kako su izlazi IC senzora spojeni na multipleksere i očitani u Arduinu.

Korak 8: Multipleksni senzorski izlaz

Multipleksni senzorski izlaz
Multipleksni senzorski izlaz
Multipleksni senzorski izlaz
Multipleksni senzorski izlaz
Multipleksni senzorski izlaz
Multipleksni senzorski izlaz

Budući da Arduino Uno ima samo 14 digitalnih I/O pinova i 6 analognih ulaznih pinova te postoji 120 signala senzora koji se moraju očitati, kupola zahtijeva multipleksere za čitanje svih signala. Odlučio sam konstruirati pet 24-kanalnih multipleksera, od kojih svaki čita 24 IC senzora (vidi sliku pregleda elektronike). 24-kanalni MUX sastoji se od 8-kanalne MUX ploče za razbijanje, 16-kanalne MUX ploče za razbijanje i 2-kanalne MUX. Pin zaglavlja su lemljena na svaku ploču za razbijanje tako da se mogu spojiti na prototipnu ploču. Pomoću alata za umotavanje žice spojio sam uzemljenje, 5 V i pinove upravljačkog signala MUX ploča za razbijanje.

Za 24-kanalni MUX potrebno je pet kontrolnih signala koje sam odlučio spojiti na pin 8-12 na Arduinu. Svih pet 24-kanalnih MUX-a prima iste upravljačke signale od Arduina pa sam spojio žicu s Arduino pinova na 24-kanalni MUX. Digitalni izlazi IC senzora spojeni su na ulazne pinove 24-kanalnog MUX-a tako da se mogu serijski očitavati na Arduinu. Budući da postoji pet zasebnih pinova za čitanje na svih 120 izlaza senzora, korisno je zamisliti da je kupola podijeljena na pet zasebnih dijelova koji se sastoje od 24 trokuta (provjerite boje kupole na slici).

Koristeći manipulaciju Arduino portom, možete brzo povećati kontrolne signale koje šalju pinovi 8-12 u multipleksere. Ovdje sam priložio neki primjer koda za rad s multiplekserima:

int numChannel = 24;

// IZLAZI // int s0 = 8; // MUX kontrola 0 - PORTbD int s1 = 9; // MUX kontrola 1 - PORTb int s2 = 10; // MUX kontrola 2 - PORTb int s3 = 11; // MUX kontrola 3 - PORTb int s4 = 12; // MUX kontrola 4 - PORTb // ULAZI // int m0 = 3; // MUX ulaz 0 int m1 = 4; // MUX ulaz 1 int m2 = 5; // MUX ulaz 2 int m3 = 6; // MUX ulaz 3 int m4 = 7; // MUX ulaz 4 // VARIABLES // int arr0r; // digitalno čitanje s MUX0 int arr1r; // digitalno čitanje s MUX1 int arr2r; // digitalno čitanje s MUX2 int arr3r; // digitalno čitanje s MUX3 int arr4r; // digitalno čitanje s MUX4 void setup () {// ovdje postavite svoj kod za postavljanje, da biste ga jednom pokrenuli: DDRB = B11111111; // postavlja Arduino pinove 8 do 13 kao ulaze pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, ULAZ); pinMode (m3, ULAZ); pinMode (m4, ULAZ); } void loop () {// ovdje unesite svoj glavni kôd, za ponavljanje: PORTB = B00000000; // SET kontrolne pinove za mux nisko za (int i = 0; i <numChannel; i ++) {// Digitalni izlaz za očitavanje MUX0 - MUX4 za IR senzor i // Ako je IC osjetnik LO, igrač trotira dodirnut trokut. arr0r = digitalno čitanje (m0); // očitavanje iz Mux 0, IR senzora i arr1r = digitalRead (m1); // očitavanje iz Mux 1, IR senzora i arr2r = digitalRead (m2); // očitavanje iz Mux 2, IR senzora i arr3r = digitalRead (m3); // čitanje s Mux 3, IR senzora i arr4r = digitalRead (m4); // čitanje s Mux 4, IC senzora i // UČINITE NEŠTO S MUX ULAZIMA ILI POKRENITE U NIZU OVDJE // PORTB ++; // povećavanje kontrolnih signala za MUX}}

Korak 9: Raspršivanje svjetla akrilom

Difuzno svjetlo s akrilom
Difuzno svjetlo s akrilom
Difuzno svjetlo s akrilom
Difuzno svjetlo s akrilom
Difuzno svjetlo s akrilom
Difuzno svjetlo s akrilom

Kako bih raspršio svjetlost LED dioda, brusnim prozirnim akrilom sam brusio kružnom brusilicom. Brusilica je pomaknuta preko obje strane akrila pokretom broj 8. Smatrao sam da je ova metoda mnogo bolja od boje za raspršivanje "matiranog stakla".

Nakon brušenja i čišćenja akrila, laserskim rezačem izrezao sam trokute koji su pristajali preko LED dioda. Moguće je izrezati akril pomoću akrilnog alata za rezanje ili čak ubodne pile ako akril ne pukne. Akril je preko LED dioda držao pravokutnike od šperploče debljine 5 mm također izrezane laserskim rezačem. Ove male daske bile su zalijepljene na podupirače na kupoli, a akrilni trokuti epoksidirani na daske.

Korak 10: Glazba s kupolom pomoću MIDI -ja

Stvaranje glazbe s kupolom pomoću MIDI -ja
Stvaranje glazbe s kupolom pomoću MIDI -ja
Stvaranje glazbe s kupolom pomoću MIDI -ja
Stvaranje glazbe s kupolom pomoću MIDI -ja
Stvaranje glazbe s kupolom pomoću MIDI -ja
Stvaranje glazbe s kupolom pomoću MIDI -ja

Htio sam da kupola može proizvesti zvuk, pa sam postavio pet MIDI kanala, po jedan za svaki podskup kupole. Najprije morate kupiti pet MIDI priključaka i spojiti ih kao što je prikazano na shemi (za više informacija pogledajte ovaj vodič iz Arduino podrške).

Budući da na Arduino Uno postoji samo jedan serijski prijenosni pin (pin 2 označen kao TX pin), morate de-multipleksirati signale koji se šalju na pet MIDI priključnica. Koristio sam iste kontrolne signale (pin 8-12), jer se MIDI signali šalju u različito vrijeme nego kada se IC senzori očitavaju u Arduinu. Ti se upravljački signali šalju na 8-kanalni demultiplekser tako da kontrolirate koji MIDI priključak prima MIDI signal koji je stvorio Arduino. MIDI signale generirao je Arduino sa sjajnom bibliotekom MIDI signala koju je stvorio Francois Best. Evo nekoliko primjera koda za proizvodnju više MIDI izlaza na različite MIDI priključke s Arduino Uno:

#include // uključi MIDI biblioteku

#define numChannel 24 // Broj IC -a po trokutu #define numSections 5 // broj odjeljaka u kupoli, broj 24 -kanalnog MUX -a, broj MIDI priključaka // OUTPUTS // int s0 = 8; // MUX kontrola 0 - PORTbD int s1 = 9; // MUX kontrola 1 - PORTb int s2 = 10; // MUX kontrola 2 - PORTb int s3 = 11; // MUX kontrola 3 - PORTb int s4 = 12; // MUX kontrola 4 - PORTb // ULAZI // int m0 = 3; // MUX ulaz 0 int m1 = 4; // MUX ulaz 1 int m2 = 5; // MUX ulaz 2 int m3 = 6; // MUX ulaz 3 int m4 = 7; // MUX ulaz 4 // VARIABLES // int arr0r; // digitalno čitanje s MUX0 int arr1r; // digitalno čitanje s MUX1 int arr2r; // digitalno čitanje s MUX2 int arr3r; // digitalno čitanje s MUX3 int arr4r; // digitalno čitanje s MUX4 int midArr [numSections]; // Pohranjuje je li jedan od igrača pritisnuo bilješku int note2play [numSections]; // Spremi bilješku za reprodukciju ako se dodirne senzor int notes [numChannel] = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83}; int pauseMidi = 4000; // vrijeme pauze između midi signala MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// ovdje postavite svoj kod za postavljanje, da biste ga jednom pokrenuli: DDRB = B11111111; // postavlja Arduino pinove 8 do 13 kao ulaze MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, ULAZ); pinMode (m3, ULAZ); pinMode (m4, ULAZ); } void loop () {// ovdje unesite svoj glavni kôd, za ponavljanje: PORTB = B00000000; // SET kontrolne pinove za mux nisko za (int i = 0; i <numChannel; i ++) {// Digitalni izlaz za očitavanje MUX0 - MUX4 za IR senzor i // Ako je IC osjetnik LO, igrač trotira dodirnut trokut. arr0r = digitalno čitanje (m0); // očitavanje iz Mux 0, IR senzora i arr1r = digitalRead (m1); // očitavanje iz Mux 1, IR senzora i arr2r = digitalRead (m2); // očitavanje iz Mux 2, IR senzora i arr3r = digitalRead (m3); // čitanje s Mux 3, IR senzora i arr4r = digitalRead (m4); // očitavanje s Mux 4, IC senzora i if (arr0r == 0) // Senzor na odjeljku 0 je blokiran {midArr [0] = 1; // Igrač 0 je pogodio notu, postavite HI tako da postoji izlaz MIDI za igrača 0 note2play [0] = note ; // Bilješka za igranje za Player 0} if (arr1r == 0) // Senzor na odjeljku 1 je blokiran {midArr [1] = 1; // Igrač 0 je pogodio notu, postavite HI tako da postoji izlaz MIDI za igrača 0 note2play [1] = note ; // Bilješka za igranje za Player 0} if (arr2r == 0) // Senzor na odjeljku 2 je blokiran {midArr [2] = 1; // Igrač 0 je pogodio notu, postavite HI tako da postoji izlaz MIDI za igrača 0 note2play [2] = note ; // Bilješka za igranje za Player 0} if (arr3r == 0) // Senzor na odjeljku 3 je blokiran {midArr [3] = 1; // Igrač 0 je pogodio notu, postavite HI tako da postoji izlaz MIDI za igrača 0 note2play [3] = note ; // Bilješka za igranje za Player 0} if (arr4r == 0) // Senzor na odjeljku 4 je blokiran {midArr [4] = 1; // Igrač 0 je pogodio notu, postavite HI tako da postoji izlaz MIDI za igrača 0 note2play [4] = note ; // Napomena za igranje za Player 0} PORTB ++; // inkrementni kontrolni signali za MUX} updateMIDI (); } void updateMIDI () {PORTB = B00000000; // SET kontrolne pinove za mux nisko if (midArr [0] == 1) // MIDI izlaz igrača 0 {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // povećanje MUX -a if (midArr [1] == 1) // MIDI izlaz igrača 1 {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // povećanje MUX -a if (midArr [2] == 1) // MIDI izlaz igrača 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // povećanje MUX -a if (midArr [3] == 1) // MIDI izlaz igrača 3 {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // povećanje MUX -a if (midArr [4] == 1) // MIDI izlaz igrača 4 {MIDI.sendNoteOn (note2play [4], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [4], 127, 1); delayMicroseconds (pauseMidi); } midArr [0] = 0; midArr [1] = 0; midArr [2] = 0; midArr [3] = 0; midArr [4] = 0; }

Korak 11: Napajanje kupole

Napajanje kupole
Napajanje kupole
Napajanje kupole
Napajanje kupole
Napajanje kupole
Napajanje kupole
Napajanje kupole
Napajanje kupole

Postoji nekoliko komponenti koje je potrebno napajati u kupoli. Stoga ćete morati izračunati pojačala izvučena iz svake komponente kako biste odredili napajanje koje morate kupiti.

LED traka: Koristio sam približno 3,75 metara LED trake Ws2801, koja troši 6,4 W/metar. To odgovara 24 W (3,75*6,4). Da biste to pretvorili u pojačala, upotrijebite Power = current*volts (P = iV), gdje je V napon LED trake, u ovom slučaju 5V. Stoga je struja izvučena iz LED dioda 4,8A (24W/5V = 4,8A).

IR senzori: Svaki IR senzor troši oko 25 mA, ukupno 3A za 120 senzora.

Arduino: 100mA, 9V

Multiplekseri: Postoji pet 24 -kanalnih multipleksera od kojih se svaki sastoji od 16 -kanalnog i 8 -kanalnog multipleksera. 8 -kanalni i 16 -kanalni MUX troše oko 100 mA. Stoga je ukupna potrošnja energije svih MUX -a 1A.

Zbrajanjem ovih komponenti očekuje se da će ukupna potrošnja energije biti oko 9A. LED traka, IR senzori i multiplekseri imaju ulazni napon na 5V, a Arduino ima 9V ulazni napon. Stoga sam odabrao 12V 15A napajanje, 15A dolar pretvarač za pretvaranje 12V u 5V i 3A pretvarač u dolarima za pretvaranje 12V u 9V za Arduino.

Korak 12: Kružna baza kupole

Kružna kupolasta baza
Kružna kupolasta baza
Kružna kupolasta baza
Kružna kupolasta baza
Kružna baza kupole
Kružna baza kupole

Kupola počiva na kružnom komadu drveta s peterokutom izrezanim u sredini radi lakšeg pristupa elektronici. Da bi se stvorila ova kružna baza, list šperploče dimenzija 4x6’izrezan je pomoću CNC glodalice za drvo. Za ovaj korak mogla bi se koristiti i ubodna pila. Nakon što je baza izrezana, kupola je na nju pričvršćena pomoću malih drvenih blokova 2x3”.

Na podnožje sam priključio napajanje s epoksidom i MUX-ove i Buck pretvarače s razmaknicama za PCB. Odstojnici su pričvršćeni na šperploču pomoću adaptera s navojem E-Z Lok.

Korak 13: Baza kupola Pentagona

Baza kupola Pentagona
Baza kupola Pentagona
Baza kupola Pentagona
Baza kupola Pentagona
Baza kupola Pentagona
Baza kupola Pentagona

Osim kružne baze, konstruirao sam i osnovu peterokuta za kupolu s prozorom od ogledala na dnu. Ova podloga i prozor u izgledu također su napravljeni od šperploče izrezane CNC glodalicom za drvo. Stranice peterokuta izrađene su od drvenih dasaka, a jedna strana ima rupu za prolaz kroz konektore. Pomoću metalnih nosača i 2x3 blok spojeva, drvene daske pričvršćene su na bazu peterokuta. Prekidač za napajanje, MIDI konektori i USB priključak pričvršćeni su na prednju ploču koju sam izradio pomoću laserskog rezača. Cijela baza pentagona pričvršćena je na kružnu podlogu opisanu u koraku 12.

Ugradio sam prozor u dno kupole tako da svatko može pogledati u kupolu kako bi vidio elektroniku. Zrcalo je izrađeno od akrila izrezanog laserskim rezačem i epoksidirano je na kružni komad šperploče.

Korak 14: Programiranje kupole

Postoje beskrajne mogućnosti programiranja kupole. Svaki ciklus koda prima signale s IC senzora, koji označavaju trokute koje je netko dotaknuo. S ovim podacima možete obojiti kupolu bilo kojom RGB bojom i/ili proizvesti MIDI signal. Evo nekoliko primjera programa koje sam napisao za kupolu:

Boja kupole: Svaki trokut prelazi kroz četiri boje pri dodiru. Kako se boje mijenjaju, svira se arpeggio. Ovim programom možete obojati kupolu na tisuće različitih načina.

Kupola glazba: Kupola je obojena s pet boja, a svaki odjeljak odgovara različitom MIDI izlazu. U programu možete odabrati koje note svira svaki trokut. Odlučio sam započeti od sredine C na vrhu kupole i povećati visinu kad su se trokuti približili bazi. Budući da postoji pet izlaza, ovaj je program idealan za istovremenu igru više ljudi na kupoli. Pomoću MIDI instrumenta ili MIDI softvera ti MIDI signali mogu zvučati poput bilo kojeg instrumenta.

Simon: Napisao sam izvedbu Simona, klasične igre za osvjetljavanje memorije. Nasumičan niz svjetla svijetli jedno po jedno na cijeloj kupoli. U svakom potezu igrač mora kopirati slijed. Ako igrač ispravno odgovara nizu, slijedu se dodaje dodatno svjetlo. Visoka ocjena pohranjena je na jednom od dijelova kupole. Ova igra je također vrlo zabavna za igranje s više ljudi.

Pong: Zašto ne biste igrali pong na kupoli? Lopta se širi po kupoli sve dok ne udari u veslo. Kada se to dogodi, proizvodi se MIDI signal koji označava da je veslo pogodilo loptu. Drugi igrač tada mora usmjeriti veslo po dnu kupole tako da udara loptu natrag.

Korak 15: Fotografije dovršene kupole

Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Fotografije dovršene kupole
Arduino natjecanje 2016
Arduino natjecanje 2016
Arduino natjecanje 2016
Arduino natjecanje 2016

Velika nagrada na Arduino natjecanju 2016

Remix natjecanje 2016
Remix natjecanje 2016
Remix natjecanje 2016
Remix natjecanje 2016

Druga nagrada na Remix natjecanju 2016

Napravi natječaj za sjaj 2016
Napravi natječaj za sjaj 2016
Napravi natječaj za sjaj 2016
Napravi natječaj za sjaj 2016

Druga nagrada na natjecanju Make it Glow 2016

Preporučeni: