Съдържание:

Пиано за плейър на синестезия: 4 стъпки
Пиано за плейър на синестезия: 4 стъпки

Видео: Пиано за плейър на синестезия: 4 стъпки

Видео: Пиано за плейър на синестезия: 4 стъпки
Видео: "Синестезия" 4. Георгий Фёдоров - 'Слова' 2024, Юли
Anonim
Image
Image
Синестезионен плейър пиано
Синестезионен плейър пиано
Синестезионен плейър пиано
Синестезионен плейър пиано

Този пиано играе музика, използвайки цветно колело и камера! Изображенията се заснемат от камерата, обработват се и се интерпретират като музикални ноти. В момента той е програмиран да играе детски стихове, които могат да бъдат променени чрез качване на нова скица arduino, която определя кои ноти трябва да се играят (кои цветове трябва да се показват на камерата).

Вграденият компютър с Linux стартира услуга при стартиране, която прави снимка с камера, изчислява функция на RGB стойностите в изображението и извежда звук въз основа на връщаната стойност на функцията. Преди да възпроизведе звука, той изпраща сигнал, казващ на Arduino да завърти серво, представяйки цвета, съответстващ на следващата нота, която трябва да се пусне. След това цикълът започва отново, прави се снимка, цветното колело се завърта и звукът се възпроизвежда безкрайно.

Този проект е забавен начин за интегриране на музика, съвременни програми за Linux системи, програмиране на микроконтролери, inkscape драскане, лазерно рязане и пренасочване на някои боклуци картонени кутии.

Всички кодове и inkscape SVG са достъпни в github на:

github.com/melvyniandrag/pyMusic

Използвани материали:

  1. Празни бели етикети
  2. Картонена кутия
  3. Уебкамера
  4. Пастели
  5. Arduino
  6. Beagleboard-xM
  7. Проводници
  8. Сериен кабел
  9. Основни познания за обработка на изображения и музика

Стъпка 1: Компютърните неща

Компютърните неща
Компютърните неща
Компютърните неща
Компютърните неща
Компютърните неща
Компютърните неща

На борда ще ви е необходим малък компютър, поддържащ Linux, като Raspberry Pi. Използвах стар BeagleBoard-xM, защото случайно го имах и вече имах операционна система на SD картата. Можете да използвате каквото и да е, стига да може да работи с уеб камера, да може да изпълнява OpenCV (библиотеката за компютърно виждане, използвана за заснемане и обработка на изображения на цветното колело) и да има жак за аудио изход.

Настроих операционната система да изпълнява кода на python, който улавя изображения при стартиране, след урок по systemd. За да се изпълни скриптът, ще трябва да sudo apt-get install python-pyaudio python-opencv, за да получите посочените библиотеки. Също така ще трябва да инсталирате numpy pyserial, за да получите тези библиотеки. pyaudio се използва за възпроизвеждане на звуци, opencv се използва за заснемане и обработка на изображения, numpy също се използва за обработка на изображения, а pyserial е необходим за комуникация с Arduino.

Arduino се използва за въртене на серво мотора, върху който е монтирано цветното колело. Ако имате Raspberry Pi, можете да използвате GPIO щифтовете там и да оставите Arduino, но ще трябва да промените кода на Python.

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

Стъпка 2: Пианото

Пианото
Пианото
Пианото
Пианото
Пианото
Пианото

Направих пианото от картон от някои стари кутии, които имах. Имам щастието да живея близо до пространство за производство, което има лазерен нож. Цяла година се чудя за какво по дяволите би искал лазерен нож и се оказа, че най -накрая намерих приложение за него.

Измерих компютъра, arduino и серво, така че знаех колко място ми трябва, нарисувах частите на пианото в inkscape и ги изрязах на лазерния нож. (Редактиране: Изчерпах картона, за да накарам кутията да държи компютъра и arduino и затова не ги поставих. Те са от външната страна на кутията. Няма значение, можеше да си взема друга кутия от някъде, но не няма значение в крайна сметка.)

Парчетата се сглобяват с епоксидна смола.

Стъпка 3: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Ето някои изображения на сглобяваното и оцветено пиано. В принтера нямаше мастило, така че не можах да отпечатам цветовете върху белите етикети, както бях планирал. Затова използвах пастелите на дъщеря си. И не можах да намеря нож xacto, който да изреже етикета във формата на картона, затова просто използвах нож за пържола и сложих нещо защитно върху кухненския плот. Използвайте това, което имате!

Стъпка 4: Технически предизвикателства и бъдещи съображения

Технически предизвикателства и бъдещи съображения
Технически предизвикателства и бъдещи съображения
Технически предизвикателства и бъдещи съображения
Технически предизвикателства и бъдещи съображения

Предизвикателна част от този проект беше получаването на правилните стойности на RGB за четене от камерата. Уеб камерата, която имам, има някои невероятно ярки светодиоди, които не знам как да изключа в Linux. Мисля, че има драйвер за Windows, който ви позволява да ги включвате и изключвате. Експериментирах с залепването на светодиодите с електрическа лента и оставянето им включени. Също така тествах софтуера за здравина, като не само му показах цветна хартия, но и написах малък уебсайт, който показва цветове.

Звуците, произведени от компютъра, понякога имат пукане и пукане в тях и това идва от факта, че имам много малко опит в аудио програмирането на Linux. Библиотеката на pyaudio изплюва цял куп оплаквания, че JACK не е инсталиран на компютъра, но по подразбиране JACK не иска да работи без глава (без работен плот и монитор). Това е задача по програмиране, която смятах за усъвършенстване, но не беше необходимо да изразя същността на пианото, което имах предвид.

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

Понастоящем пианото е програмирано само за свирене на 4 ноти. Това е така, защото сервото се движи само на 180 градуса, повечето детски стихотворения могат да се играят само с 3-4 ноти и не исках цветното колело да се затрупва с цветни области, което евентуално обърква камерата. Така че чрез комбинация от музикален късмет и технически ограничения, 4 ноти са добре.

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