Jurij Podgoršek f22706916e | ||
---|---|---|
3d | ||
ArduinoMagCal | ||
kontroler | ||
osc32_9255_rtimulib_espnow | ||
osc32_espnow_sprejemnik | ||
skripte | ||
slike | ||
web | ||
.gitignore | ||
2023-06-11.txt | ||
LICENSE | ||
README.org | ||
bitwig.js | ||
kegel.js | ||
kegel2.js | ||
kegelj.scd | ||
mididebug.js | ||
osc_graf.py | ||
oscplot.py | ||
package-lock.json | ||
package.json | ||
requirements.txt | ||
scplot.scd | ||
server.js | ||
server.scm | ||
test.py | ||
tik.wav |
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.
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.
USB priklop baterijskega shielda je speljan za rob kegla za lažje polnjenje preko robustnejšega vtikača USB tipa B.
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)
-
en kegel samo deformacija, mogoce malo zoom pulz na zogico,
- nojz (glasba, rocno?)
- BREZ zogic
- BREZ dodatnih
- dva kegla
- ena zogica
- 2 kegla + zogica
===
VKLOP LUCI ====
reset (calibrate, zoom blizu) (nojz stran) (vklopimo zogice)
- komad: ena zogica!
- tri zogice
-
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
.