Firmware


Mjukvara som körs på Anoroc kan delas upp i två kategorier:

  • C, som körs på ATMega1284
  • Raspbian, som körs på Raspberry Pi W Zero

C

C-koden som körs på ATMegan är skriven i utvecklignsmiljön Eclipse.
När koden är kompilerad kan den sedan flashas till MCU:n. Normalt sett används jtag för detta, men pga den rådande Covid-19 situationen som rådde då detta projektet gjordes, fanns det ej möjlighet till en jtag.
Istället har en Arduino används för att flasha, vilket kan göras genom att först flasha Arduinon med en speciell mjukvara, som tillåter den att agera som en "flasher", där den använder SPI för att programmera den andra MCU:n.

Själva koden består av en rad olika registermanipulationer där rätt bitar sätts i respektive register.
Efter initiering av IO, initieras alla drivrutiner samt avbrottshantering.
När allt är redo går ATMegan in i en evig log där den väntar på kommandon.
Nedanstående bild visar logiken i huvudprogrammet.

C-logic


Raspbian

På Raspberry Pi:en används Raspberry Pi:s egna operativsystem Raspbian, som är en debian-baserad linux-distro.
Detta är ett operativsystem med massor av färdiga API:er för att integrera med IO på Pi:en.
Själva operativsystemet ligger på ett micro-SD, som den bootar ifrån.
För att få Raspberry Pi:en att strömma video över Wifi används dels Python, som med hjälp av picamera API, kan integrera med kameran. Datan skickas sedan över en TCP-förbindelse med hjälp av Pythons socket-bibliotek.
För att starta scriptet används systemd, som kan sköta daemons på operativsystemet, samt ett bash-script, som säkerställer att Pi:en har fått en IP-address av datorn och startar isåfall python-scriptet.


Detaljer kring koden finner den intresserade här.