Obsah:

Interaktívny geodetický LED dóm: 15 krokov (s obrázkami)
Interaktívny geodetický LED dóm: 15 krokov (s obrázkami)

Video: Interaktívny geodetický LED dóm: 15 krokov (s obrázkami)

Video: Interaktívny geodetický LED dóm: 15 krokov (s obrázkami)
Video: Sonoff B05-B-A60 - wi-fi RGB LED лампочка в патрон E27, Ewelink, интеграция в Home Assistant 2024, Júl
Anonim
Image
Image
Interaktívny geodetický LED dóm
Interaktívny geodetický LED dóm
Interaktívny geodetický LED dóm
Interaktívny geodetický LED dóm
Interaktívny geodetický LED dóm
Interaktívny geodetický LED dóm

Zostrojil som geodetickú kupolu pozostávajúcu zo 120 trojuholníkov s LED a senzorom v každom trojuholníku. Každú LED je možné adresovať jednotlivo a každý snímač je vyladený špeciálne pre jeden trojuholník. Kupola je naprogramovaná pomocou Arduina, aby sa rozsvietilo a produkovalo MIDI signál podľa toho, do ktorého trojuholníka položíte ruku.

Kupolu som navrhol ako zábavný displej, ktorý u ľudí vyvoláva záujem o svetlo, elektroniku a zvuk. Pretože sa kupola delí pekne na päť častí, navrhol som, aby mala päť samostatných MIDI výstupov, z ktorých každá môže mať iný zvuk. Vďaka tomu je kupola obrovský hudobný nástroj, ideálny pre prehrávanie hudby s viacerými ľuďmi súčasne. Okrem prehrávania hudby som kupolu naprogramoval aj na svetelné šou a na predstavenie Simona a Ponga. Konečná štruktúra má priemer viac ako meter a je 70 cm vysoká a je vyrobená predovšetkým z dreva, akrylu a 3D tlačených dielov.

Existuje niekoľko skvelých návodov na LED stolíky a kocky, ktoré ma inšpirovali k spusteniu tohto projektu. Chcel som však skúsiť usporiadať diódy LED do inej geometrie. Nedokázal som si predstaviť lepšiu štruktúru projektu ako geodetický dóm, ktorý je tiež dobre zdokumentovaný na stránke Instructables. Tento projekt je teda remix/mashup LED tabuliek a geodetických dómov. Nasledujú odkazy na LED diódy a pokyny pre geodetickú kupolu, ktoré som skontroloval na začiatku projektu.

LED stolíky a kocky:

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-…

Geodetická kupola:

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

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

Krok 1: Zoznam dodávok

Zoznam dodávok
Zoznam dodávok
Zoznam dodávok
Zoznam dodávok
Zoznam dodávok
Zoznam dodávok

Materiály:

1. Drevo na vzpery kupoly a základne kupoly (množstvo závisí od typu a veľkosti kupoly)

2. Adresovateľný LED pásik (16,4 stôp/5 m adresovateľný farebný LED pásik pixelov 160 -led Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - zostavené)

4. Prototypová doska (Penta Angel Double-Side Prototype PCB Universal (7x9cm))

5. Akryl pre difúzne diódy LED (liaty akrylový list, číry, veľkosť 12 palcov x 12 palcov x 0,118 palcov)

6. Napájací zdroj (Aiposen 110/220V až DC12V 30A 360W ovládač napájacieho zdroja)

7. Buck prevodník pre Arduino (RioRand LM2596 DC-DC Buck Converter 1,23V-30V)

8. Buck prevodník pre LED a senzory (DROK Mini Electric Buck Voltage Converter 15A)

9. 120 IR senzorov (modul senzora vyhýbania sa infračerveným prekážkam)

10. Päť 16 -kanálových multiplexorov (analógový/digitálny MUX Breakout - CD74HC4067)

11. Šesť 8 -kanálových multiplexorov (Multiplexer Breakout - 8 kanálov (74HC4051))

12. Päť 2 -kanálových multiplexorov (MAX4544CPA+)

13. Drôt obalený drôtom (PCB spájka 0,25 mm, pocínovaná medená šnúra, dia, ovinovací drôt 305M 30AWG červená)

14. Pripojovací vodič (plné jadro, 22 AWG)

15. Kolíkové záhlavia (Gikfun 1 x 40 kolíkový 2,54 mm jednoradový odlamovací kolíkový konektor)

16. Päť MIDI konektorov (MIDI konektor vhodný pre Breadboard (5-pinový DIN))

17. Desať 220ohm odporov pre MIDI konektory

18. Distančné podložky na montáž elektroniky do kupoly (dištančný dištančný kľúč Hex M3 samec x M3 samica)

19. Adaptéry závitov na pripojenie stojok k drevu (závitová vložka EZ Lok, mosadz, nôž)

20. Epoxidové alebo Gorilla Superglue

21. Elektrická páska

22. Spájka

Náradie:

1. Spájkovacia stanica

2. Elektrická vŕtačka

3. Kotúčová píla

4. Orbitálna brúska

5. Jigová píla

6. Pokosová píla

7. Uhlomer

8. 3D tlačiareň

9. Rezačky drôtov

10. Nástroj na ovinutie drôtu

11. Laserová rezačka na rezanie dosiek LED (voliteľné)

12. CNC shopbot pre základňu kupoly (voliteľné)

Krok 2: Navrhovanie geodetického dómu

Navrhovanie geodetického dómu
Navrhovanie geodetického dómu
Navrhovanie geodetického dómu
Navrhovanie geodetického dómu

Ako som už spomenul v úvode, existuje niekoľko online zdrojov na stavbu vlastnej geodetickej kupoly. Tieto stránky ponúkajú kopulovité kalkulačky, ktoré určujú dĺžku každej strany (t.j. vzpery) a počet konektorov potrebných pre akýkoľvek typ kupoly, ktorú chcete postaviť. Zložitosť geodetickej kupoly (t. J. Hustota trojuholníkov) je určená jej triedou (1 V, 2 V, 3 V a tak ďalej), pričom vyššia zložitosť sa stáva lepšou aproximáciou dokonalého sférického povrchu. Ak chcete postaviť vlastnú kupolu, musíte najskôr vybrať priemer a triedu kupoly.

Použil som stránku s názvom Domerama, aby mi pomohol navrhnúť 4V kopulu, ktorá bola skrátená na 5/12 gule s polomerom 40 cm. Pre tento typ kupoly je k dispozícii šesť rôznych dĺžok vzpier:

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 celkom 190 vzpier, ktoré dodávajú až 2223 cm (73 stôp) materiálu. Na vzpery v tejto kupole som použil borovicové rezivo 1x3 (3/4 "× 2-1/2"). Na pripojenie vzpier som navrhol a 3D vytlačil konektory pomocou programu Autocad. Súbory STL sú k dispozícii na stiahnutie na konci tohto kroku. Počet konektorov pre kupolu 4V 5/12 je:

20 x 4-konektor

6 x 5 konektorov

45 x 6 konektor

V nasledujúcom kroku popíšem, ako je táto kupola konštruovaná s drevenými vzperami a 3D tlačenými konektormi, ktoré som navrhol.

Krok 3: Konštrukcia kupoly so vzperami a konektormi

Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi
Konštrukcia kupoly so vzperami a konektormi

Pomocou výpočtov od spoločnosti Domerama pre kupolu 4V 5/12 som rozrezal vzpery pomocou kotúčovej píly. 190 vzpier bolo označených a po narezaní umiestnených do škatule. 71 konektorov (20 štyroch konektorov, 6 päť konektorov a 45 šesť konektorov) bolo 3D vytlačených pomocou zariadenia Makerbot. Drevené vzpery boli vložené do konektorov podľa schémy vytvorenej Domeramom. Začal som stavbu zhora a pohyboval sa radiálne von.

Keď boli všetky vzpery spojené, vyberal som jednu vzperu naraz a do dreva a konektora som pridal epoxid. Konektory boli navrhnuté tak, aby mali flexibilitu v spôsobe spájania štruktúr, takže pred pridaním akéhokoľvek epoxidu bolo dôležité skontrolovať symetriu kupoly.

Krok 4: Laserové rezanie a montáž základných dosiek

Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek
Laserové rezanie a montáž základných dosiek

Teraz, keď je konštrukcia kupoly skonštruovaná, je načase rezať trojuholníkové základné dosky. Tieto základové dosky sú pripevnené k spodnej časti vzper a slúžia na montáž LED diód do kupoly. Základné dosky som pôvodne vyrezal z preglejky hrubej 5 mm (3/16 palca) odmeraním piatich rôznych trojuholníkov, ktoré sú na kupole: AAB (30 trojuholníkov), BCC (25 trojuholníkov), DDE (20 trojuholníkov), CDF (40 trojuholníkov)) a EEE (5 trojuholníkov). Rozmery každej strany a tvar trojuholníkov boli určené pomocou kupolovej kalkulačky (Domerama) a nejakej geometrie. Po vyrezaní skúšobných základných dosiek pomocou skladačky som nakreslil trojuholníkový vzor pomocou programu Coral Draw a zostávajúce základné dosky som narezal laserovou rezačkou (oveľa rýchlejšie!). Ak nemáte prístup k laserovej rezačke, môžete podložky nakresliť na preglejku pomocou pravítka a uhlomeru a všetky rozrezať skladačkou. Akonáhle sú základné dosky prerezané, kupola sa preklopí a platne sa na kupolu prilepia lepidlom na drevo.

Krok 5: Prehľad elektroniky

Prehľad elektroniky
Prehľad elektroniky

Na obrázku vyššie je znázornená schéma elektroniky pre kupolu. Na zápis a čítanie signálov do kupoly sa používa Arduino Uno. Na rozsvietenie kupoly je vedený cez RGB LED pásik tak, že v každom zo 120 trojuholníkov je umiestnená LED dióda. Informácie o tom, ako LED pás funguje, nájdete v tomto návode. Každú LED je možné adresovať samostatne pomocou Arduina, ktoré pre pásik produkuje sériové údaje a hodinový signál (schematicky pozri pin A0 a A1). Len s pásikom a týmito dvoma signálmi môžete mať úžasnú svetelnú kupolu. Existujú aj iné spôsoby, ako písať signály pre veľa diód LED z Arduina, ako napríklad Charlieplexing a posuvné registre.

Aby som mohol s kupolou interagovať, nastavil som nad každú LED diódu IR senzor. Tieto senzory sa používajú na detekciu, keď sa niekoho ruka nachádza v blízkosti trojuholníka na kupole. Pretože každý trojuholník na kupole má svoj vlastný IR snímač a existuje 120 trojuholníkov, budete musieť pred Arduinom urobiť nejaký multiplex. Rozhodol som sa použiť päť 24-kanálových multiplexorov (MUX) pre 120 senzorov na kupole. Ak nie ste oboznámení, tu je návod na multiplexovanie. 24 -kanálový MUX vyžaduje päť riadiacich signálov. Vybral som piny 8-12 na Arduine, aby som mohol vykonávať manipuláciu s portmi (ďalšie informácie nájdete v kroku 10). Výstup dosiek MUX sa načítava pomocou pinov 3-7.

Na kupole som zahrnul aj päť MIDI výstupov, aby mohol produkovať zvuk (krok 11). Inými slovami, päť ľudí môže hrať na kupole súčasne, pričom každý výstup hrá iný zvuk. Na Arduine je iba jeden TX pin, takže päť MIDI signálov vyžaduje demultiplexovanie. Pretože MIDI výstup je produkovaný v inom čase, ako je čítanie IR senzora, použil som rovnaké riadiace signály.

Potom, čo sa všetky vstupy infračerveného senzora načítajú do Arduina, sa kupola môže rozsvietiť a prehrávať zvuky bez ohľadu na to, ako Arduino naprogramujete. V kroku 14 tohto návodu mám niekoľko príkladov.

Krok 6: Montáž diód LED na kupolu

Montáž LED diód na dome
Montáž LED diód na dome
Montáž LED diód na dome
Montáž LED diód na dome
Montáž LED diód na dome
Montáž LED diód na dome

Pretože je kupola taká veľká, je potrebné prúžok LED skrátiť, aby ste na každý trojuholník umiestnili jednu diódu LED. Každá LED dióda je nalepená na trojuholníku pomocou super lepidla. Na oboch stranách diódy LED je cez základovú dosku vyvŕtaný otvor na vedenie káblov cez kupolu. Potom som na každý kontakt na LED (5V, uzemnenie, hodiny, signál) spájkoval zapojovací vodič a vodiče previedol cez základovú dosku. Tieto drôty sú narezané tak, aby boli dostatočne dlhé na to, aby dosiahli na ďalšiu diódu LED na kupole. Vodiče sú pretiahnuté k ďalšej LED dióde a proces pokračuje. Pripojil som LED diódy v konfigurácii, ktorá by minimalizovala množstvo potrebného drôtu a zároveň mala zmysel pre neskoršie adresovanie LED pomocou Arduina. Menšia kupola by eliminovala potrebu strihania pásu a ušetrila by veľa času na spájkovanie. Ďalšou možnosťou je použiť samostatné RGB LED diódy s posuvnými registrami.

Sériová komunikácia na páse sa dosahuje pomocou dvoch pinov (dátového a hodinového pinu) od Arduina. Inými slovami, údaje na osvetlenie kupoly sú prenášané z jednej LED do druhej, keď opúšťajú dátový kolík. Tu je príklad kódu upraveného z tohto fóra Arduino:

// Nechajte celú kupolu zvyšovať a znižovať intenzitu jednej farby

#define numLeds 120 // Počet LED diód // VÝSTUPNÉ PINY // int clockPin = A1; // definujte hodinový pin int dataPin = A0; // definujte dátový pin // VARIABILY // int red [numLeds]; // Inicializácia poľa pre LED pásik int zelená [numLeds]; // Inicializácia poľa pre pásik LED int modrý [numLED]; // Inicializácia poľa pre pásik LED // KONSTANTNÁ dvojitá stupnicaA = {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}; // zlomok intenzity LED diód void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (červený, 0, numLeds); memset (zelený, 0, numLeds); memset (modrý, 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 ); }} prázdna slučka () {for (int p = 0; p <20; p ++)) // slučka na zvýšenie intenzity svetla kupoly {dvojitá mierka = scaleA [p]; oneskorenie (20); for (int i = 0; i <numLeds; i ++) // cyklus všetkými LEDkami {červená = 255 * stupnica; zelená = 80 * mierka; modrá = 0; } aktualizačný reťazec (červený, zelený, modrý); // aktualizácia pruhu LED}}

Krok 7: Návrh a implementácia držiaka senzora

Návrh a implementácia držiaka senzora
Návrh a implementácia držiaka senzora
Návrh a implementácia držiaka senzora
Návrh a implementácia držiaka senzora
Návrh a implementácia držiaka senzora
Návrh a implementácia držiaka senzora

Na kupolu som sa rozhodol použiť IR senzory. Tieto senzory majú IR LED a prijímač. Keď sa predmet dostane pred senzor, určité IR žiarenie z IR LED sa odrazí smerom k prijímaču. Tento projekt som zahájil výrobou vlastných IR senzorov, ktoré boli založené na pokynoch Richardouviny. Celé spájkovanie trvalo príliš dlho, takže som si kúpil 120 infračervených senzorov z eBay, z ktorých každý produkuje digitálny výstup. Prah senzora je nastavený potenciometrom na doske tak, aby bol výstup vysoký, iba ak sa v blízkosti tohto trojuholníka nachádza ruka.

Každý trojuholník sa skladá z preglejkovej základnej dosky LED, listu difúzneho akrylátu namontovaného asi 2,5 cm nad LED doskou a infračerveného senzora. Senzor pre každý trojuholník bol namontovaný na list tenkej preglejky v tvare päťuholníka alebo šesťuholníka v závislosti od polohy na kupole (pozri obrázok vyššie). Do základne infračerveného senzora som vyvŕtal otvory na namontovanie infračervených senzorov a potom som uzemňovací a 5V kolíky spojil drôtom na navíjanie drôtu a nástrojom na navíjanie drôtu (červené a čierne drôty). Po pripojení uzemnenia a 5 V som na každý výstup (žltý), uzemnenie a 5 V omotal dlhý drôt ovíjajúci kábel, aby prechádzal kupolou.

Šesťhranné alebo päťuholníkové držiaky infračerveného senzora boli potom epoxidované do kupoly, priamo nad 3D tlačenými konektormi, aby drôt mohol prechádzať kupolou. Tým, že som mal senzory nad konektormi, som mal tiež prístup k potenciometrom na IR senzoroch, ktoré ovládajú citlivosť senzorov, a nastavovať ich. V ďalšom kroku popíšem, ako sú výstupy IR senzorov prepojené s multiplexormi a načítané do Arduina.

Krok 8: Výstup senzora multiplexovania

Multiplexný výstup snímača
Multiplexný výstup snímača
Multiplexný výstup snímača
Multiplexný výstup snímača
Multiplexný výstup snímača
Multiplexný výstup snímača

Pretože Arduino Uno má iba 14 digitálnych I/O pinov a 6 analógových vstupných pinov a existuje 120 senzorových signálov, ktoré je potrebné prečítať, dome vyžaduje, aby všetky signály čítali multiplexory. Rozhodol som sa zostrojiť päť 24-kanálových multiplexorov, z ktorých každý čítal 24 IR senzorov (pozri obrázok prehľadu elektroniky). 24-kanálový MUX pozostáva z 8-kanálovej oddeľovacej dosky MUX, 16-kanálovej oddeľovacej dosky MUX a 2-kanálového MUX. Kolíkové hlavičky boli spájkované na každú oddeľovaciu dosku, aby ich bolo možné pripojiť k prototypovej doske. Pomocou nástroja na navíjanie drôtu som potom pripojil uzemnenie, 5 V a kolíky riadiaceho signálu na oddeľovacích doskách MUX.

24-kanálový MUX vyžaduje päť riadiacich signálov, ktoré som sa rozhodol pripojiť k pinu 8-12 na Arduine. Všetkých päť 24-kanálových MUX prijíma rovnaké riadiace signály z Arduina, takže som k 24-kanálovému MUX zapojil drôt z pinov Arduino. Digitálne výstupy IR senzorov sú pripojené k vstupným kolíkom 24-kanálového MUXu, aby ich bolo možné sériovo načítať do Arduina. Pretože existuje päť samostatných kolíkov na čítanie vo všetkých 120 výstupoch senzorov, je užitočné si predstaviť, že kupola je rozdelená na päť samostatných sekcií pozostávajúcich z 24 trojuholníkov (farby kupoly skontrolujte na obrázku).

Pomocou manipulácie s portom Arduino môžete rýchlo zvýšiť riadiace signály odoslané pinmi 8-12 do multiplexorov. Tu som pripojil niekoľko príkladov kódu na obsluhu multiplexorov:

int numChannel = 24;

// VÝSTUPY // int s0 = 8; // Ovládanie MUX 0 - PORTbD int s1 = 9; // Ovládanie MUX 1 - PORTb int s2 = 10; // Ovládanie MUX 2 - PORTb int s3 = 11; // Ovládanie MUX 3 - PORTb int s4 = 12; // ovládanie MUX 4 - PORTb // VSTUPY // int m0 = 3; // vstup MUX 0 int m1 = 4; // vstup MUX 1 int m2 = 5; // vstup MUX 2 int m3 = 6; // vstup MUX 3 int m4 = 7; // vstup MUX 4 // VARIABILY // int arr0r; // digitálne čítanie z MUX0 int arr1r; // digitálne čítanie z MUX1 int arr2r; // digitálne čítanie z MUX2 int arr3r; // digitálne čítanie z MUX3 int arr4r; // digitálne čítanie z MUX4 void setup () {// sem vložte svoj inštalačný kód, aby sa spustil raz: DDRB = B11111111; // nastaví piny Arduino 8 až 13 ako vstupy pinMode (s0, OUTPUT); pinMode (s1, VÝSTUP); pinMode (s2, VÝSTUP); pinMode (s3, VÝSTUP); pinMode (s4, VÝSTUP); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, VSTUP); pinMode (m3, VSTUP); pinMode (m4, INPUT); } void loop () {// sem vložte svoj hlavný kód, aby sa spúšťal opakovane: PORTB = B00000000; // SET control pins for mux low for (int i = 0; i <numChannel; i ++) {// Digital read output of MUX0 - MUX4 for IR sensor i // If IR sensor is LO, the triangle is an touching player. arr0r = digitalRead (m0); // čítanie z Mux 0, IR senzor i arr1r = digitalRead (m1); // čítanie z Mux 1, IR senzor i arr2r = digitalRead (m2); // čítanie z Mux 2, IR senzor i arr3r = digitalRead (m3); // čítanie z Mux 3, IR senzor i arr4r = digitalRead (m4); // čítanie z Mux 4, IR senzor i // ROBIŤ NIEČO S MUXOVÝMI VSTUPMI ALEBO ULOŽIŤ V POLE // PORTB ++; // prírastkové riadiace signály pre MUX}}

Krok 9: Difúzne svetlo s akrylom

Difúzne svetlo s akrylom
Difúzne svetlo s akrylom
Difúzne svetlo s akrylom
Difúzne svetlo s akrylom
Difúzne svetlo s akrylom
Difúzne svetlo s akrylom

Na rozptýlenie svetla z diód LED som brúsil priehľadný akryl kruhovou orbitálnou brúskou. Brúska sa pohybovala po oboch stranách akrylu pohybom číslo 8. Zistil som, že táto metóda je oveľa lepšia ako farba v spreji „z matného skla“.

Po brúsení a čistení akrylu som laserovou rezačkou vyrezal trojuholníky, aby sa zmestili na LED diódy. Akryl nie je možné prasknúť, je možné rezať akrylovým rezacím nástrojom alebo dokonca skladačkou. Akryl bol držaný nad LED diódami pomocou 5 mm hrubých preglejkových obdĺžnikov, tiež rezaných laserovou rezačkou. Tieto malé dosky boli prilepené k vzperám na kupole a akrylové trojuholníky boli nanesené epoxidom na dosky.

Krok 10: Vytváranie hudby z kupoly pomocou MIDI

Vytváranie hudby z kupoly pomocou MIDI
Vytváranie hudby z kupoly pomocou MIDI
Vytváranie hudby z kupoly pomocou MIDI
Vytváranie hudby z kupoly pomocou MIDI
Vytváranie hudby z kupoly pomocou MIDI
Vytváranie hudby z kupoly pomocou MIDI

Chcel som, aby kupola bola schopná produkovať zvuk, a tak som nastavil päť MIDI kanálov, jeden pre každú podmnožinu kupoly. Najprv si musíte kúpiť päť MIDI konektorov a pripojiť ich podľa schémy (ďalšie informácie nájdete v tomto návode na podporu Arduino).

Pretože na Arduino Uno je iba jeden prenosový sériový pin (pin 2 označený ako pin TX), musíte de-multiplexovať signály odosielané do piatich konektorov MIDI. Použil som rovnaké riadiace signály (pin 8-12), pretože MIDI signály sú odoslané v inom čase, ako keď sa načítavajú IR snímače do Arduina. Tieto riadiace signály sú odoslané do 8-kanálového demultiplexora, takže môžete ovládať, ktorý MIDI konektor prijíma MIDI signál vytvorený Arduino. MIDI signály generoval Arduino s úžasnou knižnicou MIDI signálov, ktorú vytvoril Francois Best. Tu je príklad kódu na výrobu viacerých MIDI výstupov do rôznych MIDI konektorov pomocou Arduino Uno:

#include // zahrnúť MIDI knižnicu

#define numChannel 24 // Počet IR na trojuholník #define numSections 5 // počet sekcií v dome, počet 24kanálových MUX, počet MIDI konektorov // VÝSTUPY // int s0 = 8; // Ovládanie MUX 0 - PORTbD int s1 = 9; // Ovládanie MUX 1 - PORTb int s2 = 10; // Ovládanie MUX 2 - PORTb int s3 = 11; // Ovládanie MUX 3 - PORTb int s4 = 12; // ovládanie MUX 4 - PORTb // VSTUPY // int m0 = 3; // vstup MUX 0 int m1 = 4; // vstup MUX 1 int m2 = 5; // vstup MUX 2 int m3 = 6; // vstup MUX 3 int m4 = 7; // vstup MUX 4 // VARIABILY // int arr0r; // digitálne čítanie z MUX0 int arr1r; // digitálne čítanie z MUX1 int arr2r; // digitálne čítanie z MUX2 int arr3r; // digitálne čítanie z MUX3 int arr4r; // digitálne čítanie z MUX4 int midArr [numSections]; // Uložte, či jeden z hráčov stlačil alebo nie notu int note2play [numSections]; // Uloženie poznámky, ktorá sa má prehrať, ak sa dotknete senzora, v notách [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; // čas pauzy medzi signálmi midi MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// sem vložte svoj inštalačný kód, aby sa spustil raz: DDRB = B11111111; // nastaví piny Arduino 8 až 13 ako vstupy MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, VÝSTUP); pinMode (s1, VÝSTUP); pinMode (s2, VÝSTUP); pinMode (s3, VÝSTUP); pinMode (s4, VÝSTUP); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, VSTUP); pinMode (m3, VSTUP); pinMode (m4, INPUT); } void loop () {// sem vložte svoj hlavný kód, aby sa spúšťal opakovane: PORTB = B00000000; // SET control pins for mux low for (int i = 0; i <numChannel; i ++) {// Digital read output of MUX0 - MUX4 for IR sensor i // If IR sensor is LO, the triangle is an touching player. arr0r = digitalRead (m0); // čítanie z Mux 0, IR senzor i arr1r = digitalRead (m1); // čítanie z Mux 1, IR senzor i arr2r = digitalRead (m2); // čítanie z Mux 2, IR senzor i arr3r = digitalRead (m3); // čítanie z Mux 3, IR senzor i arr4r = digitalRead (m4); // čítanie z Mux 4, IR senzor i if (arr0r == 0) // Senzor v sekcii 0 bol zablokovaný {midArr [0] = 1; // Hráč 0 trafil notu, nastavte HI tak, aby existoval MIDI výstup pre hráča 0 note2play [0] = noty ; // Poznámka k hre pre hráča 0}, ak (arr1r == 0) // Snímač v sekcii 1 bol zablokovaný {midArr [1] = 1; // Hráč 0 trafil notu, nastavte HI tak, aby existoval MIDI výstup pre hráča 0 note2play [1] = noty ; // Poznámka k hre pre hráča 0}, ak (arr2r == 0) // Snímač v sekcii 2 bol zablokovaný {midArr [2] = 1; // Hráč 0 trafil notu, nastavte HI tak, aby existoval MIDI výstup pre hráča 0 note2play [2] = noty ; // Poznámka k hre pre hráča 0}, ak (arr3r == 0) // Senzor na sekcii 3 bol zablokovaný {midArr [3] = 1; // Hráč 0 trafil notu, nastavte HI tak, aby existoval MIDI výstup pre hráča 0 note2play [3] = noty ; // Poznámka k hre pre hráča 0}, ak (arr4r == 0) // Senzor na sekcii 4 bol zablokovaný {midArr [4] = 1; // Hráč 0 trafil notu, nastavte HI tak, aby existoval MIDI výstup pre hráča 0 note2play [4] = noty ; // Poznámka k hre pre hráča 0} PORTB ++; // prírastkové riadiace signály pre MUX} updateMIDI (); } neplatná aktualizáciaMIDI () {PORTB = B00000000; // SET ovládacie piny pre mux low if (midArr [0] == 1) // Player 0 MIDI výstup {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // prírastok MUX if (midArr [1] == 1) // Player 1 MIDI výstup {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // prírastok MUX if (midArr [2] == 1) // MIDI výstup prehrávača 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // prírastok MUX if (midArr [3] == 1) // Player 3 MIDI výstup {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // prírastok MUX if (midArr [4] == 1) // Player 4 MIDI výstup {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; }

Krok 11: Napájanie dómu

Napájanie kupoly
Napájanie kupoly
Napájanie kupoly
Napájanie kupoly
Napájanie kupoly
Napájanie kupoly
Napájanie kupoly
Napájanie kupoly

V kupole je niekoľko komponentov, ktoré je potrebné napájať. Preto budete musieť vypočítať zosilňovače odobraté z každého komponentu, aby ste určili napájací zdroj, ktorý potrebujete kúpiť.

LED pás: Použil som približne 3,75 metra LED pásu Ws2801, ktorý spotrebuje 6,4 W/meter. To zodpovedá 24 W (3,75*6,4). Na premenu na ampéry použite Výkon = prúd*volty (P = iV), kde V je napätie LED pásu, v tomto prípade 5V. Preto je prúd odobratý z LED diód 4,8A (24W/5V = 4,8A).

IR senzory: Každý IR senzor čerpá asi 25 mA, celkovo 3 A pre 120 senzorov.

Arduino: 100mA, 9V

Multiplexory: Existuje päť 24 -kanálových multiplexorov, z ktorých každý pozostáva zo 16 -kanálového multiplexora a 8 -kanálového multiplexora. Každý 8 -kanálový a 16 -kanálový MUX spotrebuje asi 100 mA. Preto je celková spotreba energie všetkých MUX 1A.

Sčítaním týchto komponentov sa očakáva celková spotreba energie okolo 9A. LED pás, IR senzory a multiplexory majú vstupné napätie 5 V a Arduino má vstupné napätie 9 V. Preto som pre Arduino vybral zdroj 12V 15A, prevodník 15A na prevod 12 V na 5 V a prevodník 3 A na prevod 12 V na 9 V.

Krok 12: Základňa kruhového dómu

Základňa kruhového dómu
Základňa kruhového dómu
Základňa kruhového dómu
Základňa kruhového dómu
Základňa kruhového dómu
Základňa kruhového dómu

Kupola spočíva na kruhovom kúsku dreva s päťuholníkom vyrezaným uprostred pre ľahký prístup k elektronike. Na vytvorenie tejto kruhovej základne bol pomocou dreveného CNC routera narezaný list preglejky 4x6’. Na tento krok by sa dala použiť aj skladačka. Potom, čo bola základňa prerezaná, bola k nej kupola pripevnená pomocou malých 2x3”blokov dreva.

Na vrch základne som pripevnil napájací zdroj s epoxidom a prevodníky MUX a Buck s dištančnými rozperami na PCB. Rozpery boli pripevnené k preglejke pomocou závitových adaptérov E-Z Lok.

Krok 13: Pentagonová kupolová základňa

Pentagonová kupolová základňa
Pentagonová kupolová základňa
Pentagonová kupolová základňa
Pentagonová kupolová základňa
Pentagonová kupolová základňa
Pentagonová kupolová základňa

Okrem kruhovej základne som zostrojil aj päťuholníkovú základňu pre kupolu s priehľadným oknom v spodnej časti. Táto základňa a vyzerajúce okno boli tiež vyrobené z preglejky rezanej dreveným CNC routerom. Bočné strany päťuholníka sú vyrobené z drevených dosiek, pričom na jednej strane je otvor, cez ktorý môžu prechádzať konektory. Drevené dosky sú pomocou kovových konzol a blokových spojov 2x3 pripevnené k základni päťuholníka. Vypínač, MIDI konektory a USB konektor sú pripevnené k prednému panelu, ktorý som vytvoril pomocou laserovej rezačky. Celá päťuholníková základňa je priskrutkovaná k kruhovej základni opísanej v kroku 12.

Do spodnej časti kupoly som nainštaloval okno, aby ktokoľvek mohol pozrieť hore do kupoly a vidieť elektroniku. Vyzerajúce sklo je vyrobené z akrylu vyrezaného laserovou rezačkou a je epoxidované na kruhový kus preglejky.

Krok 14: Programovanie kupoly

Programovanie kupoly ponúka nekonečné množstvo možností. Každý cyklus kódu prijíma signály z infračervených senzorov, ktoré označujú trojuholníky, ktorých sa niekto dotkol. S týmito informáciami môžete zafarbiť kupolu akoukoľvek farbou RGB a/alebo vytvoriť MIDI signál. Tu je niekoľko príkladov programov, ktoré som napísal pre kupolu:

Farba kupoly: Každý trojuholník pri dotyku cykluje štyrmi farbami. Ako sa farby menia, hrá sa arpeggio. S týmto programom sa dostanete k zafarbeniu kupoly tisíckami rôznych spôsobov.

Kopulovitá hudba: Kupola je zafarbená piatimi farbami, pričom každá časť zodpovedá inému výstupu MIDI. V programe si môžete vybrať, ktoré noty budú jednotlivé trojuholníky hrať. Rozhodol som sa začať v strede C v hornej časti kupoly a zvyšovať výšku tónu, keď sa trojuholníky približovali k základni. Pretože existuje päť výstupov, je tento program ideálny na to, aby kopulu hralo súčasne viac ľudí. Pomocou MIDI nástroja alebo MIDI softvéru je možné dosiahnuť, aby tieto MIDI signály zneli ako akýkoľvek nástroj.

Simon: Napísal som vydanie Simona, klasickej hry na rozsvietenie pamäte. Náhodná sekvencia svetiel je rozsvietená jeden po druhom v celom dome. V každom kole musí hráč skopírovať postupnosť. Ak hráč správne zhoduje so sekvenciou, do sekvencie sa pridá ďalšie svetlo. Vysoké skóre je uložené na jednej z častí kupoly. Táto hra je veľmi zábavná aj pre viac ľudí.

Pong: Prečo si nezahrať pong na kopuli? Lopta sa šíri cez kupolu, až kým nenarazí na pádlo. Keď to urobí, vydá sa MIDI signál, ktorý naznačuje, že lopatka zasiahla loptu. Druhý hráč potom musí nasmerovať pádlo po spodnej časti kupoly tak, aby odpálilo loptu späť.

Krok 15: Fotografie dokončeného dómu

Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Fotografie dokončeného dómu
Súťaž Arduino 2016
Súťaž Arduino 2016
Súťaž Arduino 2016
Súťaž Arduino 2016

Veľká cena v súťaži Arduino 2016

Remixová súťaž 2016
Remixová súťaž 2016
Remixová súťaž 2016
Remixová súťaž 2016

Druhá cena v súťaži Remix 2016

Make it Glow Contest 2016
Make it Glow Contest 2016
Make it Glow Contest 2016
Make it Glow Contest 2016

Druhá cena v súťaži Make it Glow Contest 2016

Odporúča: