Go to file
Jurij Podgoršek a58289cddc Dopolnitev dokumentacije 2024-02-01 01:26:20 +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
IMUIdentifier Dopolnitev dokumentacije 2024-02-01 01:26:20 +01:00
kontroler
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 Urejene slike 2024-02-01 01:02:05 +01:00
web Popravljeni duhovi, refresh vseh 2023-06-28 19:04:11 +02:00
.gitignore
2023-06-11.txt Refaktoriranje, fraktalni objekti, pedalka 3d modeli, WIP kontrole 2023-06-16 16:32:28 +02:00
LICENSE
README.org Dopolnitev dokumentacije 2024-02-01 01:26:20 +01:00
bitwig.js
kegel.js
kegel2.js Brez debuga hvala 2023-06-21 19:24:28 +02:00
kegelj.scd
mididebug.js
osc_graf.py
oscplot.py
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
scplot.scd
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
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.

/g1smo/kegel/src/branch/main/slike/2022-11-27_kegel.jpg
Prototip kegla
/g1smo/kegel/src/branch/main/slike/IMG_20230618_131926.jpg
Narejen kegel spredaj
/g1smo/kegel/src/branch/main/slike/IMG_20230618_131933.jpg
Narejen kegel zadaj

Elektonske povezave

MPU9255 ESP32
VCC 3.3v
GND GND
SCL 22
SDA 21

Baterijski priklop omogoča baterijski ščit 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 ščit moramo pazit na polariteto; barve baterijskih kablov se ne skladajo nujno s +/- poli na ščitu, napačen priklop lahko skuri tuljavo.

/g1smo/kegel/src/branch/main/slike/IMG_20230618_131305.jpg
Kegel znotraj

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

/g1smo/kegel/src/branch/main/slike/IMG_20230618_130022.jpg
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.

Napačen gibalni senzor

Rado se zgodi, da naročen senzor ni MPU-9255, ampak MPU-6500 ali MPU-6150. Problem teh dveh je, da sta 6-osna in tako ne vključujeta magnetometra. Tako ni mogoče določiti gravitacijske osi in postanejo odčitki pospeškov za naš željen namen precej neuporabni. Gibalni senzor nam pomaga identificirati ta skica.

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.