Përmbajtje:
- Hapi 1: Lista e Furnizimit
- Hapi 2: Projektimi i Kupolës Gjeodezike
- Hapi 3: Ndërtimi i Kupolës me Shirita dhe Lidhës
- Hapi 4: Prerja dhe montimi i pllakave bazë me lazer
- Hapi 5: Vështrim elektronik
- Hapi 6: Montimi i LED -ve në Kupolë
- Hapi 7: Dizajni dhe Zbatimi i Malit të Sensorit
- Hapi 8: Dalja e sensorit të shumëfishimit
- Hapi 9: Përhapja e dritës me akrilik
- Hapi 10: Bërja e muzikës me kupolë duke përdorur MIDI
- Hapi 11: Fuqizimi i Kupolës
- Hapi 12: Baza e Kupolës Rrethore
- Hapi 13: Baza e Kupolës së Pentagonit
- Hapi 14: Programimi i Kupolës
- Hapi 15: Fotografitë e Kupolës së Përfunduar
Video: Kupola LED ndërvepruese gjeodezike: 15 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:23
Unë ndërtova një kube gjeodezike të përbërë nga 120 trekëndësha me një LED dhe sensor në çdo trekëndësh. Çdo LED mund të adresohet individualisht dhe secili sensor është akorduar posaçërisht për një trekëndësh të vetëm. Kupola është programuar me një Arduino për të ndezur dhe prodhuar një sinjal MIDI në varësi të cilit trekëndësh vendosni dorën.
Kam projektuar kupolën të jetë një ekran argëtues që i intereson njerëzit për dritën, elektronikën dhe zërin. Për shkak se kupola ndahet mirë në pesë pjesë, unë e projektova kupolën që të kishte pesë dalje të ndara MIDI që secila mund të ketë një tingull të ndryshëm. Kjo e bën kupolën një instrument gjigant muzikor, ideal për të luajtur muzikë me shumë njerëz njëkohësisht. Përveç luajtjes së muzikës, unë gjithashtu programova kupolën për shfaqje të lehta dhe interpretimin e një interpretimi të Simon dhe Pong. Struktura përfundimtare është pak më shumë se një metër në diametër dhe 70 cm e gjatë, dhe është ndërtuar kryesisht me dru, akrilik dhe pjesë të printuara 3D.
Ka disa udhëzime të shkëlqyera në tavolina dhe kube LED që më frymëzuan për të filluar këtë projekt. Sidoqoftë, doja të provoja rregullimin e LED -ve në një gjeometri të ndryshme. Nuk mund të mendoja për një strukturë më të mirë për projektin sesa një kube gjeodezike, e cila është gjithashtu e dokumentuar mirë në Instructables. Pra, ky projekt është një remix/përzierje e tabelave LED dhe kubeve gjeodezike. Më poshtë janë lidhjet me tabelën LED dhe udhëzimet e kupolës gjeodezike që kam kontrolluar në fillim të projektit.
Tavolina dhe kube LED:
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-…
Kube gjeodezike:
www.instructables.com/id/Folding-Geodesic-D…
www.instructables.com/id/Geodesic-dome-kit/
Hapi 1: Lista e Furnizimit
Materiale:
1. Druri për bazamentet e kupolës dhe baza e kupolës (sasia varet nga lloji dhe madhësia e kupolës)
2. Shirit LED i adresueshëm (16.4ft/5m Ngjyra e adresueshme LED Pixel Strip 160leds Ws2801 Dc5v)
3. Arduino Uno (Atmega328 - e montuar)
4. Bordi prototip (Penta Angel Prototype Double-Side PCB Universal (7x9cm))
5. Akrilik për shpërndarjen e LED -ve (Fletë akrilike e hedhur, e qartë, 12 "x 12" x 0.118 "Madhësia)
6. Furnizimi me energji elektrike (Aiposen 110/220V në DC12V 30A 360W Switch Power Supply Driver)
7. Konvertues Buck për Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)
8. Konvertuesi Buck për LED dhe sensorë (DROK Mini Electric Buck Voltage Converter 15A)
9. 120 sensorë IR (Modul i sensorit të shmangies së pengesave me rreze infra të kuqe)
10. Pesë multiplekse 16 kanalesh (Breakout Analog/Digital MUX - CD74HC4067)
11. Gjashtë multiplexerë me 8 kanale (Breakout Multiplexer - 8 Channel (74HC4051))
12. Pesë multiplekse 2 kanalësh (MAX4544CPA+)
13. Teli i mbështjelljes me tela (PCB Solder 0.25mm Kallaji i kromuar me kordon Dia Dia Teli i mbështjelljes me tela 305M 30AWG E kuqe)
14. Teli fiksues (Solid Core, 22 AWG)
15. Kokat e Pin (Gikfun 1 x 40 Pin 2.54mm Single Row Breakaway Mashkull Pin Header)
16. Pesë priza MIDI (MIDI Jack i përshtatshëm për bukë (DIN me 5 kunja))
17. Dhjetë rezistencë 220ohm për prizat MIDI
18. Ndarëset e ndara për montimin e elektronikës në kube (Stand-off Spacer Hex M3 Mashkull x M3 Femër)
19. Përshtatës të fijeve për të lidhur kapëset me dru (E-Z Lok Threaded Insert, Tunxh, Thikë Thread)
20. Super -ngjitës epoksi ose Gorilla
21. Shirit elektrik
22. Lidhës
Mjetet:
1. Stacioni i bashkimit
2. Stërvitja e energjisë
3. Sharrë rrethore
4. Sander orbital
5. Jig pa
6. Miter sharrë
7. Protraktor
8. Printer 3D
9. Prerës telash
10. Vegël për mbështjelljen e telit
11. Prerës lazer për prerjen e pllakave LED (opsionale)
12. Dyqani CNC për bazën e kupolës (opsionale)
Hapi 2: Projektimi i Kupolës Gjeodezike
Siç e përmenda në hyrje, ka disa burime në internet për ndërtimin e kupolës tuaj gjeodezike. Këto vende ofrojnë llogaritës të kupolës që përcaktojnë gjatësinë e secilës anë (d.m.th., shiritin) dhe numrin e lidhësve të kërkuar për çfarëdo lloj kubeje që dëshironi të ndërtoni. Kompleksiteti i një kubeje gjeodezike (domethënë dendësia e trekëndëshave) përcaktohet nga klasa e saj (1V, 2V, 3V, e kështu me radhë), me një kompleksitet më të lartë duke u bërë një përafrim më i mirë i një sipërfaqe sferike të përsosur. Për të ndërtuar kupolën tuaj, së pari duhet të zgjidhni një diametër dhe klasë të kupolës.
Kam përdorur një sit të quajtur Domerama për të më ndihmuar në hartimin e një kube 4V që ishte e cunguar në 5/12 të një sfere me rreze 40cm. Për këtë lloj kubeje, ekzistojnë gjashtë shirita me gjatësi të ndryshme:
30 X "A" - 8.9cm
30 X "B" - 10.4cm
50 X "C" - 12.4cm
40 X "D" - 12.5cm
20 X "E" - 13.0cm
20 X "F" - 13.2cm
Kjo është një total prej 190 shiritash që shtojnë deri në 2223cm (73 ft) material. Kam përdorur lëndë druri pishe 1x3 (3/4 "× 2-1/2") për shiritat në këtë kube. Për të lidhur shiritat, unë projektova dhe lidhësa të printuar 3D duke përdorur Autocad. Skedarët STL janë në dispozicion për tu shkarkuar në fund të këtij hapi. Numri i lidhësve për një kube 4V 5/12 është:
20 X 4-lidhës
6 X 5-lidhës
45 X 6-lidhës
Në hapin tjetër, unë përshkruaj se si është ndërtuar kjo kube me mbështetëset prej druri dhe lidhësit e printuar 3D që kam projektuar.
Hapi 3: Ndërtimi i Kupolës me Shirita dhe Lidhës
Duke përdorur llogaritjet nga Domerama për një kupolë 4V 5/12, unë i preva bazat duke përdorur një sharrë rrethore. 190 shiritat u etiketuan dhe u vendosën në një kuti pas prerjes. 71 lidhësit (20 katër lidhës, 6 pesë lidhës dhe 45 gjashtë lidhës) u printuan 3D duke përdorur një Makerbot. Shiritat e drurit u futën në lidhëset sipas diagramit të krijuar nga Domerama. Fillova ndërtimin nga lart dhe u zhvendosa radialisht jashtë.
Pasi u lidhën të gjitha shiritat, hoqa një shirit në të njëjtën kohë dhe shtova epoksi në dru dhe lidhësin. Lidhësit janë krijuar për të pasur fleksibilitet në mënyrën se si i lidhin strukturat, kështu që ishte e rëndësishme të kontrolloni simetrinë e kupolës para se të shtoni ndonjë epoksi.
Hapi 4: Prerja dhe montimi i pllakave bazë me lazer
Tani që skeleti i kupolës është ndërtuar, është koha për të prerë pllakat trekëndore. Këto pllaka bazë janë bashkangjitur në pjesën e poshtme të shiritave dhe përdoren për të montuar LED në kube. Fillimisht i kam prerë pllakat e kompensatës me trashësi 5mm (3/16”) duke matur pesë trekëndëshat e ndryshëm që janë në kube: AAB (30 trekëndësha), BCC (25 trekëndësha), DDE (20 trekëndësha), CDF (40 trekëndësha), dhe EEE (5 trekëndësha). Dimensionet e secilës anë dhe forma e trekëndëshave u përcaktuan duke përdorur një llogaritës kube (Domerama) dhe disa gjeometri. Pas prerjes së pllakave të provës me një bashkim pjesësh figure, unë vizatova modelin e trekëndëshit duke përdorur Coral Draw, dhe prera bazat e mbetura me një prestar lazer (shumë më shpejt!). Nëse nuk keni qasje në një prestar lazer, mund t'i vizatoni pllakat bazë në kompensatë duke përdorur një sundimtar dhe një vizor dhe t'i prerë të gjitha me një bashkim pjesësh figure. Pasi të jenë prerë pllakat bazë, kupola përmbyset dhe pllakat ngjiten në kube duke përdorur zam druri.
Hapi 5: Vështrim elektronik
E treguar në figurën e mësipërme është një skemë e elektronikës për kupolën. Një Arduino Uno përdoret për të shkruar dhe lexuar sinjale për kupolën. Për të ndriçuar kupolën, një shirit LED RGB kalon mbi kube në mënyrë që një LED të pozicionohet në secilin nga 120 trekëndëshat. Për informacion se si funksionon një shirit LED, shikoni këtë udhëzues. Çdo LED mund të adresohet veçmas duke përdorur Arduino, i cili prodhon të dhëna serike dhe sinjal të orës për shiritin (shiko pinin A0 dhe A1 në skemë). Vetëm me shiritin dhe këto dy sinjale, mund të keni një kube të mrekullueshme ndriçuese. Ka mënyra të tjera për të shkruar për sinjale për shumë LED nga një Arduino, të tilla si Charlieplexing dhe regjistrat e ndërrimit.
Për të bashkëvepruar me kupolën, vendosa një sensor IR mbi secilën LED. Këta sensorë përdoren për të zbuluar kur dora e dikujt është afër një trekëndëshi në kube. Meqenëse çdo trekëndësh në kube ka sensorin e tij IR dhe ka 120 trekëndësha, do të duhet të bëni një lloj multipleximi para Arduino. Vendosa të përdor pesë multiplekse 24 kanalësh (MUX) për 120 sensorë në kube. Këtu është një udhëzues mbi multipleximin, nëse nuk jeni të njohur. Një MUX 24 kanalësh kërkon pesë sinjale kontrolli. Zgjodha kunjat 8-12 në Arduino, kështu që mund të bëja manipulimin e portit (shih Hapin 10 për më shumë informacion). Dalja e bordeve MUX lexohet duke përdorur kunjat 3-7.
Përfshi gjithashtu pesë dalje MIDI në kube në mënyrë që të mund të prodhojë tingull (Hapi 11). Me fjalë të tjera, pesë persona mund të luajnë kupolën njëkohësisht me secilën dalje që luan një tingull të ndryshëm. Ekziston vetëm një kunj TX në Arduino, kështu që pesë sinjale MIDI kërkojnë demultipleksim. Për shkak se dalja MIDI prodhohet në një kohë të ndryshme nga leximi i sensorit IR, kam përdorur të njëjtat sinjale kontrolli.
Pasi të gjitha hyrjet e sensorit IR të lexohen në Arduino, kupola mund të ndizet dhe të luajë tinguj, sido që të programoni Arduino. Unë kam disa shembuj në Hapin 14 të këtij udhëzimi.
Hapi 6: Montimi i LED -ve në Kupolë
Meqenëse kupola është kaq e madhe, shiriti LED duhet të pritet për të vendosur një LED në secilin trekëndësh. Çdo LED është ngjitur në trekëndësh duke përdorur super zam. Në të dy anët e LED, një vrimë është shpuar përmes pllakës bazë për të kaluar kabllot përmes kupolës. Pastaj bashkova tela lidhës në çdo kontakt në LED (5V, tokë, orë, sinjal) dhe i furnizova telat përmes pllakës bazë. Këto tela janë prerë në mënyrë që të jenë mjaft të gjata për të arritur LED -in e ardhshëm në kube. Telat tërhiqen në LED -in tjetër dhe procesi vazhdon. Unë i lidha LED -të në një konfigurim që do të minimizonte sasinë e telit të kërkuar, ndërsa ende kishte kuptim për adresimin e LED -ve duke përdorur Arduino më vonë. Një kube më e vogël do të eliminonte nevojën për prerjen e shiritit dhe do të kursente shumë kohë për saldim. Një opsion tjetër është përdorimi i LED -ve të veçanta RGB me regjistrat e ndërrimit.
Komunikimi serik me shiritin arrihet duke përdorur dy kunja (një kunj të dhënash dhe orësh) nga Arduino. Me fjalë të tjera, të dhënat për ndriçimin e kupolës kalohen nga një LED në tjetrën pasi lë pinin e të dhënave. Këtu është shembulli i kodit të modifikuar nga ky forum Arduino:
// Bëni që e gjithë kupola të rritet dhe zvogëlohet intensiteti i një ngjyre të vetme
#përcaktoni numLeds 120 // Numri i LEDs // PINS dalëse // int clockPin = A1; // përcakto pinin e orës int dataPin = A0; // përcaktoni pinin e të dhënave // VARIABLES // int të kuqe [numLeds]; // Initialize array for LED strip int green [numLeds]; // Initialize array for LED strip int blue [numLeds]; // Filloni grupin për shiritin LED // KONSTANT shkallë të dyfishtëA = {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}; // fraksioni i intensitetit të LED -ve void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (e kuqe, 0, numLeds); memset (jeshile, 0, numLeds); memset (blu, 0, numLeds); } void Updatestring (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) {për (int i = 0; i <numLeds; i ++) {shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut (dataPin, clockPin, MSBFIRST, greenA ); shiftOut (dataPin, clockPin, MSBFIRST, blueA ); }} lak void () {për (int p = 0; p <20; p ++) // lak për rritjen e intensitetit të dritës së kupolës {shkallë e dyfishtë = shkallëA [p]; vonesa (20); për (int i = 0; i <numLeds; i ++) // kaloni nëpër të gjitha LEDS {shkalla e kuqe = 255 *; e gjelbër = 80 * shkallë; blu = 0; } string Updatestring (e kuqe, jeshile, blu); // përditëso shiritin led}}
Hapi 7: Dizajni dhe Zbatimi i Malit të Sensorit
Vendosa të përdor sensorë IR për kupolën. Këta sensorë kanë një LED IR dhe marrës. Kur një objekt del përpara sensorit, një pjesë e rrezatimit IR nga LED LED reflektohet drejt marrësit. Unë e fillova këtë projekt duke bërë sensorët e mi IR, të cilët bazoheshin në udhëzimet e Richardouvina. E gjithë bashkimi mori shumë kohë, kështu që bleva 120 sensorë IR nga eBay që secili prodhonte një dalje dixhitale. Pragu i sensorit është vendosur me një potenciometër në tabelë në mënyrë që dalja të jetë e lartë vetëm kur dora është pranë atij trekëndëshi.
Çdo trekëndësh përbëhet nga një pllakë LED kompensatë, një fletë akrilike difuzive e montuar rreth 2.5 cm mbi pllakën LED, dhe një sensor IR. Sensori për çdo trekëndësh ishte montuar në një fletë kompensatë të hollë të formuar si pesëkëndësh ose gjashtëkëndësh në varësi të pozicionit në kube (shiko figurën më lart). Unë shpova vrima në bazën e sensorit IR për të montuar sensorët IR, dhe pastaj lidha tokën dhe kunjat 5V me tela të mbështjellë me tela dhe një mjet për mbështjelljen e telave (tela të kuq dhe të zi). Pas lidhjes së tokës dhe 5V, unë mbështolla tela të gjatë të mbështjellë me tela në çdo dalje (të verdhë), tokë dhe 5V për të kaluar nëpër kube.
Mbërthyesit e sensorit IR gjashtëkëndësh ose pesëkëndësh u epoksuan në kube, pikërisht mbi lidhësit e printuar 3D, në mënyrë që tela të kalonte nëpër kube. Duke pasur sensorët mbi lidhësit, unë gjithashtu isha në gjendje të hyja dhe të rregulloja potenciometrat në sensorët IR që kontrollojnë ndjeshmërinë e sensorëve. Në hapin tjetër, unë do të përshkruaj sesi daljet e sensorëve IR janë të lidhur me multiplexerët dhe lexohen në Arduino.
Hapi 8: Dalja e sensorit të shumëfishimit
Për shkak se Arduino Uno ka vetëm 14 kunja hyrëse/dalëse dixhitale dhe 6 kunja hyrëse analoge dhe ka 120 sinjale të sensorit që duhen lexuar, kupola kërkon që multiplexerët të lexojnë në të gjitha sinjalet. Zgjodha të ndërtoja pesë multiplexerë 24-kanalësh, secili prej të cilëve lexonte 24 nga sensorët IR (shiko figurën e pasqyrës elektronike). MUX me 24 kanale përbëhet nga një tabelë dalëse MUX me 8 kanale, bordi i prishjes MUX me 16 kanale dhe MUX me 2 kanale. Kokat e kunjave u ngjitën në secilën dërrasë dalëse në mënyrë që të mund të lidheshin me bordin prototip. Duke përdorur një mjet për mbështjelljen e telit, unë lidha tokëzimin, 5V dhe kunjat e sinjalit të kontrollit të dërrasave të prishjes MUX.
Një MUX 24-kanalësh kërkon pesë sinjale kontrolli, të cilat zgjodha t'i lidh me pin 8-12 në Arduino. Të pesë MUX 24-kanalësh marrin të njëjtat sinjale kontrolli nga Arduino kështu që unë lidha tela nga kunjat Arduino në MUX 24-kanalësh. Daljet dixhitale të sensorëve IR janë të lidhur me kunjat hyrëse të MUX 24-kanalësh në mënyrë që ato të mund të lexohen në mënyrë serike në Arduino. Meqenëse ka pesë kunja të veçantë për lexim në të gjitha 120 daljet e sensorit, është e dobishme të imagjinohet kupola të ndahet në pesë seksione të veçanta që përbëhen nga 24 trekëndësha (kontrolloni ngjyrat e kupolës në figurë).
Duke përdorur manipulimin e portit Arduino, mund të rrisni shpejt sinjalet e kontrollit të dërguara nga kunjat 8-12 te multiplexerët. Unë kam bashkangjitur disa shembuj të kodit për funksionimin e multiplekseve këtu:
int numChannel = 24;
// daljet // int s0 = 8; // Kontrolli MUX 0 - PORTbD int s1 = 9; // Kontrolli MUX 1 - PORTb int s2 = 10; // MUX control 2 - PORTb int s3 = 11; // Kontrolli MUX 3 - PORTb int s4 = 12; // MUX control 4 - PORTb // INPUTS // int m0 = 3; // hyrje MUX 0 int m1 = 4; // MUX hyrje 1 int m2 = 5; // hyrje MUX 2 int m3 = 6; // hyrje MUX 3 int m4 = 7; // MUX input 4 // VARIABLES // int arr0r; // leximi dixhital nga MUX0 int arr1r; // leximi dixhital nga MUX1 int arr2r; // leximi dixhital nga MUX2 int arr3r; // leximi dixhital nga MUX3 int arr4r; // leximi dixhital nga MUX4 void setup () {// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: DDRB = B11111111; // vendos kunjat Arduino 8 deri në 13 si hyrje pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, HYRJE); pinMode (m1, HYRJE); pinMode (m2, HYRJE); pinMode (m3, HYRJE); pinMode (m4, INPUT); } void loop () {// vendosni kodin tuaj kryesor këtu, për ta ekzekutuar në mënyrë të përsëritur: PORTB = B00000000; // SIN kunjat e kontrollit për mux ulët për (int i = 0; i <numChannel; i ++) {// Dalja dixhitale e leximit të MUX0 - MUX4 për sensorin IR i // Nëse sensori IR është LO, trekëndëshi preket nga luajtësi Me arr0r = digitalRead (m0); // leximi nga Mux 0, sensori IR i arr1r = digitalRead (m1); // leximi nga Mux 1, sensori IR i arr2r = digitalRead (m2); // leximi nga Mux 2, sensor IR i arr3r = digitalRead (m3); // leximi nga Mux 3, sensori IR i arr4r = digitalRead (m4); // leximi nga Mux 4, sensori IR i // BONI DIK ME MUX HYRJE OSE RUAJTJA N AN ARRAY KERTU // PORTB ++; // sinjale të kontrollit të rritjes për MUX}}
Hapi 9: Përhapja e dritës me akrilik
Për të shpërndarë dritën nga LED -të, unë lëmova akrilik transparent me një rërës orbitale rrethore. Sander ishte lëvizur në të dy anët e akrilik në një lëvizje figura-8. Kam gjetur se kjo metodë është shumë më e mirë sesa bojë llak "qelqi i mbuluar me brymë".
Pas lëmimit dhe pastrimit të akrilikut, unë përdor një prestar lazer për të prerë trekëndëshat që të përshtaten mbi LED. Cutshtë e mundur të pritet akriliku duke përdorur një mjet prerës akrilik ose edhe një bashkim pjesësh figure nëse akriliku nuk plas. Akriliku u mbajt mbi LED nga drejtkëndëshat e kompensatës me trashësi 5 mm të prera gjithashtu me një prestar lazer. Këto dërrasa të vogla u ngjitën në bazamentet në kube, dhe trekëndëshat akrilikë u epoksuan mbi dërrasat.
Hapi 10: Bërja e muzikës me kupolë duke përdorur MIDI
Doja që kupola të ishte e aftë të prodhonte zë, kështu që ngrita pesë kanale MIDI, një për secilën nëngrup të kupolës. Së pari ju duhet të blini pesë priza MIDI dhe t'i lidhni ato siç tregohet në skemë (shikoni këtë udhëzues nga mbështetja Arduino për më shumë informacion).
Për shkak se ekziston vetëm një kunj serial transmetues në Arduino Uno (kunja 2 e etiketuar si kunja TX), ju duhet të de-multiplexoni sinjalet që dërgohen në pesë prizat MIDI. Kam përdorur të njëjtat sinjale kontrolli (pin 8-12), sepse sinjalet MIDI dërgohen në një kohë të ndryshme sesa kur sensorët IR po lexohen në Arduino. Këto sinjale kontrolli i dërgohen një demultiplekseri me 8 kanale në mënyrë që të kontrolloni se cili prizë MIDI merr sinjalin MIDI të krijuar nga Arduino. Sinjalet MIDI u krijuan nga Arduino me bibliotekën e mrekullueshme të sinjalit MIDI të krijuar nga Francois Best. Këtu është një shembull i kodit për prodhimin e daljeve të shumta MIDI në priza të ndryshme MIDI me një Arduino Uno:
#include // përfshini bibliotekën MIDI
#define numChannel 24 // Numri i IR për Trekëndësh #përcaktoni numratSeksionet 5 // numri i seksioneve në kube, numri i 24channel MUX, numri i prizave MIDI // daljet // int s0 = 8; // Kontrolli MUX 0 - PORTbD int s1 = 9; // Kontrolli MUX 1 - PORTb int s2 = 10; // MUX control 2 - PORTb int s3 = 11; // Kontrolli MUX 3 - PORTb int s4 = 12; // MUX control 4 - PORTb // INPUTS // int m0 = 3; // hyrje MUX 0 int m1 = 4; // MUX hyrje 1 int m2 = 5; // hyrje MUX 2 int m3 = 6; // hyrje MUX 3 int m4 = 7; // MUX input 4 // VARIABLES // int arr0r; // leximi dixhital nga MUX0 int arr1r; // leximi dixhital nga MUX1 int arr2r; // leximi dixhital nga MUX2 int arr3r; // leximi dixhital nga MUX3 int arr4r; // leximi dixhital nga MUX4 int midArr [numSections]; // Ruani nëse një shënim është shtypur ose jo nga një prej lojtarëve int note2play [numSections]; // Ruani shënimin që do të luhet nëse prekni sensorin në shënimet [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; // pauzë mes sinjaleve midi MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: DDRB = B11111111; // vendos kunjat Arduino 8 deri në 13 si hyrje MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, HYRJE); pinMode (m1, HYRJE); pinMode (m2, HYRJE); pinMode (m3, HYRJE); pinMode (m4, INPUT); } void loop () {// vendosni kodin tuaj kryesor këtu, për ta ekzekutuar në mënyrë të përsëritur: PORTB = B00000000; // SIN kunjat e kontrollit për mux ulët për (int i = 0; i <numChannel; i ++) {// Dalja dixhitale e leximit të MUX0 - MUX4 për sensorin IR i // Nëse sensori IR është LO, trekëndëshi preket nga luajtësi Me arr0r = digitalRead (m0); // leximi nga Mux 0, sensori IR i arr1r = digitalRead (m1); // leximi nga Mux 1, sensori IR i arr2r = digitalRead (m2); // leximi nga Mux 2, sensor IR i arr3r = digitalRead (m3); // leximi nga Mux 3, sensori IR i arr4r = digitalRead (m4); // leximi nga Mux 4, sensori IR i if (arr0r == 0) // Sensori në pjesën 0 ishte bllokuar {midArr [0] = 1; // Lojtari 0 ka goditur një shënim, vendosni HI në mënyrë që të ketë dalje MIDI për lojtarin 0 note2play [0] = shënimet ; // Shënim për të luajtur për Lojtarin 0} nëse (arr1r == 0) // Sensori në pjesën 1 ishte bllokuar {midArr [1] = 1; // Lojtari 0 ka goditur një shënim, vendosni HI në mënyrë që të ketë dalje MIDI për lojtarin 0 note2play [1] = shënimet ; // Shënim për të luajtur për Lojtarin 0} nëse (arr2r == 0) // Sensori në pjesën 2 ishte bllokuar {midArr [2] = 1; // Lojtari 0 ka goditur një shënim, vendosni HI në mënyrë që të ketë dalje MIDI për lojtarin 0 note2play [2] = shënimet ; // Shënim për të luajtur për Lojtarin 0} nëse (arr3r == 0) // Sensori në pjesën 3 ishte bllokuar {midArr [3] = 1; // Lojtari 0 ka goditur një shënim, vendosni HI në mënyrë që të ketë dalje MIDI për lojtarin 0 note2play [3] = shënimet ; // Shënim për të luajtur për Lojtarin 0} nëse (arr4r == 0) // Sensori në pjesën 4 ishte bllokuar {midArr [4] = 1; // Lojtari 0 ka goditur një shënim, vendosni HI në mënyrë që të ketë dalje MIDI për lojtarin 0 note2play [4] = shënimet ; // Shënim për të luajtur për Lojtarin 0} PORTB ++; // rritja e sinjaleve të kontrollit për MUX} updateMIDI (); } void updateMIDI () {PORTB = B00000000; // SET kunjat e kontrollit për mux low if (midArr [0] == 1) // Player 0 MIDI output {MIDI.sendNoteOn (note2play [0], 127, 1); vonesa Mikrosekonda (pauzëMidi); MIDI.sendNoteOff (note2play [0], 127, 1); vonesa Mikrosekonda (pauzëMidi); } PORTB ++; // rritet MUX nëse (midArr [1] == 1) // Prodhuesi 1 dalje MIDI {MIDI.sendNoteOn (note2play [1], 127, 1); vonesa Mikrosekonda (pauzëMidi); MIDI.sendNoteOff (note2play [1], 127, 1); vonesa Mikrosekonda (pauzëMidi); } PORTB ++; // rritet MUX nëse (midArr [2] == 1) // Player 2 MIDI output {MIDI.sendNoteOn (note2play [2], 127, 1); vonesa Mikrosekonda (pauzëMidi); MIDI.sendNoteOff (note2play [2], 127, 1); vonesa Mikrosekonda (pauzëMidi); } PORTB ++; // rritet MUX nëse (midArr [3] == 1) // Player 3 MIDI output {MIDI.sendNoteOn (note2play [3], 127, 1); vonesa Mikrosekonda (pauzëMidi); MIDI.sendNoteOff (note2play [3], 127, 1); vonesa Mikrosekonda (pauzëMidi); } PORTB ++; // rritet MUX nëse (midArr [4] == 1) // Lloji 4 dalje MIDI {MIDI.sendNoteOn (note2play [4], 127, 1); vonesa Mikrosekonda (pauzëMidi); MIDI.sendNoteOff (note2play [4], 127, 1); vonesa Mikrosekonda (pauzëMidi); } mesArr [0] = 0; mesArr [1] = 0; mesArr [2] = 0; mesArr [3] = 0; mesArr [4] = 0; }
Hapi 11: Fuqizimi i Kupolës
Ekzistojnë disa përbërës që duhet të fuqizohen në kube. Prandaj, do t'ju duhet të llogaritni amperët e nxjerrë nga secili komponent për të përcaktuar furnizimin me energji që ju nevojitet për të blerë.
Rripi LED: Kam përdorur afërsisht 3.75 metra të shiritit LED Ws2801, i cili konsumon 6.4W/metër. Kjo korrespondon me 24W (3.75*6.4). Për ta kthyer këtë në amper, përdorni Fuqinë = aktuale*volt (P = iV), ku V është tensioni i shiritit LED, në këtë rast 5V. Prandaj, rryma e nxjerrë nga LED është 4.8A (24W/5V = 4.8A).
Sensorët IR: Çdo sensor IR tërheq rreth 25mA, gjithsej 3A për 120 sensorë.
Arduino: 100mA, 9V
Multiplekserët: Ka pesë multiplexerë 24 kanalësh që secili përbëhet nga një multiplexer 16 kanalësh dhe multiplexer 8 kanalësh. MUX me 8 kanale dhe 16 kanale secila konsumon rreth 100mA. Prandaj, konsumi i përgjithshëm i energjisë i të gjithë MUX është 1A.
Duke shtuar këto përbërës, konsumi i përgjithshëm i energjisë pritet të jetë rreth 9A. Shiriti LED, sensorët IR dhe multiplexerët kanë tension hyrës në 5V, dhe Arduino ka tension hyrës 9V. Prandaj, unë zgjodha një furnizim me energji 12V 15A, një konvertues 15 dollarësh për shndërrimin e 12V në 5V dhe një konvertues 3A për konvertimin e 12V në 9V për Arduino.
Hapi 12: Baza e Kupolës Rrethore
Kupola mbështetet në një copë druri rrethore me një pentagon të prerë nga mesi për qasje të lehtë në pajisje elektronike. Për të krijuar këtë bazë rrethore, një fletë kompensatë 4x6’u pre duke përdorur një ruter CNC prej druri. Një bashkim pjesësh figure gjithashtu mund të përdoret për këtë hap. Pasi baza ishte prerë, kupola ishte ngjitur në të duke përdorur blloqe të vogla prej druri 2x3”.
Në krye të bazës, bashkova furnizimin me energji elektrike me epoksi dhe konvertuesit MUX's dhe Buck me ndarës të ndezur të PCB. Ndarësit u ngjitën në kompensatë duke përdorur përshtatës të fijeve E-Z Lok.
Hapi 13: Baza e Kupolës së Pentagonit
Përveç bazës rrethore, unë gjithashtu ndërtova një bazë pesëkëndore për kupolën me një dritare xhami në pjesën e poshtme. Kjo bazë dhe dritare me pamje janë bërë gjithashtu nga kompensatë e prerë me një ruter CNC prej druri. Anët e pentagonit janë bërë nga dërrasa druri me njërën anë që ka një vrimë në të që lidhësit të kalojnë. Duke përdorur kllapa metalike dhe nyje blloku 2x3, dërrasat prej druri janë ngjitur në bazën e pesëkëndëshit. Një çelës energjie, lidhës MIDI dhe lidhës USB janë bashkangjitur në një panel të përparmë që kam krijuar duke përdorur një prestar lazer. E gjithë baza e pentagonit është e dehur në bazën rrethore të përshkruar në Hapin 12.
Unë instalova një dritare në pjesën e poshtme të kupolës në mënyrë që çdokush të shikojë lart në kube për të parë pajisjet elektronike. Xhami i shikuar është bërë nga prerje akrilike me një prestar lazer dhe është epoxied në një pjesë rrethore të kompensatës.
Hapi 14: Programimi i Kupolës
Ka mundësi të pafundme për programimin e kupolës. Çdo cikël i kodit merr sinjale nga sensorët IR, të cilat tregojnë trekëndëshat që janë prekur nga dikush. Me këtë informacion ju mund të ngjyrosni kupolën me çdo ngjyrë RGB dhe/ose të prodhoni një sinjal MIDI. Këtu janë disa shembuj të programeve që kam shkruar për kupolën:
Ngjyrosni kupolën: Çdo trekëndësh kalon nëpër katër ngjyra ndërsa preket. Ndërsa ngjyrat ndryshojnë, luhet një arpezhë. Me këtë program, ju mund të ngjyrosni kupolën në mijëra mënyra të ndryshme.
Muzikë kube: Kupola është e ngjyrosur me pesë ngjyra, secila pjesë i përgjigjet një dalje të ndryshme MIDI. Në program, ju mund të zgjidhni cilat shënime luan secili trekëndësh. Zgjodha të filloja në mesin C në majë të kupolës dhe të rrisja lartësinë ndërsa trekëndëshat lëviznin më pranë bazës. Për shkak se ka pesë rezultate, ky program është ideal për të pasur njerëz të shumtë që luajnë kupon njëkohësisht. Duke përdorur një instrument MIDI ose softuer MIDI, këto sinjale MIDI mund të bëhen të tingëllojnë si çdo instrument.
Simon: Kam shkruar një interpretim të Simon, lojë klasike e ndriçimit të kujtesës. Një sekuencë e rastësishme e dritave ndriçohet një nga një mbi të gjithë kupolën. Në çdo kthesë, lojtari duhet të kopjojë sekuencën. Nëse luajtësi përputhet saktë me sekuencën, një dritë shtesë i shtohet sekuencës. Rezultati i lartë ruhet në njërën nga pjesët e kupolës. Kjo lojë është gjithashtu shumë argëtuese për të luajtur me shumë njerëz.
Pong: Pse të mos luani pong në një kube? Një top përhapet përgjatë kupolës derisa godet vozitjen. Kur të ndodhë, prodhohet një sinjal MIDI, që tregon se vozitja goditi topin. Lojtari tjetër duhet të drejtojë vozitjen përgjatë pjesës së poshtme të kupolës në mënyrë që të godasë topin mbrapa.
Hapi 15: Fotografitë e Kupolës së Përfunduar
Çmimi i Madh në Konkursin Arduino 2016
Çmimi i dytë në Konkursin Remix 2016
Çmimi i dytë në Konkursin Make it Glow 2016
Recommended:
Makinë lodër kapsule ndërvepruese: 4 hapa
Makinë lodër kapsulash ndërvepruese: Për një projekt në shkollë, vendosa të bëj një makinë lodër kapsule me një lojë xhirimi duke përdorur një ardiuno si sistem operativ. Çfarë do t'ju duhet: wo dy copa të mëdha kartoni, disa izolime të shiritit, disa lodra me kapsula Istance rezistenca 220 ohm x3 / 1k ohm x2 /
Bazë e shisheve ndërvepruese me muzikë me drita të rregullueshme: 14 hapa
Muzikë që bashkëvepron me mbajtësen e shisheve me drita të rregullueshme: Disa kohë më parë, një miku im urdhëroi një unazë LED prej 16 bitësh që të ngatërrohej me të, dhe ndërkohë që e bëri këtë, ai mori idenë për të vendosur një shishe në majë të saj. Kur e pashë, u magjepsa nga pamja e dritës që ndriçon balonë dhe u kujtova awes
Si të çmontoni një kompjuter me hapa të thjeshtë dhe fotografi: 13 hapa (me fotografi)
Si të çmontoni një kompjuter me hapa dhe fotografi të lehta: Ky është një udhëzim se si të çmontoni një kompjuter. Shumica e përbërësve bazë janë modularë dhe hiqen lehtë. Sidoqoftë, është e rëndësishme që të jeni të organizuar në lidhje me të. Kjo do t'ju ndihmojë të mos humbni pjesë, dhe gjithashtu në bërjen e ri -montimit
Si të krijoni një kube gjeodezike të stilit Temcor në Autodesk Inventor: 8 hapa
Si të krijoni një kube gjeodezike të stilit Temcor në Autodesk Inventor: Ky tutorial do t'ju tregojë se si të krijoni një kube të stilit Temcor duke përdorur vetëm pak matematikë. Pjesa më e madhe e informacionit në këtë tutorial u grumbullua nga inxhinieria e kundërt e TaffGoch e metoda e nënndarjes së stacionit të vjetër Amundsen-Scott të Polit të Jugut, s
Ndërfaqja ndërvepruese Punchout u përmirësua: 4 hapa (me fotografi)
Ndërfaqja ndërvepruese Punchout u përmirësua: Së pari, dua të them se kam marrë frymëzimin origjinal për ta bërë këtë nga kjo e udhëzueshme: https: //www.instructables.com/id/Interfaces_for_Games_PunchOut/ Mendova se kjo ishte një ide e shkëlqyeshme, por ishte jo me të vërtetë përvojën e lojës që kam qenë