PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rover soll in der Wohnung autonom navigieren können



MuffinMan
12.03.2015, 11:14
Hallo zusammen!

das ist mein erster Post hier - ich war auf der Suche nach ner netten Community wo ich mal herzeigen kann was ich gerade so bastle und wo ich hoffentlich auch so einige Tipps bekomme bin nämlich absoluter Anfänger in Sachen Roboter.
Ich bin eigentlich Java Entwickler und kenn mich mit Elektrotechnik sehr wenig aus. Mir gehts auch hauptsächlich um den Programmieranteil aber um die Elektrik komm ich halt leider nicht ganz umhin ...

Und das ist mein Plan:
Ich will ein autonomes Fahrzeug bauen dass sich selbständig in meiner Wohnung zurechtfindet und eine Karte aufzeichnet. Wenn ich den Bot später irgendwo absetze soll er sich auch wieder zurechtfinden und nicht jedesmal alles neu erkunden.
Die Karte die aufgezeichnet wird reicht mir von oben/2D aber ich will live beim Aufzeichnen zuschauen können und ich will bestimmte Bereiche per Hand markieren können damit ich dem Bot irgendwann Sprachkommandos geben kann im Stil von: "Fahr in die Küche!". So viel zum Wunschkonzert ;)

Hardware: Ich hab schon so einiges zusammen, bastel auch seit ner Weile hin. Es ist allerdings noch nicht alles verbaut was ich habe:
- Dagu Wild Thumper 4WD 75:1 mit Wheel Encodern
- T'Rex Motor Controller -> war gleich kaputt, Usb wird nicht mehr erkannt deswegen dann:
- Pololu Dual VNH5019 Motor Driver Shield for Arduino
- 2x Arduino Uno
- 1x Arduino Nano mit IO Expansion Board
- Foscam FI8918W IP Netzwerkkamera
- RC Receiver + Fernsteuerung
- 2x Ultraschall Sensor
- Wifi Shield für Arduino
- Adafruit ADXL345 - 3-Achsen Beschleunigungssensor
- Dagu Sensor Pan/Tilt Kit mit Servomotoren
- 5000mAh 7,2V LiPo + Power Switch

So siehts aktuell aus:
29950

Und so funktionierts:
- ein Arduino Uno macht den I2C Master mit Wifi Shield, sendet Kommandos an die anderen und empfängt den Status von Motor, Encodern usw. Selbst macht er einen TCP/IP Server auf.
- mit dem Master kommuniziert mein Rechner per Java Client - bisher macht der nicht viel, ich kann aber schon grundsätzliche Kommandos schicken.
- der zweite Uno hat das Motor Shield und den RC Receiver und akzeptiert Kommandos von I2C und RC je nachdem ob RC an ist
- der Nano liest nur Encoder aus und gibt das per I2C durch

bisher sind die Abstandssensoren und Beschleunigung noch nicht eingebaut, die Kamera eh nicht.
Derzeit gehts mir nur um die Programmierung, v.a. müssen erst mal die Encoder richtig ausgewertet werden damit ich mal geradeaus fahren kann ...

Probleme die ich als nächstes lösen muss:
- Encoder lesen etwas wirr, lassen Messungen aus oder erkennen kurz mal die falsche Richtung
- Rover fährt nicht gerade, motorsteuerung muss auf encoder reagieren
- Stromversorgung für Arduinos bisher nur per USB (Ausnahme ist die Motorsteuerung) ich muss rausfinden ob ich die alle direkt an den Akku hängen kann
- Abstandssensoren müssen drauf
- alle Stati müssen per I2C und TCP/IP bis zum Java client kommen

so das wärs erst mal - ich meld mich wieder wenn ich mal wieder was geschafft hab!

MuffinMan
20.03.2015, 10:55
so da wär ich mal wieder - der neue Stand von meinen ToDo's:

erledigt: - Stromversorgung für Arduinos bisher nur per USB (Ausnahme ist die Motorsteuerung) ich muss rausfinden ob ich die alle direkt an den Akku hängen kann
erledigt, zumindest der Sensor nach vorne: - Abstandssensoren müssen drauf
erledigt: - alle Stati müssen per I2C und TCP/IP bis zum Java client kommen
erledigt: Display drangehängt: 0,96 Zoll I2C IIC SPI serielle 128 x 64 OLED LCD LED Display - damit zeige ich jetzt Stati an, bisher nur den Abschluss vom Setup damit ich weiß wann der Bot im Wlan angekommen ist

ToDo:
- Encoder lesen etwas wirr, lassen Messungen aus oder erkennen kurz mal die falsche Richtung
- Rover fährt nicht gerade, motorsteuerung muss auf encoder reagieren
- muss rausfinden ob ich irgendeine Art der Sicherung einbauen muss nachdem jetzt Motorsteuerung und alle 3 Arduinos direkt am selben Akku hängen
- sobald ich die Verbindung zum Wlan Modul / TCP/IP Server verliere kann ich sie nicht wieder neu aufbauen, ich muss den Stecker ziehen damit neu initialisiert wird
- grundsätzliche grafische Darstellung der Messdaten per lwjgl oder jogl
- Umrechnen der Encoder Werte in cm
- Annahme von Kommandos nicht nur in mA pro Motor sondern auch in Entfernungen / Funktionen -> fahre 20 cm vorwärts / mache Kurve um ... Grad nach links usw

und meine neuesten Bilder:
2997729978


ich hoffe ich kann mit den Posts jemandem helfen der ähnliches vorhat, für mich ist das immer wieder ein Haufen Fragezeichen und Recherche...

Rabenauge
20.03.2015, 11:10
Ne Sicherung wirst du nicht _brauchen_ aber schaden wird die nie...immerhin wird dein US-Sensor nicht alles erkennen.
Wichtiger wären evtl. Pufferkondensatoren, da z.B. bei plötzlichem Richtungswechsel u.U. die Spannung einknicken kann-was die Rechentechnik resettet.

MuffinMan
23.03.2015, 11:34
Hallo Rabenauge, danke für die info! ich versuch jetzt allerdings noch draus schlau zu werden was sich da eignet (hab noch sehr wenig Plan von Elektrotechnik aber ich lese ...), was hältst du davon:

Sicherungen:
vor meinem Motorcontroller: Glassicherung 25mm / 30Amp
laut Datenblatt ziehen die Motoren jeweils maximal 6,6A, die Motorsteuerung könnte noch mehr durchreichen. 30A dürfte also in jedem Fall reichen

vor jedem Arduino: Wentronic Glassicherung 500mA
ich nehme doch mal an dass 500 kaum erreicht werden und das damit groß genug ist

so und jetzt zu den Kondensatoren vor den Arduinos:
Elko 470µF 6,3V
-> hab grad nix anderes da - aber würde das bedeuten dass ich den Eingang für die Arduinos damit dauerhaft auf 6,3V runterziehe, nicht nur im Ausfall-Moment? Oder ist ein Elko dann eh nicht der passende Kondensatortyp?
nach meiner Rechnung hätte ich dann mindestens 2ms in denen die Spannung von 6,3V auf 6V runtergeht (was schätzungsweise noch ok ist) - lieg ich da halbwegs richtig?

Geistesblitz
23.03.2015, 12:05
Der Elko puffert nur die Spannung, der Wert auf der Dose gibt die Spannungsfestigkeit an. Wird dein Elko also mit mehr als 6,3V versorgt, kann es sein, dass ihm das zu viel wird und er platzt. Daher wäre wohl die nächstgrößere Spannungsfestigkeit besser. Da würden auch locker 100µF reichen.

Valen
24.03.2015, 09:28
Die Standardregel ist Kondensatoren zu verwenden mit doppelte Spannungsfestigkeit als den angelegte maximal Spannung. Weil auf Dauer und durch Wärme-einfluss die Kapazität sich verringert und Interne Widerstand schlimmer wird. Dein Roboter hat genügend Kühlung durch den offene Bau vermute ich, also soll es nicht so schnell schlimm werden. Aber vielleicht aufpassen das die Kondensatoren nicht ganz neben den Motoren oder Motortreiber befindet. Kondensatoren sollen aber so nah wie möglich angeschlossen werden an das Teil/Schaltung das gepuffert werden soll.

MuffinMan
24.03.2015, 13:30
alles klar, danke Leute! dann werd ichs mal versuchen - allerdings wird der Kondensator dann halt irgendwo vor dem jeweiligen externen Arduino Stromanschluss im Kabel hängen bzw am Fahrwerk festgeschraubt sein (und zwischen dem und dem Akku dann noch die Sicherung) - näher komm ich wohl nicht an die Arduino Boards dran aber ich hoff mal dass das reicht

Valen
24.03.2015, 16:52
...- näher komm ich wohl nicht an die Arduino Boards dran aber ich hoff mal dass das reichtAuch nicht ein Elco anschliesen gleich an den buchsenleisten zwischen GND und Vcc?

MuffinMan
25.03.2015, 12:53
ich werds versuchen - ich post dann mal ein Bild davon wie's aussieht