Menu
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Styra hårdvara med Linux

Posted on 2017-03-14

Ofta så följer det med mjukvara för att styra hårdvara när man köper olika typer av produkter.
Windows? Absolut!
OS X? I bland!
Linux??
Drivrutiner är något man är van vid om man använder Windows. I princip allt kräver drivrutiner av något slag. Eftersom det inte finns några drivrutiner anpassade för Linux med prylar man köper, så är det lätt att tro att dessa inte fungerar med Linux.
Linux fungerar dock lite annorlunda. Väldigt många ”drivrutiner” är inbyggda direkt i kärnan (kernel). Det är inte ”Samsungs” drivrutin med program för att hantera utskrifter med speciella molnfunktioner och extra mjukvara som skall ”förbättra” upplevelsen av en skrivare. Utan stöd för en protokollstandard eller ett specifikt ”chip” som inte är exklusivt för just Samsungs skrivare.
Linux kan därför hantera en väldigt stor mängd hårdvara helt utan att behöva installera speciella drivrutiner, då många leverantörer använder samma chip för att exempelvis bygga nätverkskort. Det man inte får med, är garantier för att det skall fungera eller de stödprogram som också brukar följa med. Det skulle kunna vara ett enkelt videoredigeringsprogram som följer med ett videokort, eller ett program som lägger till kattansikten på alla som syns i en webbkamera. Väldigt användbart…?
Nåja. I detta inlägg tänkte jag dokumentera lite stöd för GPS och vanliga Kameror direkt i Linux där jag använder terminalen för att kommunicera med dem. Detta kan man sedan klä på med skript och användargränssnitt om man vill.

GPS

Nu för tiden är GPS med USB anslutning det vanligaste, men ofta så simuleras en seriell port på ett eller annat sätt ändå, vilket normalt följer en standard. Såvida man inte heter Garmin.
Garmin har sitt eget protokoll för att kommunicera seriellt även om många mottagare går att ställa in för andra protokoll. Linux har ett inbyggt stöd för garmin_gps men i min erfarenhet så fungerar detta ganska dåligt. Detta är ett känt problem, så många som utvecklar mjukvara för GPS bygger in eget stöd för Garmin i sina program. Därför är stödet i kärnan oftast ”avstängt” från start.
Har man ett system där man vill prova Garmin GPS och det inte verkar fungera direkt, så kan man prova att slå på stödet för Garmin i kärnan.

sudo modprobe garmin_gps

För att slå av stödet i kärnan så ger man ett motsvarande kommando.

sudo modprobe -r garmin_gps

Jag har sällan haft speciellt god framgång med Garmin GPS, så här använder jag andra lite enklare GPS mottagare i form av ”loggers” som även kan fungera som datoransluten GPS via USB (Qstarz XT-1000).
När jag ansluter denna så fungerar det direkt!
Jag använder gpsd och gpsd-clients som installeras på vanligt sätt. Sedan behöver jag faktiskt inte göra någonting då gpsd känner av att det finns en GPS på USB porten och börjar servera positionsdata till systemet.
skarmbild_2017-03-05_08-26-13
Det är bara att starta en gpsd klient som cgps eller xgps och börja titta på data.

Kamera

Nu är jag inte så intresserad av att titta på GPS data på skärmen, utan jag vill kunna georeferera bilder i kameror som inte har inbyggd GPS.
Va! Går det?
Ja det kan det göra, om den kamera man ansluter följer en viss standard där det finns stöd för positionering inbyggt. Något som kan skvallra om detta är att kameran kan fjärrstyras från en app där bilder geotaggas från telefonens positionering.
Programmet gphoto2 kan hantera över 2300 kameramodeller och de flesta av dessa via Picture Transfer Protokol – PTP (länk).
Skärmbild_2017-03-05_08-50-48.png
Den kamera jag använder går att skriva GPS information till på adress 0xd801, vilket inte verkar vara återanvändbart för andra kameramodeller, så man får forska lite.
Jag kan nu via gpsd hämta positionsdata med i mitt fall gpspipe och sätta samman den informationssträng som beskrivs i bilden ovan. Skicka strängen till kameran med gphoto2 och sedan använda ännu ett kommando via gphoto2 för att fånga en bild och ladda ner bilden via kabeln till datorn.
Den hämtade bilden har då gpstaggar i EXIF informationen.
Det finns massor med små Linuxdatorer, som RaspberryPi där det går att ansluta såväl GPS som kamera via USB, eller som till och med har inbyggd GPS. Jag har byggt ett system baserat på RaspberryPi med en knapp som fångar bilden och där samtliga bilder sparas till ett anslutet USB minne i stället för i kamerans internminne.
Man skulle kunna tänka sig att ha en liten ansluten dator med GPS som kontinuerligt skriver positionsdata till kameran, medan foton fångas som vanligt i kameran, med skillnaden att dessa bilder nu blir geotaggade.
En del kameratillverkare har egna lösningar som utför i princip detta. Exempelvis för Nikon finns det GPS mottagare som fästs i blixtskon och som ansluts med kabel till kameran. Nikons egen version kostar runt 2’500 kr så är det bara just denna funktionalitet man är ute efter så finns det kommersiella lösningar för många kameramodeller, men inte till min.

Slutsatser

Det går att göra väldigt mycket med Linuxsystem och hårdvara! Men man får jobba lite för det. Vad kan det däremot vara värt att skapa ett skräddarsytt system som löser just den där speciella arbetsuppgiften som annars hade tagit så väldigt lång tid?

  1. Synka tid i kamera och GPS
  2. Ta alla bilder
  3. Logga alla positioner
  4. Läs över bilder och loggar till dator
  5. Använd mjukvara för att ”synka” bilder mot position
  6. Hoppas att inte synkningen är fel.

Jag behöver bara utföra steg 2 i listan ovan.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Sur om Mera verktyg i QGIS
  • Anton om ”Mobile *.Geodatabase”
  • Fredrik Ekberg om Ingen är oskyldig
  • Anders Jackson om Punktmoln i QGIS 3.18
  • Anders Jackson om Punktmoln i QGIS 3.18

Arkiv

Prenumerera på Geosupportsystem

Skriv in namn och epost för att prenumerera på meddelanden från denna blogg.
Loading

geosupport

TrueNAS bygge. @fractaldesignna Define R5 är rikt TrueNAS bygge. @fractaldesignna Define R5 är riktigt trevlig att bygga i, och den sväljer väldigt mycket disk. Här skall virtualiseras både PostGis, WebODM och Geonode så småningom.
Då har jag lite att bläddra i ett tag framöver. Då har jag lite att bläddra i ett tag framöver.
YouTube video to frames. Processed in OpenDroneMap YouTube video to frames. Processed in OpenDroneMap and visualized in QGIS 3.17.
Ladda mer...

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2021 Geosupportsystem | WordPress Theme by Superbthemes.com