Stap 8: Architectuur en programmering
Hoewel ik kon hebben verdreven van elk bord LEDs de lokale microcontroller, heeft de architectuur ik koos voor de keten van LED en de sensor-array, volledig gescheiden blijft. Dit was een zeer pragmatische redenen: als om wat voor kon ik niet krijgen de sensor-array of multiprocessor communicatie werkt reden, Nou, ik zou nog een perfect grote bolvormige weergave! In ieder geval het allemaal goed uitgepakt. Een nadeel van deze architectuur is dat er een centrale computer om te rijden de LEDs in reactie op sensor gebeurtenissen (in tegenstelling tot een lokale architectuur waar elk bord de microcontroller de lokale LEDs met geen datacommunicatie nodig licht kan). Ik koos voor een Raspberry Pi omdat ik wist dat de seriële stuurprogramma's gesprekspartner mijn hoge rente en niet-standaard 250 kbaud goed, dit is niet het geval is met veel Linux systemen. In tegenstelling tot de BeagleBone heeft ook 4 USB-poorten zodat kon ik zowel de RS-485 seriële interface en de Fadecandy -board die de LED's, evenals een USB wifi dongle zonder een hub drijft aansluiten. Dit is essentieel aangezien al deze spullen uiteindelijk moet passen in het interieur van de uitgeholde-out van de base.
Dus de algemene architectuur als volgt werkt: de hostcomputer (Raspberry Pi) herhaaldelijk vragen elke PCB voor haar sensor-waardes in een round robin-mode. Omdat elke PCB verlichting alleen de sensor IR LEDs in reactie op een query, wordt tussen vierkanaals optische Overspraak geëlimineerd. Nadat de staat van alle sensoren worden gelezen, is het LED-patroon berekend in reactie en verzonden via OPC aan het bestuur van de Fadecandy.
Ik heb nog heel wat werk te doen op de programmering en de interactiviteit: op dit ogenblik de Ommatid draait een veredelde testprogramma geschreven in Python. In de toekomst ik zal brengen de sensor query en LED generatie code in afzonderlijke processen om latency, en kan ik de bovenkant en onderkant bollen op aparte RS-485 bussen naar dubbele doorvoer. Ik heb ook moedige ideeën (en enige vooruitgang in simuleren) over sensing geavanceerder gebaren zoals knijpen en globe-spinning (voor trackball-achtige responsiviteit) alsook met behulp van de grafiek van de verbinding voor de simulatie van reactieve patronen. Als ik de Laplaciaan op de driehoekige Maas berekenen kunt, kan ik de golfvergelijking en reactie-diffusie patronen in reactie op de aanraking simuleren. Ik wil ook onderzoeken maken de Ommatid genereren OSC gebeurtenissen zodat het kan worden gebruikt als een muzikale controller. Stel je een voorstelling waar Ableton wordt gecontroleerd met een Ommatid in plaats van een laptop!