Ommatid sfäriska Display: Elektronik, programmering och interaktivitet (6 / 8 steg)
Steg 6: PCB programmering och testning
När monterade, behövs var och en av de 19 PCB vara programmerad och testas. Först jag behövs för att programmera de fuse bitarna att köra med en extern snabb klocka och sedan programmeras med firmware som skulle svara på serial förfrågningar genom att returnera de fyra sensor värdena. Denna kod tog del arbete: sår jag sprang ADCs i full fart; som börjar nästa omvandlingen i avbrott rutin kallas av slutförandet av tidigare omvandlingen. I rutinen avbrott vände jag på lämpliga IR-LED. Efter cykling genom alla fyra IR-lysdioder och sensorer, gjorde jag det igen med IR LEDs avstängd, lagra värdena. Jag sedan subtraheras den på värdet från off värdet, vilket ger ett positivt tal proportionell mot den kände reflektansen och normaliserade av den omgivande IR.
Varje PCB hade en egen unik adress programmeras in i den. För kontroll av förstånd hade jag mikrokontroller blinka ut adressen i morsekod vid start så jag kunde se till att jag hade dem programmerade korrekt. Alla PCB var anslutna till samma RS-485 bussa med ett "tala bara-när-talat-till" protokoll: mikrokontroller sätter data på bussen bara som svar på en fråga från mottagande till dess särskild adress. Detta förhindrar bus påstående.