FPGA плата управління 10000 LED
Установка керується Papilio FPGA, з'єднаною з іншими частинами системи: мікрофоном та аудіовходом, флеш-пам'яттю та керуючим обладнанням для світлодіодних стрічок. Zpuino, мікропроцесор з програмним ядром, що працює всередині FPGA, обробляє більшу частину логіки системи. Однією з найбільших проблем є акуратне та надійне об'єднання всіх цих пристроїв.
Для пробного запуску на Apogaea, всі ці компоненти були з'єднані проводами-перемичками і встановлені на великий шматок HDPE пластику. Ця установка працювала досить добре для демонстраційної установки, але була досить громіздкою і несподівано ламалася. Проводки часто губилися або плуталися, а на місці Apogaea був мерехтливий від електричних перешкод світлодіодний масив.
Для того, щоб зробити систему надійною та з можливостями розвитку, ми зайнялися створенням нової плати, яка об'єднає всі зовнішні пристрої в одному інтегрованому модулі. Це нова плата розширення (або "крила") для Papilio, призначена для інтерактивного керування великими світлодіодними масивами. Ми називаємо її SoundPuddle Megawing. Її особливостями:
- 16 каналів для керування світлодіодною стрічкою (підтримка більше 10.000 RGB світлодіодів).
- збалансований мікрофонний предусилювач з фантомним живленням 48В.
- стерео AUX вхід.
- Bluetooth модуль для аудіовходу та контролю установки.
- MIDI вхід.
Ця плата забезпечить набагато простішу установку SoundPuddle, забезпечуючи все одним модулем і майже повністю виключаючи кабелі між різними компонентами. Оскільки вона може поміститися в водонепроникний корпус pelican, вона повинна бути добре захищена і переносима.
Найголовнішою задачею плати є швидке і надійне керування світлодіодами. Керуючі SPI сигнали для світлодіодних стрічок працюють на 3МГц. Це достатньо, щоб EM шуми і AC характеристики (т.е. імпеданс) плати і проводів були узгоджені. Крім того, FPGA працює від 3.3 вольт, а світлодіодні стрічки від 5. Це означає, що ми повинні перетворювати сигнали від FPGA в 5 вольт, і мати справу з електричними шумами і імпедансом.
У новій схемі керування використовується буфер приймач-передавач на SN74XXX. У цій серії є багато сумісних за висновками компонентів, які будуть працювати на платі, тобто, є варіанти, яка саме мікросхема знаходиться на платі. На даний момент ми використовуємо SN74LS541. Він обраний тому, що його входи мають гістерезис, що робить цифрові сигнали більш стійкими до аналогових шумів. Кожна сигнальна лінія містить кінцевий резистор, який допомагає ослабити відбиття, що викликають проблеми на великих швидкостях.
Для установки ми використовуємо конденсаторний мікрофон, і він потребує фантомного живлення 48В для запуску. Нова плата має вбудований джерело фантомного живлення. Вона бере 5В, що входять у плату, і підвищує їх до 48В. Великий струм не потрібен, тому використовується відносно дешева і проста схема на основі імпульсного регулятора LM5002.
Мікрофон видає збалансований (диференційний) звуковий сигнал, який повинен читатися FPGA. Ми використовуємо мікросхему Maxim MAX4062 для підсилення малопотужного диференційного сигналу від мікрофона. FPGA використовує АЦП (мікросхема ADC128S102), для читання підсиленого звукового сигналу.
Крім того, на платі є кілька простих схем, які дозволяють АЦП читати сигнали зі стерео AUX входу, динамічного мікрофона, а також чотирьох додаткових входів.
Також на платі є MIDI вхід. Він дуже простий, зі стандартним оптроном (6N138) для ізоляції плати від сигналів, що надсилаються MIDI-пристроями. Це нова функція для SoundPuddle, яка могла б бути чудовою для підключення до музичних інструментів або комп'ютерів.
Ще однією новою особливістю є RN-41 Bluetooth модуль. Він має UART і PCM шини даних, підключені до ПЛІС. Це дозволяє керувати SoundPuddle через Bluetooth (уявіть, змінювати швидкість або кольорові узори, використовуючи телефон). Більш цікаво те, що SoundPuddle може реагувати на аудіо, що передається по Bluetooth.
Крім того, на платі також є SPI Flash мікросхема 64 Мбіт (MX25L6445), яку FPGA може використовувати для зберігання даних програми. В Apogaea, ми використовували SPI Flash для зберігання довідкових таблиць, які визначали колір і яскравість в залежності від звуку.
Проект повністю відкритий, всі необхідні файли ви можете завантажити на Github.