Inhaltsverzeichnis
Einführung
Der hier vorgestellte Roboter ist ein kleines Langzeitprojekt von mir (eines meiner vielen Hobbys,dass ich nicht lassen kann). Die Platine stellt eine Experimentierplatine dar, die z.T. in SMD und z.T. in THT gefertigt werden soll. Da ich mit den käuflichen Platinen nicht zufrieden war und gerne so viel wie möglich selbst erledigen möchte, erstellte ich eine eigene. Ziel ist es einen kleinen Roboter aufzubauen, welcher später auch ein wenig "Gelände" befahren können soll. Daher wird er als Kettenfahrzeug realisiert.
Spezifikationen
- Platine mit z.T. SMD und THT (vorzugsweise SMD/TQFP)
- zunächst zweilagige Platine (zum Ätzen)
- zunächst ATMEGA32 (TQFP)
- Vorbilder für die Platine sind RN-Control (1.4) und ct-Bot
- Zunächst kamen verschiedene Möglichkeiten für die Grundlage (Kettenfahrzeug) in Betracht
- Ketten von Lego gabs nicht in der gewünschten Größe (heutzutage gibt es schon bessere Ketten)
- Kettenfahrzeug aus Alu von Conrad wäre super war zu teuer (ca. 1k€, nicht mehr verfügbar)
- Eigenbauketten zu aufwendig
- Unterbau vom Panzerkampfwagen III (1:16 RC Modell von HENG LONG), fernsteuerbar (ebay ca. 50€), einfache Motoren und Getriebe enthalten, Elektronik, oberen Aufbau und Fernbedienung entfernt.
Das soll der Roboter nach und nach können
- Orientierung im Raum
- Anzeigen per LCD über I2C (siehe LCD an I2C Huckepack auf RN-Miniplatine)
- Anzeige mit 8 LEDs (z.B. Fehleranzeige)
- Befehle per IR-Fernbedienung entgegennehmen
- Vermessung der Umgebung (falls möglich in 3D)
- Eine Vermessung soll besonders auch in engen Gängen möglich sein
- U.a. Landkarte auf SD-Karte speichern
- Verfolgung von Personen und/oder Licht
- Verfolgung einer Line am Boden
- Abgründe/Stufen einschätzen und ggf. meiden
- Kommunikation mit PC oder anderen Robotern per Funk
Sensoren, Aktoren und Schnittstellen
- 2 Radencoder (jeweils mittels CNY70) zur Orientierung
- 2 Motoren mit unbekannten Eigenschaften inkl. Getriebe zur Ansteuerung der Ketten
- 1 Maussensor zur Orientierung am Boden
- 1 bzw. 2 senkrecht aufeinanderliegende IR Sensoren zur 2D/3D Vermessung (z.B. Sharp GP2YA21YK)
- 2 Servos
- 2 Sharp IS471F nach unten zur Abgrunderkennung/-vermessung im Impulsbetrieb (ca. 25 cm Reichweite)
- SD/MMC Karte
- 2 Liniensensoren
- Überwachung der Batteriespannung
- RS232 Schnittstelle (z.B. für RN-Funk)
- I2C Bus
- 2 Ultraschallsensoren (SRF8 von Devantech) nach vorn zur Kollisionsvermeidung an I2C
- weitere Sensoren über I2C möglich
- 8 LEDs zur Fehleranzeige (bis einschl. V1.1 nur 4 LEDs frei verwendbar: LED0/LED1 von I2C belegt; LED6/LED7 von Motoren belegt)
Schaltplan und Board
Die Vorbilder waren wie gesagt RN-Control (1.4) und ct-Bot
- Es sollen die RN-Definitionen eingehalten werden (Außer: bisher 6Pin ISP, statt 10Pin ISP)
- Im Gegensatz zu den Vorbildern soll der Controller ATMEGA32 als SMD (TQFP) Variante verwendet werden
- RN-Control belegt für Motorensteuerung über L293D vier Pins am Controller für die Richtungsangabe. ct-bot kommt mit halb so vielen Pins aus, braucht dafür aber den zusätzlichen IC 74HC14
- RS232 Schnittstelle soll vorhanden sein
- Die Ansteuerung der LEDs zur Anzeige von Infos, sowie das Ansprechen der Sensoren ist am ct-Bot mit Schieberegister realisiert. Da hier eine Experimentierplatine aufgebaut wird ist die RN-Control-Variante besser, aber Doppelbelegung von LED0,1,6,7
- Eine Spannungsüberwachung von RN-Control wird aufgegriffen
- Taster am Analogeingang (RN-Control) und Speaker werden ausgespart
Versionen
aktuelle Version
ROBKETE V1.1 Schaltplan und Layout
- funktionsfähig mit Korrektur von MISO und MOSI (JP5): Siehe Fehlersuche
- Fehler und Korrekturen für Schaltplan und Layout
- Spannungsversorgung MAX232 fehlt (im Layout aber korrekt: komisch!?)
- externe Referenz nicht unbedingt nötig (R3 und R4), interne Referenz möglich; C7 gegen GND lassen
- Nahe an den Pin8 des L293 sollte noch ein Elko(Größe?) und ein 100nF Kondensator
- Der IR-Empfänger SFH5110 hat im im Layout eine falsche Pinbelegung
- korrekt: 1: OUT; 2: GND; 3: VCC (Vorderansicht von links nach rechts)
- eine Drehung des Sensors um 180° behebt das Problem
frühere Versionen
ROBKETE V1.0 Schaltplan und Layout
- nicht funktionsfähig:
- MISO und MOSI vertauscht
- VCC nicht korrekt
- u.a. grobe Fehler im Schaltplan bei der Motorenansteuerung
- Fehlende Abblockkondensatoren am Controller
Mechanik
Fahrgestelleigenschaften
- Unterbau des Panzerkampfwagen III
- Länge: 323mm
- Breite: 180mm
- Bodenfreiheit ca: 26mm
- Maximaler Federweg der einzelnen kleinen Räder: 17mm
- Gewicht: 1230g
- Kettenbreite: 25mm
- Getriebe aus Kunstoff (Metall erhältlich)
- Raddurchmesser Antriebsrad: 47mm
- Getriebeübersetzung:
- Zahnrad1:Zahnrad2=10:45
- Zahnrad3:Zahnrad4=14:52
- Zahnrad5:Zahnrad6=15:53
- Zahnrad7:Zahnrad8=40:27
Gesamt: Üges=Ü1*Ü2*Ü2*Ü4=1:39,86357143=1400:55809
Projekttagebuch
20.02.2011 Platine ROBKETE V1.0 wurde gefertigt. Aufbau folgt
10.03.2011 Platinenaufbau ROBKETE V1.0 fertig, aber nicht funktionsfähig. Versorgungsspanung zu niedrig. Fehlersuche erfolglos. Nachtrag 08.11.2011: MISO und MOSI vertauscht.
18.05.2011 Layout:
- Bugfix:Ein- und Ausgänge vom L293D waren vertauscht.
- Bugfix: Eingänge des L293D waren nicht an IC angeschlossen.
18.05.2011 Fertigstellung des Lauyouts von V1.1 ROBKETE
15.08.2011 Fertigstellung der geätzten Platine
01.09.2011 Auflöten der Spannungsversorgung; erfolgreich getestet
02.09.2011 Auflöten des Controllers und Resetschaltung; Spannungen an allen Pins des Contr. ok; Programmieren des Controllers über STK500 nicht möglich
28.09.2011 Überprüfen der Resetspannung während "Signature read" per Oszilloskop: sauberes Signal während Reset auf GND von +5V 300ms
27.10.2011 Starten des Threads zur Hilfe bei der Fehlersuche
08.11.2011 Hauptfehler gefunden: MISO und MOSI sind vertauscht daher keine Programmierung möglich (siehe Fehlersuche).
08.11.2011 MISO und MOSI auf Platine vertauscht und die Programmierung funktioniert.
23.11.2011 Fertigstellung der ersten funktionsfähigen Platine. Spannungsversorgung MAX232 noch nicht kontrolliert. Ansterung von Motoren möglich. LED1-6 können verwendet werden.
01.02.2012 Inzwischen wurde das Display per I2C angesteuert, ein SRF08 ausgelesen und das Ergebnis auf dem Display ausgegeben.
17.02.2012 Nach Drehung des IR-Empfängers um 180° wurde mit einer RC5 Fernbedienung (RC Univers 29) der RC5 Code nach Tastendruck jeweils aufs Display geschrieben.
13.07.2012 Eine Platine für CNY70 Sensoren (4x Liniensensor, 2 Encoder) wurde fertig gestellt. Encoder wurden angeschlossen und am Fahrgestell angebracht.
20.07.2012 Die 2 IR Sensoren wurden (zunächst starr) oberhalb der Ultraschallsensoren (nach vorn schauend) befestigt.
23.07.2012 Für den Maussensor muss ein Abstand von etwa 26mm überwunden werden.
01.08.2012 Als neue Optik für den Maussensor bietet sich die Kollimatorlinse LAS LEN 046 (Reichelt) an. Diese soll einen Abstand von 3-4 cm realisieren können [1].
18.12.2013 IR Sensoren wurden angeschlossen, ausgelesen und die (int) Werte per UART an PC gesendet. Mausplatine wurde gefertigt und montiert.
Links
IchBauMirEinenRoboter|Downloads zum Projekt
LCD an I2C Huckepack auf RN-Miniplatine
RN-Definitionen
ATMEGA32
RN-Funk