Go to file
Jurij Podgoršek b16db03288 Urejanje dokumentacij, literate programming WIP koda za krmilnik 2024-02-01 00:57:24 +01:00
3d Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00
ArduinoMagCal Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00
kontroler Delo na kontrolerju 2022-11-30 14:56:47 +01:00
osc32_9255_rtimulib_espnow Urejanje dokumentacij, literate programming WIP koda za krmilnik 2024-02-01 00:57:24 +01:00
osc32_espnow_sprejemnik Koda za sprejemnik 2023-06-28 17:55:11 +02:00
skripte Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00
slike Urejanje dokumentacij, literate programming WIP koda za krmilnik 2024-02-01 00:57:24 +01:00
web Popravljeni duhovi, refresh vseh 2023-06-28 19:04:11 +02:00
.gitignore Midi relay za kegel 2022-05-22 16:11:55 +02:00
2023-06-11.txt Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00
LICENSE Initial commit 2022-05-22 16:10:01 +02:00
README.org Urejanje dokumentacij, literate programming WIP koda za krmilnik 2024-02-01 00:57:24 +01:00
bitwig.js Delo na kontrolerju 2022-11-30 14:56:47 +01:00
kegel.js Ločeni thresholdi na keglih 2022-09-17 14:25:02 +02:00
kegel2.js Brez debuga hvala 2023-06-21 19:24:28 +02:00
kegelj.scd Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
mididebug.js Dodano 2022-09-14 20:40:48 +02:00
osc_graf.py Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
oscplot.py Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
package-lock.json WIP scheme verzije, izboljsane kontrole, debagiranje 2023-06-28 17:55:44 +02:00
package.json WIP scheme verzije, izboljsane kontrole, debagiranje 2023-06-28 17:55:44 +02:00
requirements.txt Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
scplot.scd Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
server.js WIP scheme verzije, izboljsane kontrole, debagiranje 2023-06-28 17:55:44 +02:00
server.scm WIP scheme verzije, izboljsane kontrole, debagiranje 2023-06-28 17:55:44 +02:00
test.py Grafiranje vrednosti 2022-05-22 16:11:55 +02:00
tik.wav Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00

README.org

kiber kegel

Splošno

Kiber kegli so del glasbene mize.

Ta zbirka kode vsebuje načrte, dokumentacijo in kodo za nadgradnjo keglov v glasbene inštrumente. Preko brezžičnega mikrokrmilnika (ESP32) pošiljajo spremembe rotacij in pospeškov gibalnega senzorja (MPU9255) v računalnik, ki podatke v obliki OSC pretvori v MIDI signale.

Strojni del - telo

Mere kegla

Najdaljši premer - 82mm Špica - 15mm 32mm je lahko dolg vstavek 27mm je široka spodnja odprtina (blizu držalu)

Zapečemo ga s strani (izrez + prispajk nazaj). Kasneje sva se raje odločila za vijake, tako je kegel lažje popravljat.

prototip kegla

Narejen kegel spredaj

Narejen kegel zadaj

Elektonske povezave

MPU9255 ESP32
VCC 3.3v
GND GND
SCL 22
SDA 21

Baterijski priklop omogoča baterijski shield za wemos d1 mini (esp32 varjanta). Lahko bi imeli tudi kakšno esp32 krmilnik z vgrajenim regulatorjem napetosti in priklopom na baterijo.

Ena žica baterije (+ pol?) je vezana preko stikala, speljanega na rob kegla, da ga je mogoče ugansniti. POZOR pri priklopu baterije na baterijski shield moramo pazit na polariteto; barve baterijskih kablov se ne skladajo nujno s +/- poli na shieldu, napačen priklop lahko skuri tuljavo.

Kegel znotraj

USB priklop baterijskega shielda je speljan za rob kegla za lažje polnjenje preko robustnejšega vtikača USB tipa B.

Kegel znotraj 2

Sprva je za brezžični prenos podatkov skrbel bluetooth protokol. Kasneje se je pa izkazalo da je precej lažje uporabit ESP-NOW preko še enega krmilnik za sprejem. Tako je lažje in hitreje vzpostavit povezavo s kegli, prenos je konsistentnejši, doseg bi moral biti večji (tukaj je sicer bluetooth bil dovolj dober).

S pomočjo tega projekta bi moralo biti mogoče prejemati ESPNOW pakete brez dodatnega sprejemnika.

TODO slika sprejemnika.

Koda

Poganjanje projekta omogoča tudi koda, ki se nahaja na več mestih; arduino koda za krmilnik je tako v keglu kot v sprejemniku, potem imamo pretvornik brezžično prejetih signalov v midi (neposredno oz. pretvorjeno). Opcionalno tudi vizualiziramo zadevo.

Krmilnik v keglu

Krmilnik v keglu, ki prebira senzorje in pošilja podatke v sprejemnik, je spisan v tej skici. Preden skico zapečemo na kegel, je potrebno kalibrirati magnetometer.

Kalibracija

Magnetometerski senzor je potrebo kalibrirati, skica za kalibracijo je tukaj. Skico zapečemo na krmilnik in sledimo navodilom na serijskem monitorju.

Sprejemni krmilnik

Skica za brezžični sprejemnik je tukaj. Z nekaj prilagoditvami lahko namesto ESP32 uporabimo tudi ESP8266, ki prav tako podpira ESP-NOW protokol. TODO literate programming!

Pretvornik iz serijskega OSC v midi

  • wavey wind TODO
  • pretvornik TODO

Scenariji

30. 11. 2022 (cirkulacija)

  1. en kegel samo deformacija, mogoce malo zoom pulz na zogico,

    • nojz (glasba, rocno?)
    • BREZ zogic
    • BREZ dodatnih
  2. dva kegla
  3. ena zogica
  4. 2 kegla + zogica

=== VKLOP LUCI ====

reset (calibrate, zoom blizu) (nojz stran) (vklopimo zogice)

  1. komad: ena zogica!
  2. tri zogice
  3. band: vkljucimo publiko

    • VKLOP dodatni kegli

TODO:

  • barvne palete za zogice (izmenicno levo desno), kegle
  • upostevaj velocity zogic
  • WW kontroler za vklop / izklop deformacije, ostalih elementov (barva ja / ne)
  • postavit kegle v sredino
  • postavit zogice v kader

Ideje za naprej

sprejemnik → bitwig

Namesto pretvorne komponente iz serijskega OSC v midi bi lahko bitwig neposredno prejemal podatke iz sprejemnika. Tale primer skripte za bitwig izgleda dokaj podoben željenemu in bi z nekaj prilagoditvami verjetno lahko vskočil. Slaba stran je specifičnost bitwigu

supercollider sprejemnik

Pretvorbo iz serijskega OSC v midi bi lahko implementirali v supercolliderju. Tale quark dela podobno stvar, v delu imam generalizacijo. Supercollider je nekoliko lažje namestit kot javascript, precej bolj prijeten je za eksperimentacijo. Enostavno bi bilo narediti preprost GUI v njem.

Težave

počasno/redko pošiljanje podatkov

Če se gibalni podatki pri napajanju iz baterije zelo počasi pošiljajo, pri povezavi preko USB kabla pa kegel deluje pravilno, je verjetno baterija prazna in jo je treba napolnit.

problem pri nalaganju firmware-a

esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0

V arduino IDE nastaviš Flash mode na DIO namesto QIO.