Roboter Hauptprogramm


Diese Software (geschrieben in Delphi 7.0) dient als Hauptprogramm für den autonomen und unterstützten Fernsteuer-Modus des Bot ASM5. Für anspruchsvolle Aufgaben ist die Platine mit dem PIC 18F442 auf dem Bot leider nicht geeignet, so dass eine Verbindung per WLAN zum Bot bestehen muss.

Von hier aus können verschiedene vorprogrammierte Aufgaben gestartet werden, allerdings ist dies auch direkt über den Befehlscode an der Tastatur des Bot möglich.

Sollte die Verbindung offline sein, geht der Bot in Bereitschaft und unterbricht die weitere Abarbeitung.

Die Software nutzt einen Treiber, welcher einen RS232-TCP/IP Redirektor zur Verfügung stellt. Somit kommuniziert die Software über RS232 -> WLAN mit dem Avisaro-WLAN-Modul, welches wieder per RS232 an den Mikrokontroller des Bot angeschlossen ist.

Die Verbindung nutzt ein eigens erstelltes Protokoll. Jeder Befehl besteht aus Startbyte, Datenbytes sowie Prüfsummen- und Endbyte. Jede Befehls- und Datenübertragung muss von der Gegenstelle bestätigt werden. Die Software kann auch extern über das Web eingesetzt werden, solange eine Internetverbindung besteht. Um Komplexere Aufgaben schnell umsetzen zu können, sind die Systeme Modular aufgebaut und werden per scriptähnlicher Sprache programmiert.


Ein in Echtzeit ausgelöster Alarm kann nur durch Autorisierung am Bot zurück genommen werden. Dies geschieht je nach Priorisierung in unterschiedlichen Timeouts.  Eine Unterbrechung der Kommunikation oder Zerstörung des Bot hilft somit nicht mehr.

zurück

Avisaro Modul


Das Modul der Firma Avisaro wird verwendet, um die Kommunikation zwischen dem Hauptprogramm auf einem entfernten PC und der Mikroprozessorplatine des Bot auf Basis einer seriellen Kommunikation über WLAN zu realisieren.

Das embedded Modul kommuniziert im genannten Fall per RS232, (TTL-Pegel) allerdings wäre dies auch per I²C und neuerdings auch CAN möglich.

Das Modul wird durch ein integriertes Webinterface parametrisiert, so dass es sich problemlos in verschiedenste WLAN Netze einbinden lässt. Dabei können verschiedene WLAN Modi wie auch verschiedene Verschlüsselungsarten eingestellt werden. Im Falle der RS232 lassen sich auch verschiedenste Baudraten festlegen.

Zusätzlich ist das genannte Modul noch mit weiteren frei nutzbaren I/O Ports bestückt.

Für die Gegenstelle wird ein virtueller Comport mitgeliefert, so dass wie in meinem Fall, eine serielle Kommunikation über WLAN hergestellt werden kann. Die Laufzeiten sind sehr schnell, in einem gut funktionierendem WLAN Netz kann man durchaus von „Echtzeitfähigkeit“ sprechen.

Nach starten des Bot und bereitstellen der 3.3V Betriebspannung für das Modul loggt sich dieses selbständig in ein bestehendes WLAN Netz ein.


Nähere Informationen zu den vielfältigen Möglichkeiten des Moduls findet man auf der Herstellerseite, allerdings ist das von mir genutzte Modul in dieser Form nicht mehr erhältlich.

zurück

Controllerboard mit PIC 18F422 und SD20 Controller


Das Mikroprozessorboard ist eine Eigenentwicklung, (...danke an meinen Arbeitskollegen) welches speziell auf die Anforderungen des Bot abgestimmt wurde. Außer dem Mikroprozessor 18F422 von Microchip integriert es auch den bereits programmierten Servocontroller SD20.

Es besitzt 5 strombegrenzte Spannungen von 2.5, 3.3, 5.0 und 12V, (0.2, 0.25, 0.5 und 2.0A) welche für die einzelnen Komponenten benötigt werden.


Daten:

- 1x PIC 18F422 (8Mhz)

- 1x Servocontroller (SD20)

- 5 analoge Eingänge

- 7 digitale Eingänge

- 11 digitale Ausgänge

- 4 Relais (max. 5A)

- 1 Relais (max. 25A)

- 10x Servo (inkl. Spannungsversorgung)

- I²C ( Tastatur, Kompass, Servocontroller und Sprachmodul)

- RS232/TTL (WLAN-Modul)


Der PIC 18F422 ist in Assembler programmiert und übernimmt die Koordination auf dem Bot.

Komplexe Aufgaben werden vom PC, nennen wir ihn Zentrale, gesteuert, so dass die Befehlsausführung z.B. lauten könnte „Umgebung mit Sonar scannen“. In dem Falle erledigt dies der Bot selbstständig und übermittelt die gemessenen Daten an die Zentrale. Ein weiteres Beispiel „fahre Überwacht 84cm vorwärts oder drehe auf 270°.

Der Befehlsempfang wird grundsätzlich sofort bestätigt. Nach Beendigung des Kommandos wird dies ebenfalls an die Zentrale gemeldet. Während der Abarbeitung können weitere Kommandos empfangen werden. Soweit es zulässig ist werden diese parallel abgearbeitet.

zurück

Servos


Auf dem Bot sind 6 Servos an verschiedenen Positionen angeordnet, welche folgende Funktionen erfüllen:


- Sonar / PIR / Radar Kombination (ca. 180° horizontal und 125° vertikal)

- IR Front Sensor (ca. 120° horizontal und 90° vertikal)

- IR Rear Sensoren links und rechts (ca. 180° horizontal)


Dadurch wird es ermöglicht verschiedene Bereiche zu scannen, ohne zusätzliche Sensoren einzusetzen.

zurück

Sprachausgabemodul SP03 + Universalverstärker 3.5W und LS


Das Sprachmodul SP03 basiert auf einem Sprachchip Winbond  WTS701EM/T.

Das Moduls kann per serieller oder I²C Schnittstelle angesprochen werden.


Da die Lautstärke nicht ausreichend ist benutze ich einen zusätzlichen Universalverstärker mit 3.5W, (exclusive 10W Lautsprecher) welcher bei Bedarf über 12V zugeschaltet wird.


Daten:

- 5 VDC Spannung

- 35 mA Standby (bis 100 mA bei Ausgabe)

- eingebauter 40mm Laustsprecher mit 325 mW Leistung

- automatische Umwandlung von Text in Sprache (engl. Phoneme)

- Volumen, Pitch und Speed sind einstellbar

- es können 30 Sätze (max. 1925 Zeichen) fest eingespeichert werden


In meinem Fall werden die Texte aktuell generiert und per I²C an das Modul übergeben.

zurück

I²C Tastatur mit PCF 8574


Über die Tastatur werden am Bot durch Eingabe einer 3 stelligen Zahl die autonomen vorprogrammierten Modi gestartet. Dies ist natürlich auch noch von der Zentrale aus möglich.

Die i²C Adresse kann über 3 Jumper gewählt werden.


Daten:

- 5 VDC

- 10 mA Stromaufnahme

- Anzahl der Tasten: 16 (0...9, E,C,F1,F2,F3,F4)


Bezug über Conrad Electronic möglich.

zurück

WLAN CAM ALL2210 (Allnet)


Die WLAN CAM dient zur visuellen Erfassung und Darstellung der Umgebung, sowie zur Aufnahme von Umgebungsgeräuschen. Die Kamera ist direkt ins WLAN Netz eingebunden und wird vom Hauptprogramm genutzt. Ein integriertes WEB Interface bietet vielfältige Möglichkeiten der Überwachung, wie z.B. Bereichs-Motion-Detection sowie Videoversand per Email.  


Daten:

- 5 VDC

- bis zu 1.5A Stromaufnahme

- CMOS Farbchip 1/4“ (max. 640 x 480)

- MPEG-4

- Ethernet 10Base-T/100Base-TX, IEEE 802.11g   


Die anfänglich geplante Umgebungserkennung per Videobild wurde nicht integriert, vorzugsweise wurde die Kamera zur Überwachung und im FS-Modus genutzt. Zwecks Unterstützung bei Dunkelheit kann im FS-Modus der Scheinwerfer zugeschaltet werden.

zurück

Radar Bewegungsmelder (Modul mit Signalauswertung)


Gegenüber passiven IR Bewegungsmeldern, welche auf Temperaturdifferenz reagieren wird hier die Bewegung in Richtung des Sensors dedektiert.

Die Ansprechschwelle lässt sich mit Hilfe eines Potentiometers nach eigenen Belangen anpassen. Dabei ist die Empfindlichkeit so hoch, so dass sich auch eine minimale Bewegung der Hand von  wenigen Zentimetern in einer Entfernung von mehreren Metern erkennen lässt. Weiterhin ist die Durchdringung vieler Werkstoffe ein Vorteil, wodurch eine Erkennung durch geschlossene Türen ermöglicht wird.


Daten:

- 8-15 VDC

- 30 mA Stromaufnahme

- Reichweite bis ca. 15m

- Öffnungswinkel horizontal ca. 80° / vertikal ca. 32°

- Sendfrequenz ca. 24 bis 24.25 Ghz


Der Open Kollektor Transistor Ausgang schaltet gegen Masse durch.

Im Nachhinein würde ich auf PIR verzichten und diese komplett durch dieses Modul ersetzen! Auf dem Bot ASM5 ist der Sensor beweglich angebracht, so dass er über Servos positioniert werden und zur Erkennung von Bewegungen eingesetzt werden kann.


Bezug über Conrad Electronic (B-Nr. 502667) möglich.  (Hygrosens Instruments)

zurück

Passiv Infrarot Bewegungsmelder (inkl. Signalauswertung)


Der PIR Sensor arbeitet mit einem pyroelektrischem Sensor, (und Linsensystem) welcher die max. Empfindlichkeit im Bereich der Wärmestrahlung lebender Körper aufweist.


Daten:

- 3-12 VDC

- 1 bis 1.4 mA Stromaufnahme

- Reichweite bis ca. 12m (über Lötbrücken einstellbar)

- Öffnungswinkel 120° (vorzugsweise horizontal)


Außer dem Open Kollektor Ausgang (max. 20mA) ist ein Analogausgang vorhanden an dem das verstärkte Signal ansteht welches für anspruchsvollere Signalauswertungen genutzt werden kann.

In meinem Fall reichte mir die Personnenerkennung über den Schaltausgang des Fensterkomperators. Auch dieser Sensor ist über Servos auf dem Bot ASM5 ausrichtbar.


Bezug über Conrad Electronic (B-Nr. 172500) möglich.  (Hygrosens Instruments)

zurück

Ultraschall-Modul SRF08


Der Sensor dient Vorzugsweise zur Hindernissdedektion. Da er beweglich angebracht wurde und über Servos positioniert werden kann dient er weiterhin zum scannen der Umgebung. Durch seine Charakteristik die einen großen Erfassungsbereich hat werden auch schmale Objekte wie Stuhlbeine etc. als Hinderniss erkannt. Diese Charakteristik ist nicht nur ein Vorteil, da durch die „Keule“ (siehe Foto) natürlich keine genaue Auflösung des Objektes möglich ist. Hier kann man ergänzend aktive IR Sensoren einsetzen. Wer den finanziellen Spielraum hat kann allerdings auch auf 2D Laserscanner zurückgreifen. Aber auch Sie haben trotz des sehr hohen Preises ihre Nachteile, so können sie ohne zusätzliche Mechanismen nur eine Ebene scannen.

Neuerdings wird für Tiefeninformationen auch der Kinect Sensor eingesetzt.


Ich bevorzuge für meine Projekte den SRF08, da dieser bei meinen Versuchen die besten Ergebnisse ablieferte und dies nicht nur bei seinen Parametern sondern auch bei unterschiedlichen Oberflächen und Schrägen. Hier konnte der SRF02, welcher zumindest ebenfalls bereits mit MC bestückt ist und fertige Informationen liefern kann ohne selbst Laufzeiten messen zu müssen, technisch bei weitem nicht mithalten. Als zusätzliche Information erhält man auch noch die ermittelte Umgebungshelligkeit .


Daten:

- 5 VDC

- 15 mA typ. Stromaufnahme, 3 mA Standby (genauere Informationen im Datenblatt)

- programmierbares Verstärkungsregister

- programmierbares Reichweitenregister

- Register für Mehrfachechos

- einstellbare Einheit der Entfernung

- Reichweite 3cm bis 6m

- Öffnungswinkel siehe Skizze

- multi Echo Daten für ANN

- Lichtsensor

- 16 einstellbare I²C Adressen


Beim ASM5 Bot wird zusätzlich zur Hinderniserkennung eine Karte erstellt. In Abhängigkeit der Position werden alle Hindernisse eingetragen. Bei Bewegung des Bot wird dies entsprechend auf der Karte adaptiert und bei neuen Messungen mit dem bisherigen Eintragungen abgeglichen.


Info zum SRF08

zurück

Sharp IR Sensor (GP2Y0A02YK)


Der IR Sensor kann im Gegensatz zum US-Sensor mit seinem großen Öffnungswinkel relativ punktgenau die Entfernung messen. Der hier beschriebene Sensor kann im Bereich 20cm bis 150cm eingesetzt werden. Da der Sensor nicht liniear arbeitet nimmt mit zunehmenden Hindernisdistanz die Differenz des Ausgangssignal im Verhältnis zur Entfernung ab, dagegen nehmen die IR typischen Einflüsse der Reflektion durch dunkle Gegenstände sowie glatte schräg stehende Flächen zu. Mehrfachmessung mit Mittelwertbildung ist auf jeden Fall zu empfehlen, um sichere Ergebnisse zu erhalten. Da dies relativ schnell und deutlich schneller als bei US-Sensoren geschieht, ist dies selbst im Scannvorgang problemlos möglich.

Im Oszi zeigt sich ein Signal, welches mit auftretenden Spikes untersetzt ist und somit das Messergebnis ebenfalls verfälscht. Mit Hilfe von Kondensatoren unmittelbar am Sensor lässt sich das Problem aber weitestgehend ausblenden.


Daten:

- 4.5 bis 5.5 VDC

- Messbereich 20cm bis 150cm

- Out: ca. 0.4 bis 2.6 V

- ca. 33 mA typ. Stromaufnahme


Beim ASM5 Bot setze ich im Frontbereich einen vertikal und horizontal sowie am Ende des Bot links und rechts jeweils einen horizontal beweglichen IR Sensor zwecks Scannen von Hindernissen ein. Wie auch beim US Sensor wird zusätzlich zur Hinderniserkennung eine Karte erstellt. In Abhängigkeit der Position werden alle Hindernisse eingetragen. Bei Bewegung des Bot wird dies entsprechend auf der Karte adaptiert und bei neuen Messungen mit dem bisherigen Eintragungen abgeglichen.

zurück

Kompass-Modul Devantech CMPS03


Der Messwert des Kompassmoduls steht entweder als PWM Signal zur Verfügung oder kann per I²C abgefragt werden. Beide Ausgänge sind ständig aktiv. Im Bot ASM5 nutze ich die I²C Schnittstelle zur Auslesung des Messwertes. Je nach Register gibt es einen 8 bit Wert im Bereich 0-255 oder was ich als sinnvoller empfinde einen 16 bit Wert im Bereich 0-3599 passend zum Kompasswert 0-359.9.


Daten:

- 5 VDC

- Auflösung 0.1°

- Genauigkeit 3-4°

- ca. 15 mA typ. Stromaufnahme


Unbedingt zu beachten ist das im Umfeld des Einbauortes keine metallischen Materialien sein sollten, allein die anfangs von mir nicht beachteten Kettenbolzen der Antriebsketten verfälschten selbst aus einiger Entfernung das Messergebniss. Allerdings können auch äußere Einflüsse die Messwerte beeinflussen.

Ich nutze den Kompass zur groben Richtungsorientierung und um Drehbewegungen  des Bot auf 3-4° genau auszuführen. Vor der Drehbewegung wird auf jeden Fall die aktuelle Position ermittelt, um äußere Einflüsse zu minimieren.


Info zum Kompassmodul

zurück

Turmdrehkranz

Mittels Gleichstrommotor angetriebener Drehkranz, welcher zur Positionierung eine Gabellichtschranke nutzt.

Damit ist es möglich, den auf ihm befindlichen PAN/TILT Kopf (US / Radar / PIR -Sensor) zusätzlich zu den 180° (Servo) zu bewegen und ohne Drehung des Bot 360° abzudecken.


LED Leuchte

Einfache 12V LED Leuchte, welche bei Bedarf zugeschaltet werden kann. Der anfänglich genutzte IR-Scheinwerfer brachte in Kombination mit der WLAN Kamera leider nicht den gewünschten Erfolg, da die IR Empfindlichkeit der Kamera zu gering war.


Abschussvorrichtung

Nicht genutzt!


Geräuschmodul (Dieselmotor)

Original im Model verbautes Geräuschmodul, welches optional bei Bewegung des Bot zuschaltet.

zurück

Antriebsmodul


Bestehend aus zwei Kettenantrieben mit getrennten Metallgetrieben und zwei 12V Gleichstrommotoren, (vergleichbar 600er) welche pro Motor mit einem elektronischen Fahrregler (25A) ausgestattet wurden. Damit lassen sich über den Servocontroller „SD20“ die Kettenantriebe mit unterschiedlicher Geschwindigkeit und Richtung ansteuern. Je nach geplanten Fahrmanöver und Hindernisskartierung entscheidet der Bot über die Fahrgeschwindigkeit.


Zur Wegstreckenmessung wird ein Encoder (Eigenbau: IR-LED „LD274“/ Sharp Sensor „IS471“-Kombi) eingesetzt, welcher eine Lochscheibe abtastet. Damit ist es möglich, den Bot auf eine Genauigkeit von 1cm zu bewegen. Dies ist zwar nicht sehr hoch, aber in Anbetracht der Größe des Bot und des vorhandenen Schlupfes völlig ausreichend.


Die Stromversorgung von Regler und Antrieb kann zur Energieeinsparung und Fahrregler Startkalibrierung durch den Bot abgeschaltet werden. Ein zusätzlich angebrachter Notausschalter kann den Bot ebenfalls stoppen.


Da Ketten, Wanne und Getriebe mit Motor bereits vorhanden waren, gestaltete sich dieses Thema recht einfach. Allerdings war ich mir nicht sicher, ob eine direkt vom Controller gesteuerte PWM Variante nicht besser und sicherer wäre. Im nachhinein muss ich sagen den Zweck erfüllten die Fahrregler auf jeden Fall, natürlich waren durch die notwendigen Kalibrierungen die Geschwindigkeiten auch durchaus minimal unterschiedlich, was aber zumindest bei diesem Kettenfahrzeug keine Auswirkungen zeigte.

zurück