Zugriff auf die serielle Konsole des Lego Mindstorms EV3

Zugriff auf die serielle Konsole des Lego Mindstorms EV3

Leider gibt es keine wirklich simple Zugriffsmethode auf die serielle Konsole („serial console“) des EV3 Bricks. Ich hätte mir hier z.B. die Möglichkeit gewünscht, dass der EV3 sich mit dem Mini-USB-Anschluss als serielles Gerät am Computer anmeldet. Dem ist leider nicht so. Über einen kleinen Umweg und mit etwas basteln gibt es aber zum Glück doch eine Möglichkeit. Mithilfe eines USB-to-Serial- / UART-Adapters erfolgt der Zugriff ganz ähnlich wie das bei der seriellen Schnittstelle des Raspberry Pi der Fall ist.

Weiterlesen

[Ubuntu] OpenStreetMap: OSM-Daten mithilfe von osm2pgsql in PostgreSQL / PostGIS importieren

Erstmal wird osm2pgsql installiert, wenn man ein halbwegs aktuelles Ubuntu verwendet, geht das einfach über die Paketquellen. Wer aber zum Beispiel eine zu alte Ubuntu- oder Debian-Version einsetzt, sollte osm2pgsql stattdessen lieber wie auf der Github-Seite beschrieben selber kompilieren.

sudo apt-get install osm2pgsql

Jetzt legen wir eine Datenbank mit dem Namen osm an und konfigurieren die PostgreSQL-Datenbank für PostGIS (dafür verwenden wir jeweils den Standardnutzer „postgres“):

createdb osm --username=postgres
psql --username=postgres --dbname=osm --command="CREATE extension postgis;CREATE extension hstore;"

Falls dabei der Fehler

createdb: could not connect to database template1: FATAL:  Peer authentication failed for user „postgres“

auftreten sollte, bearbeiten wir noch die folgende Konfigurationsdatei:

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

Dort suchen wir dann nach der folgenden Zeile:

local   all             postgres                                peer

…und ändern sie folgendermaßen:

local   all             postgres                                md5

Danach wird noch schnell PostgreSQL neu gestartet:


sudo service postgresql restart

Jetzt sollte das obige Kommando durchlaufen.

Zu guter Letzt können wir die OpenStreeMap-Daten importieren. Dabei wird <number_of_cores> durch die Anzahl der verfügbaren Prozessorkerne und <osm_file> durch den Dateinamen der *.osm.pbf-Datei ersetzt. <cache_size> sollte bei einem System mit >= 32 GiB RAM durch 24000 ersetzt werden. Wenn weniger RAM vorhanden ist, durch ca. 75% des verfügbaren RAMs. Sollte eine Fehlermeldung ausgegeben werden, dass nicht genügend RAM für die Sparse-Nodes reserviert werden konnte, sollte man hier mit Trial-and-Error einfach ein wenig kleinere Werte ausprobieren.


osm2pgsql -c -S /usr/share/osm2pgsql/default.style --slim -d osm --number-processes <number_of_cores> -C <cache_size> --username postgres -W <osm_file>

(-d gibt den Datenbanknamen an. Oben haben wir ja bereits die Datenbank osm für unsere Zwecke angelegt, daher verwenden wir hier auch osm)

Die Ausführung kann nun einige Stunden dauern. Wenn hierbei folgende – oder eine ziemlich ähnliche – Ausgabe erfolgt, kann man von einer erfolgreichen Ausführung ausgehen:

Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
NOTICE: table „planet_osm_point“ does not exist, skipping
NOTICE: table „planet_osm_point_tmp“ does not exist, skipping
Setting up table: planet_osm_line
NOTICE: table „planet_osm_line“ does not exist, skipping
NOTICE: table „planet_osm_line_tmp“ does not exist, skipping
Setting up table: planet_osm_polygon
NOTICE: table „planet_osm_polygon“ does not exist, skipping
NOTICE: table „planet_osm_polygon_tmp“ does not exist, skipping
Setting up table: planet_osm_roads
NOTICE: table „planet_osm_roads“ does not exist, skipping
NOTICE: table „planet_osm_roads_tmp“ does not exist, skipping
Allocating memory for dense node cache
Allocating dense node cache in one big chunk
Allocating memory for sparse node cache
Sharing dense sparse
Node-cache: cache=3000MB, maxblocks=384001*8192, allocation method=11
Mid: pgsql, scale=100 cache=3000
Setting up table: planet_osm_nodes
NOTICE: table „planet_osm_nodes“ does not exist, skipping
Setting up table: planet_osm_ways
NOTICE: table „planet_osm_ways“ does not exist, skipping
Setting up table: planet_osm_rels
NOTICE: table „planet_osm_rels“ does not exist, skipping

Die „Notices“, dass eine bestimmte Tabelle nicht existiert und daher übersprungen wird, rühren daher, dass osm2pgsql zuerst versucht, die Tabelle zu droppen, bevor es diese neu anlegt. Wird der Import aber zum ersten Mal vorgenommen, existiert die entprechende Tabelle aber noch nicht und PostgreSQL gibt diese Warnung aus – also alles im Grünen Bereich 🙂

Erfahrungen mit Radon Bikes / Fahrrädern bzw. H&S Bike-Discount

Der Name Radon als Fahrradhersteller taucht in Internet-Foren immer wieder auf. Grund hierfür ist vor allem das gute Preis-Leistungs-Verhältnis: Vielfach muss man für ähnlich hochwertige Ausstattungsvarianten (z.B. Deore oder Deore XT statt Alivio oder Acera) bei anderen, „namenhaften“ Fahrradherstellern im Vergleich mindestens 100 Euro mehr hinlegen. Wer also auf der Suche nach einem neuen Fahrrad ist, sollte vielleicht nicht nur einen Blick auf Cube, Stevens und Co. werden, sondern vielleicht auch mal auf die Radon Bikes Webseite (welche im Übrigen verglichen mit manchen anderen Herstellern schön übersichtlich ist). Aber was hat es mit Radon eigentlich genau auf sich?

Weiterlesen

Mobilfunkvertrag über Amazon mit vorläufigem Personalausweis abschließen

Ich wollte mir jetzt kürzlich ein neues Smartphone bei Amazon kaufen. Neuerdings bietet Amazon auch Telekom-Mobilfunkverträge direkt zu den Handys mit an. Dazu kommen diverse Vergünstigungen im Vergleich zum Abschluss des Vertrages direkt bei der Telekom. Doof nur, wenn man keinen gültigen Personalausweis mehr hat…
Weiterlesen

Raspberry Pi: IPython mit IPython-Notebook installieren

Raspberry Pi: IPython mit IPython-Notebook installieren

An der Fachhochschule bekommen wir derzeit eine kleine Einführung in Python. Der Professor hat uns für das Testen und Schreiben von Python-Programmen den Python-Interpreter IPython empfohlen. Sehr interessant ist dabei die Funktion des „IPython-Notebooks“: Es wird ein kleiner Webserver bereitgestellt, der eine moderne Weboberfläche zum schnellen testen und dokumentieren von Python-Programmen bietet – auf jeden Fall eine sehr interessante Sache, das Ausprobieren lohnt sich. Da ich den Raspberry Pi eh immer laufen habe, wollte ich nun IPython darauf installieren, um nicht jedes Mal den IPython Webservice neu starten zu müssen, wenn ich etwas rumprogrammieren möchte. Diese Anleitung gilt nur für Debian-basierte Raspberry-Pi-Distributionen, also z.B. Raspbian oder Raspbmc.
Weiterlesen

Seezeit Mensa: Speisepläne per Python abrufen

Bevor ich diese Liste mit URLs für den einfachen Abruf des Speiseplans in Form von XML-Dokumenten gefunden hatte (was sicherlich die elegantere Lösung ist – so sind dort auch die Preise enthalten, was auf der Webseite nicht der Fall ist), hab ich ewig versucht die Daten per einfachem POST-Request abzurufen: Denn auf der Seezeit Speiseplan-Webseite werden die Daten ganz einfach per AJAX abgerufen… „Das kann doch nicht so schwer sein“, hab ich mir gedacht… Übrigens: Dieser Beitrag dürfte auch für eine ganze Reihe anderer Mensen gelten, da das Studentenwerk Seezeit hierbei auf einen externen Dienstleister zurückgreift: Die infomax GmbH – und die entsprechende URL, auf der die Speisepläne gehostet werden lautet http://www.max-manager.de
Weiterlesen

Raspberry Pi: Raspbmc – Regionseinstellungen („set locales“)

Wenn man sich zum Beispiel erstmalig über SSH beim Raspberry Pi in Raspbmc einloggt (siehe hier), wird man aufgefordert, die „locales“ zu setzen, also die Regionseinstellungen vorzunehmen. Das ist eigentlich ganz einfach – wenn man weiß, was genau der Raspberry Pi hier eigentlich von einem will.
Raspberry Pi: Set Locales
Weiterlesen