Съдържание:

Интерактивен геодезически LED купол: 15 стъпки (със снимки)
Интерактивен геодезически LED купол: 15 стъпки (със снимки)

Видео: Интерактивен геодезически LED купол: 15 стъпки (със снимки)

Видео: Интерактивен геодезически LED купол: 15 стъпки (със снимки)
Видео: Аудиокнига «Рождественская история» Чарльза Диккенса 2024, Ноември
Anonim
Image
Image
Интерактивен геодезически LED купол
Интерактивен геодезически LED купол
Интерактивен геодезически LED купол
Интерактивен геодезически LED купол
Интерактивен геодезически LED купол
Интерактивен геодезически LED купол

Изградих геодезически купол, състоящ се от 120 триъгълника с LED и сензор във всеки триъгълник. Всеки светодиод може да бъде адресиран индивидуално и всеки сензор е настроен специално за един триъгълник. Куполът е програмиран с Arduino да свети и да произвежда MIDI сигнал в зависимост от това кой триъгълник поставяте ръката си.

Проектирах купола да бъде забавен дисплей, който кара хората да се интересуват от светлина, електроника и звук. Тъй като куполът се разделя добре на пет части, аз проектирах купола да има пет отделни MIDI изхода, всеки от които може да има различен звук. Това прави купола гигантски музикален инструмент, идеален за възпроизвеждане на музика с множество хора едновременно. В допълнение към пускането на музика, аз програмирах и купола за светлинни шоута и свирене на изпълнение на Саймън и Понг. Крайната структура е с диаметър малко повече от метър и височина 70 см и е изградена предимно от дърво, акрил и 3D отпечатани части.

Има няколко страхотни инструктажа на LED маси и кубчета, които ме вдъхновиха да започна този проект. Исках обаче да опитам да подредя светодиодите в различна геометрия. Не можех да се сетя за по -добра структура за проекта от геодезически купол, който също е добре документиран в Instructables. Така че този проект е ремикс/смесване на LED таблици и геодезически куполи. По -долу има връзки към LED таблицата и геодезическия купол Instructables, които проверих в началото на проекта.

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

Геодезичен купол:

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

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

Стъпка 1: Списък на доставките

Списък на доставките
Списък на доставките
Списък на доставките
Списък на доставките
Списък на доставките
Списък на доставките

Материали:

1. Дърво за подпори на купола и основата на купола (количеството зависи от вида и размера на купола)

2. Адресируема LED лента (16.4ft/5m Адресируема цветна LED пикселна лента 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - сглобен)

4. Прототипна платка (Penta Angel Double-Side Prototype PCB Universal (7x9cm))

5. Акрил за разсейващи светодиоди (акрилен лист, прозрачен, 12 "x 12" x 0,118 "размер)

6. Захранване (Aiposen 110/220V до DC12V 30A 360W превключвател за захранване)

7. Buck конвертор за Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)

8. Buck конвертор за светодиоди и сензори (DROK Mini Electric Buck Voltage Converter 15A)

9. 120 IR сензора (модул на сензора за избягване на инфрачервени препятствия)

10. Пет 16 -канални мултиплексора (аналогов/цифров MUX Breakout - CD74HC4067)

11. Шест 8 -канални мултиплексора (Мултиплексен пробив - 8 -канален (74HC4051))

12. Пет двуканални мултиплексора (MAX4544CPA+)

13. Тел за увиване на тел (PCD спойка 0,25 мм меден кабел, покрит с ламарина, диаметър на тел 305M 30AWG червен)

14. Свързващ проводник (плътно ядро, 22 AWG)

15. Заглавки за щифтове (Gikfun 1 x 40 Pin 2,54 мм Едноредов разклонител за мъжки щифт)

16. Пет MIDI жака (MIDI жак, подходящ за създаване на платка (5-пинов DIN))

17. Десет 220ohm резистора за MIDI жакове

18. Стойни дистанционни елементи за монтиране на електроника към купол (Стоящ разделител Hex M3 мъжки x M3 женски)

19. Адаптери за резба за свързване на стойки към дърво (E-Z Lok резбована вложка, месинг, резба за нож)

20. Епоксидно или горилно суперлепило

21. Електрическа лента

22. Припой

Инструменти:

1. Поялна станция

2. Електрическа бормашина

3. Циркуляр

4. Орбитална шлифовъчна машина

5. Джиг трион

6. Митра трион

7. Угломер

8. 3D принтер

9. Резачки за тел

10. Инструмент за навиване на тел

11. Лазерен нож за рязане на LED плочи (по избор)

12. CNC магазин за основа на купол (по избор)

Стъпка 2: Проектиране на геодезическия купол

Проектиране на геодезическия купол
Проектиране на геодезическия купол
Проектиране на геодезическия купол
Проектиране на геодезическия купол

Както споменах в интрото, има няколко онлайн източника за изграждане на собствен геодезически купол. Тези сайтове предлагат куполни калкулатори, които определят дължината на всяка страна (т.е. подпората) и броя на съединителите, необходими за всеки тип купол, който искате да изградите. Сложността на геодезическия купол (т.е. плътността на триъгълниците) се определя от неговия клас (1V, 2V, 3V и т.н.), като по -високата сложност се превръща в по -добро приближение на перфектна сферична повърхност. За да изградите свой собствен купол, първо трябва да изберете диаметър и клас на купол.

Използвах сайт, наречен Domerama, за да ми помогне да проектирам 4V купол, който беше отрязан до 5/12 от сфера с радиус 40 cm. За този тип купол има шест подпори с различна дължина:

30 X „A“- 8,9 см

30 X „B“- 10,4 см

50 X „C“- 12,4 см

40 X “D” - 12,5 см

20 X „E“- 13,0 см

20 X „F“- 13,2 см

Това са общо 190 подпори, които добавят до 2223 см (73 фута) материал. Използвах 1x3 (3/4 "× 2-1/2") боров дървен материал за подпорите в този купол. За да свържа подпорите, проектирах и 3D отпечатани съединители, използвайки Autocad. STL файловете са достъпни за изтегляне в края на тази стъпка. Броят на съединителите за 4V 5/12 купол е:

20 X 4-конектор

6 X 5-конектор

45 X 6-конектор

В следващата стъпка описвам как този купол е конструиран с дървените подпори и 3D отпечатаните конектори, които проектирах.

Стъпка 3: Изграждане на купол със стойки и съединители

Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители
Изграждане на купол със стойки и съединители

Използвайки изчисленията от Domerama за 4V 5/12 купол, изрязах подпорите с циркуляр. 190 подпори бяха етикетирани и поставени в кутия след нарязване. 71-те конектора (20 четири-конектора, 6 пет-конектора и 45 шест-конектора) са 3D отпечатани с помощта на Makerbot. Дървените подпори бяха вмъкнати в съединителите съгласно схемата, създадена от Domerama. Започнах изграждането от върха и се придвижих радиално навън.

След като всички подпори бяха свързани, махнах една по една подпора и добавих епоксидна смола към дървото и съединителя. Съединителите са проектирани така, че да имат гъвкавост при свързването на конструкциите, така че беше важно да се провери симетрията на купола, преди да се добави епоксидна смола.

Стъпка 4: Лазерно рязане и монтиране на основни плочи

Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи
Лазерно рязане и монтиране на основни плочи

Сега, когато скелетът на купола е изграден, е време да изрежем триъгълните основни плочи. Тези основни плочи са прикрепени към дъното на подпорите и се използват за монтиране на светодиодите към купола. Първоначално изрязах основните плочи от шперплат с дебелина 5 мм (3/16”), като измеря петте различни триъгълника, които са на купола: AAB (30 триъгълника), BCC (25 триъгълника), DDE (20 триъгълника), CDF (40 триъгълника)) и EEE (5 триъгълника). Размерите на всяка страна и формата на триъгълниците бяха определени с помощта на куполен калкулатор (Domerama) и известна геометрия. След като изрязах тестовите основни плочи с мозайката, нарисувах дизайна на триъгълника с помощта на Coral Draw и изрязах останалите основни плочи с лазерен нож (много по -бързо!). Ако нямате достъп до лазерен нож, можете да изтеглите основите върху шперплат с помощта на линийка и транспортир и да ги изрежете с мозайката. След като основите се изрязват, куполът се обръща и плочите се залепват за купола с помощта на лепило за дърво.

Стъпка 5: Общ преглед на електрониката

Общ преглед на електрониката
Общ преглед на електрониката

На горната фигура е показана схема на електрониката за купола. Arduino Uno се използва за писане и четене на сигнали за купола. За да се освети куполът, RGB LED лента се прокарва над купола, така че светодиод да е разположен във всеки един от 120 триъгълника. За информация как работи LED лентата, вижте тази инструкция. Всеки светодиод може да бъде адресиран отделно с помощта на Arduino, който произвежда серийни данни и тактов сигнал за лентата (вижте щифта A0 и A1 в схемата). Само с лентата и тези два сигнала можете да имате страхотен светлинен купол. Има и други начини за писане на сигнали за много светодиоди от Arduino, като например Charlieplexing и регистрите за смяна.

За да взаимодействам с купола, настроих IR сензор над всеки светодиод. Тези сензори се използват за откриване, когато нечия ръка е близо до триъгълник на купола. Тъй като всеки триъгълник на купола има собствен IR сензор и има 120 триъгълника, ще трябва да направите някакъв вид мултиплексиране преди Arduino. Реших да използвам пет 24-канални мултиплексора (MUX) за 120-те сензора на купола. Ето инструкции за мултиплексиране, ако не сте запознати. 24 -канален MUX изисква пет управляващи сигнала. Избрах пинове 8-12 на Arduino, за да мога да направя манипулация на порта (вижте Стъпка 10 за повече информация). Изходът на MUX платките се чете с помощта на щифтове 3-7.

Включих и пет MIDI изхода на купола, за да може да произвежда звук (Стъпка 11). С други думи, петима души могат да свирят на купола едновременно, като всеки изход възпроизвежда различен звук. На Arduino има само един TX щифт, така че пет MIDI сигнала изискват демултиплексиране. Тъй като MIDI изходът се произвежда в различно време от отчитането на IR сензора, използвах същите управляващи сигнали.

След като всички входове на IR сензора бъдат прочетени в Arduino, куполът може да светне и да възпроизвежда звуци, независимо от това дали програмирате Arduino. Имам няколко примера в Стъпка 14 на тази инструкция.

Стъпка 6: Монтиране на светодиоди върху купола

Монтиране на светодиоди на купол
Монтиране на светодиоди на купол
Монтиране на светодиоди на купол
Монтиране на светодиоди на купол
Монтиране на светодиоди на купол
Монтиране на светодиоди на купол

Тъй като куполът е толкова голям, LED лентата трябва да бъде изрязана, за да се постави по един светодиод на всеки триъгълник. Всеки светодиод е залепен върху триъгълника с помощта на супер лепило. От двете страни на светодиода се пробива отвор през основната плоча, за да могат кабелите да преминават през купола. След това запоявах свързващия проводник при всеки контакт на светодиода (5V, маса, часовник, сигнал) и захранвах проводниците през основната плоча. Тези проводници са изрязани така, че да са достатъчно дълги, за да достигнат до следващия светодиод на купола. Проводниците се изтеглят до следващия светодиод и процесът продължава. Свързах светодиодите в конфигурация, която ще сведе до минимум необходимото количество проводник, като същевременно ще има смисъл за адресиране на светодиодите, използвайки Arduino по -късно. По -малък купол би премахнал необходимостта от изрязване на лентата и би спестил много време за запояване. Друга възможност е да използвате отделни RGB светодиоди с регистрите за смяна.

Серийната комуникация с лентата се постига с помощта на два пина (пин за данни и часовник) от Arduino. С други думи, данните за осветяване на купола се предават от един светодиод към следващия, когато напуска пина за данни. Ето примерен код, модифициран от този форум на Arduino:

// Направете целия купол увеличаване и намаляване на интензивността на един цвят

#define numLeds 120 // Брой светодиоди // ИЗХОДНИ ПИН -кодове // int clockPin = A1; // дефинираме часовник pin int dataPin = A0; // дефиниране на пин за данни // VARIABLES // int red [numLeds]; // Инициализиране на масив за LED лента int green [numLeds]; // Инициализира масив за LED лента int blue [numLeds]; // Инициализиране на масив за LED лента // ПОСТОЯННА двойна скала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}; // част от интензитета на светодиодите void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (червено, 0, numLeds); memset (зелен, 0, numLeds); memset (синьо, 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 ++) // цикъл за увеличаване на интензитета на светлина на купола {двойна скала = scaleA [p]; забавяне (20); for (int i = 0; i <numLeds; i ++) // цикъл през всички светодиоди {red = 255 * scale; зелено = 80 * скала; синьо = 0; } updatetestring (червено, зелено, синьо); // актуализиране на LED лентата}}

Стъпка 7: Проектиране и внедряване на сензорен монтаж

Проектиране и изпълнение на сензорен монтаж
Проектиране и изпълнение на сензорен монтаж
Проектиране и изпълнение на сензорен монтаж
Проектиране и изпълнение на сензорен монтаж
Проектиране и изпълнение на сензорен монтаж
Проектиране и изпълнение на сензорен монтаж

Реших да използвам IR сензори за купола. Тези сензори имат IR LED и приемник. Когато обект попадне пред сензора, част от IR излъчването от IR LED се отразява към приемника. Започнах този проект, като направих свои собствени инфрачервени сензори, които бяха базирани на инструкциите на Richardouvina. Цялото запояване отне твърде дълго време, така че закупих 120 IR сензора от eBay, всеки от които произвежда цифров изход. Прагът на сензора се задава с потенциометър на платката, така че изходът да е висок само когато ръка е близо до този триъгълник.

Всеки триъгълник се състои от LED подложка от шперплат, лист от дифузен акрил, монтиран на около 2,5 см над LED плочата, и IR сензор. Сензорът за всеки триъгълник е монтиран върху лист от тънък шперплат, оформен като петоъгълник или шестоъгълник в зависимост от позицията на купола (виж фигурата по -горе). Пробих дупки в основата на инфрачервения сензор, за да монтирам инфрачервените сензори, след което свързах земята и 5V щифтовете с тел за навиване на тел и инструмент за обвиване на тел (червени и черни проводници). След като свързах земята и 5V, увих дълга тел за навиване на всеки изход (жълт), земя и 5V, за да премина през купола.

След това крепежните инфрачервени сензори с шестоъгълник или петоъгълник бяха епоксирани към купола, точно над 3D отпечатаните конектори, така че проводникът да може да минава през купола. Като разполагах със сензорите над съединителите, успях да получа достъп и да настроя потенциометрите на инфрачервените сензори, които контролират чувствителността на сензорите. В следващата стъпка ще опиша как изходите на инфрачервените сензори са свързани към мултиплексори и се четат в Arduino.

Стъпка 8: Мултиплексиращ сензорен изход

Мултиплексиращ сензорен изход
Мултиплексиращ сензорен изход
Мултиплексиращ сензорен изход
Мултиплексиращ сензорен изход
Мултиплексиращ сензорен изход
Мултиплексиращ сензорен изход

Тъй като Arduino Uno има само 14 цифрови входно/изходни пина и 6 аналогови входни пина и има 120 сензорни сигнала, които трябва да бъдат прочетени, куполът изисква мултиплексори да четат всички сигнали. Избрах да конструирам пет 24-канални мултиплексора, всеки от които чете 24 от инфрачервените сензори (вижте фигурата за преглед на електрониката). 24-каналното MUX се състои от 8-канална MUX пробивна платка, 16-канална MUX пробивна платка и 2-канална MUX. Пин заглавките бяха запоени към всяка пробивна платка, така че да могат да бъдат свързани към прототипната платка. С помощта на инструмент за навиване на тел, след това свързах земята, 5V и щифтовете на управляващия сигнал на MUX пробивните платки.

24-канален MUX изисква пет контролни сигнала, които избрах да свържа към пин 8-12 на Arduino. Всичките пет 24-канални MUX получават едни и същи управляващи сигнали от Arduino, така че свързах проводник от щифтовете на Arduino към 24-каналния MUX. Цифровите изходи на инфрачервените сензори са свързани към входните щифтове на 24-каналния MUX, така че да могат да се четат последователно към Arduino. Тъй като има пет отделни щифта за четене във всички 120 сензорни изхода, е полезно да си представим, че куполът е разделен на пет отделни секции, състоящи се от 24 триъгълника (проверете цветовете на купола на фигурата).

Използвайки манипулиране на портовете на Arduino, можете бързо да увеличите управляващите сигнали, изпратени от пинове 8-12 до мултиплексорите. Тук съм приложил примерен код за работа с мултиплексорите:

int numChannel = 24;

// ИЗХОДИ // int s0 = 8; // MUX управление 0 - PORTbD int s1 = 9; // MUX управление 1 - PORTb int s2 = 10; // MUX управление 2 - PORTb int s3 = 11; // MUX управление 3 - PORTb int s4 = 12; // MUX управление 4 - PORTb // ВХОДИ // int m0 = 3; // MUX вход 0 int m1 = 4; // MUX вход 1 int m2 = 5; // MUX вход 2 int m3 = 6; // MUX вход 3 int m4 = 7; // MUX вход 4 // ПРОМЕНИМИ // int arr0r; // цифрово четене от MUX0 int arr1r; // цифрово четене от MUX1 int arr2r; // цифрово четене от MUX2 int arr3r; // цифрово четене от MUX3 int arr4r; // цифрово четене от MUX4 void setup () {// поставете вашия код за настройка тук, за да стартирате веднъж: DDRB = B11111111; // задава щифтове на Arduino 8 до 13 като входове pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } void loop () {// поставете основния си код тук, за да се изпълнява многократно: PORTB = B00000000; // SET контролни щифтове за ниско ниво на mux за (int i = 0; i <numChannel; i ++) {// Цифров изход за четене на MUX0 - MUX4 за IR сензор i // Ако IR сензорът е LO, триъгълникът се докосва от играча. arr0r = digitalRead (m0); // отчитане от Mux 0, IR сензор i arr1r = digitalRead (m1); // отчитане от Mux 1, IR сензор i arr2r = digitalRead (m2); // отчитане от Mux 2, IR сензор i arr3r = digitalRead (m3); // отчитане от Mux 3, IR сензор i arr4r = digitalRead (m4); // четене от Mux 4, IR сензор i // НАПРАВЕТЕ НЕЩО С MUX ВХОДИ ИЛИ СЪХРАНЯВАЙТЕ В МОСИЛ ТУК // PORTB ++; // увеличаване на контролните сигнали за MUX}}

Стъпка 9: Разсейване на светлината с акрил

Разсейваща светлина с акрил
Разсейваща светлина с акрил
Разсейваща светлина с акрил
Разсейваща светлина с акрил
Разсейваща светлина с акрил
Разсейваща светлина с акрил

За да разсея светлината от светодиодите, шлайфах прозрачен акрил с кръгла орбитална шлифовъчна машина. Шлифовъчната машина беше преместена от двете страни на акрила с движение на фигура 8. Открих, че този метод е много по -добър от спрей боя „матирано стъкло“.

След шлайфане и почистване на акрила, използвах лазерен нож за изрязване на триъгълници, които да се поберат върху светодиодите. Възможно е да изрежете акрила с помощта на акрилен режещ инструмент или дори прободен трион, ако акрилът не се напука. Акрилът беше държан върху светодиодите от правоъгълници от шперплат с дебелина 5 мм, също изрязани с лазерен нож. Тези малки дъски бяха залепени за подпорите на купола, а акрилните триъгълници бяха епоксирани върху дъските.

Стъпка 10: Правене на музика с купола чрез MIDI

Правене на музика с купола чрез MIDI
Правене на музика с купола чрез MIDI
Правене на музика с купола чрез MIDI
Правене на музика с купола чрез MIDI
Правене на музика с купола чрез MIDI
Правене на музика с купола чрез MIDI

Исках куполът да може да произвежда звук, затова настроих пет MIDI канала, по един за всяко подмножество на купола. Първо трябва да закупите пет MIDI жака и да го свържете, както е показано на схемата (вижте този урок от поддръжката на Arduino за повече информация).

Тъй като има само един сериен пин за предаване на Arduino Uno (пин 2, обозначен като TX пин), трябва да демултиплексирате сигналите, изпращани към петте MIDI жака. Използвах същите управляващи сигнали (пин 8-12), тъй като MIDI сигналите се изпращат в различно време, отколкото когато IR сензорите се четат в Arduino. Тези управляващи сигнали се изпращат до 8-канален демултиплексор, така че да контролирате кой MIDI жак получава MIDI сигнала, създаден от Arduino. MIDI сигналите са генерирани от Arduino със страхотната библиотека с MIDI сигнали, създадена от Francois Best. Ето един примерен код за създаване на множество MIDI изходи към различни MIDI жакове с Arduino Uno:

#include // включва MIDI библиотека

#define numChannel 24 // Брой IR на триъгълник #define numSections 5 // брой секции в купола, брой на 24channel MUX, брой MIDI жакове // OUTPUTS // int s0 = 8; // MUX управление 0 - PORTbD int s1 = 9; // MUX управление 1 - PORTb int s2 = 10; // MUX управление 2 - PORTb int s3 = 11; // MUX управление 3 - PORTb int s4 = 12; // MUX управление 4 - PORTb // ВХОДИ // int m0 = 3; // MUX вход 0 int m1 = 4; // MUX вход 1 int m2 = 5; // MUX вход 2 int m3 = 6; // MUX вход 3 int m4 = 7; // MUX вход 4 // ПРОМЕНИМИ // int arr0r; // цифрово четене от MUX0 int arr1r; // цифрово четене от MUX1 int arr2r; // цифрово четене от MUX2 int arr3r; // цифрово четене от MUX3 int arr4r; // цифрово четене от MUX4 int midArr [numSections]; // Съхранява дали бележка е била натисната от един от плейърите int note2play [numSections]; // Съхранявайте бележка за възпроизвеждане, ако сензорът е докоснат int бележки [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; // време на пауза между midi сигнали MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// поставете вашия код за настройка тук, за да стартирате веднъж: DDRB = B11111111; // задава щифтове на Arduino 8 до 13 като вход 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, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } void loop () {// поставете основния си код тук, за да се изпълнява многократно: PORTB = B00000000; // SET контролни щифтове за ниско ниво на mux за (int i = 0; i <numChannel; i ++) {// Цифров изход за четене на MUX0 - MUX4 за IR сензор i // Ако IR сензорът е LO, триъгълникът се докосва от играча. arr0r = digitalRead (m0); // отчитане от Mux 0, IR сензор i arr1r = digitalRead (m1); // отчитане от Mux 1, IR сензор i arr2r = digitalRead (m2); // отчитане от Mux 2, IR сензор i arr3r = digitalRead (m3); // отчитане от Mux 3, IR сензор i arr4r = digitalRead (m4); // четене от Mux 4, IR сензор i if (arr0r == 0) // Сензорът в секция 0 е блокиран {midArr [0] = 1; // Играч 0 е ударил бележка, настройте HI така, че да има MIDI изход за играч 0 note2play [0] = бележки ; // Бележка за игра за Player 0} ако (arr1r == 0) // Сензорът в раздел 1 е блокиран {midArr [1] = 1; // Играч 0 е ударил бележка, настройте HI така, че да има MIDI изход за играч 0 note2play [1] = бележки ; // Бележка за игра за Player 0} if (arr2r == 0) // Сензорът в раздел 2 е блокиран {midArr [2] = 1; // Играч 0 е ударил бележка, настройте HI така, че да има MIDI изход за играч 0 note2play [2] = бележки ; // Бележка за игра за Player 0} ако (arr3r == 0) // Сензорът в раздел 3 е блокиран {midArr [3] = 1; // Играч 0 е ударил бележка, настройте HI така, че да има MIDI изход за играч 0 note2play [3] = бележки ; // Бележка за игра за Player 0} if (arr4r == 0) // Сензорът в раздел 4 е блокиран {midArr [4] = 1; // Играч 0 е ударил бележка, настройте HI така, че да има MIDI изход за играч 0 note2play [4] = бележки ; // Бележка за игра за Player 0} PORTB ++; // увеличаване на управляващи сигнали за MUX} updateMIDI (); } невалидна актуализацияMIDI () {PORTB = B00000000; // ЗАДАВАМЕ контролни щифтове за ниско ниво на мултифункция if (midArr [0] == 1) // MIDI изход на Player 0 {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // увеличаване на MUX, ако (midArr [1] == 1) // MIDI изход на плейър 1 {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // увеличаване на MUX, ако (midArr [2] == 1) // MIDI изход на плейър 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // увеличаване на MUX, ако (midArr [3] == 1) // MIDI изход на плейър 3 {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // увеличаване на MUX, ако (midArr [4] == 1) // MIDI изход на плейър 4 {MIDI.sendNoteOn (note2play [4], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [4], 127, 1); delayMicroseconds (pauseMidi); } midArr [0] = 0; midArr [1] = 0; midArr [2] = 0; midArr [3] = 0; midArr [4] = 0; }

Стъпка 11: Захранване на купола

Захранване на купола
Захранване на купола
Захранване на купола
Захранване на купола
Захранване на купола
Захранване на купола
Захранване на купола
Захранване на купола

Има няколко компонента, които трябва да се захранват в купола. Следователно ще трябва да изчислите усилвателите, извлечени от всеки компонент, за да определите захранването, което трябва да закупите.

LED лентата: Използвах приблизително 3,75 метра от LED лентата Ws2801, която консумира 6,4 W/метър. Това съответства на 24W (3.75*6.4). За да преобразувате това в усилватели, използвайте Power = current*volts (P = iV), където V е напрежението на LED лентата, в този случай 5V. Следователно токът, извлечен от светодиодите, е 4.8A (24W/5V = 4.8A).

IR сензорите: Всеки IR сензор извлича около 25mA, общо 3A за 120 сензора.

Arduino: 100mA, 9V

Мултиплексорите: Има пет 24 -канални мултиплексора, всеки от които се състои от 16 -канален мултиплексор и 8 -канален мултиплексор. 8 -канален и 16 -канален MUX всеки консумира около 100mA. Следователно, общата консумация на енергия на всички MUX е 1A.

Като се добавят тези компоненти, общата консумация на енергия се очаква да бъде около 9A. LED лентата, IR сензорите и мултиплексорите имат входно напрежение при 5V, а Arduino има 9V входно напрежение. Затова избрах 12V 15A захранване, 15A доларов конвертор за преобразуване на 12V в 5V и 3A доларов конвертор за преобразуване на 12V в 9V за Arduino.

Стъпка 12: Кръгла куполна основа

Кръгла куполна основа
Кръгла куполна основа
Кръгла куполна основа
Кръгла куполна основа
Кръгла куполна основа
Кръгла куполна основа

Куполът лежи върху кръгло парче дърво с петоъгълник, изрязан от средата за лесен достъп до електрониката. За да се създаде тази кръгла основа, лист шперплат с размери 4x6 'беше изрязан с помощта на дървен CNC фрезер. За тази стъпка може да се използва и мозайката. След като основата беше изрязана, куполът беше прикрепен към нея с помощта на малки 2x3”блокове дърво.

На върха на основата, аз прикрепих захранването с епоксидна смола и конверторите MUX и Buck с разделители за печатни платки. Раздалечителите бяха прикрепени към шперплата с помощта на адаптери за резба E-Z Lok.

Стъпка 13: Куполна база на Пентагона

Куполна база на Пентагона
Куполна база на Пентагона
Куполна база на Пентагона
Куполна база на Пентагона
Куполна база на Пентагона
Куполна база на Пентагона

В допълнение към кръглата основа, аз също изградих основа за петоъгълник за купола с прозорец от огледало в долната част. Тази основа и изглеждащ прозорец също бяха направени от шперплат, изрязан с дървен CNC рутер. Страните на петоъгълника са направени от дървени дъски, като едната страна има отвор за преминаване на съединителите. Използвайки метални скоби и 2x3 блокови съединения, дървените дъски са прикрепени към основата на петоъгълника. Ключ за захранване, MIDI конектори и USB конектор са прикрепени към предния панел, който създадох с помощта на лазерен нож. Цялата основа на петоъгълника се завинтва към кръглата основа, описана в стъпка 12.

Инсталирах прозорец в долната част на купола, така че всеки да може да погледне нагоре в купола, за да види електрониката. Огледалото е изработено от акрил, изрязан с лазерен нож и епоксиден до кръгло парче шперплат.

Стъпка 14: Програмиране на купола

Има безкрайни възможности за програмиране на купола. Всеки цикъл на кода приема сигналите от инфрачервените сензори, които показват триъгълниците, докоснати от някого. С тази информация можете да оцветите купола с всеки RGB цвят и/или да произведете MIDI сигнал. Ето няколко примера за програми, които написах за купола:

Оцветете купола: Всеки триъгълник преминава през четири цвята при докосване. С промяната на цветовете се играе арпеджио. С тази програма можете да оцветите купола по хиляди различни начини.

Куполна музика: Куполът е оцветен с пет цвята, като всяка секция съответства на различен MIDI изход. В програмата можете да изберете кои ноти да играе всеки триъгълник. Избрах да започна от средата C в горната част на купола и да увелича терена, когато триъгълниците се приближиха до основата. Тъй като има пет изхода, тази програма е идеална за едновременно множество хора да играят на купола едновременно. Използвайки MIDI инструмент или MIDI софтуер, тези MIDI сигнали могат да бъдат накарани да звучат като всеки инструмент.

Саймън: Написах изпълнение на Саймън, класическата игра за запалване на паметта. Случайна последователност от светлини се осветява една по една върху целия купол. При всеки ход играчът трябва да копира последователността. Ако играчът съвпада правилно с последователността, към нея се добавя допълнителна светлина. Високата оценка се съхранява в една от секциите на купола. Тази игра също е много забавна за игра с множество хора.

Понг: Защо не играете понг на купол? Топка се разпространява през купола, докато влезе в греблото. Когато това стане, се произвежда MIDI сигнал, който показва, че греблото е ударило топката. След това другият играч трябва да насочи греблото по дъното на купола, така че да удари топката назад.

Стъпка 15: Снимки на завършен купол

Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Снимки на завършен купол
Arduino конкурс 2016
Arduino конкурс 2016
Arduino конкурс 2016
Arduino конкурс 2016

Голямата награда в конкурса Arduino 2016

Ремикс конкурс 2016
Ремикс конкурс 2016
Ремикс конкурс 2016
Ремикс конкурс 2016

Втора награда в конкурса за ремикси 2016

Направи го Glow Contest 2016
Направи го Glow Contest 2016
Направи го Glow Contest 2016
Направи го Glow Contest 2016

Втора награда в конкурса Make it Glow 2016

Препоръчано: