O co jde
Kamarád, který se zabývá designem, mě oslovil, zda bych mu nepomohl s vdechnutím života do jeho návrhu balančních plošin. Samozřejně jsem souhlasil a pustil se do návrhu jak elektrické, tak softwarové části. Hlavní výzvou bylo udělat systém dostatečně odolný jak vůči počasí, tak vůči lidské blbosti. Zároveň bylo potřeba vyřešit servisování a aktualizace jak softwaru na hlavním počítači, tak firmwaru v senzorových deskách nadálku.
Senzorová síť pro hudební instalaci
V podstatě jde o velké klouby s umístěnými magnety a dostatečně blbuvzdornými destičkami pro pozorování magnetického pole a překládání jeho změn na hudební eventy. Samotné destičky tedy obsahují senzory, STM32 mikroprocesor a CAN rozhraní. Jelikož je podložek víc, jsou navzájem propojeny do sběrnice.
Na konci sběrnice je pak bedna s řídicí elektronikou, kde je počítač s linuxem, mikrotik router s modemem, zdroje a deska pro možnost jejich vzdáleného resetu, atd.
Co se týká hudebního softwaru, tak v jeho srdci je fluidsynth, do něhož se posílají na základě dynamiky pohybu různé MIDI eventy. Každá z podložek se dá separátně konfigurovat a dát jí charakteristický zvuk a způsob reakce - ať už jde o mapování tónů, schopnost kvantizovat je do akordů nebo nastavení taktového přichytávání.
Firmware a senzory
Každý node na sběrnici je založený na STM32L432. Vedle magnetometru HMC5883L firmware pro diagnostické účely měří teplotu a vlhkost z AHT20, pozoruje rovnost plošiny pomocí akcelerometru LIS3DHTR a řídí adresovatelné LED WS2812. Světelný protokol umí barevné přechody, segmenty a animace reagující na aktivní sektor.
Aby se to dalo jednoduše zpravovat, napsal jsem GTK nástroj pro komunikaci s hardwarem, který umožňuje testovat nody, nastavovat je, vytvářet kalibrace a upravovat chování převodníku na události.
Aktualizace přes CAN
Pro destičky jsem napsal bootloader, který dovoluje zařízení identifikovat, číst metadata firmwaru a nahrát novou aplikaci přímo po CAN sběrnici. Přenos kontroluje velikost, cílovou adresu a CRC, takže není nutné při změně firmwaru fyzicky připojovat programátor ke každému senzoru, vše může proběhnout klidně i přes SSH nadálku.
Co dál
Projekt jakožto celek nese název BallanceHarmony (Magnetomuzika je codename pro hardware + software) a už byl představen veřejnosti na Den Země v KovoZOO ve Starém Městě u Uherského Hradiště a tam ho také čeká ceoroční instalace. Projekt má nyní i svůj web balanceharmony.cz, který jsem kódoval podle kamarádova designu a hostuji jej u sebe.