Tag Archive | Raspberry Pi

Bärbar GIS

I detta inlägg blir det (mest teoretiskt) resonemang kring hur man kan jobba med GIS och inhämtning när man är ute och rör på sig.

Det finns appar som Qfield, som i princop är QGIS fast på en mobil enhet. Gränssnittet är tillrättalagt, men projektfiler fungerar på den mobila enheten utan att behöva konverteras. Här kommer jag dock att fokusera på en metod och ett verktyg som inte kräver att man installerar någonting på valfri mobil enhet.

Läs mer…

Annonser

Uppdatering GeoRover

Just nu går mitt långsiktiga projekt under arbetsnamnet ”GeoRover”. Det är en plattform baserad på en RaspberryPi 3 som jag vill använda framför allt till inhämtning.

Nu har jag testat att göra enheten till en accesspunkt där den fasta nätverksanslutningen ansluter med dhcp till valfritt nätverk, och det trådlösa nätet agerar accesspunkt för klienter. Om det finns trådbunden anslutning så vidarebefordras alla anrop dit. Oavsett om det finns en anslutning eller ej så kan man gå till http://192.168.42.1 och få upp startsidan för den inbyggda webbservern.

Läs mer…

Ett längre projekt

Jag sprang på en RaspberryPi 3 för ett skapligt pris nyligen, och tänkte att jag skulle använda den i ett lite mer seriöst experimenterande. Jag kommer att testa flera olika saker, men ambitionen är att bygga in så mycket användbart som möjligt i den.

GPS? Självklart! Jag har någon enkel modul liggande jag kan prova med, men jag vill nog beställa en lite nyare också för att få upp frekvens, kanaler etc, men även få tillgång till Galileo. Men hur skall jag börja?

Läs mer…

GPS och Raspberry Pi (del 3)

Detta är som sagt den tredje delen i serien med Raspberry Pi (RPi) och GPS. I fösta delen kopplades GPS-modulen ihop med RPi:n via den inbyggda UART:en, och i andra delen användes en daemon för att läsa och koppla positionsinformation till Pythonkoden. I slutet av del två så hade jag en skräddarsydd GPS-logg som skrev data till en fil.

Jag har nu förfinat koden lite så att loggen döps automatiskt och skrivs till ett kopplat USB-minne i stället, vilket blir mer praktiskt än att behöva ta ur det lilla SD-kortet eller koppla upp nätverk och SSH hela tiden. Mitt python skript körs även automatiskt när RPi:n bootar. Allt detta är finesser som egentligen inte behövs för att lära sig något, men om det är många som vill ha en mer detaljerad redogörelse för hur detta gjordes så säg till så kanske det blir ett inlägg om detta specifikt.

I det här inlägget så kommer det dock att bli GPIO och lysdioder och knappar. Jag släpper GPS lite så att är du bara intresserad av GPIO funktionalitet med RPi, så behöver du inte stressläsa de tidigare två delarna.

Läs mer…

GPS och Raspberry Pi (del 2)

Har du inte läst gårdagens inlägg, så gör det inte så mycket. Där beskriver jag hur jag kopplar samman en GPS med en Raspberry Pi (RPi) till en seriell port via de inbyggda UART kretsarna.

Vill du göra motsvarande eller läsa om hur det gick till så skall du börja med det inlägget, men vill du bara veta hur du får in seriell GPS i Python (linux), då räcker det att hänga med här.

Läs mer…

GPS med Raspberry Pi

Jag har sedan en längre tid flera Raspberry Pi (RPi) och GPS moduler liggande, tillsammans med ett antal Arduinovarianter. Arduino har jag använt i flera projekt medan Raspberry Pi mest har blivit mediacenter kopplat till TVn. Jag gissar att det är så de flesta RPi:er tillbringar sin tid.

Nu tänkte jag då ge mig på den GPIO, eller General Purpous Input Output, stiftpanel som sitter på dessa och se hur svårt det är att använda RPi i kommande projekt.

Det kommer att bli mer än ett inlägg totalt, men om jag fyller ut hela veckan vet jag inte nu när jag börjar skriva. Hänger du med så kommer du förhoppningsvis att lära dig hur du ansluter en GPS-modul och interagerar med knappar och lysdioder, för att sedan själv skapa dina egna RPi projekt baserade på Python. Jag går inte in på detaljer i hur du ansluter via ssh, eller hur du redigerar filer i Linux, så detta bör du redan känna till, eller vara beredd på att googla lite.

I det här första inlägget så tänker jag se till att RPi:n förstår signalerna som kommer från GPS-modulen.

Läs mer…

Webbkartserver för 300 kr

Ja du behöver lite mer för att det skall fungera fullt ut, men mycket av detta kanske du redan har liggande.

raspberrypi

Till att börja med så behöver du en Raspberry Pi (Modell B), vilket är en liten men komplett dator. Det enda som egentligen behövs till är ett operativsystem och lite lagringsutrymme, vilket man löser genom ett vanligt SD-kort på några GB (jag använder ett på 4 GB). På bilden så syns min Raspberry Pi med en låda och en extra kabel som inte ingår när man köper datorn. Kabeln är bra om man vill bygga lite andra elektronikexperiment med olika kretskort, men för det här projektet så behövs den inte. En låda däremot kan vara bra men inte nödvändig.

Som alla datorer så måste man även ansluta till en skärm (HDMI) och mus/tangentbord (USB), samt en nätverksanslutning (vanlig nätverkskabel). ”Pajen” strömförsörjs med en mikro-USB kabel och den måste leverera minst 700 mA (helst 1 A). Det var det sista som var lite struligt för mig, så det slutade med att jag fick beställa en mikro-USB laddare för ändamålet.

Raspberry Pi säljs i princip överallt och om man använder någon av prisjämförelsesidorna så hittar man dem för under 300, men vanligt pris i butik är strax över 300 kronor.

Börja med att ladda hem operativsystemet från http://www.raspberrypi.org. Det finns flera att välja på och jag använder ”Raspbian” i den här instruktionen.

Filen man hämtar är packad och packas upp på vanligt sätt. Sedan behöver man skriva den *.img fil som blir resultatet av uppackningen till SD-kortet och här skiljer det sig beroende på operativsystem (sök efter ”Win32 Disk Imager” på Windows och ”PiWriter” på OS X). Här redogör jag för terminalkommandona i Linux, eftersom den beskrivna grafiska metoden inte fungerade för mig.

df -h
umount /dev/sdkort-namn_från_förra_kommandot
sudo dd bs=4M if=/sökväg/raspbian-avbildning.img of=/dev/sdkort-namn_från_första_kommandot
sync

Det första kommandot ovan listar alla enheter och partitioner där det gäller att hitta igen det anslutna SD-kortet. På min dator heter kortet ”/dev/mmcblk0”.

Kortet avmonteras med det andra kommandot och det tredje skriver diskavbildningen till kortet. Processen rensar kortet helt och det är mycket viktigt att man anger rätt sökväg, då man kan skriva över fel disk av misstag. Ingen vill väl bli av med sin primära linuxpartition.

Om det inte fungerar så kan man prova att ändra ”bs” till ”1M”, vilket kan fungera men tar betydligt längre tid.

Medan programmet kör så händer ingenting, men det är bara att vänta (för mig tog det ca 5 minuter). Om allt gick bra så kör man sista kommandot för att rensa cachen och göra det säkert att ta ut kortet.

Sätt in kortet i ”Pajen” och anslut skärm, tangentbord, nätverk och slutligen ström via mikro-USB.

pi3

Det kan ta några sekunder men sedan så bör det börja blinka lampor och text rulla på skärmen. Efter ett tag så kommer det upp en meny:

pi1

Här konfigurerar man grunderna i systemet och jag kör ettan för att använda hela SD-kortet, tvåan för att byta lösenord, trean för att bota till kommandoraden då jag inte behöver en skrivbordsmiljö och sedan går jag in i de avancerade inställningarna under åtta:

pi2

Här använder jag A2 för att bestämma vad servern skall heta (jag väljer ”piserver”) och sedan så kör jag A4 för att aktivera SSH så det går att komma åt servern från en annan dator och fjärrstyra den. Slutligen väljer jag ”Finish” och loggar in med användarnamnet ”Pi” och det valda lösenordet. Kör kommandot ”ifconfig” för att kontrollera IP-adressen och därefter ”sudo halt” för att stänga av servern så alla onödiga sladdar kan tas bort. När jag sedan återansluter strömmen så skall det bara vara nätverkskabeln kvar som är ansluten.

Från en annan dator kan jag nu ansluta med SSH exempelvis med följande kommando från en linuxdator:

ssh pi@piserver

I mitt fall fungerade det inte att ange namnet utan jag fick använda IP-adressen till servern i stället.

Det kan som vanligt vara bra att uppdatera servern med kommandona:

sudo apt-get update
sudo apt-get upgrade

Nu kan man i princip installera vad man vill på datorn, men tänk på att det inte är ett prestandamonster till dator.

Jag installerar en enkel webbserver med kommandot:

sudo apt-get install lighttpd

Jag passar även på att installera samba (apt-get install samba) och gör de konfigurationer som behövs för att komma åt webb-roten med en filhanterare.

Screenshot from 2014-05-23 21:27:05

Naturligtvis behöver rättigheten sättas på katalogen /var/www också, och tills vidare så gör jag det med kommandot:

sudo chmod 775 /var/www

Det var egentligen det hela. Resten består i att ladda upp html och javaskriptfiler till den utdelade katalogen, och sedan är det bara att ansluta med webbläsaren till servern.

Screenshot from 2014-05-23 21:46:34

Här i bilden har jag bara skapat en enkel ”index.html” fil i den utdelade katalogen och kör ett mycket enkelt Leaflet exempel med Open Street Map som enda lager.

Att tänka på är att lagringsutrymmet är begränsat men det fungerar ganska bra att hänvisa till data på andra servrar (exempelvis WMS tjänster). Eftersom javaskript körs på klienten så blir det inte heller så betungande för den lilla servern.

Ha inte för stora förväntningar på ”pajen”, men det blir svårt att hitta en server som tar mindre plats och drar mindre ström, för att inte tala om den obefintliga ljudnivån…

[EDIT]

För att aktivera PHP på webservern kör följande kommandon:

sudo apt-get install php5-common php5-cgi php5
sudo lighty-enable-mod fastcgi-php
sudo service lighttpd force-reload

Testa PHP med koden:

<?php
 phpinfo( );
?>

Det var det hela…