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, Juli
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 i svaki senzor je posebno podešen za jedan trougao. Kupola je programirana s Arduinom da svijetli i proizvodi MIDI signal ovisno o tome koji trokut postavite ruku.

Dizajnirao sam kupolu kao zabavan ekran koji ljude zanima za svjetlo, elektroniku i zvuk. Budući da se kupola lijepo dijeli na pet dijelova, dizajnirao sam kupolu s pet zasebnih MIDI izlaza koji svaki može imati drugačiji zvuk. Ovo čini kupolu ogromnim muzičkim instrumentom, idealnim za istovremeno sviranje sa više ljudi. Osim puštanja muzike, takođe sam programirao kupolu za svjetlosne emisije i sviranje izvedbe Simona i Ponga. Konačna struktura ima prečnik nešto više od metra i visok je 70 cm, a prvenstveno je izrađena od drveta, akrila i 3D štampanih dijelova.

Postoji nekoliko sjajnih instrukcija na LED stolovima i kockama koje su me inspirirale da započnem ovaj projekt. Međutim, htio sam pokušati postaviti LED diode u drugačijoj geometriji. Nisam mogao zamisliti bolju strukturu projekta od geodetske kupole, koja je također dobro dokumentirana na Instructables. Dakle, ovaj projekt je remiks/miješanje LED stolova i geodetskih kupola. Ispod se nalaze 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: Lista zaliha

Lista zaliha
Lista zaliha
Lista zaliha
Lista zaliha
Lista zaliha
Lista zaliha

Materijali:

1. Drvo za podupirače kupole i podnožje kupole (količina zavisi od vrste i veličine kupole)

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

3. Arduino Uno (Atmega328 - sastavljeno)

4. Ploča prototipa (Univerzalna dvostrana prototipska štampana ploča 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 omotavanje žice (PCB lemljenje 0,25 mm bakarni kabel presvučen limom Žica za omatanje žice 305M 30AWG crvena)

14. Priključna žica (Puno jezgro, 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 220ohm otpornika za MIDI priključke

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

19. Adaptori navoja za spajanje rastojanja sa drvetom (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 testera

4. Orbitalna brusilica

5. Jig pila

6. Kutna pila

7. Kutomjer

8. 3D štampač

9. Rezači žice

10. Alat za umotavanje žice

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

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

Korak 2: Projektovanje geodetske kupole

Projektovanje geodetske kupole
Projektovanje geodetske kupole
Projektovanje geodetske kupole
Projektovanje geodetske kupole

Kao što sam spomenuo u uvodu, postoji nekoliko mrežnih izvora za izgradnju vlastite geodetske kupole. Ove web stranice pružaju kupolaste kalkulatore koji određuju dužinu 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, prvo morate odabrati promjer i klasu kupole.

Koristio sam web lokaciju koja se zove Domerama da mi pomogne u dizajniranju 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 dužine:

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 štampane konektore koristeći Autocad. STL datoteke su dostupne 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 ispisanim 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 kupolu od 4V 5/12, izrezao sam podupirače pomoću kružne pile. 190 podupirača je označeno i stavljeno u kutiju nakon rezanja. 71 konektor (20 sa četiri konektora, 6 sa pet konektora i 45 sa šest konektora) je 3D štampan pomoću Makerbota. Drveni podupirači umetnuti su u konektore prema dijagramu koji je izradio Domerama. Započeo sam izgradnju s vrha i krenuo se radijalno prema van.

Nakon što su spojeni svi podupirači, uklanjao sam jednu po jednu i dodao drvo i konektor epoksidom. Konektori su dizajnirani tako da imaju fleksibilnost u načinu povezivanja konstrukcija, pa je bilo važno provjeriti simetriju kupole prije dodavanja bilo kojeg 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. Ove osnovne ploče su pričvršćene na dno podupirača i koriste se za postavljanje 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 kupolastog kalkulatora (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 osnovne ploče izrezane, kupola se prevrće i ploče se lijepe za kupolu ljepilom za drvo.

Korak 5: Pregled elektronike

Pregled elektronike
Pregled elektronike

Na gornjoj slici prikazana je shema elektronike kupole. 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 (pogledajte A0 i A1 pin na shemi). Samo sa trakom i ova dva signala možete imati sjajnu kupolu sa svjetlom. Postoje i drugi načini pisanja signala za puno LED dioda s Arduina, poput Charlieplexinga i registara pomaka.

Da bih stupio u interakciju s kupolom, postavio sam IC senzor iznad svake LED. Ovi senzori se 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 kontrolnih 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.

Uključio sam i pet MIDI izlaza na kupoli kako bi mogao proizvesti zvuk (korak 11). Drugim riječima, pet ljudi može svirati kupolu istovremeno 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 kontrolne 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 ovog uputstva.

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, LED traku je potrebno izrezati kako bi se na svaki trokut postavila jedna LED. Svaka LED dioda je zalijepljena na trokut pomoću super ljepila. Sa obje strane LED diode kroz osnovnu ploču je izbušena 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 žice su 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 sa jedne LED na drugu dok napuštaju pin podataka. Evo primjera koda izmijenjenog sa 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 trake int blue [numLeds]; // Inicijalizacija niza za LED traku // KONSTANTNA dvostruka skalaA = {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 updatestestring (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 diode {crveno = 255 * skala; zelena = 80 * skala; plava = 0; } updatetestring (crveno, zeleno, plavo); // ažuriranje LED trake}}

Korak 7: Dizajn i implementacija senzorskog nosača

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. Kada 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 ruka 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 bazi IR senzora za postavljanje IC senzora, a zatim spojio uzemljenje i 5V pinove žicom za omatanje i alatom za omatanje žice (crvene i crne žice). Nakon spajanja uzemljenja i 5 V, omotao sam dugu žicu za omatanje na svakom izlazu (žuto), uzemljenje i 5 V kako bih prošao kroz kupolu.

Nosači IC senzora sa šesterokutom ili peterokutom potom su epoksidirani do kupole, tačno iznad 3D štampanih 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 i 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, 16-kanalne MUX ploče 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 kontrolne 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 na multipleksere. Ovdje sam priložio neki primjer koda za rad sa 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 iz MUX0 int arr1r; // digitalno čitanje iz MUX1 int arr2r; // digitalno čitanje iz MUX2 int arr3r; // digitalno čitanje iz MUX3 int arr4r; // digitalno čitanje iz 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, INPUT); } void loop () {// ovde unesite svoj glavni kod, da bi se ponavljao: 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 senzor LO, igrač je dodirnuo trokut. arr0r = digitalno čitanje (m0); // očitavanje iz Mux 0, IC senzora i arr1r = digitalRead (m1); // očitavanje sa Mux 1, IC senzora i arr2r = digitalRead (m2); // očitavanje sa Mux 2, IC senzora i arr3r = digitalRead (m3); // očitavanje sa Mux 3, IC senzora i arr4r = digitalRead (m4); // očitavanje sa Mux 4, IC senzora i // UČINITE NEŠTO S MUX ULAZIMA ILI SKLADITE U NIZU OVDJE // PORTB ++; // povećanje 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

Da bih raspršio svjetlost LED dioda, brusio sam prozirni akril kružnom orbitalnom brusilicom. Brusilica je premještena s obje strane akrila pokretom broj 8. Otkrio sam da je ova metoda mnogo bolja od boje u spreju "matirano staklo".

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 za podupirače na kupoli, a akrilni trokuti epoksidirani na daske.

Korak 10: Stvaranje muzike sa kupolom pomoću MIDI -ja

Muzika s kupolom pomoću MIDI -ja
Muzika s kupolom pomoću MIDI -ja
Muzika s kupolom pomoću MIDI -ja
Muzika s kupolom pomoću MIDI -ja
Muzika s kupolom pomoću MIDI -ja
Muzika 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. Prvo 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. Ovi upravljački signali šalju se 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čuje 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 iz MUX0 int arr1r; // digitalno čitanje iz MUX1 int arr2r; // digitalno čitanje iz MUX2 int arr3r; // digitalno čitanje iz MUX3 int arr4r; // digitalno čitanje iz MUX4 int midArr [numSections]; // Pohranjuje je li jedan od igrača pritisnuo bilješku int note2play [numSections]; // Spremi bilješku za reprodukciju ako je dodirnut 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, INPUT); } void loop () {// ovde unesite svoj glavni kod, da bi se ponavljao: 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 senzor LO, igrač je dodirnuo trokut. arr0r = digitalno čitanje (m0); // očitavanje iz Mux 0, IC senzora i arr1r = digitalRead (m1); // očitavanje sa Mux 1, IC senzora i arr2r = digitalRead (m2); // očitavanje sa Mux 2, IC senzora i arr3r = digitalRead (m3); // očitavanje sa Mux 3, IC senzora i arr4r = digitalRead (m4); // očitavanje sa 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 MIDI izlaz za igrača 0 note2play [0] = note ; // Napomena za reprodukciju 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 MIDI izlaz za igrača 0 note2play [1] = note ; // Napomena za reprodukciju 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 MIDI izlaz za igrača 0 note2play [2] = note ; // Napomena za reprodukciju 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 MIDI izlaz za igrača 0 note2play [3] = note ; // Napomena za reprodukciju 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 MIDI izlaz za igrača 0 note2play [4] = note ; // Napomena za igranje za Player 0} PORTB ++; // povećavaju kontrolne signale 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ća MUX 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ća MUX 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ća MUX if (midArr [3] == 1) // MIDI izlaz 3 igrača {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // poveća MUX if (midArr [4] == 1) // MIDI izlaz 4 igrača {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 treba napajati u kupoli. Stoga ćete morati izračunati pojačala koja se crpe 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 ovo 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.

Sabiranjem ovih komponenti očekuje se da će ukupna potrošnja energije biti oko 9A. LED traka, IC 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 baza kupole
Kružna baza kupole
Kružna baza kupole
Kružna baza kupole
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 se može koristiti i ubodna testera. Nakon što je baza izrezana, kupola je na nju pričvršćena pomoću malih drvenih blokova 2x3”.

Na vrh baze pričvrstio sam napajanje epoksidom i MUX-ove i Buck pretvarače sa razmaknicama za PCB. Odstojnici su pričvršćeni na šperploču pomoću adaptera za navoje 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 osnove, izgradio sam i osnovu peterokuta za kupolu sa prozorom od ogledala na dnu. Ova podloga i prozor koji je izgledao takođe 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. Koristeći metalne konzole i 2x3 blok spojeve, drvene daske su pričvršćene na bazu peterokuta. Prekidač za napajanje, MIDI konektori i USB konektor pričvršćeni su na prednju ploču koju sam stvorio laserskim rezačem. Cijela baza pentagona pričvršćena je na kružnu podlogu opisanu u koraku 12.

Ugradio sam prozor u dno kupole tako da svako može pogledati u kupolu da vidi elektroniku. Staklo za gledanje izrađeno je od akrila izrezanog laserskim rezačem i epoksidirano na kružni komad šperploče.

Korak 14: Programiranje kupole

Postoje beskrajne mogućnosti programiranja kupole. Svaki ciklus koda prima signale sa IC senzora, koji označavaju trouglove koje je neko dodirnuo. Pomoću ovih informacija 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 prolazi kroz četiri boje pri dodiru. Kako se boje mijenjaju, svira se arpeđo. Ovim programom možete obojiti kupolu na hiljade različitih načina.

Kupola muzika: Kupola je obojena sa 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 na sredini C na vrhu kupole i povećati visinu kako su se trokuti približavali bazi. Budući da postoji pet izlaza, ovaj program je idealan za više ljudi koji istovremeno igraju kupolu. Pomoću MIDI instrumenta ili MIDI softvera, ovi MIDI signali mogu zvučati kao bilo koji instrument.

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, dodatnom svjetlu dodaje se niz. 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 igrate 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 lopatica udarila loptu. Drugi igrač tada mora usmjeriti veslo duž dna kupole tako da udara loptu natrag.

Korak 15: Fotografije dovršene kupole

Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Fotografije Completed Dome
Arduino takmičenje 2016
Arduino takmičenje 2016
Arduino takmičenje 2016
Arduino takmičenje 2016

Velika nagrada na Arduino takmičenju 2016

Remix takmičenje 2016
Remix takmičenje 2016
Remix takmičenje 2016
Remix takmičenje 2016

Druga nagrada na Remix takmičenju 2016

Napravi takmičenje Glow 2016
Napravi takmičenje Glow 2016
Napravi takmičenje Glow 2016
Napravi takmičenje Glow 2016

Druga nagrada na takmičenju Make it Glow 2016

Preporučuje se: