Kazalo:

Klavir predvajalnika sinestezije: 4 koraki
Klavir predvajalnika sinestezije: 4 koraki

Video: Klavir predvajalnika sinestezije: 4 koraki

Video: Klavir predvajalnika sinestezije: 4 koraki
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image
Sinestezijski igralec klavir
Sinestezijski igralec klavir
Sinestezijski igralec klavir
Sinestezijski igralec klavir

Ta klavir predvaja glasbo z barvnim kolesom in kamero! Slike posname kamera, jih obdela in interpretira kot glasbene note. Trenutno je programiran za predvajanje otroških pesmi, ki jih lahko spremenite tako, da naložite novo skico arduino, ki določa, katere note je treba predvajati (katere barve je treba prikazati kameri).

Vgrajeni osebni računalnik Linux ob zagonu zažene storitev, ki fotografira s kamero, izračuna funkcijo vrednosti RGB na sliki in odda zvok glede na vrnjeno vrednost funkcije. Pred predvajanjem zvoka pošlje signal, ki pove Arduinu, da zavrti servo, pri čemer predstavi barvo, ki ustreza naslednji noti, ki jo je treba predvajati. Nato se zanka znova zažene, slika se posname, barvno kolo se zasuka in zvok se predvaja neskončno.

Ta projekt je zabaven način za vključitev glasbe, sodobnega programiranja sistemov Linux, programiranja mikro krmilnikov, risanja v črni barvi, laserskega rezanja in ponovnega namena nekaterih neželenih kartonskih škatel.

Vse kode in inkscape SVG so na voljo na githubu na:

github.com/melvyniandrag/pyMusic

Uporabljeni materiali:

  1. Prazne bele nalepke
  2. Kartonska škatla
  3. Spletna kamera
  4. Barvice
  5. Arduino
  6. Beagleboard-xM
  7. Žice
  8. Serijski kabel
  9. Osnovno znanje o obdelavi slik in glasbi

1. korak: Računalniške stvari

Računalniške stvari
Računalniške stvari
Računalniške stvari
Računalniške stvari
Računalniške stvari
Računalniške stvari

Na krovu boste potrebovali majhen računalnik, ki podpira Linux, kot je Raspberry Pi. Uporabil sem star BeagleBoard-xM, ker se mi je slučajno zgodil in sem že imel operacijski sistem na kartici SD. Uporabite lahko karkoli, če le zmore spletno kamero, lahko izvaja OpenCV (knjižnico računalniškega vida, ki se uporablja za snemanje in obdelavo slik barvnega kolesa) in ima priključek za avdio izhod.

Operacijski sistem sem nastavil za izvajanje kode python, ki zajema slike ob zagonu po vadnici systemd. Če želite zagnati skript, boste morali pridobiti navedene knjižnice s sudo apt-get install python-pyaudio python-opencv. Če želite dobiti te knjižnice, morate tudi namestiti pip, nameščen z numpy. pyaudio se uporablja za predvajanje zvokov, opencv se uporablja za fotografiranje in obdelavo slik, numpy se uporablja tudi za obdelavo slik, pyserial pa je potreben za komunikacijo z Arduinom.

Arduino se uporablja za vrtenje servo motorja, na katerem je nameščeno barvno kolo. Če bi imeli Raspberry Pi, bi lahko tam uporabili zatiče GPIO in izpustili Arduino, vendar bi morali spremeniti kodo Python.

Na slikah si lahko ogledate tehnološke poteze operacije in nekaj odrezkov kode.

2. korak: Klavir

Klavir
Klavir
Klavir
Klavir
Klavir
Klavir

Klavir sem naredil iz kartona iz nekaterih starih škatel, ki sem jih imel. Imam srečo, da živim v bližini proizvajalca, ki ima laserski rezalnik. Že celo leto se sprašujem, za kaj bi si sploh želel laserski rezalnik in izkazalo se je, da sem mu končno našel uporabo.

Izmeril sem računalnik, arduino in servo, da sem vedel, koliko prostora potrebujem, dele klavirja narisal v črnile in jih izrezal na laserskem rezalniku. (Edit: zmanjkalo mi je kartona, da bi ohišje držalo računalnik in arduino, zato jih nisem vstavil. Nahajajo se na zunanji strani ohišja. Ni važno, od nekod bi lahko dobil drugo škatlo, vendar ni na koncu ni važno.)

Kosi so bili združeni z epoksidom.

3. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Tu je nekaj slik klavirja, ki ga sestavljajo in obarvajo. Tiskalniku je zmanjkalo črnila, zato nisem mogel natisniti barv na bele nalepke, kot sem načrtoval. Zato sem uporabil hčerine barvice. In nisem mogel najti noža xacto, da bi izrezal nalepko v obliki kartona, zato sem samo uporabil nož za zrezek in na kuhinjski pult položil nekaj zaščitnega. Uporabite, kar imate!

4. korak: Tehnični izzivi in prihodnji premisleki

Tehnični izzivi in prihodnji premisleki
Tehnični izzivi in prihodnji premisleki
Tehnični izzivi in prihodnji premisleki
Tehnični izzivi in prihodnji premisleki

Zahteven del tega projekta je bil pridobiti ustrezne vrednosti RGB za branje s kamero. Spletna kamera, ki jo imam, ima na sebi neverjetno svetle LED diode, ki jih v Linuxu ne vem izklopiti. Mislim, da obstaja gonilnik za Windows, ki vam omogoča vklop in izklop. Eksperimentiral sem z lepljenjem LED z električnim trakom in jih pustil prižgane. Prav tako sem preizkusil robustnost programske opreme, tako da ji nisem pokazal le barvnega papirja, ampak sem napisal tudi malo spletno mesto, ki prikazuje barve.

Zvoki, ki jih proizvaja računalnik, se včasih pojavijo in pokajo, to pa izhaja iz dejstva, da imam zelo malo izkušenj z zvočnim programiranjem Linuxa. Knjižnica pyaudio izloča cel kup pritožb glede tega, da JACK ni nameščen v računalniku, vendar privzeto JACK ne želi teči brez glave (brez namizja gui in monitorja). To je programska naloga, za katero sem mislil, da je izboljšava, vendar ni bila potrebna, da bi izrazil bistvo klavirja, ki sem ga imel v mislih.

Razmišljal sem o uporabi ročice za spreminjanje barv in morda o tem, da bi jih imel na kotalčku, vendar to prinaša svoje zaplete. Servo je nekoliko hrupen, vendar zaenkrat deluje v redu.

Klavir je trenutno programiran samo za igranje 4 not. To je zato, ker se servo premakne le za 180 stopinj, večino otroških pesmi je mogoče predvajati le s 3-4 notami in nisem želel, da bi se barvno kolo natrpalo z barvnimi območji, kar bi lahko zmotilo kamero. S kombinacijo glasbene sreče in tehničnih omejitev so 4 note v redu.

Priporočena: