|
Сделайте струнный инструмент
с Raspberry Pi
Вы когда-нибудь хотели сделать свой собственный музыкальный инструмент? Здесь вы увидите, что с небольшими усилиями, можно сделать простой музыкальный инструмент очень легко. Ваша конструкция будет в состоянии воспроизвести звук, в зависимости от частоты канала. Для того, чтобы получить частоту струны, мы будем использовать пьезоэлектрический датчик.
Материалы
(Изображение выше только иллюстрация)
Список материалов, которые вы должны иметь, чтобы построить этот инструмент:
Механическая часть:
- 2 полистирольные пластины;
- эластичные шнуры;
- небольшая бобина;
Электрическая часть:
- Пьезоэлектрический датчик;
- 2 Конденсатора 20 мкф;
- 2 Конденсатора 20n;
- 2 диода;
- Резисторы: 1 15k, 3 1.5k, 1 из 330K;
- АОП UA741;
- преобразователь напряжения: ICL7660;
- 2 регулятора напряжения: 5V S7V8F5;
- динамик;
Вычислительная часть:
- Altium Designer программное обеспечение;
- Компьютер с ОС Windows и Linux;
- АЦП (аналого-цифровой преобразователь): MCP3008;
- Rapsberry Pi 2 или 3;
- USB-кабель для TTL;
Создание механической части
корпус инструмента:
Поясним ниже, шаг за шагом, как реализовать механическую часть:
- Вырезаем прямоугольники 25x30cm и 7x13cm из пенополистирольных плит;
- Закрепить конец пластмассовой панели к боковой стороне толстой пластины, где прикреплен маленький прямоугольник. Бар должен быть помещен на его стороне.
- Оберните струну в в бобине скотчем или изолентой с сильным клеем.
- Поместите деревянный вал на противоположном углу перпендикулярно к той, в которой вы зафиксировали бар.
- Поместите катушку на деревянный вал.
- Прикрепите другую часть струны до конца пластиковой панели, которая не клеится.
- Прикрепите к этому концу небольшой прямоугольник с помощью нескольких резинок.
- Прикрепите пьезоэлемент к струне.
Электронная схема
Запустите Altium на Windows, и создайте новый проект. Как упоминалось ранее, мы используем пьезоэлектрический датчик. Сигнал доставляемый этим датчиком может быть весьма переменным, поэтому мы решили составить автоматическую схему управления усилением, который позволит нам получить усиленный сигнал в зависимости от входного напряжения.
Автоматическая регулировка усиления
Резисторы R1, R2, при 1.5k были выбраны, чтобы получить усиление 11. В схеме АРУ, у нас есть пиковый детектор, который может обнаруживать максимальное напряжение и регулировку усиления. Конденсатор 15nF и резистор 1.5k были приняты, чтобы иметь постоянную времени ниже, чем вариации информативного сигнала.
ФНЧ
Зная, что частоты не превышают 300 Гц, мы установили фильтр низких частот, в самом конце нашей схемы усиления, чтобы сохранить желаемые частоты.
Источник питания
Питаются цепи с 6 батареек типа АА. Для питания усилителя, мы нуждались в -5V поэтому мы решили взять преобразователь напряжения, который преобразует напряжение от 5 В до -5v. Raspberry Pi также имеет свой собственный источник питания, на самом деле лучше отделить его от схемы.
Аналого-цифровой преобразователь
Мы используем Raspberry Pi 2 модели B, которая не имеет аналоговых портов. Мы должны преобразовать наши аналоговые данные в цифровые. Именно поэтому мы используем АЦП. Объяснение электрической схемы теперь закончена, давайте перейдем к изготовлению печатной платы.
PCB (Printed Circuit Board)
Схема включения
(С этого момента, используйте компьютер с установленным Linux) Данные, посылаемые АЦП MCP3008 будут прочитаны Raspberry Pi.
Сначала подключите TTL кабель к Raspberry Pi следующим образом:
Черный PIN06;
От белого до PIN08;
Зеленый pin10.
Не подключайте красный кабель , потому что Raspberry Pi уже работает на микро - порт USB.
Подключение к АЦП Raspberry Pi следующим образом:
CLK к PIN23;
DOUT к PIN21;
DIN к PIN19;
CS к PIN24.
Raspberry Pi и АЦП соответственно являеются ведущим и ведомым приводами. Именно поэтому мы подключили к DOUT PIN21 и DIN к PIN19, поскольку эти штифты используются для ввода и вывода ведущего и ведомого. Информация, передаваемая по MCP будет считываться с помощью SPI BUS. Raspberry Pi (Master) будет генерировать (CLK) и отправлять запросы к MCP на чтение (подчиненному). После того , как соединение выполнено, мы подключим SPI между Raspberry Pi и АЦП , используя библиотеку WiringPi доступную по этой ссылке http://wiringpi.com/download-and-install/~~HEAD=pobj
Код доступен здесь: http://shaunsbennett.com/piblog/?p=266
После того, как библиотека установлена и код помещен в Raspberry Pi, запустите программу для получения данных и убедитесь, что электронная схема работает должным образом.
Примечание: Чтобы получить доступ к Raspberry в зависимости от типа терминала следующую команду:
Экран / DEV / ttyUSB0 115200
Логин: pi
Пароль: Raspberry
Быстрое преобразование Фурье - GNU + GSL
Теперь, когда мы знаем, что мы можем получить данные, мы используем быстрое преобразование Фурье, чтобы преобразовать наш сигнал в частотный спектр и определить частоту с большей амплитудой. FFT алгоритм, созданный для преобразования вычисляет дискретного преобразования Фурье последовательности, то есть то, что нам нужно в нашем случае. Зная, где амплитуда является наиболее важным, мы можем найти нашу частоту и сыграть ноту соответствующим образом.
Чтобы использовать этот FFT на C языке, вы должны установить 2 пакета из библиотеки GSL: libgsl0ldbl и libgsl0-DEV.
Используйте эти команды на вашем Raspberry Pi:
Sudo APT-получить установку libgsl0ldbl
Sudo APT-получить установку libgsl0-DEV
Расположение по умолчанию для каталога GSL является / USR / местные / включить / GSL.
Команда компиляции для файла example.c с GNU и GCC компилятора:
НКУ -Wall -I / USR / местные / включить -c example.c
Для того, чтобы сделать ссылки и получить наш исполняемый файл, мы должны использовать эту команду:
НКУ -L / USR / местные / Библиотека example.o -lgsl -lgslcblas -lm
Генерация звука
Для генерации звука мы будем использовать библиотеку ALSA (Advanced Linux Sound Architecture). Для этого, мы заполняем буфер 256 точек, с синусоидальным сигналом на частоте, умноженной на 100. После того, как буфер полон, звук воспроизводится через порт гнезда.
Чтобы включить разъем порта сделать следующим образом:
SUDO raspi-конфигурации
Расширенные опции
A9 Аудио
Выберите разъем 3,5 мм
Для установки библиотеки ALSA:
Sudo APT-получить установку libasound2-DEV
И использовать его, добавьте "-lasound" , если вы хотите скомпилировать файл.
Как играть
Чтобы играть убедитесь, что прибор включен. Положите правую руку на бобине и изменяйте длину струны, повернув ее. Левой рукой извлекайте звук указательным пальцем. Вы должны услышать разные ноты которые выходят из громкоговорителя в зависимости от натяжения струны.