Hallo
Wegens het verlengd weekend een vervroegde-blogpost over deze korte week. Terwijl Dieter zich samen met de stagiair van de IUT verder bezighoudt met het programmeren van de I2C-bus, blijven de problemen op het gebied van de camera oplopen.
De camera wordt gestuurd met een heel recent stuurprogramma, waar er nog hier en daar kinderziektes in zitten. Er zijn namelijk verschillende types van dit soort camera, wat voor problemen zorgt. De driver is in principe ontwikkeld voor het type camera met een I2C GPIO expander, die ervoor zorgt dat op de 10 datalijnen een multiplexing kan plaatsvinden.
Ons type camera echter is een type waar de GPIO expander niet op aanwezig is. We slaagden er wel al in om te communiceren met de camera, maar niet tot op het gebied waar de eigenlijke afbeeldingsgegevens overgebracht kunnen worden. Even verduidelijken:
Om een camera te laten beelden opvangen vanuit linux zijn er twee absolute vereisten:
- Een driver voor de camera zelf
- Een soort van bijkomende 'driver' die gebruikt maakt van de video4linux API in C
Het komt er dus op aan om met de functionaliteiten die in video4linux zitten, direct te communiceren met de driver van de camera door gebruik te maken van ioctl. Het proces om te kunnen 'capturen' van de camera is als volgt:
- Het videoapparaat openen
- Het videoapparaat initialiseren
- Beginnen met 'capturen'
- Loopen en gegevens verwerken
- Stoppen met 'capturen'
- Het apparaat desinitialiseren
- Het apparaat sluiten
Voor het ogenblik zitten we vast in de fase van het initialiseren. Tijdens de initialisatiefase worden er allerlei velden gelezen en geschreven van/naar de cameradriver. We kunnen zien dat er reeds verschillende stappen van het lezen/schrijven succesvol uitgevoerd worden, maar het probleem stelt zich bij het instellen van het te capturen formaat.
Gezien we voor het ogenblik niet beschikken over een gemultiplexte camera, moeten we gebruik maken van het formaat BAYER16, terwijl de gemultiplexte camera gebruik maakt van het BAYER8 formaat. Op zich zou dit geen probleem mogen zijn, maar de camera is (waarschijnlijk voorlopig) zo gecodeerd dat hij enkel met het BAYER8 formaat overweg kan.
We hebben gecommuniceerd met de schrijvers van deze drivers en zij beschikken over nieuwere versies van dit stuurprogramma waar dit probleem zich niet meer mee voordoet. Om deze te kunnen gebruiken moet er een kernel gecompileerd worden die niet specifiek voor ons platform is aangepast. Dit hebben we geprobeerd, maar zonder succes.
De enige overblijvende oplossing was dus om een nieuwe camera te bestellen die wel over deze GPIO I2C expander beschikt, zo zijn we ook iets zekerder dat er in de toekomst minder problemen zullen zijn (algemeen gezien meer ervaring met dit type). De camera kan vandaag nog geleverd worden, zoniet wordt het voor maandag.
Wij wensen u een prettig weekend,
Hannes Claerhout
Dieter Walckiers
woensdag 30 april 2008
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten