Ommatid sfäriska Display: Elektronik, programmering och interaktivitet (8 / 8 steg)
Steg 8: Arkitektur och programmering
Även om jag kunde har kört varje bräda lysdioder från lokala mikrokontroller, har arkitekturen valde jag LED kedjan och sensor array helt separerade. Detta var en mycket pragmatiska skäl: om av någon anledning inte kunde jag få den sensor array eller multiprocessor kommunikation fungerar bra, skulle jag fortfarande ha en perfekt stor sfäriska display! Hur som helst det fungerade allt bra. En nackdel med denna arkitektur är att det behöver en central dator att driva lysdioderna som svar på sensorn händelser (i motsats till en lokal arkitektur där varje bräda microcontroller kunde tända lokala lysdioderna utan data kommunikation krävs). Jag valde en Raspberry Pi eftersom jag visste seriell drivrutiner hantera min hög ränta och icke-standardiserade 250 kbaud kommunikationen väl, detta är inte fallet med många Linuxsystem. Till skillnad från BeagleBone har det också 4 USB-portar så att jag kunde ansluta både RS-485 seriellt gränssnitt och Fadecandy styrelsen som driver lysdioderna som en USB wifi dongle utan en hubb. Detta är avgörande som alla detta redskap så småningom måste passa i urholkade interiören i basen.
Så den allmänna arkitekturen fungerar så här: värddatorn (Raspberry Pi) upprepade gånger frågar varje PCB för dess sensor värden i en round-robin sätt. Eftersom varje PCB lyser endast dess sensor IR-lysdioder i ett frågesvar, elimineras mellan kanaler optisk överhörning. Efter tillstånd av alla sensorer är läst, LED mönstret beräknas svar och skickas via OPC till styrelsens Fadecandy.
Jag har fortfarande mycket arbete att göra på programmering och interaktivitet: just nu Ommatid körs en glorifierad testprogram skrivet i Python. I framtiden jag kommer att lägga sensor frågan och LED generation koden i separata processer för att förbättra latens, och jag kan sätta upp och botten sfärer på separata RS-485 bussar till dubbel genomströmning. Jag har också modiga idéer (och vissa framsteg i simulera) om sensing mer sofistikerade gester som nyper och globe-spinning (för trackball-liknande responsiveness) samt med anslutning diagrammet för att simulera reaktiva mönster. Om jag kan beräkna Laplacian på den trekantiga nät, kan jag simulera vågekvationen och reaktion-diffusion mönster i Svaren till touch. Jag vill också undersöka att göra Ommatid generera OSC händelser så det kan användas som en musikalisk controller. Tänk dig en föreställning om Ableton kontrolleras med en Ommatid snarare än en laptop!