Auf Wunsch einiger Leser wird es zu einer Zusammenarbeit von developer-blog.net und canox.net kommen. Geplant ist eine mehrteilige Artikelserie in der wir (Steven und ich) gemeinsam über ein Thema berichten. Was wir aber noch brauchen sind Vorschläge zu Themen. Wir haben bereits ein paar Ideen, k...
Zusammenarbeit mit canox.net
Samstag, 12. September 2015
Zusammenarbeit mit canox.net
Dienstag, 8. September 2015
Offizieller Raspberry Pi Touchscreen
Für den Raspberry Pi wurde nun endlich ein offizieller Raspberry Pi Touchscreen angekündigt. Diese Meldung erscheint zwar im ersten Moment etwas überraschend, jedoch besitzen die Raspberry Pi Boards bereits seit der ersten Generation einen Ausgang für ein Display. Was ist nun aber so neu und war...
Offizieller Raspberry Pi Touchscreen
Freitag, 28. August 2015
Analytics Sexyali Referrer-Spam
Bei der routinemäßigen Überprüfung meines Blogs auf Google Analytics habe ich einen merkwürdigen Sexyali Referrer entdeckt. Laut Analytics mehrere Besucher auf meinen Blog mit dem Suchbegriff “sexyali.com“. Das fand ich sehr merkwürdig, gibt es den Begriff doch gar nicht auf developer-blog.net. Eine Recherche brachte interessante Ergebnisse…
Analytics Sexyali Referrer
Ich war sehr erstaunt, dass 57 Besucher mit dem Suchbegriff “sexyali.com” auf meinen Blog gekommen sein sollen, vor allem weil ich diesen Text niemals verwendet hatte. Etwas stutzig machte mich das schon. Also gleich mal Google um Rat gefragt. Es stellte sich schnell heraus, dass es sich hier um ein bereits bekanntes Problem handelte.
Das Problem im Detail
Die Webseite sexyali.com (ich erspare mir bewusst die Verlinkung auf die Seite!) versucht durch Spam gezielt Analytics Traffic auf beliebigen Seiten zu erzeugen. Diesen Angriff bezeichnet man als Referrer-Spam. Diesen Begriff kannte ich bis vor kurzem noch gar nicht. Dadurch soll die eigene Seite beworben und nebenbei das Ranking bei den Suchmaschinen verbessert werden. Das wirkt sich aber negativ auf die eigene Seite aus, da Traffic entsteht der mit unter durch eine kurze Zeitspanne auf der eigenen Seite und einer hohen Absprungrate glänzt. Dies kann zu einer schlechteren Bewertung bei Google führen.
Mein Analytics Account zeigte folgendes Bild:

So dramatisch waren bei mir die Auswirkungen glücklicherweise nicht. Die Absprungrate war nicht schlechter als bei manch anderen Schlüsselwörtern und die Zeit, die der Spambot auf der Seite war, war auch recht gut. Trotzdem wollte ich keine verfälschten Ergebnisse.
Maßnahmen gegen Spam und dem sexyali Referrer
Die Reaktion gegen diesen Spam Traffic ist recht einfach. Man kann über die .htaccess Datei Restriktionen für die eigene Seite erstellen, man denke an einen Verzeichnisschutz. Durch den folgenden Code verbietet man dem sexyali.com Bot den Zugriff auf die eigene Seite:
### sexyali den Zugriff verweigern
RewriteCond %HTTP_REFERRER sexyali.com [NC,OR]
RewriteCond %HTTP_REFERRER sexyali.com
RewriteRule .* - [F]
Diesen Code braucht man nur in der .htaccess Datei ergänzen und der Spam sollte ein Ende haben.
Fazit
Als Webseitenbetreiber sieht man mehreren Gefahren ins Auge. Neben bösen Hackern sind auch Bots unterwegs die durch Spam Daten verfälschen. Die sexyali Referrer Spam Angriffe waren mein erster Kontakt damit. Man sollte immer einen wachsamen Blick auf Google Analytics oder alternative Software haben und Unregelmäßigkeiten sofort nachgehen. Oft ist die einzige Möglichkeit gegen Spam oder andere Angriffe ein Block einer IP Adresse oder einer Domain.
Mein Tipp: behaltet eure Analytics Daten im Auge!
Habt ihr auch schon einmal Kontakt mit einem Referrer-Spam Bot gehabt? Wie habt ihr reagiert?
Analytics Sexyali Referrer-Spam
Mittwoch, 26. August 2015
Raspberry Pi BSD - raspbsd
Unter dem Namen raspbsd sind vorkonfigurierte FreeBSD 11 Images für den Raspberry Pi und dem Raspberry Pi 2 entstanden. Diese kann man auf einer eigenen Webseite herunterladen. In meinem FreeBSD Artikel habe ich euch bereits gezeigt, dass eine manuelle Installation funktioniert, die Konfiguration aber alles andere als einfach ist. Unter FreeBSD könnt ihr bekannte Desktopsysteme von Linux wie LXDE oder Xfce.
Raspberry Pi BSD – raspbsd
FreeBSD ist ein UNIX ähnliches Betriebssystem wie auch Linux. Auf einer älteren BSD Version basiert das bekannte Mac OSX Betriebssystem von Apple. FreeBSD wird unabhängig und Open Source weiterentwickelt und erscheint aktuell in der Version 11. Bei FreeBSD wird besonders darauf geachtet GNU kompatibel zu ein und das System komplett ohne Closed Source Software aufzubauen. Von der Lizenz ist FreeBSD weniger restriktiv als Linux, sie erlaubt auch die Weiterentwicklung des Systems ohne den Source Code auch offen legen zu müssen. Das hat dazu geführt, dass es auch für kommerzielle Systeme einsetzbar ist, die Playstation 4 basiert auf diesem System.
Raspberry Pi Images
Auf der neuen offiziellen Projekthomepage findet man 2 unterschiedliche Images:
- Raspberry Pi B und B+
- Raspberry Pi 2
Für beide Versionen gilt, dass es sich hier um einen recht frühen Status handelt. Das Image ist fertig konfiguriert und ist damit voll funktionstüchtig, es ist aber nur eine Basis aus Paketen installiert. Derzeit steht nur eine Konsole zur Verfügung, der Autor verspricht aber recht bald auch einen grafischen Desktop nach zu liefern. Besonders interessant ist, dass es offenbar auch Versionen für den Banana Pi und dem BeagleBone geben soll, derzeit ist aber die Homepage recht sparsam mit weiteren Informationen dazu.
Fazit
FreeBSD ist ein tolles Betriebssystem, da man versucht zu 100% auf Open Source Basis zu setzen und damit ein wirklich freies System zu entwickeln. Besonders interessant ist das für Mac OSX Benutzer, die sehr viele Gemeinsamkeiten mit FreeBSD entdecken werden und ebenfalls für Linux Benutzer, da FreeBSD sehr viele Linux Pakete auch 1:1 installieren und verwenden kann. Das führt soweit, dass bekannte Linux Desktops auch unter FreeBSD laufen.
Die aktuellen Bestrebungen das System unter dem Namen raspbsd auf den Raspberry Pi zu bringen sind lobenswert und ich hoffe das Projekt wird auch weitergeführt und die Hardware irgendwann auch zu 100% unterstützt.
Raspberry Pi BSD - raspbsd
Dienstag, 25. August 2015
Raspberry Pi Roboter Einkaufsliste
Auf Anfrage mehrere Leser habe ich eine Raspberry Pi Roboter Einkaufsliste erstellt. Diese Liste soll euch als Anhaltspunkt dienen und zeigen, welche Produkte ich mir für diese Artikelserie zugelegt habe und wie viel euch das kosten würde. Die Liste ist lediglich eine Zusammenfassung aller Dinge die ich mir nach Recherche und Produktvergleich zugelegt habe. Es gibt vermutlich jeweils billigere oder bessere Produkte – diese Liste stellt deshalb keine Bewertung dar. Wie zufrieden ich mit den jeweiligen Produkten bin könnt ihr in meiner Raspberry Pi Roboter Artikelserie nachlesen.
Raspberry Pi Roboter Einkaufsliste
In meiner Kindheit habe ich immer davon geträumt mir einmal einen eigenen Roboter zu bauen. Lego Technik Sets waren da schon recht spannend, glücklich wurde ich damit aber nie. Als ich den Raspberry Pi Computer zum ersten Mal in der Hand hielt wusste ich, damit könnte man perfekt einen Roboter steuern. Viele Monate sind seither vergangen und immer wieder habe ich nach Teile, Bausätze und Tutorials gesucht um endlich selber ein Projekt zu starten. Anfang 2015 war es so weit. Ich habe mir die ersten Teile bestellt.
Einkaufsliste
Die meisten Produkte beziehe ich direkt von robotshop.com. Leider gibt es kaum andere Shops die so ein passendes und umfassendes Sortiment bereitstellen. Ich war mit dem Ablauf der Bestellung sehr zufrieden. Ich hatte sogar mit dem Support Kontakt, da ich meine erste Bestellung stornieren lassen habe.
- Cherokey 4WD Arduino Mobile Platform
dieser Bausatz ist die Basis meiner weiteren arbeiten. Der Bausatz ist vom Preis in der mittleren Kategorie. Es gibt billigere komplett aus Plastik. Ich habe mich für diesen entschieden. da alles aus Metall besteht und das Design sehr ansprechend ist. Außerdem hat das Board bereits alle nötigen Motor Treiber dabei, Pi anstecken reicht um den Roboter in Betrieb zu nehmen. Einzig die Qualität der Räder und Motoren kann man bemängeln. Die Motoren sind sehr laut und die Plastikräder halten nicht perfekt. Zum Basteln und Testen aber ausreichend. - female-female Jumper
zum Anschluss vom Raspberry Pi an das Cherokey Board benötigt man female-female Steckdrähte. Diese habe ich mir separat gekauft. Diese Drähte kann man für den Raspberry Pi immer gebrauchen! - Abstandsbolzen
mit Abstandbolzen befestigt man den Raspberry Pi am Board. Diese Bolzen kann man sehr gut verwenden um Platinen zu stacken, also übereinander zu montieren. Solche Bolzen gibt es in unterschiedlichen Höhen. - Raspberry Pi
natürlich verwende ich auch einen Raspberry Pi als Steuerzentrale meines Roboters. Falls ihr noch keinen habt könnt ihr euch diesen bei den unterschiedlichsten Stores kaufen. Ich verwende einen Raspberry Pi B+, besser wäre vermutlich sogar der Raspberry Pi 2 – der benötigt nur leider etwas mehr Energie. - Powerbank
ich verwende zum Betrieb vom Raspberry Pi eine 10000mAh Powerbank. Ich habe bereits gezeigt, dass man damit den Raspberry Pi bis zu 19 Stunden betreiben kann. Meine ist leider zu groß und passt nicht auf das Board und muss deshalb zwischen den Achsen angebracht werden. Eventuell findet ihr da einen kleineren Akku.
Neben diesen Dingen benötigt man auch noch Werkzeug. Ein kleines Set mit Schraubenziehern und Zangen ist ideal. Außerdem muss man die Kabel der Motoren anlöten, ich habe mir extra dafür eine Lötstation + Lötzinn zugelegt. Ich konnte bis dahin noch nicht löten, mittlerweile macht mir das wahnsinnig viel Spaß!
Das ist noch nicht alles…
Ich habe mir zusätzlich noch einige andere Produkte zugelegt mit denen ich die Basisfunktion (eine beweglicher Roboter) noch erweitern möchte, beispielsweise durch eine Kamera:
- Dagu Mini Pan and Tilt Kit
das ist ein kleiner Turm der dreh- und schwenkbar ist. Auf diesen möchte ich die Pi Kamera montieren um so frei drehbare Aufnahmen zu machen. Der Aufsatz passt perfekt in die hintere Öffnung der Dachplatine vom Cherokey. - Raspberry Pi Kamera
für Video und Bild Aufnahmen gibt es im Zusammenhang mit dem Raspberry Pi kaum etwas besseres als die Pi Kamera. Man hat dabei sogar die Alternative mit einem Modell, dass keinen IR-Filter hat und somit auch Aufnahmen in Dunkelheit erlaubt (Nachtsicht). Ich habe mir zwar das Standardmodell mit IR-Filter bestellt, werde mir aber sicher noch das andere Modell zulegen. - Bright White and IR Camera Light for Raspberry Pi
damit in der Nacht und bei schlechtem Licht gute Aufnahmen gelingen habe ich mir den Aufsatz zugelegt. Damit beleuchtet die Kamera aktiv die Umgebung. Achtung: das ist ein Bausatz. Man muss die LEDs selber auf die Platine löten. Ich hab das aber auch als Löt-Anfänger gut hin bekommen.
Ein weiterer wichtiger Punkt sind Sensoren. Mein Roboter soll einmal vollkommen autonom agieren können, dafür muss er ein gutes Bild seiner Umgebung haben. Zu diesem Zweck gibt es Sensoren zur Abstandsmessung. Neben dieser Hilfestellung bei der Navigation soll der Roboter auch Daten sammeln und analysieren. Ein recht einfacher Ansatz sind dabei allerhand Daten die über Sensoren gemessen werden können. Der Roboter soll ähnlich wie die Marsroboter Messwerte sammeln und schicken. Einfach zu ermittelnde Daten sind dabei Wetterdaten (Temperatur, Luftfeuchtigkeit, Luftdruck, …):
- Ultraschall Sensor
mit dem Ultraschall Sensor kann man die Entfernung zu Objekten bestimmen und somit auf Hindernisse reagieren. - Infrarot Sensor
alternativ zum Ultraschall Sensor kann man auch einen optischen Abstandsensor verwenden. - Luftdruck Sensor
ich habe bereits 2 unterschiedliche Luftdruck Sensoren vorgestellt mit denen man sogar die Temperatur bestimmen kann. - Temperatur Sensor
vermutlich die wichtigste Messung wenn es um das Wetter geht. Es kann recht Spannend sein, wenn man den Roboter in die Sonne steuert und dann eine ansteigende Temperatur messen kann. - Luftfeuchtigkeit Sensor
auch die Luftfeuchtigkeit kann man mittels eines Sensors recht einfach bestimmt.
Fazit
Meine Liste beinhaltet schon eine recht ausführliche Aufstellung von Hardware die man für einen Raspberry Pi Roboter verwenden kann. Es kommt sehr darauf an, wofür man den Roboter letztendlich einsetzen möchte. Für mich ist vor allem die Programmierung interessant, deshalb möchte ich besonders viele Daten sammeln können und darauf reagieren beziehungsweise diese auswerten. Die Liste dient euch hoffentlich als Inspiration, ich gebe zu den einzelnen Teilen bewusst keine Wertung ab – ich habe keinen Vergleich. Es gibt bestimmt bessere und billigere Teile. Falls ihr welche findet bitte als Kommentar posten.
Habt ihr Anregungen und Ideen wie man diese Liste erweitern oder verbessern kann? Was habe ich vergessen beziehungsweise was gehört unbedingt noch auf diese Liste?
Raspberry Pi Roboter Einkaufsliste
Donnerstag, 20. August 2015
Roboter bewegen für Anfänger
Im “Roboter bewegen für Anfänger” Kurs geht es um die Basissoftware des Roboters. In einem Python Skript legen wir den Grundstein für alle folgenden Funktionen und Einsatzbereiche des Roboters. Ich zeige euch Schritt für Schritt was man alles machen muss. Als Ergebnis erhaltet ihr ein Programm über das man den Roboter über die Tastatur wie ein ferngesteuertes Auto steuern kann.
Roboter bewegen für Anfänger
Zugegeben, einen Roboter zu bewegen gehört zu den Paradedisziplinen des Programmierens. Man denke an das Google Driverless Car. Die Entwicklung solcher autonomer Systeme dauert Jahre und wird auf universitärer Ebene oder von großen Konzernen gemacht. Andere tolle Beispiele sind die Marsrover der Nasa. All diese Beispiele zeigen wie es geht.
Bewegungstheorie
Mein Roboter hat 4 Räder, zwei auf jeder Seite. Diese sind fix montiert und können sich nur in zwei Richtungen bewegen. Den Roboter können wir deshalb nicht wie ein Auto steuern, es fehlt die Lenkstange – dafür wäre ein fünfter Motor notwendig. Wir bewegen den Roboter deshalb wie folgt:
- vorwärts fahren
alle 4 Räder bewegen sich vorwärts. Das heißt alle 4 Motoren drehen sich in die selbe Richtung. Achtung: So trivial die Bewegung nach vorwärts auch erscheint, solange diese nicht funktioniert bracht man keine andere Bewegung implementieren. Warum? Die 4 Motoren müssen sich in die selbe Richtung bewegen aus der Sicht vom Chassis. Tatsächlich drehen sich die 2 Motoren links genau in die Gegengesetze Richtung als die beiden Motoren rechts, diese sind ja gespiegelt angebracht. - rückwärts fahren
die inverse Bewegung zum Vorwärts fahren. Man muss alle 4 Motoren einfach in die gegenteilige Richtung drehen. - Drehung nach links
Gedreht wird indem sich die Räder rechts und links in unterschiedliche Richtungen bewegen. Die linken bewegen sich rückwärts, die auf der rechten Seite vorwärts. Das Chassis wird gedreht. - Drehung nach rechts
die inverse Bewegung zur Drehung nach links. Die rechten Reifen bewegen sich rückwärts, die Reifen auf der linken Seite vorwärts. - Stopp
alle Motoren stehen still. Das Reset des Programms. Das muss immer als letztes Kommando im Programm ausgeführt werden, sonst kann es passieren, dass der Roboter trotz Programmabbruch weiter fährt.
Software
Meine erste Version der Software basiert auf dem Arduino Skript, dass vom Roboter Chassis Hersteller auf dessen Wiki Seite angeboten wird. Das der Raspberry Pi keine analogen Pins hat funktioniert das Skript nicht exakt gleich, man kann damit den Roboter aber schon sehr gut steuern. Das fertige Skript gibts auch als Download. Der Source Code schaut wie folgt aus:
import RPi.GPIO as GPIO
Wir benötigen lediglich Zugriff auf die GPIO Pins, deshalb wird nur diese Bibliothek eingebunden.
#pins
M1 = 40 #rot
M1_PWM = 37 #gruen
M2_PWM = 38 #gelb
M2 = 36 #weiss
GPIO.setmode(GPIO.BOARD)
GPIO.setup(M1, GPIO.OUT)
GPIO.setup(M1_PWM, GPIO.OUT)
GPIO.setup(M2, GPIO.OUT)
GPIO.setup(M2_PWM, GPIO.OUT)
Wir legen uns Variablen an die wie am Board beschriftet heißen (damit man den Code auch Monate später noch versteht). Ich verwende die 4 letzten Pins des Raspberry Pi Modell B+, ihr könnt natürlich auch beliebig andere GPIO Pins verwenden. Die Verkabelung habe ich im ersten Teil bereits gezeigt. Alle 4 Pins werden als Ausgabepins initialisiert.
Nun wird es spannend. Wir legen 4 Funktionen an für die möglichen Bewegungsarten vorwärts, rückwärts, links und rechts und zusätzlich noch eine Stopp Funktion.
def move():
GPIO.output(M1, True)
GPIO.output(M1_PWM, True)
GPIO.output(M2, True)
GPIO.output(M2_PWM, True)
def reverse():
GPIO.output(M1, False)
GPIO.output(M1_PWM, True)
GPIO.output(M2, False)
GPIO.output(M2_PWM, True)
def left():
GPIO.output(M1, True)
GPIO.output(M1_PWM, True)
GPIO.output(M2, False)
GPIO.output(M2_PWM, True)
def right():
GPIO.output(M1, False)
GPIO.output(M1_PWM, True)
GPIO.output(M2, True)
GPIO.output(M2_PWM, True)
def stop():
GPIO.output(M1, False)
GPIO.output(M1_PWM, False)
GPIO.output(M2, False)
GPIO.output(M2_PWM, False)
def init():
stop()
Bei den Funktionen erkennt man schnell ein Muster. Alle PWM Pins sind immer True. Diese geben die Geschwindigkeit an. Da wir nur digitale Pins haben müssen diese klarerweise Spannung angelegt haben, sonst dreht sich der Motor nicht. Einzig bei der Stopp Funktion wird auf allen 4 Pins die Spannung abgeschaltet. Diese 4 Funktionen bilden die Basis der Bewegung. Wir benötigen jetzt nur noch Code der auf Tastenklick die korrekte Bewegungsfunktion aufruft.
In der ersten Version steuern wir den Roboter über die Tastatur. Über eine SSH Session wird der Code ausgeführt und über die Tasten werden Kommandos gegeben. Die gedrückten Tasten werden in der definierten getch() Funktion von der Tastatur geholt, ihr kennt vielleicht diese getch Funktion von C. Python hat so etwas nicht, deshalb müssen wir uns diese selber schreiben:
def getch():
import sys, tty, termios
old_settings = termios.tcgetattr(0)
new_settings = old_settings[:]
new_settings[3] &= ~termios.ICANON
try:
termios.tcsetattr(0, termios.TCSANOW, new_settings)
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(0, termios.TCSANOW, old_settings)
return ch
Damit sind wir mir der Definition der Variablen und der Funktionen fertig. Das restliche Programm ist recht einfach. Nach der Initialisierung wird in einer Endlosschleife mit getch() die Tastaturabfrage gemacht und abhängig der gedrückten Taste die gewünschte Bewegungsfunktion ausgeführt oder das Programm beendet.
init()
loop = True
_move = 0
_reverse = 0
_left = 0
_right = 0
while loop:
c = getch()
if c == 'a' and _left == 0:
left()
_left = 1
_right = 0
_move = 0
_reverse = 0
if c == 'd' and _right == 0:
right()
_left = 0
_right = 1
_move = 0
_reverse = 0
if c == 'w' and _move == 0:
move()
_left = 0
_right = 0
_move = 1
_reverse = 0
if c == 's' and _reverse == 0:
reverse()
_left = 0
_right = 0
_move = 0
_reverse = 1
if c != 'a' and c != 'd' and c != 'w' and c != 's':
_move = 0
_reverse = 0
_left = 0
_right = 0
stop()
if c == 'q':
loop = False
stop()
GPIO.cleanup()
Ganz wichtig ist die letzte Zeile. Ohne dem cleanup() würden bei Programmabbruch die Motoren munter weiter laufen und der Roboter ohne Rücksicht auf Hindernisse oder Klippen weiter fahren. Ganz schlecht!
Konfiguration
Ob ihr alles richtig verkabelt habt könnt ihr beim ersten Testlauf feststellen. In diesem lasst ihr den Roboter am besten umgedreht nach vorne fahren. Bewegen sich alle 4 Räder in die korrekte Richtung habt ihr schon gewonnen. Falls sich manche Räder falsch bewegen, dann gehören die beiden Kabel vertauscht. Dies ist am Board recht einfach möglich und erfordert keinen großen Aufwand.
Fazit
Den Roboter bewegen ist gar nicht so schwierig. Mit dieser Basissoftware könnt ihr den Roboter nun bereits über die Tastatur manuell bewegen. Das macht richtig Spaß! Das Skript kann man übrigens als Basis für eine spätere autonome Navigation des Roboters nehmen. Durch Sensoren lernt der Roboter seine Umgebung kennen und kann auf Basis dieser Informationen navigieren, aber dazu in einem der nächsten Artikel mehr!
Das Skript ist alles andere als perfekt. Vor allem die Steuerung über die Tastatur funktioniert mit Python recht schlecht. Habt ihr dafür Optimierungen? Vorschläge wie das besser geht?
Teil 1 | Teil 2
Roboter bewegen für Anfänger
Dienstag, 18. August 2015
Roboter Motoren ansteuern
In dieser Artikelserie zeige ich euch wie ihr die Roboter Motoren ansteuern könnt. Zuletzt habe ich ausführlich berichtet wie man einen Raspberry Pi Roboter zusammenbaut, nun ist es an der Zeit diesen auch zu benutzen. Das Wichtigste bei einem Roboter ist seine Mobilität, schließlich verstehen die meisten unter dem Begriff Roboter ein sich selbstständig bewegendes technisches Gerät (obwohl es auch stationäre Roboter in der Industrie gibt).
Roboter Motoren ansteuern
Ein Roboter wird durch Motoren bewegt. Elektromotoren sind recht einfach zu steuern, einfach herzustellen und es gibt sie in allen Größen und Stärken. In Roboterbausätzen finden sich üblicherweise Gleichstrommotor, die nur um einen bestimmten Winkel weiter gedreht werden können oder auch beliebig lange in eine Richtung.
Raspberry Pi verkabeln
Einen Schrittmotor kann man nicht direkt an den Raspberry Pi anschließen. Man benötigt einen Motor Controller oder auch Motor Driver genannt. Das ist ein technisches Bauteil über das man einen Gleichstrommotor steuert. Glücklicherweise hat mein Roboterbausatz ein Board, in dem bereits ein Motor Controller eingebaut ist. Laut Dokumentation einen mit der Typenbezeichnung L298P. So ein Bauteil ist aber auch für einen geringen Geldbetrag separat zu kaufen. Alternativ dazu gibt es auch noch zahlreiche andere Motortreiber.
In meinem Fall beschränkt sich die Verkabelung auf folgende Pins:
- GND (schwarz)
Die Masse vom Board muss unbedingt mit einem Masse Pin des Raspberry Pi oder alternativ einem Arduino verbunden werden. Macht man das nicht, dann fließt kein Strom und die Motoren bewegen sich nicht. - Motoren links (weiß)
Liegt auf diesem Pin Spannung an, dann bewegen sich beide Motoren der linken Seite. Das Board hat einen Jumper mit dem man die beiden Motoren synchronisieren kann. Alternativ könnte man auch jeden der Motoren extra ansteuern, dafür müsste man jedoch diese über einen eigenen Motortreiber ansteuern. - Motoren links Geschwindigkeit (gelb)
Jede Seite der Motoren wird mit 2 Pins angesteuert. Neben der allgemeinen Information “Motor an” liefert der zweite Pin die Geschwindigkeit. Diese wird analog angegeben – je mehr Spannung desto schneller bewegen sich die Motoren. - Motoren rechts (rot)
- Motoren rechts Geschwindigkeit (grün)
Die Geschwindigkeit wird über ein analoges Signal gesteuert. Je mehr Spannung anliegt, desto schneller drehen sich die Motoren. Man kann damit gut die Geschwindigkeit des Gefährts steuern. Leider sind die Pins vom Raspberry Pi aber ALLE digital, weshalb man entweder keine Geschwindigkeit oder Vollgas einstellen kann. Dank eines Tricks geht es aber trotzdem – dazu in einem der folgenden Artikel mehr!
Hardware
Für einen fahrenden Roboter benötigt man folgende Dinge:
- Motoren (2-x Motoren)
- Stromversorgung Motoren
- Steuereinheit (Raspberry Pi, Adruino oder vergleichbare Hardware)
- Stromversorgung Raspberry Pi
- Motortreiber
- Steckdrähte
- Steckbrett
- fertiges Board (optional statt Motortreiber und Steckdrähte)
Ein Roboter wird über zahlreiche Motoren betrieben. Es gibt die unterschiedlichsten Modelle. Beginnend mit 2 Roboter Motoren (einer für den Antrieb und einen für die Richtungsänderung), über herkömmliche vierrädrige Fahrzeuge (mit Rädern oder Ketten), über Insekten artige Modelle mit beliebig vielen Beinen bis zu humanoiden mit 2 Beinen die jedes leicht 10 Gelenke haben kann. Je mehr Motoren man einsetzt, desto schwieriger wird die Fortbewegung. Mein Fahrzeug mit 4 Motoren ist da für Anfänger schon recht komplex.
Bei meinem Bausatz wird das Board und damit die Motoren über 5 1.5 Volt Batterien, also insgesamt 7.5 Volt, mit Spannung versorgt. Die DC Motoren benötigen eine Betriebsspannung von 6-12 Volt mit maximal 2 Ampere, sind also ziemlich flexibel. Die normale Spannung von 5 Volt vom Raspberry Pi reicht nicht aus um die Roboter Motoren ansteuern zu können. Aus diesem Grund habe ich neben den 5 Batterien noch meine Powerbank auf das Chassis geschnallt um den Pi zu betreiben. Aktuell wird es noch mit Gummiringerl festgehalten, ich überlege schon den Kauf einer kleineren Powerbank dir neben den Pi passt…das hat aber noch Zeit bis alles fertig ist. Angeschlossen wird die Steuereinheit direkt mit 5 female-female Steckdrähten an das Board.
Falls man kein fertiges Board hat und die Motoren direkt mit der Steuereinheit verkabeln muss, dann verwendet man üblicherweise ein Steckbrett und verkabelt dort einen Motorentreiber direkt mit den Motoren.
Fazit
Über das Board von meinem Roboterbausatz kann ich meine Roboter Motoren ansteuern. Alternativ kann man dies aber auch selber über ein Steckbrett erreichen, man benötigt aber einen Motortreiber. Wenn man gerne bastelt findet man auch recht einfach eine Lösung dafür – Tutorials gibt es genug. Im nächsten Teil zeige ich euch die Software damit sich der Roboter endlich bewegt. Dieses wird auf dem Beispiel der Dokumentation zum Arduino Board basieren.
Roboter Motoren ansteuern





