Projekte

Interessante Projekte

YoungtimE – Rettung für deutsche Schönheiten

by Paul Balzer on 5. August 2019

2 Comments

Es ist eine schwierige Zeit für das Auto: Verteufelt für alle Umweltkatastrophen dieser Welt sowie vorzeitige Todesfälle einerseits, geliebt als luxuriöses Individualtransportmittel andererseits.

Fakt ist: Die Gesetzgebung, wie sinnvoll sie auch sein mag, steht fest und schreibt grüne Plaketten vor. Fahrzeuge mit roter oder gelber Plakette sind praktisch unverkäuflich. Doch gerade Fahrzeuge, welche heute als Youngtimer gelten, sind teilweise wunderschön und unter dem ganzen Einheitsbrei auf der Straße eine Augenweide. Als Zusammenfassung und Einstimmung in die Thematik: Bitte das nachfolgende Video gucken.

Autos hat man damals noch gebaut als wär’n es Kathedralen

Was also tun, um diese Schätze zu bewahren?

Continue Reading

Loading Video...

DJI Spark Wall Mount

by Paul Balzer on 20. Juli 2017

No Comments

Play Video Hide Video

Doesn’t it look great on the wall? Yeah! That’s why I created the DJI Spark wall mount. While your intelligent flight battery is recharged in the charging station, you can mount the DJI Spark safely on the wall. The wall mount is basically a hook, perfectly shaped like the intelligent flight battery, so your Spark will hang safely on this wall mount. I used Tesa™ Posterstrips or Powerstrips to attach it to the wall.

3D print your own

You can use Shapeways as 3D print provider to print your own:

  3D print it at Shapeways

Or you can download the .dae file to print it at home.

Photos

DJI Spark on the wall

DJI Spark on the wall with the wall mount

Video of the DJI Spark Wall Mount

Parametrierung eines Mixture Density Sensor Models

by Paul Balzer on 17. Februar 2016

No Comments

Im ersten Teil der Robotik-Sensor Reihe, wurde ein Look-Up Table für den Tinkerforge Ultraschall Sensor parametriert. Nun ist es möglich reale Entfernungen von diesem Sensor zu erhalten. Der Beitrag schloss mit den Worten, dass eine Normalverteilung für Sensorwerte nur im Bereich 1…2m anzunehmen ist. Etwas fortgeschrittene Filterverfahren, wie das Kalman Filter, arbeiten unter der Annahme, dass die Sensoren ein AWGN (Additive White Gaussian Noise) Signal ausgeben. Dies bedeutet, dass der Sensor den wahren Wert zwar messen kann, aber durch zahlreiche Fehlereinflüsse zusätzlich weißes Rauschen aufaddiert mit ausgegeben wird.

Wie nun also den ‘Wahren Wert’ erhalten?

Continue Reading

Parametrierung eines Lookup-Table für Tinkerforge Ultraschall Sensor

by Paul Balzer on 10. Februar 2016

1 Comment

Wer rapid Prototyping betreibt und schnell eine funktionierende Lösung auf die Beine stellen möchte oder muss, der wird an Tinkerforge (hoffentlich) nicht vorbei kommen. In meinen Augen allem Arduino Kram überlegen, besser dokumentiert, besser in jede Software zu integrieren und qualitativ oberste Stufe. Außerdem Open Hardware und Open Source, Made in Germany!

Im Angebot befindet sich neben Laserdistance-Bricklet und IR-Distance Bricklet auch ein Ultraschall Distance Bricklet, welches in der Robotik und vielen anderen Bereichen sicherlich eine wichtige Stellung einnimmt. Typischer Anwendungsfall: Entfernung zu einem Hindernis bestimmen. Verwendet man etwas ausgefeiltere Algorithmen, sollten die Messgrößen in einer Einheit sein, d.h. typischerweise in SI Einheiten.

Tinkerforge-US-Distance-Bricklet

Es gibt ein Problem: Der Rückgabewert der Bricklets ist nicht in cm oder mm oder m, sondern eine dimensionslose Größe, welche man selbst in Distanz umrechnen muss. Der Tinkerforge Support schreibt:

Das Distance US Bricklet gibt einen ‘Analogwert’ zwischen 0 und 4095 zurück. Der Rückgabewert ist nicht in cm oder mm oder ähnliches. Wir können dort leider nicht einfach eine Lookup-Table einbauen und direkt eine Entfernung zurückgeben (wie wir es z.B. bei dem Distance IR machen), da der Ausgabewert bei dem Ultraschallsensor extrem von der Versorgungsspannung abhängt. Diese ist aber leider bei jedem PC/Hub ein bisschen anders. D.h., wenn ihr das Distance US Bricklet nutzen wollt um Entfernungen in cm/mm zu messen, müsst ihr euch selber eine Lookup-Table bauen dafür.

Let’s do it…

Continue Reading

Tinkerforge Wetterstation mit RaspberryPi B+ und Huawei UMTS Stick als IoT Tweeter

by Paul Balzer on 18. August 2014

4 Comments

Internet of Things – Was is das?

Die Vision ist klar: Städte sollen vernetzt und intelligent werden. Das passiert nicht von Allein und nicht von heut auf morgen. Irgendwer muss damit anfangen. Nicht nur die großen Player wie IBM und Telekom können Städte vernetzen und ‘intelligent’ machen, auch für Einzelne ist es möglich.

Firmen wie Tinkerforge haben die Mikroelektronik so weit vereinfacht, dass man nicht mehr selbst Kondensatoren und Widerstände auswählen und zusammen löten muss, sondern fertige, funktionierende und Plug-&-Play fähige Anwendungen erstellen kann.

In diesem Beitrag möchte ich zeigen, wie man die Tinkerforge Wetterstation und einen RaspberryPi (in diesem Fall den Model B+) und einen Huawei UMTS Stick zusammen arbeiten lässt und damit auch fernab vom heimischen WLAN, eine IoT (Internet of Things) Anwendung betreiben kann.

Tinkerforge-Wetterstation-RaspberryPi-UMTS-Stick-Huawei

Beispielhaft soll die Wetterstation alle 10min die aktuellen Sensor-Daten an ihren Twitter Account @SchrebergarDDen schicken. Die Wetterstation steht dabei im heimischen – wer hätte es gedacht- Schrebergarten. :)

Tinkerforge Wetterstation

Die Tinkerforge Wetterstation ist eine Zusammenstellung einiger Tinkerforge Sensoren + Montageset (Schrauben etc.) + Gehäuse. Die Sensoren ermöglichen das Messen von

  • Luftdruck
  • Temperatur
  • Lichtintensität
  • relative Feuchtigkeit

Die Daten werden an den Tinkerforge Master Brick geschickt. Dieser kann wiederum mit einem Rechner (z.B. RaspberryPi) verbunden werden.

Tinkerforge Wetterstation mit RaspberryPi verbinden

Die Verbindung erfolgt über USB. Damit der RaspberryPi nach der frischen Installation von Linux mit den Tinkerforge Sensoren kommunizieren kann, muss noch etwas installiert werden. Der RaspberryPi sollte zur Einrichtung fertig konfiguriert und mit dem heimischen WLAN verbunden sein. Als erstes muss dem RaspberryPi ein ‘pm-utils’ Paket zur Verfügung gestellt werden. Dazu im Terminal auf dem RaspberryPi

sudo apt-get install pm-utils

eintippen. Sollte eine Meldung kommen, dass Abhängigkeiten zu ‘powermgmt-base’ oder anderen Paketen notwendig sind, einfach

sudo apt-get -f install

hinterher schieben, der Pi holt sich dann alles.

Nun muss der BrickDeamon von Tinkerforge geholt werden, welcher über alle I/O zu den Bricks verfügt. Dieser ist im Github Account von Tinkerforge zu finden und kann mit

wget http://download.tinkerforge.com/tools/brickd/linux/brickd_linux_latest_armhf.deb
sudo dpkg -i brickd_linux_latest_armhf.deb

herunter geladen und installiert werden. Möchten wir mit Python auf die Sensoren zugreifen, benötigen wir noch die Bindings für Python. Diese können einfach mit

sudo pip install tinkerforge

installiert werden. Sollte der Python Paket Manager ‘pip’ noch nicht vorhanden sein: get_pip

Nun ist der RaspberryPi prinzipiell fertig, mit allen Sensoren zu kommunizieren. Dazu am besten einfach das vorbereitete Standardprogramm von Tinkerforge laden und ausführen.

wget https://raw.github.com/Tinkerforge/weather-station/master/write_to_lcd/python/weather_station.py

Anschließend kann man mit

python weather_station.py

die Wetterstation starten und sehen, wie die Sensoren jede Sekunde eingelesen und auf dem LCD Display dargestellt werden.

weather_station

Wir haben nun alle physikalischen Werte eingelesen und auch auf dem LCD Display dargestellt. Prima!

Wenn wir die Wetterstation auch außerhalb unseres WLAN’s online bekommen wollen, benötigen wir einen UMTS Stick mit Datenkarte. Empfehlung: M2M Mobile und Huawei UMTS Stick.

Huawei UMTS Stick für RaspberryPi einrichten

Der RaspberryPi soll auch außerhalb vom heimischen WLAN mit dem Internet kommunizieren. Daher ist eine mobile Datenverbindung notwendig. Der günstige Huawei UMTS Stick ist allerdings noch etwas umzukonfigurieren, damit er vom RaspberryPi korrekt erkannt wird.

Huawei UMTS Modem auch als Modem konfigurieren

Der Huawei UMTS Stick ist hoffentlich funktionsfähig und wird vom RaspberryPi Model B+ erkannt. Testen kann man das, indem man ‘lsusb’ im Terminal eintippt.

pi@rpi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 006: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Bus 001 Device 005: ID 16d0:063d GrauTec

Der UMTS Stick von Huawei ist so konfiguriert, dass er unter Windows und Mac ein Plug&Play möglich ist incl. automatischer Konfiguration usw. Das hat den Nachteil, dass es auf dem RaspberryPi als CD-ROM Laufwerk erkannt wird. Wir müssen also dem Linux mitteilen, dass es ein UMTS Modem ist, statt eines CD-ROM Laufwerk. Dazu ist usb-modeswitch notwendig.

sudo apt-get install usb-modeswitch

Nun in der /etc/usb_modeswitch.conf die DefaultProduct ID ändern:

usb_modeswitch

Die /etc/usb_modeswitch.conf sollte dann so aussehen:

# Huawei UMTS Stick von CD-ROM nach Netzwerkkarte switchen:
DefaultVendor = 0x12d1
DefaultProduct = 0x1f01  << hier muss eure ID rein!
TargetVendor = 0x12d1
TargetProduct = 0x1506
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"

Danach steht der Huawei UMTS Stick als Netzwerkkarte zur Verfügung:

pi@rpi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 007: ID 12d1:14dc Huawei Technologies Co., Ltd.
Bus 001 Device 005: ID 16d0:063d GrauTec

Es steht nun ein zweites Ethernet Device zur Verfügung, welches vom RaspberryPi genutzt werden kann, um sich mit dem Internet zu verbinden.

pi@rpi ~ $ ifconfig
eth0      Link encap:Ethernet  Hardware Adresse b8:27:eb:6b:eb:43
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  Hardware Adresse 00:1e:10:1f:00:00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:92685 (90.5 KiB)  TX bytes:0 (0.0 B)

Ist man bisher via SSH im heimischen WLAN mit dem RaspberryPi verbunden (der Pi bekommt seine IP also vom eth0 Device), sollte man mit folgendem Schritt noch warten, bis wirklich alles konfiguriert ist und man tatsächlich unabhängig vom eigenen WLAN in’s Internet möchte:

sudo nano /etc/network/interfaces

Dort

iface eth1 inet dhcp

hinzufügen.

Tinkerforge Wetterstation mit Twitter verbinden

Um als Internet of Things Gerät bei Twitter etwas posten zu dürfen, muss man sich vorher einen Developer Account besorgen und seine Anwendung eintragen.

Wichtig ist, der App “Read+Write” Rechte zu geben und die 4 Codes zu bekommen. Wie im Video zu sehen ist, dauert das ein paar Sekunden. Diese 4 Codes (für OAuth) müssen nun von Tweepy, dem Twitter Client für Python, genutzt werden, um sich zu authentifizieren.

Tinkerforge Wetterstation um Twitter Funktionalität erweitern

Hier kann man einfach das um die Twitter Funktionalität erweiterte Tinkerforge Skript nutzen:

git clone https://gist.github.com/2c96d807242ab7338ba3.git weather_station

Nun hat man die weather_station_tweeter.py auf dem RaspberryPi und kann diese editieren. Nicht vergessen die Authentication Codes für eure Twitter App in der init_twitter() Funktion einzutragen!

Die weather_station_tweeter.py muss noch mit

chmod +x weather_station_tweeter.py

ausführbar gemacht werden, sodass diese vom System gestartet werden kann.

Nun gibt es viele Möglichkeiten das Python Skript automatisch starten zu lassen. Eine einfache ist das Starten via Cronjob. Dazu folgendes ausführen:

sudo crontab -e

Darin die Pfadumgebung für den Cronjob eintragen

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

und schließlich den Befehl, der das weather_station Python Script jedes mal nach dem Booten startet:

# m h dom mon dow command
@reboot su -c 'python /home/pi/weather_station/weather_station_tweeter.py 2>&1 >> /home/pi/weather_station.log' -s /bin/sh pi

Dieser Eintrag beauftragt den Pi, jedes mal nach dem Neustart das Python Skript als User ‘pi’ auszuführen und die Log-Ausgaben in eine weather_station.log Datei zu schreiben.

Fertig

Die ganzen Schritte wirken nur niedergeschrieben so kompliziert. Wenn man etwas geübt mit Linux und den ganzen Befehlen ist, dann ist der größte Teil der Dinge, die hier aufgeschrieben sind, ohnehin bereits eingerichtet oder logisch und nicht extra einer Erwähnung wert.

Das Resultat ist eine alle 10min twitternde Wetterstation:


Fazit

Zufällig passt ein RaspberryPi und ein Huawei UMTS Stick genau in die Tinkerforge Wetterstation und somit kann diese auch ohne das heimische WLAN als Internet of Things Anwendung genutzt werden.

Tinkerforge-Wetterstation-RaspberryPi-02

RasbperryPi Model B+ und Huawei UMTS Stick in der Tinkerforge Wetterstation: Passt vom Bauraum her, lediglich die Bohrungen des RasPi sind etwas zu klein für die Schrauben von Tinkerforge, weshalb das auch ohne Muttern hält.

Die Nutzung der Sensoren ist – wie von Tinkerforge gewöhnt – einfach und in beliebiger Programmiersprache möglich. Hier wurde eine Beispielimplementierung in Python gezeigt, welche maßgeblich auf dem Skript von Tinkerforge beruht, nur um die Twitter Funktionalität erweitert wurde.

Prinzipiell kann natürlich jede Web-Anwendung mit den Daten gespeist werden, nicht nur Twitter.

Kritik: Die gemessene Temperatur ist immer ein paar Grad (2-10°C) zu warm, da es genau genommen die Temperatur des Barometer-Sensor-Chips ist, welcher prinzipbedingt etwas wärmer als die umgebende Luft ist. Die gemessene Helligkeit ist im schwarzen Gehäuse mit Sicherheit auch nicht so ganz repräsentativ. Das sollte man bedenken.

Alles in allem ziemlich gut, um sich dem Thema zu nähern.

Und nun?

Da der RasbperryPi nun ein Teil des Internets ist, kann er sich beispielsweise

Den Anwendungsmöglichkeiten ist keine Grenze gesetzt. Außer durch den Datentarif der GSM Karte. :(

Projekt: KinderWagenRakete

by Paul Balzer on 17. März 2011

2 Comments

Junge Familien kennen das Problem: Das Kind schläft 1h im Wagen, in dieser Zeit muss man schnell im Umkreis der Wohnung zu den Einkaufsstätten gehen um die täglichen Besorgungen zu erledigen. Da man das täglich macht, kehrt schnell Langeweile ein. Weiter gelegene Geschäfte erreicht man nicht, weil sich durch die Schrittgeschwindigkeit in der einen Stunde nur ein bestimmter Radium um die eigene Wohnung ergibt. Auch mit den anderen Muttis in der Stadt einen Latte trinken gehen ist schlecht, weil die Bahnfahrt ja schon 1/2h Zeit in Anspruch nimmt. Man müsste also die Fahrtgeschwindigkeit von Mutter+Kind+Kinderwagen erhöhen, den Kinderwagen aber im ursprünglichen Zustand belassen. Die Lösung:

Ansicht-Kritzelfrei

Continue Reading

Interessantes Projekt

by Paul Balzer on 8. Oktober 2010

No Comments

Beruflich beschäftige ich mich gerade mit einem Projekt, welches den Studenten der Hochschule für Technik und Wirtschaft Dresden in Zukunft ermöglichen soll die schwer fassbare Materie der Fahrdynamik an einem realen Fahrversuch zu erleben. Da auch Versuche im Grenzbereich der Fahrphysik durchgeführt werden sollen, wird das Fahrzeug im Maßstab 1:5 aufgebaut. Neuigkeiten gibt es im Projektblog unter www.iSuPIA.de/blog

Akkuschrauberantrieb

by Paul Balzer on 15. Juni 2009

7 Comments

Inspiriert durch das Akkuschrauberrennen der Fakultät Gestaltung der HAWK Hildesheim kam die Idee zum Umbau eines Tretautos auf Elektroantrieb. Mit Hilfe eines handelsüblichen Akkuschraubers soll der manuelle Antrieb auf Elektro umgebaut werden. Der zweijährige Pilot sollte seine Freude haben…

Continue Reading