Obsah:
- Krok 1: Zoznam dodávok
- Krok 2: Navrhovanie geodetického dómu
- Krok 3: Konštrukcia kupoly so vzperami a konektormi
- Krok 4: Laserové rezanie a montáž základných dosiek
- Krok 5: Prehľad elektroniky
- Krok 6: Montáž diód LED na kupolu
- Krok 7: Návrh a implementácia držiaka senzora
- Krok 8: Výstup senzora multiplexovania
- Krok 9: Difúzne svetlo s akrylom
- Krok 10: Vytváranie hudby z kupoly pomocou MIDI
- Krok 11: Napájanie dómu
- Krok 12: Základňa kruhového dómu
- Krok 13: Pentagonová kupolová základňa
- Krok 14: Programovanie kupoly
- Krok 15: Fotografie dokončeného dómu
Video: Interaktívny geodetický LED dóm: 15 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Veľká cena v súťaži Arduino 2016
Druhá cena v súťaži Remix 2016
Druhá cena v súťaži Make it Glow Contest 2016
Odporúča:
BBC Micro: bit and scratch - interaktívny volant a hra pre vodiča: 5 krokov (s obrázkami)
BBC Micro: bit and Scratch - interaktívny volant a hra pre vodičov: Jednou z mojich úloh v tomto týždni je použiť BBC Micro: bit na prepojenie s programom Scratch, ktorý sme napísali. Myslel som si, že to bola ideálna príležitosť použiť môj ThreadBoard na vytvorenie vstavaného systému! Moja inšpirácia pre nulové p
Interaktívny konferenčný stolík LED Arduino: 6 krokov (s obrázkami)
Interaktívny konferenčný stolík LED Arduino: Vyrobil som interaktívny konferenčný stolík, ktorý rozsvieti LED svetlá pod predmetom, keď je predmet položený nad stôl. Rozsvietia sa iba LED diódy, ktoré sú pod týmto predmetom. To sa dosahuje efektívnym použitím senzorov priblíženia a keď blízky
Interaktívny LED dóm s Fadecandy, spracovaním a Kinectom: 24 krokov (s obrázkami)
Interaktívny LED dóm s Fadecandy, spracovaním a Kinect: WhatWhen in Dome je 4,2 m geodetická kupola pokrytá 4378 LED diódami. Všetky diódy LED sú jednotlivo mapované a adresovateľné. Ovládajú ich Fadecandy a Processing na pracovnej ploche Windows. Kinect je pripevnený k jednej zo vzpier kupoly, takže
Ako vytvoriť geodetický dóm v štýle Temcor v programe Autodesk Inventor: 8 krokov
Ako vytvoriť geodetický dóm v štýle Temcor v programe Autodesk Inventor: Tento tutoriál vám ukáže, ako vytvoriť kupolu v štýle Temcor pomocou iba trochy matematiky. Väčšina informácií v tomto návode bola zozbieraná z reverzného inžinierstva spoločnosti TaffGoch z metóda delenia starej stanice južného pólu Amundsen-Scott,
Interaktívny konferenčný stolík LED pre domácich majstrov: 16 krokov (s obrázkami)
DIY interaktívny konferenčný stolík LED: V tomto návode vám ukážem, ako som krok za krokom vyrobil interaktívny konferenčný stolík LED. Rozhodol som sa vytvoriť jednoduchý, ale moderný dizajn a viac som sa zameral na jeho vlastnosti. Tento úžasný stôl vytvára v mojej obývačke úžasnú atmosféru.