PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erster Roboter



Virtuelx
18.10.2011, 20:04
Hallo Community!

Ich will mir einen kleinen mobilen Roboter basteln. Da ich das noch nie davor gemacht habe suche ich hier um etwas Unterstützung. Habe mir schon auf der RN-wissen seite bei Robotikeinstieg die ersten Artikel durchgelesen oder z.M. überflogen.
Meine Vorstellungen für den Roboter sehen so aus:
- Außenmaße sollten in etwa 20x20x20 cm sein
- mobiler Roboter mit 2 Antriebsrädern, mit je einem Motor, und einen halben Tischtennisball als "Vorderrad"
- mittels Ultraschall-Sensor soll er Hindernissen ausweichen
- ein optischer Sensor, welcher Bodenmarkierungen erkennen soll
- er sollte frei programmierbar sein (Anhand von Inputs die Outputs steuern, wenn möglich Einbindung von Zeit für die Programmierung von Bewegungsabläufen, etc.)
Außerdem sollten die Teile möglichst günstig sein, da das mein erster Roboter ist und ich denke die Gefahr ist relativ groß dass ich was falsch mache, und ich würde mir gerne die Möglichkeit offen lassen, dass ich die Teile wiederverwende bzw. den Roboter erweitern kann. Würde ihn gerne später über RC steuern können und ihn evtl. mit weiteren Sensoren erweitern (aber das hat noch ein Weilchen Zeit).

Da ich praktisch noch kaum mit solchen Sachen was zu tun hatte, habe ich ein paar Fragen:
Liefern Microcontroller im Normalfall genug Spannung um Motoren zu betreiben?
Brauch ich für die Sensoren eine eigene Spannungsquelle oder liefernt mir das mein Microcontroller?
Auf der RN-wissen Seite steht nur was über Getriebe- und Schrittmotor, ich hätte mir jetzt einen Elektromotor geholt, da diese recht günstig sind, funktionieren diese nicht?
Ich hab gesehen dass es für Schrittcontroller Treiber- und Controllerbausteine gibt, sind diese nötig, was tun die genau und sind diese auch für Elektromotoren nötig?
Auf welche Werte im Datenblatt sind beim Kauf von Motor, Sensor und Microcontroller zu achten?
Sollte ich eine Lichtquelle, wie eine Leuchtdiode, neben den optischen Sensor einbauen, sodass es keine Probleme gibt?
Wie berechne ich am besten die Stromversorgung?
Reichen Kunststoffplatten die ich zusammenklebe als Gerüst für den Roboter?

Diese Bauteile hätte ich ausgewählt, bei Microcontroller und den optischen Sensor, zum Erkennen der Bodenmarkierungen, bin ich mir nicht sicher:
2x Antriebsmotoren http://www.conrad.at/ce/de/product/244406/MOTRAXX-2025-22/SHOP_AREA_19779&promotionareaSearchDetail=005
2x Räder http://www.conrad.at/ce/de/product/217379/LEICHTRAEDER-45MM/SHOP_AREA_19774&promotionareaSearchDetail=005
1x Tischtennisball
1x Ulltraschallsensor http://www.conrad.at/ce/de/product/541348/OFFENER-ULTRASCHALLSENSOR-A-16PTR/0231710&ref=list
1x Optischer Sensor
1x Microcontroller

Schaltplan habe ich noch keinen konkreten, meine Annahme ist dass ich die Batterie am Microcontroller anschließen muss und Sensoren und Motoren ebenfalls. Und evtl. zwischen Sensoren bzw. Motoren einen Widerstand schalte um den Strom zu regulieren. Elektronik ist nicht gerade meine Stärke, also bitte nicht gleich losschimpfen. :rolleyes:

Schonmal Danke im Vorraus an alle die mir antworten werden und sich die Mühe gemacht haben das ganze durchzulesen!

MfG
Virtuelx

Edit: Grün sind bereits beantwortete Fragen, Danke!

Edit2: Bitte letzten Post von mir auf Seite 3 beachten! (https://www.roboternetz.de/community/threads/55247-Erster-Roboter/page3)

Thegon
18.10.2011, 20:54
Hallo,


Liefern Microcontroller im Normalfall genug Spannung um Motoren zu betreiben?

Wohl kaum, mit deinen Motoren sicher nicht. Ein Controllerpin kan bis zu 20mA liefern (5V) bzw 20mA verschlingen (0V) Um damit motoren ansteuern zu können benötigt man einen Motortreiber oder zumindest ein Paar Transistoren, mit denen man die Nötige Stromverstärkung hinbekommt.

"Die sensoren" Kann man da schon eher mit dem µC versorgen, wobei was bringt das? Man kann einen Sensor ja direkt auch (ggf über Transistor) an die Versorgung hängen, so spart man sich einen Ausgangspin ein

Schrittmotoren braucht man natürlich auch nicht unbedingt, sie haben halt den Vorteil, dass man sie sehr genau in eine Position drehen kann, aber man kann sich ja auch bei einem normalen Motor behelfen, mit einem Drehgeber (z.B. Lochscheibe und Lichtschranke durch) zum Beispiel.

Mfg Thegon

-schumi-
18.10.2011, 21:16
Herzlich willkommen im RN :-)

Wenn du den von dir vorgeschlagenen Motor benutzen willst, musst du selbst noch ein Getriebe dazu bauen. Denn so hat der Motor eine sehr hohe Drehzahl, aber kaum Drehmoment...

Aber weil ein Getriebe bauen nicht unbedingt so einfach ist, nimmt man besser einfach fertige Getriebemotoren, das ist nichts anderes als ein Elektromotor mit integriertem Getriebe ;-)

Gruß

Abnormal
19.10.2011, 05:29
mobiler Roboter mit 2 Antriebsrädern, mit je einem Motor, und einen halben Tischtennisball als "Vorderrad"
- mittels Ultraschall-Sensor soll er Hindernissen ausweichen
- ein optischer Sensor, welcher Bodenmarkierungen erkennen soll


schreit regelrecht nach Asuro mit US-Erweiterungsplatine. AsuroWiki hilft weiter, dort findet man vermutlich auch Anregungen was bei einem Selbstbau zu beachten ist (ist ja nix anderes)...

Virtuelx
20.10.2011, 20:43
Danke gleichmal für die schnellen Antworten. :)

Also dann werde ich mich für einen Getriebemotor entscheiden und diesen evtl. später mit einem Drehgeber versehen.
Hab etwas gegoogelt aber bin mich nicht ganz sicher was ein Motortreiber macht. Ich versuche mal zusammenzufassen.
Ein Motortreiber wird mit Strom versorgt, diesen gibt er an die Motoren weiter, wenn Eingangssignale vom Microcontroller ihm das sagen. Das Ganze geht alles über I/O-Pins.
Stimmt das?
Sind generell alle Motortreiber mit Motoren kompatibel, oder worauf sollte ich bei der Auswahl achten?
Welche Signale liefern Outputs und benötigen Inputs von Microcontroller und Motortreiber, sind das genormte TRUE und FALSE Signale oder muss ich noch was dabei beachten?

@Abnormal
Danke für den Tipp, werde die Seite mal durchstöbern.
Was ich gesehen habe ist das Einbaukasten, würde gerne selbst verschiedene Elemente kombinieren um auch das Ganze ein bischen zu verstehen, deswegen probier ichs erstmal ohne.

Torrentula
21.10.2011, 07:01
Informationen zu Motortreibern finden sich in diesem Artikel: Getriebemotoren Ansteuerung (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_IC_L293_D)

Bei der Auswahl musst du beachten wieviel Strom deine Motoren im Normalbetrieb benötigen. Der L293D ist ein Motortreiber-IC der max. 600mA pro Kanal liefern kann. Dieser hat auch noch einen "großen Bruder", den L293B, welche pro Kanal max. 1A schafft, allerdings müssen hier noch 8 Freilaufdioden ergänzt werden (nicht die im Datenblatt vorgeschlagenen 1N4004 verwenden, diese sind zu träge).

Du kannst die eine H-Brücke natürlich auch aus Transistoren bauen aber ehrlich gesagt wäre ich da zu Faul zu^^.

Infos zu den Logikpegeln:
Microkontroller.net (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing.C3.A4nge_.28Wie_kommen_Signale_in_de n_.C2.B5C.29)

Die Motortreiber-IC's haben einen "Enable"-Pin auf den du ein PWM-Signal geben kannst. Mithilfe des PWM-Signals kannst du dann die Geschwindigkeit der Motoren regeln. Infos zu PWM:

Mikrocontroller.net (für AVR-GCC) (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#PWM_.28Pulsweitenmodulation.29)
Allgemeines zur PWM (RN-Wissen) (http://www.rn-wissen.de/index.php/PWM)
PWM mit Bascom (RN-Wissen) (http://www.rn-wissen.de/index.php/Bascom_und_PWM)

MfG

Torrentula

P.S.: Welche Programmiersprache willst du verwenden?

oberallgeier
21.10.2011, 08:05
Willkommen im Forum.


...Sind ... alle Motortreiber mit Motoren kompatibel, oder worauf ... bei der Auswahl achten?
...Im RNWissen steht ne ganze Menge über die Ansteuerung durch Motortreiber-IC´s (klick hier) (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_ICs) - hat ja schon Torrentula geschrieben. Zu beachten ist, dass der maximale Strom der Motoren reichlich höher sein kann als häufig im Datenblatt angegeben wird - wenn das Datenblatt des Motors überhaupt so weit geht. Sinnvoll ist es den Motorstrom bei blockiertem Motor zugrunde zu legen (notfalls messen) - sonst brennt einem beim Anfahren irgendwann der Motortreiber durch (ist mir leider schon passiert). Abhilfe ist möglich, wenn man einen Treiber für zwei Motoren parallel anschließt um einen Motor zu steuern - manche Treiberbausteine sind nämlich gleich für zwei Motoren ausgelegt. Ausserdem sind die Treiber-IC´s häufig für eine getrennte Motor-Versorgungsspannung geeignet - dadurch kann man mit mehr Spannung gleich den Strom reduzieren *ggg*. Die vom Logik-(Controller-)teil getrennte Motorversorgung macht sich auch durch bessere Störfestigkeit des Controllers bezahlt; dabei muss der GND aller Versorgungsspannungen immer gemeinsam geschaltet sein.

Noch ein kleiner Fallstrick: Die Möglichkeit den Motor durch "Kurzschließen" zu bremsen - siehe RNWiss en etc. - funktioniert eher bei höheren Drehzahlen. Die Bremswirkung wird umso geringer, je geringer die Drehzahl ist. Der Motor kann insbesondere NICHT im Stillstand gebremst werden, beispielsweise um das Abrollen am Hang zu verhindern.

Viel Erfolg.

Virtuelx
21.10.2011, 21:12
Okay, werde versuchen mich da etwas durchzulesen. :)

Fürs Programmieren des Microcontrollers würde ich gerne eine C-ähnliche Sprache verwenden, allerdings bin ich auch nicht abgeneigt eine neue zu lernen, sollte sich ein andere Microcontroller besser eignen.

oberallgeier
21.10.2011, 21:50
... Fürs Programmieren des Microcontrollers würde ich gerne eine C-ähnliche Sprache verwenden ...Ich weiß nicht mit welcher Programmiersprache die PIC´s programmiert werden. Für die verbreiteten AV R-Controller gibts eine praktische Entwicklungsumgebung mit C als Programmiersprache. AV RStudio 4 oder AVRStudio 5 (die Version 5 kenn ich nicht, die 4 verwende ich seit Jahren, etwas As se mbler aber fast alles in C), dazu den C-Compiler GCC (z.B. Win A VR, aktuelle Win A VR-20100110). Das Zeugs, AVRStudio 4 - klick hier, (http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725) gibts bei Atmel kostenlos, man muss sich registrieren. Den GCC schau hier (klick wieder) (http://www.rn-wissen.de/index.php/Avr-gcc) unter Download - ebenfalls ohne Kosten, nur der Downloadaufwand.

Viel Erfolg.

Virtuelx
21.10.2011, 22:43
Ich weiß nicht mit welcher Programmiersprache die PIC´s programmiert werden. Für die verbreiteten AV R-Controller gibts eine praktische Entwicklungsumgebung mit C als Programmiersprache. AV RStudio 4 oder AVRStudio 5 (die Version 5 kenn ich nicht, die 4 verwende ich seit Jahren, etwas As se mbler aber fast alles in C), dazu den C-Compiler GCC (z.B. Win A VR, aktuelle Win A VR-20100110). Das Zeugs, AVRStudio 4 - klick hier, (http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725) gibts bei Atmel kostenlos, man muss sich registrieren. Den GCC schau hier (klick wieder) (http://www.rn-wissen.de/index.php/Avr-gcc) unter Download - ebenfalls ohne Kosten, nur der Downloadaufwand.

Viel Erfolg.

Vielen Dank!
Hab jetzt mal das Wichtigste auf den Seiten durchgelesen und gleich dazu ein paar Komponenten rausgesucht.

2x Getriebemotoren http://www.conrad.at/ce/de/product/227544/GETRIEBEMOTOR-RB-35-130/SHOP_AREA_19781&promotionareaSearchDetail=005
2x Räder http://www.conrad.at/ce/de/product/217379/LEICHTRAEDER-45MM/SHOP_AREA_19774&promotionareaSearchDetail=005
2x Ulltraschallsensor http://www.conrad.at/ce/de/product/541348/OFFENER-ULTRASCHALLSENSOR-A-16PTR/0231710&ref=list
1x Microcontroller http://www.conrad.at/ce/de/product/154081/MICROCONTR-ATMEGA32-16PUATMEGA-323-8PU/SHOP_AREA_29142&promotionareaSearchDetail=005
1x Motortreiber http://www.conrad.at/ce/de/product/174003/IC-SCHRITTMOTORTR-L293D/SHOP_AREA_17311&promotionareaSearchDetail=005
1x Programmierstick http://www.conrad.at/ce/de/product/191406/MYSMARTUSB-LIGHT/SHOP_AREA_29142&promotionareaSearchDetail=005

Wenn ich keinen Denkfehler habe sollte der Motor in Verbindung mit den Rädern eine maximal Geschwindigkeit von ca. 41cm/s leisten können.

174U/min = 2,9U/s
2,9U/s * 45mm*pi = 410mm/s = 41cm/s
Der Motortreiber kann kann 2 Motoren ansteuern mit je 600mA, jeder Motor braucht 300mA, sollte also ausreichend sein.
Wäre toll wenn das jemand bestätigen könnte. :rolleyes:
Was ich noch nicht weiß, ist was für ein Signal der Sensor liefert, analog oder digital? Aus dem Datenblatt kann ich das nicht herauslesen.
Hat der Microcontroller digitale Eingänge? Was ich sehe hat er ADC-Pins aber aus den anderen Abkürzungen werde ich nicht schlau.
Passt dieser Programmierstick für meinen Microcontroller? Der Stick hat 2x 3Pins, allerdings der Controller hat 2x 20Pins, also werden nicht alle Pins benutzt.
Und einen Punkt den ich komplett vergessen habe ist die Stromversorgung. Welche Batterien benutzt man dafür?

Edit: Werde mich gleichmal an den Schaltplan machen und den dann hochladen.

Sebas
21.10.2011, 22:51
wieso zwei Ultraschallsensoren?
einen US-Sensor auf einem Servo zu montieren ist billiger, und machts interrressanter
Akku würde ich (kommt auf die größe des Bots an) entweder Bleiakku (günstig aber schwer) oder einen LiPoly-Akku(leicht aber teuer) nehmen.
mfg Sebastian

Virtuelx
21.10.2011, 23:44
wieso zwei Ultraschallsensoren?
einen US-Sensor auf einem Servo zu montieren ist billiger, und machts interrressanter
Akku würde ich (kommt auf die größe des Bots an) entweder Bleiakku (günstig aber schwer) oder einen LiPoly-Akku(leicht aber teuer) nehmen.
mfg Sebastian

Du meinst den Sensor an auf einen Servomotor montieren und diesen permanent drehen lassen (bzw. immer links/rechts, wegen dem Kabel)? Macht das die Auswertung vom Signal nicht etwas schwierig?
Habe mal gelesen, dass Akkus manchmal unkontrolliert unterschiedlichen Strom liefern können und das nicht geeignet bzw. "gefährlich" für manche Bauteile ist, ist da nichts dran?


So hier mein Schaltplan für Motoren(musste den Motor selbst zeichnen, deswegen sieht er etwas komisch aus), Motortreiber und Microcontroller(der Controller im Schaltplan hat nur 20Pins, hab keinen mit 40 gefunden und ich hab angenommen dass unten die Outputs sind):

http://img717.imageshack.us/img717/7486/schaltungh.jpg (http://imageshack.us/photo/my-images/717/schaltungh.jpg/)

Hört sich vielleicht dumm an, aber ich weiß nicht wie ich die Stromquelle anschließen muss.
Laut den Schaltplänen von ATMega32 und dem Motortreiber sollen nur Pluspole angesteckt werden, wo muss der Minuspol der Stromversorgung hin?

Torrentula
22.10.2011, 05:46
Für die Ultraschall-Sensoren die du kaufen möchtest musst du dir noch eine Ansteuerung bauen. Es gab hier mal einen Thread wo Thegon sich daran versucht hat. Für einen Anfänger bietet sich das eher weniger an, denke ich.

Wenn es denn Ultraschall sein soll würde ich zum SRF05 oder noch einfacher zum SRF10 greifen. Sind eben nicht ganz billig weshalb es sinvoller ist nur einen zu kaufen und auf einen Servo zu montieren.

Zum SRF05 muss auch eine eigene Auswertungssoftware auf dem uC programmiert werden, der SRF10 kann per I2C ausgelesen werden (was im Falle von C mit dem Einbinden einer Bibliothek realisiert werden kann).

Der Minuspuol muss dahin wo im Schaltplan "Ground" oder "GND" steht. Im Normalfall benutzt man einen Spannungsregler um die Spannung von z.B. einem Akku auf eine bestimmte Spannung ( meist 5 V) zu stabilisieren. Dazu kannst du im Wiki schauen unter Elektronik -> Spannungsregler.

MfG

Torrentula

EDIT: Beachte, dass du bei einem Linearen Spanungsregler wie dem 7805 mindestens eine Eingangsspannung brauchst die um 2V höher als deine Ausgangsspannung ist (also 7V beim 7805).

P.S.: LTSpice ist eigentlich dazu gedacht um analoge Schaltungen zu simulieren und weniger um allgemein Schaltpläne zu zeichnen. Besser geeignet ist Eagle (gibt es auch kostenlos als nichtkommerzielle Version) (http://www.cadsoft.de/eagle-pcb-design-software/).

Virtuelx
22.10.2011, 08:43
Für die Ultraschall-Sensoren die du kaufen möchtest musst du dir noch eine Ansteuerung bauen. Es gab hier mal einen Thread wo Thegon sich daran versucht hat. Für einen Anfänger bietet sich das eher weniger an, denke ich.

Wenn es denn Ultraschall sein soll würde ich zum SRF05 oder noch einfacher zum SRF10 greifen. Sind eben nicht ganz billig weshalb es sinvoller ist nur einen zu kaufen und auf einen Servo zu montieren.

Zum SRF05 muss auch eine eigene Auswertungssoftware auf dem uC programmiert werden, der SRF10 kann per I2C ausgelesen werden (was im Falle von C mit dem Einbinden einer Bibliothek realisiert werden kann).

Der Minuspuol muss dahin wo im Schaltplan "Ground" oder "GND" steht. Im Normalfall benutzt man einen Spannungsregler um die Spannung von z.B. einem Akku auf eine bestimmte Spannung ( meist 5 V) zu stabilisieren. Dazu kannst du im Wiki schauen unter Elektronik -> Spannungsregler.

MfG

Torrentula

EDIT: Beachte, dass du bei einem Linearen Spanungsregler wie dem 7805 mindestens eine Eingangsspannung brauchst die um 2V höher als deine Ausgangsspannung ist (also 7V beim 7805).

P.S.: LTSpice ist eigentlich dazu gedacht um analoge Schaltungen zu simulieren und weniger um allgemein Schaltpläne zu zeichnen. Besser geeignet ist Eagle (gibt es auch kostenlos als nichtkommerzielle Version) (http://www.cadsoft.de/eagle-pcb-design-software/).

Super dankeschön, werde mir das Programm gleichmal ansehen.

Hier einstweilen was ich bis jetzt am Schaltplan verändert hab.
Kurze erklärung: Der Strom fließt zuerst über den Spannungsregler und gibt 12V/600mA aus, dieser wird geteilt. Der eine Teil fließt zum µC, mit Hilfe eines Vorwiderstandes soll sollen dort 7 der 12V abfallen. Der andere fließt zum Motortreiber.
Der Strom wird nach dem Spannungsregler geteilt, d.h. fließen nicht mehr genau 600mA zum Motortreiber. Wie kann ich den Strom der zum µC fließt wieder ausgleichen?

http://img27.imageshack.us/img27/9868/schaltungc.jpg

oberallgeier
22.10.2011, 08:51
Hi Virtuelx,
schön, dass Du Deine Liste erstmal zusammenschreibst. So können wir das mal diskutieren. Das wird jetzt mal ´n längerer Kommentar : ( : ( : (

Motoren:
Die Motoren sind schon recht kräftig, für Deinen "...kleinen mobilen Roboter ..." also schon ne grössere Nummer. EIN Motor zieht unter Last 300 mA - das würde der L293D abkönnen. ABER im Datenblatt zum Motor steht "Max. Laststrom 2,1 A" - danach brauchste nen neuen Motortreiber. Also entweder kleinere Motoren oder einen grösseren Motortreiber. MÜSSEN die Motoren so groß sein? Hast Du das mal mit dem online-Motorrechner durchgerechnet (klick hier)?

(https://www.roboternetz.de/phpBB2/motordrehmoment.php)Räder:
Das sind wohl Räder für Flugzeugmodelle. Wenn ich das Bild richtig einschätze, ist die Nabenbohrung Ø3 mm - da wird Deine Motorwelle mit Ø6 mm nicht durchpassen. Aufbohren wird bei diesem Rad nicht wirklich gehen - und ausserdem hast Du an der Nabe auch keine Klemmschraube, um das Rad drehmomentfest an der Motorwelle zu befestigen.

US-Sensoren:
Zu denen hat schon Torrentula abschlägig geantwortet. Es klingt ein bisschen überheblich wenn ich jetzt sage: lass es Dir ne eigene Sensorauswertung zu bauen, nimm einen der von Torrentula empfohlenen Bausteine. Dieser Ratschlag - obwohl ich mit US keine Erfahrung habe.

Controller:
Ok, das ist ein ziemlich bekannter Controller - den kannste gut nehmen. Du solltest vielleicht auch nen Quarz dazu kaufen und die Kondensatoren - vermutlich 22pF. Schau Dir dazu mal den RN-Artikel an , Punkt 8 (klick hier) (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht#Grundschaltung_mit_Quarz) - aber lies Dir vielleicht den ganzen Artikel durch.

Motortreiber:
Der L293D (lies mal das Datenblatt *) ) kann " Output Current 1 A Per Channel (600 mA for L293D)" - als Stoßbelastung auch schon mal einen Hauch mehr, aber lieber nicht. Für Deine großen Motoren würde ICH den 293 nicht nehmen. Lies mal hier (klick) (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_IC_L293_D) und auch den Rest, gleich drunter steht etwas mit nem größeren Treiber. Für den L298 brauchst Du aber noch Löschdioden für den Motor.

Programmierstick:
Der Programmierstick wird beim Flashen nicht an alle Pinne des Controllers angeschlossen, lies hier (klick). (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht#Wie_bekommt_man_das_Progra mm_in_den_Controller.3F) Der von Dir ausgewählte wird also entsprechend angeschlossen. Dumm, dass der Programmer sechs Pinne hat - aber das ist völlig ausreichend. Ein bisschen mehr know how dazu steht hier :
http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel
http://www.rn-wissen.de/index.php/RN-Definitionen#ISP_-_Programmierstecker

Vermischtes:

... wo muss der Minuspol der Stromversorgung hin ...-) In den üblichen Schaltungen muss der GND aller Beteiligten miteinander verbunden sein (ganz wenige Ausnahmen bestätigen die Regel).
-) Einer meiner Lieblingssätze - zu oben *) : Das Arbeiten mit Mikrocontrollern etc. ohne Datenblatt zu lesen gehört zu den wenigen großen Abenteuern unserer Tage.

So, jetzt lass Dir das Wochenende bitte nicht von diesem Posting vermiesen, sollte Dir eher weiterhelfen. Kopf hoch und durch, das wird schon. Du bist auf ´nem guten Weg.

Torrentula
22.10.2011, 10:16
Kurze erklärung: Der Strom fließt zuerst über den Spannungsregler (http://www.rn-wissen.de/index.php/Spannungsregler) und gibt 12V/600mA aus, dieser wird geteilt. Der eine Teil fließt zum µC, mit Hilfe eines Vorwiderstandes soll sollen dort 7 der 12V abfallen. Der andere fließt zum Motortreiber.
Der Strom wird nach dem Spannungsregler (http://www.rn-wissen.de/index.php/Spannungsregler) geteilt, d.h. fließen nicht mehr genau 600mA zum Motortreiber

Warum so kompliziert? Ich würde einen 7805 verwenden (Mal eine Beispielschaltung (http://rn-wissen.de/images/2/2a/Avrtutorial_grundschaltung_spannung.gif); einfach Taster und LED rausnehmen und die ISP-Buchse an dein 6-pin Layout anpassen), die Motorspannung würde ich direkt vom Akku nehmen.

Ansonsten gilt das was oberallgeier schon gesagt hat.

MfG

Torrentula

Thegon
22.10.2011, 13:10
Super dankeschön, werde mir das Programm gleichmal ansehen.
eines Vorwiderstandes soll sollen dort 7 der 12V abfallen. Der andere fließt zum Motortreiber.
Der Strom wird nach dem Spannungsregler geteilt, d.h. fließen nicht mehr genau 600mA zum Motortreiber. Wie kann ich den Strom der zum µC fließt wieder ausgleichen?


Das mit dem Spannungsabfall am Widerstand kann so nur funktionieren, wenn der Strom immer konstant bleibt, weil Spannungsabfall U = Durchflussstrom I mal Widerstandswert R, also ist der Spannungsabfall stromabhängig, wenn also weniger strom gezogen wird, steigt die Spannung an und das bedeutet den sicheren Tod für den µC...

Die 78er sind eigentlich sehr billig, da kann man ruhig einen 12V für die Motoren und einen 5V für die Elektronik einbauen, dann ist man da flexibler.
Wobei, das hängt natürlich auch vom Akku ab, denn wenn der nur 7,2 V oder so hat (wäre jetzt ein standard NiMH akku), dann werden da auch keine 12V mehr draus, ob man will oder nicht ;-)

Vom Ultraschall - Selberbau kann ich dir nur abraten, weil man muss wirklich viiieel Zeit haben, bis so was läuft (also ich hab die halben Sommerferien damit verbracht ;-). Auch ein Oszi sollte man haben oder geliehen bekommen, sonst findet man die Fehler nicht.
Und so schön klein wie ein SRF02 oder so wird es dann auch nicht.

Wünsche dir noch viel Erfolg bei deinem Projekt! ;-)


Mfg Thegon

Richard
22.10.2011, 19:32
QUOTE=Virtuelx;528599]Du meinst den Sensor an auf einen Servomotor montieren und diesen permanent drehen lassen (bzw. immer links/rechts, wegen dem Kabel)? Macht das die Auswertung vom Signal nicht etwas schwierig?
wo muss der Minuspol der Stromversorgung hin?[/QUOTE]

Nein, das klappt ganz gut man darf nur nicht durchgehend links/rechts fahren, der Sensor braucht etwas Zeit zum Messen und in dieser Zeit sollte das Servo still stehen. Also z.B. 10 Grad weiter, messen, Weiter, Messen.....das gleiche dann zurück. Ich selber habe den SRF02 weil schön klein (leicht). Bei allen Sensoren IR oder US muss man auf deren Messbereich achten der z.B. SRF02 kann nur zwischen 15 cm und 6m messen

Mimus ist das gleiche wie GND Ground. In Schaltplänen oder bei Bauteilen wird anstatt + oder - ehrer VCC b.z.w. GND verwendet.

Gruß Richard

Virtuelx
22.10.2011, 20:42
So, jetzt lass Dir das Wochenende bitte nicht von diesem Posting vermiesen, sollte Dir eher weiterhelfen. Kopf hoch und durch, das wird schon. Du bist auf ´nem guten Weg.

Nein, im Gegenteil ich freue mich über jede Hilfe/Ratschlag den ich bekomme, ist wie gesagt das erste Projekt deswegen bin ich da noch nicht so fix drauf und mir fehlt ein noch gewisser Überblick über das Ganze. :rolleyes:



Ersatzräder finde ich leider keine, da nirrgends Bohrungsdurchmesser angegeben sind.
Würde als vorerst bei den alten Rädern bleiben, bzw. Modellbauräder für Autos in betracht ziehen.

http://www.conrad.at/ce/de/product/244163/GETRIEBEMOTOR-150-TYP-20G/SHOP_AREA_19781&promotionareaSearchDetail=005
Dieser Motor hat einen Wellendurchmesser von 3mm (sollte also hoffentlich passen).
Lastdrehzahl: 175U/min
Laststrom: 0,13A = 130mA / Max. Strom: 200mA
Reicht also für den alten Motortreiber.

Habe folgende Werte in das Onlinetool für die Motorberechnung eingegeben:
Durchmesser: 6.4cm
Max. Gewichtg: 2kg
Motorgeschwindigkeit: 175U/min
Getriebeuntersetzung: 50:1
-> Geschwindigkeit: 1.17cm/s (bischen langsam)
Wenn ich es aber logisch mit der Hand rechne komme ich auf was anderes:

6.4cm*pi = 20cm
175U/min = 2,9U/s
2,9 * 20 = 58,3cm/s

Zum Schaltplan...
Im Grunde genommen brauche ich dann diese Schaltung http://www.rn-wissen.de/images/6/65/Avrtutorial_grundschaltung_max232.gif (ohne Taster und LED) und eine zweite mit einem Spannungsregler und dem Motortreiber, die beiden Schaltungen werden dann über die I/Os vom µC verbunden?
Für die Spannungsversorgung sollte ich 2 Spannungsquellen verwenden, eine für den µC mit 5V und eine für periphere Dinge wie Motor mit 12V.
Da die Spannungsregler in etwa. 2V fressen, bräuchte ich dann 7V und 12V. Verwendet man dafür normale wiederaufladbare Batterien oder gibt es da spezielle Akkus?
Woher nehme ich die Spannung für den Servo vom Sensor dann?

Und das mit dem Programmierkabel ist mir jetzt nicht ganz klar. Benötige ich mit dem Programmierstick noch ein Kabel, was ich mir selbst bauen muss?
Dachte eigentlich ich verbinde die 3 Pins des Sticks mit der Schaltung.

Aktueller Stand:
2x Getriebemotoren http://www.conrad.at/ce/de/product/244163/GETRIEBEMOTOR-150-TYP-20G/SHOP_AREA_19781&promotionareaSearchDetail=005
2x Räder http://www.conrad.at/ce/de/product/217379/LEICHTRAEDER-45MM/SHOP_AREA_19774&promotionareaSearchDetail=005
1x Microcontroller http://www.conrad.at/ce/de/product/154081/MICROCONTR-ATMEGA32-16PUATMEGA-323-8PU/SHOP_AREA_29142&promotionareaSearchDetail=005
1x Motortreiber http://www.conrad.at/ce/de/product/174003/IC-SCHRITTMOTORTR-L293D/SHOP_AREA_17311&promotionareaSearchDetail=005
1x Programmierstick http://www.conrad.at/ce/de/product/191406/MYSMARTUSB-LIGHT/SHOP_AREA_29142&promotionareaSearchDetail=005
2x Spannungsregler http://www.conrad.at/ce/de/product/179205/SPANNUNGSREGLER-IC-7805-TO-220/SHOP_AREA_17336&promotionareaSearchDetail=005
weitere Bauteile wie Kondensatoren, Widerstände laut Schaltplänen

Edit:


Nein, das klappt ganz gut man darf nur nicht durchgehend links/rechts fahren, der Sensor braucht etwas Zeit zum Messen und in dieser Zeit sollte das Servo still stehen. Also z.B. 10 Grad weiter, messen, Weiter, Messen.....das gleiche dann zurück.

Erfolgt die Winkelpositionsbestimmung dann allein Programmtechnisch (für eine Zeitdauer X ms wird der Motor betrieben, in dieser Zeit dreht er sich um Y °) oder verwendet man da einen Inkrementalgeber (Motor ansteuern, nach X Schritten stoppen, dann hat er sich um Y ° gedreht)?

Torrentula
23.10.2011, 07:20
Die Ansteuerung eines Servos erfolg mit Hilfe von Pulsweitenmodulation (PWM). Entscheidend ist die Pulsbreite des Signals. Bei analogen Servos sollte die Ansteuerung alle 20ms erfolgen. Standard-Servos haben ihre Mittelstellunf meist bei einer Pulsbreite von 1,5ms.
Gestern erst hat radbruch eine sehr hilfreiche Erklärung zur Anseuerung gepostet:

Siehe Eintrag #9 (https://www.roboternetz.de/community/threads/55285-Servo-ansteuerung-durch-pwm)

Richard
23.10.2011, 07:42
Erfolgt die Winkelpositionsbestimmung dann allein Programmtechnisch (für eine Zeitdauer X ms wird der Motor betrieben, in dieser Zeit dreht er sich um Y °) oder verwendet man da einen Inkrementalgeber (Motor ansteuern, nach X Schritten stoppen, dann hat er sich um Y ° gedreht)?

Beides ist machbar, ein Modellbau Servo hat das aber schon intern on Board. :-) Und wird mittels PWM Zeitsignal auf Position gebracht. Dabei Ist die Länge des Spannungsimpuls Proportional zur Servostellung. Bei einer Fernsteuerung Proportional zum Steuerknüppel. Das wird vom Programm "geregelt", man gibt einen Wert 0- 255 oder 0 - 1024 an das PWM Register und das sorgt für die passende Impuls Länge. In Bascom Beispiel geht so etwas sehr einfach, aber es gibt bessere Routinen z.b. unter RN-Wissen. :-)

Gruß Richard

Virtuelx
23.10.2011, 11:45
Danke ich glaube ich habe die Ansteuerungssignalmethode im Grunde verstanden. Was mir nicht ganz klar ist, ist wie mit welchen Bauteil ich den Servo ansteuere.
Brauche ich dann wieder einen Motortreiber?
Ich würde diesen Servo auswählen: http://www.conrad.at/ce/de/product/230500/TOP-LINE-MINI-SERVO-ES-05-JR/SHOP_AREA_19788&promotionareaSearchDetail=005
Laut bild führen 3 Kabel vom Motor weg. Ich nehme an Rot/Schwarz für die Stromversorgung und Gelb für das PWM Signal? Kann ich dann das direkt am µC anschließen?

Für den Sensor habe ich mir überlegt ob es Möglich ist diesen hier zu verwenden, da mir in nem vorigen Post davon abgeraten worden ist eine Schaltung selbst zu machen und es außerdem der einzige Sensor mit Schaltung ist, den ich bei Conrad gefunden habe: http://www.conrad.at/ce/de/product/191360/ASURO-ULTRASCHALL-SATZ-FUeR-ARX-03
Der ist eine Erweiterung vom ASURO Bausatz. Hier ist für mich wieder die Frage ob man den direkt an einen Eingang vom µC anschließen kann und ob der eine zusätzliche Spannungsquelle braucht?

Searcher
23.10.2011, 12:01
Was mir nicht ganz klar ist, ist wie mit welchen Bauteil ich den Servo ansteuere.
Brauche ich dann wieder einen Motortreiber?

Nein. Die Ansteuerleitung kann direkt oder über einen Schutzwiderstand (zB 1k) an den µC angeschlossen werden.
Plus und Minus (Minus = GND) an die Stromversorgung.


Ich würde diesen Servo auswählen: http://www.conrad.at/ce/de/product/230500/TOP-LINE-MINI-SERVO-ES-05-JR/SHOP_AREA_19788&promotionareaSearchDetail=005
Laut bild führen 3 Kabel vom Motor weg. Ich nehme an Rot/Schwarz für die Stromversorgung und Gelb für das PWM Signal?

Das verlinktes Servo hat als Namenszusatz "JR". Dafür findet man Steckerbelegungen im Netz. zB hier http://www.toeging.lednet.de/flieger/profi/stecker/stecker.htm . Graupner/JR wäre für den Servo zutreffend.

Gruß
Searcher

Richard
23.10.2011, 12:07
Danke ich glaube ich habe die Ansteuerungssignalmethode im Grunde verstanden. Was mir nicht ganz klar ist, ist wie mit welchen Bauteil ich den Servo ansteuere.
Brauche ich dann wieder einen Motortreiber?

Der ist eine Erweiterung vom ASURO Bausatz. Hier ist für mich wieder die Frage ob man den direkt an einen Eingang vom µC anschließen kann und ob der eine zusätzliche Spannungsquelle braucht?

Die gelbe Leitung ist das PWM Signal und kann einfach ohne Treiber an einen µC Pin, da Servos viel Strom ziehen können sollten die (möglichst) eine eigene Stromversorgung bekommen, aber ACHTUNG GND beider Versorgungen müssen verbunden werden.

Da der US Sensor für den Asuro gedacht ist sollte der OK sein, obwohl (ich) disen http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=168&osCsid=37372f81e21e457e37c57392105ba037 lieber mag. Allerdings kenne ich mich mit den Asuro selber und auch mit C nicht besonders aus, weiß also nicht wie Dort I²c B.Z.W. belegt sind?

Gruß Richard

Valen
23.10.2011, 13:08
Hier gibt es weitere information wie den Asuro Ultraschall aufgebaut ist:

http://www.henkessoft.de/Roboter/ASURO.htm

Ultraschall am ende dieser Seite.

Auf die Asuro Wiki gibt es eine Seite wo mann die kleine Platine ansehen kann:

http://www.asurowiki.de/pmwiki/pmwiki.php/Main/UltraschallEntfernungsmesser

Virtuelx
23.10.2011, 19:10
da Servos viel Strom ziehen können sollten die (möglichst) eine eigene Stromversorgung bekommen


Also soll ich eine eigene Stromversorgung nur für diesen Servo benutzen? Dann hätte ich jetzt schon 3 Stromquellen und mit jeder erweiterung würde quasi eine mehr dazukommen, wie wird das normal gelöst?

Ich hab mir den Schaltplan und den Text zum Sensor durchgelesen, nur muss ich zugeben dass ich nicht wirklich drauß viel schlauer geworden bin.
Das einzige was ich herauslesen konnte war dass OC2 and den µC angeschlossen wird. Auf der Schaltung sind zwar VCCs, OUTs und GNDs eingezeichnet, jedoch wird auch nicht im Datenblatt erwähnt mit wieviel diese zu versorgen sind.
Meine momentane Annahme ist:
OC2 and einen µC-Output der einen Takt gibt
OUT+ an einen µC-Input, da erhält der µC quasi die Information wie weit ein Objekt entfernt ist.
OUT- mit dem GND vom µC verbinden, stellt Referenz dar
Bei den VCCs kann ich nur annehmen dass sie vermutlich 5V benötigen? Am rechts unterem Teil der Schaltung (http://www.henkessoft.de/Roboter/Bilder/Schaltplan_US.jpg) befindet sich ein OPV mit den 2 Widerständen und dem Kondensator, ist das das erwähnte "RC-Glied zwischen PD6 und VCC/2", soll das auch mit Strom versorgt werden?

Richard
23.10.2011, 19:29
Also soll ich eine eigene Stromversorgung nur für diesen Servo benutzen? Dann hätte ich jetzt schon 3 Stromquellen und mit jeder erweiterung würde quasi eine mehr dazukommen, wie wird das normal gelöst?



Bei 1. Servo MUSS das nicht sein, zur Not puffert man die Batterien/Accus mit einem "fetten" Kondensator (der den Anlaufstrom übernimmt) und versorgt das Servo die reckt mit den Accus. Dann sollte es noch keine Störsignale geben. Na ja, Der US Kram? Ich nehme da halt lieber etwas getestetes wie den SRF02, auch weil der sehr klein in der Bauart ist. Wer eine gute Werkstatt mit Ossi, Frequenzzähler u.s.w. hat kann natürlich auch selber bauen. :-)

Gruß Richard

Valen
23.10.2011, 20:08
Also soll ich eine eigene Stromversorgung nur für diesen Servo benutzen? Dann hätte ich jetzt schon 3 Stromquellen und mit jeder erweiterung würde quasi eine mehr dazukommen, wie wird das normal gelöst?

Ich hab mir den Schaltplan und den Text zum Sensor durchgelesen, nur muss ich zugeben dass ich nicht wirklich drauß viel schlauer geworden bin.
Das einzige was ich herauslesen konnte war dass OC2 and den µC angeschlossen wird. Auf der Schaltung sind zwar VCCs, OUTs und GNDs eingezeichnet, jedoch wird auch nicht im Datenblatt erwähnt mit wieviel diese zu versorgen sind.
Meine momentane Annahme ist:
OC2 and einen µC-Output der einen Takt gibt
OUT+ an einen µC-Input, da erhält der µC quasi die Information wie weit ein Objekt entfernt ist.
OUT- mit dem GND vom µC verbinden, stellt Referenz dar
Bei den VCCs kann ich nur annehmen dass sie vermutlich 5V benötigen? Am rechts unterem Teil der Schaltung (http://www.henkessoft.de/Roboter/Bilder/Schaltplan_US.jpg) befindet sich ein OPV mit den 2 Widerständen und dem Kondensator, ist das das erwähnte "RC-Glied zwischen PD6 und VCC/2", soll das auch mit Strom versorgt werden?OUT+ is gleich Vcc auf den Asuro Hauptplatine (ungefehr 4,8v aus 4 AAA akkus, oder 4 AAA Batterien mit einer diode Spannungsabval), OUT- ist gleich GND. RGND ist verbunden mit ein 220 ohm Widerstand, das an dem andere Seite mit GND verbunden ist (deshalb: R(esistor)GND ) OC2 ist die pin am Atmega8 wo den Timer/Oszillator 2 den 40 kHz ausgibt.(Output Capture 2 pin) Das OPV rechts unter macht aus Vcc/OUT+ ein DC Bias-spannung worauf in dem andere OPV die Ultraschal Signalen verstarkt werden. Das RC-Glied zwischen PD6 und VCC/2, ist ganz klar auf das bild, den Widerstand und Kondensator zwischen PD6 und den Ausgang der OPV (VCC/2). PD6 ist den Positive Eingang der Analoge Komparator der Atmega8. Das RC-Glied entladet dauerend empfang und soll die abnehmende Intensität der Ultraschal wellen vorstellen mit der Zeit. Wann die Spannung am Ausgang der erste OPV (die verstärkte Ultraschall wellen gehen zu atmega8 pin ADC3) grösser ist als das RC-Glied am PD6 soll den Komparator Interrupt starten. Was eine Echo bedeutet.

Thegon
26.10.2011, 16:21
Also soll ich eine eigene Stromversorgung nur für diesen Servo benutzen? Dann hätte ich jetzt schon 3 Stromquellen und mit jeder erweiterung würde quasi eine mehr dazukommen, wie wird das normal gelöst?



Naja, mehr als zwei braucht man eigentlich nicht. Einen 9V Block für die "empfindlichere" Elektronik und einen größeren Akku als Laststromquelle für Motoren und Servos. Die beiden GND´s verbinden, dann sollte sich damit doch alles machen lassen.

Naja, wobei ich persönlich habe eigentlich, sofern es keine sehr empfindliche Schaltung war, noch nie Probleme mit Störungen über die Betriebsspannung gehabt, die AVRs scheinen hier nicht ganz so empfindlich zu sein.
Nur wegen des Ultraschalls sollte man sich gedanken machen, mein Interface war da sehr empfinlich und es bedurfte ein Paar Kondensatoren und einer eigenen Stromversorgung.

Mfg Thegon

Virtuelx
29.10.2011, 23:21
So heute mal wieder Zeit gefunden hier wiedermal zu posten. :p

Hier einmal mein aktueller Stand:

Schaltung: http://www.rn-wissen.de/images/6/65/Avrtutorial_grundschaltung_max232.gif (ohne Taster und LED) und Spannungsregler mit Motortreiber.
µC und Sensor hängen an einer Stromquelle, Getriebemotoren und Servomotor an einer zweiten.

Bauteile:
Motortreiber: http://www.conrad.at/ce/de/product/174003/IC-SCHRITTMOTORTR-L293D/SHOP_AREA_17311&promotionareaSearchDetail=005
2x Motoren: http://www.conrad.at/ce/de/product/244163/GETRIEBEMOTOR-150-TYP-20G/SHOP_AREA_19781&promotionareaSearchDetail=005
Mikrocontroller: http://www.conrad.at/ce/de/product/154081/MICROCONTR-ATMEGA32-16PUATMEGA-323-8PU/SHOP_AREA_29142&promotionareaSearchDetail=005
programmierkabel: http://www.conrad.at/ce/de/product/191406/MYSMARTUSB-LIGHT/SHOP_AREA_29142&promotionareaSearchDetail=005
Reifen: http://www.conrad.at/ce/de/product/237726/110-KOMPLETTRAD-10-STERN-HIGH-GRIP-4/1202341&ref=list
Spannungsregler: http://www.conrad.at/ce/de/product/179205/SPANNUNGSREGLER-IC-7805-TO-220/SHOP_AREA_17336&promotionareaSearchDetail=005
Servo für Ultraschallsensor: http://www.conrad.at/ce/de/product/230500/TOP-LINE-MINI-SERVO-ES-05-JR/SHOP_AREA_19788&promotionareaSearchDetail=005
Ultraschallsensor: http://www.conrad.at/ce/de/product/191360/ASURO-ULTRASCHALL-SATZ-FUeR-ARX-03

Bin ehrlich gesagt im Moment zu faul um mich mit EAGLE außernander zu setzen. Werden den Schaltplan mal auf Papier aufzeichnen. :rolleyes:
Habe ich noch was übersehen oder stimmt etwas nicht? Ansonsten werde ich schauen dass ich die Bauteile im Laufe der Woche kaufen werde.

Hier noch 2 unbeantwortete Fragen von mir.
1.) Warum stimmen meine Berechnungen mit denen vom Onlinetool nicht überein?
Habe folgende Werte in das Onlinetool für die Motorberechnung eingegeben:
Durchmesser: 6.4cm
Max. Gewichtg: 2kg
Motorgeschwindigkeit: 175U/min
Getriebeuntersetzung: 50:1
-> Geschwindigkeit: 1.17cm/s (bischen langsam)
Wenn ich es aber logisch mit der Hand rechne komme ich auf was anderes:

6.4cm*pi = 20cm
175U/min = 2,9U/s
2,9 * 20 = 58,3cm/s


2.) Was für Akkus werden normalerweise verwendet? Normale wiederaufladbare Batterien?

Searcher
30.10.2011, 07:40
Hallo,

1.) Warum stimmen meine Berechnungen mit denen vom Onlinetool nicht überein?
die 175U/min sehen so aus, als wenn es die Umdrehungen des Rades wären. Dann mußt Du 1:1 bei Getriebeuntersetzung im Onlinetool angeben. Oder eben die echte Umdrehungszahl des Motors ohne Getriebe plus dann die Getriebeuntersetzung.


2.) Was für Akkus werden normalerweise verwendet? Normale wiederaufladbare Batterien?
Weil ich selbst immer nur NiMh Akkus in AA oder AAA Größe für kleinere Bots einsetzte, kann ich eigentlich dazu nur sagen: Es werden sicher normalerweise keine wiederaufladbaren Batterien eingesetzt!

Gruß
Searcher

oberallgeier
30.10.2011, 08:09
... Warum stimmen meine Berechnungen mit denen vom Onlinetool nicht überein?
...
Motorgeschwindigkeit: 175U/min
Getriebeuntersetzung: 50:1
...
Wenn ich es aber logisch mit der Hand rechne komme ich auf was anderes ...Es lohnt sich, die Logik nicht in der Hand, sondern im Kopf zu suchen. Und mal so überschlagsweise (oder wie man sagt "im Kopf gerechnet") ist die errechnete Geschwindigkeit bei der Kopfrechnung fünfzig mal höher als mit dem onlinetool - gibt das nicht zu denken?

Deine Motorgeschwindigkeit ist sicher nicht 175 Upm, das ist sicher die Abtriebsdrehzahl, die Drehzahl NACH dem Getriebe. Das heißt, für das onlinetool solltest Du bei dieser Drehzahlangabe als Getriebeübersetzung 1:1 eingeben - weil danach eben nix mehr übersetzt wird. WENN Du das Getriebe mit 50:1 rechnen willst, musst Du aber den Wert eingeben, der davor gefragt ist, die MOTORdrehzahl.

Das ist sicherhoffentlich klar? Viel Erfolg weiterhin.

Virtuelx
30.10.2011, 11:08
Also auf das mit der Drehzahl wäre ich glaub ich nie gekommen, danke. Da Frage ich mich warum überhaupt die Übersetzung beim Produkt angegeben wird, wenn Drehzahl und Drehmoment sowieso dort stehen. :confused:



Weil ich selbst immer nur NiMh Akkus in AA oder AAA Größe für kleinere Bots einsetzte, kann ich eigentlich dazu nur sagen: Es werden sicher normalerweise keine wiedersufladbaren Batterien eingesetzt!

So, bin jetzt etwas verwirrt. Für mich sind "wiederaufladbare Batterien" AA bzw. AAA Akkus, also z.B.: diese hier: http://www.conrad.at/ce/de/product/251020/AKKU-MIGNON-NIMH-2700-MAH-4ER-SET/SHOP_AREA_14717&promotionareaSearchDetail=005
Könnte ich diese benutzen oder was wäre ein Beispiel für angemessene Akkus?

Searcher
30.10.2011, 13:53
Für mich sind "wiederaufladbare Batterien" AA bzw. AAA Akkus
Oh, ich dachte Du meintest mit Akkus und Batterien etwas unterschiedliches. Ich meinte mit Batterien Primärzellen. http://de.wikipedia.org/wiki/Batterie_(Elektrotechnik) Da soll es ja auch so etwas wie wiederaufladbar geben.

Akkus (Sekundärzellen) gibt es nicht nur in AA, AAA oder als NiMh sondern in so vielen, für mich nicht mehr zählbaren, Varianten.

Gruß
Searcher

oberallgeier
30.10.2011, 16:07
... was wäre ein Beispiel für angemessene Akkus?Die Akkus aus Deinem Link sind ja schon mal recht hübsch. ABER Deine Motoren sind für 4V - 12 V gebaut - vermutlich sind die 4V für den "Kriechgang". Da würde ich schon sehen, dass ich die Möglichkeit nutze, einen Motortreiber mit getrennter Motorversorgung zu nehmen und daran eben 12 V (oder mehr) hänge.

Dann kommt wieder der Rechenstift (oder der Kopf). Nehmen wir mal an, Deine Motoren fressen im Normalbetrieb an die 0,2 A. Macht 0,4 A für beide. Mit den genannten Akkus kannst Du also an die sechs Stunden fahren (wenn die von mir angenommene Stromaufnahme stimmt, das solltest Du lieber messen) - ein bisschen was fressen ja die anderen Komponenten auch. WENN Dir das reicht, dann sind etwa drei von diesen 4xAA-Packs sehr ausreichend, ich würde mit zwei anfangen. Gibt sechs Stunden Spielfahrt - und danach - je nach Ladegerät - ein paar Stunden Ladepause. Klingt irgendwie machbar.

Nicht vergessen. GND-Potentiale!! Für den Controller und das andere Beiwerk brauchst Du Spannungswandler mit ausreichender Leistung, Du hast ja schon welche gelistet. Die GND-Potentiale müssen alle verbunden sein.

Virtuelx
01.11.2011, 20:12
Die Akkus aus Deinem Link sind ja schon mal recht hübsch. ABER Deine Motoren sind für 4V - 12 V gebaut - vermutlich sind die 4V für den "Kriechgang". Da würde ich schon sehen, dass ich die Möglichkeit nutze, einen Motortreiber mit getrennter Motorversorgung zu nehmen und daran eben 12 V (oder mehr) hänge.

Dann kommt wieder der Rechenstift (oder der Kopf). Nehmen wir mal an, Deine Motoren fressen im Normalbetrieb an die 0,2 A. Macht 0,4 A für beide. Mit den genannten Akkus kannst Du also an die sechs Stunden fahren (wenn die von mir angenommene Stromaufnahme stimmt, das solltest Du lieber messen) - ein bisschen was fressen ja die anderen Komponenten auch. WENN Dir das reicht, dann sind etwa drei von diesen 4xAA-Packs sehr ausreichend, ich würde mit zwei anfangen. Gibt sechs Stunden Spielfahrt - und danach - je nach Ladegerät - ein paar Stunden Ladepause. Klingt irgendwie machbar.

Nicht vergessen. GND-Potentiale!! Für den Controller und das andere Beiwerk brauchst Du Spannungswandler mit ausreichender Leistung, Du hast ja schon welche gelistet. Die GND-Potentiale müssen alle verbunden sein.

Wieso einen Motortreiber mit getrennter Motorversorgung, wegen Gefahr einer Überhitzung des Bauteils? Würde eigentlich lieber bei dem jetzigen bleiben, da ich sowieso schon wenig Grundwissen diesbezüglich habe und auch nicht wüsste welchen ich da nehmen kann.
4xAA-Packs mit je 4Batterien (also insgesamt 16) finde ich etwas Umständlich zum wiederaufladen. Diese Akkus finde ich sehr verlockend zu benutzen: http://www.conrad.at/ce/de/product/250181/AKKU-9-V-BLOCK-NIMH-160-MAH/0501035&ref=list
Könnte ich auch diese benutzen, evtl. in Kombination mit den anderen? Denn die sind einfacher zum aufladen und außerdem um einiges günstiger, wenn ich bei den anderen 4 4er-Packungen kaufe, zahle ich schon rund 60€ dafür, 3 Blockakkus krieg ich schon für 21€.
2 Stunden Laufzeit des Roboters wären völlig ausreichend, habe nicht vor dass dieser im Dauerbetrieb laufen sollte.

Thegon
02.11.2011, 17:31
Hallo,

Also ich verstehe nicht, warum da so viele Akkus genommen werden. Wenn die Motoren 12V brauchen, dann könnte man ja 8 AA Zellen (Akku oder auch nicht) zusammenschalten (in serie, versteht sich), oder einfach einen Racingpack mit 12V nehmen. ist ja im Prinzip auch egal, was du nimmst, wenns 12V hergibt
und vom gewicht, größe und Kapazität passt ;-)
Der aufladbare 9V block von Conrad ist für die Elektronik sicherlich gut geeignet, aber für die Motoren wird die Kapazität nicht ausreichen, damit fährt dein Ding nicht mal eine Halbe Stunde, und der akku hat eben nur 9V, nimmst du 2, sinds mit 18V schon wieder zuviel und man muss wieder regeln.

Na ich hab jetzt nicht den ganzen Thread gelesen, aber ich denke, man muss es ja nicht so kompliziert machen mit der Stromversorgung. Zu Testzwecken kann man ja auch ein Netzteil benutzen, (z.B. irgent ein Steckernetzteil oder auch die 12V des PC-Netzteiles) und wenn das Gerät dann so weit ist, dass es fährt, dann kann man sich ja immer noch gedanken um den Richtigen Akku machen, oft sieht man die Dinge dann auch ganz anders, der Stromverbrauch ist villeicht höher als geplant und der vorher gekaufte Akku ist dann zu klein...

Bin schon gespannt auf erste Bilder und Details dieses Projektes
Viel erfolg beim Weiterbasteln
Mfg Thegon

Richard
02.11.2011, 17:44
Der aufladbare 9V block von Conrad ist für die Elektronik sicherlich gut geeignet, aber für die Motoren wird die Kapazität nicht ausreichen, damit fährt dein Ding nicht mal eine Halbe Stunde, und der akku hat eben nur 9V, nimmst du 2, sinds mit 18V schon wieder zuviel und man muss wieder regeln.


Nur das die Block's einen super schlechten Wirkungsgrad b.z.w. eine geringe Kapazität haben. :-(

Gruß Richard

Virtuelx
02.11.2011, 19:04
So, schon wieder was dazugelernt, dieser Akkus sollte denk ich passend sein: http://www.conrad.at/ce/de/product/206974/NIMH-2X-6V-RACING-PACK-2400MAH-T-BUCHSE/1209071&ref=list
Habe noch nie mit solchen Akkus wirklich zu tun gehabt, kann man dafür beliebe Ladegeräte verwenden, solange sie den selben Stecker haben?
Da ich auch kein Ladegerät der selben Marke gefunden habe, würde ich mich für dieses hier entscheiden: http://www.conrad.at/ce/de/product/237840/230-V-LADEGERAeT-112-V600MAH-ECO/0502145&ref=list



Für den Controller und das andere Beiwerk brauchst Du Spannungswandler mit ausreichender Leistung, Du hast ja schon welche gelistet.

Da hab ich doch glatt letztes Mal eine Frage vergessen. Mit Spannungswandler meinst du einen Spannungsregler, der mir die Spannung runterschraubt?

Richard
02.11.2011, 19:24
tch

Da hab ich doch glatt letztes Mal eine Frage vergessen. Mit Spannungswandler meinst du einen Spannungsregler, der mir die Spannung runterschraubt?

Im Prinzip ja, aber wie ich es schon einmal erwähnt hatte die kleinen SMD Typen können nicht viel Strom b.z.w. Leistung liefern und sind schnell überlastet (geben Rauchzeichen vorm Sterben)....Wenn Du aus 12 V 5 V machen willst muss der Regler 7V * die Benötigte Stromstärke in Wärme umwandeln! Nutzlose Wärme auf Kosten der Accu Laufzeit. :-( Lese Dir dazu bitte http://de.wikipedia.org/wiki/Abwärtswandler genau durch ähnliches gibt es als IC unter den Begriff DC/DC Wandler. Das klappt auch in anderer Richtung = Step-up Wandler. :-) Finden kann man so etwas auch beim großem C.

Diese sind je nach benötigter Leistung etwas teurer, dafür muss die Batterie ihre Wertvolle Ladung nicht als Heizung in die Umwelt blasen. Damit rechnet sich der etwas höhere Preis, Batterie/Accu hält länger durch, braucht weniger Lade Zyklen = lebt länger = Geld gespart. :-)

Gruß Richard

Thegon
02.11.2011, 19:27
Der Akku sieht gut aus ;-)

Das von dir gelinkte Ladegerät schafft laut Beschreibung nur 6-8 Zellen, in dem 12V akku sind aber 10 verbaut.
Ich denke, dass das nicht geht.
Habe auf die Schnelle bei Conrad das gefunden:
http://www.conrad.at/ce/de/product/237739/VOLTCRAFT-230-VAC-LADEGERAeT-1A-LED/0502145&ref=list
Kostet nur ein Paar euros mehr und man kann die Anzahl der Zellen von 2-10 einstellen, also universeller einsetzbar.

Mfg Thegon

Virtuelx
02.11.2011, 20:36
Der Akku sieht gut aus ;-)

Das von dir gelinkte Ladegerät schafft laut Beschreibung nur 6-8 Zellen, in dem 12V akku sind aber 10 verbaut.
Ich denke, dass das nicht geht.
Habe auf die Schnelle bei Conrad das gefunden:
http://www.conrad.at/ce/de/product/237739/VOLTCRAFT-230-VAC-LADEGERAeT-1A-LED/0502145&ref=list
Kostet nur ein Paar euros mehr und man kann die Anzahl der Zellen von 2-10 einstellen, also universeller einsetzbar.

Mfg Thegon

Danke, aber soweit ich das sehe hat dieses Ladegerät keinen T-Buchsen-Stecker, daher nicht kompatibel?
Da fällt mir gleich ein, wie ist es am klügsten den Akkus mit meiner Schaltung zu verbinden?
Ich könnte mir so ein Kabel kaufen das einfach in der Mitte abzwicken und das "offene" Ende anlöten, oder wie wird das normal gemacht ? http://www.conrad.at/ce/de/product/208474/T-BUCHSE-AKKUKABEL-25MM/SHOP_AREA_32511&promotionareaSearchDetail=005

Thegon
03.11.2011, 18:36
Naja der Stecker sollte jetzt nicht das große Problem sein.
Also beim Ladegerät ist eigentlich nur wichtig, dass auch + (vom Ladegerät) an + (vom Akku) und - an - kommt. Wie ist theoretisch egal, praktisch sollte man natürlich schon einen passenden Stecker haben, bei dem Netzteil sind glaub ich Krokodilklemmen dabei, man könnte sich also so ein Kabel:
http://www.conrad.at/ce/de/product/208476/T-STECKER-GEGENKABEL-25MM/SHOP_AREA_32511&promotionareaSearchDetail=005
kaufen und die Enden mit den Klemmen abgreifen, man kann sich aber natürlich auch ein passendes Ladekabel zusammenlöten.

Um an die Platine zu kommen wäre es natürlich möglich, ein Zweites obrig genanntes Kabel zu kaufen und das einzulöten, man ist da villeicht nicht so flexibel und die Lötstelle ist halt nicht abnehmbar, man könnte z.B. so eine Schraubklemme (http://www.conrad.at/ce/de/product/731986/ANSCHLUSSKLEMME-2-POLIG-GRUeN-RM-508-MM/SHOP_AREA_88126&promotionareaSearchDetail=005) kaufen und damit die Enden des Kabels abgreifen.
Diese klemmen finde ich überhaupt sehr praktisch ;-)

Mfg Thegon

Virtuelx
06.11.2011, 00:22
Danke das mit der Schraubklemme hört sich praktisch an, werde ich glaub ich so machen. Allerdings mit den Krokodilklemmen, das ist wirkt für mich ein bischen gepfuscht, werde mir glaub ich ein Kabel dann lieber löten, dann können sich die Kontakte nicht berühren.

Bin gerade am Schaltplan zeichnen, da bin ich auf 2 Probleme gestoßen.
1.) Welche Pins am µC kann ich als Outputs für den Motortreiber benutzen?
Habe im Datenblatt versucht das zu recherchieren, bin aber nicht wirklisch schlauer daraus geworden. Mich verwirrt vorallem dass jeder Pin als I/O beschrieben wird, trotzdem hat jeder eine eigene Bezeichnung(SCK, MISO, MOSI, SS, TDI, TDO, TMS, TCK, SDA, ...). Außerdem dachte ich immer dass es gewisse Pins gibt die nur Inputs und gewisse die nur Outputs sind? :confused:

2.) Auf diesem Schaltplan (http://www.rn-wissen.de/images/6/65/Avrtutorial_grundschaltung_max232.gif) sind rechts oben bei dem Kondensator zwei Anschlüsse, 15(GND) und 16(VCC). Hier (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht) wird beschrieben dass "Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) am MAX232 getrennt oben rechts im Schaltplan dargestellt.", das finde ich verwirrend. Sind das der 15te und 16te Pin vom MAX232-Bauteil, oder wie darf ich das verstehen?

EDIT: Projekt vorübergehend bei Seite getan, grund Zeitmangels

Thegon
06.11.2011, 07:59
Also bei den AVR´s ist das eigentlich so:
erstmal kann jeder der 32 I/O pins (reset, Versorgungsspannung und so nicht) als digitaler Output und als Digitaler Input (sagt ja schon der Name I/O Port)
verwendet werden, es bedarf nur einer einzeiligen Konfiguration in der Programmierung.
Dann hat aber jeder dieser Pins noch eine Extrafunktion, die dann nur dieser Pin (bzw. nur diese Pins) ausführen können.
Beispiele sind:
RXD/TXD für die UART verbindung
SCK/MISO/MOSI für die SPI Schnittstelle, die auch zur Programmierung genutzt wird (ISP)
ADC pins sind die Analogen eingänge des AVR, zum Auswerten diverser Sendsoren
SDA/SCL sind die Beiden Leitungen für Hardware I²C, an die man einen I²C Slave anschließt
usw. man kann ja im Internet nachschauen, was die Machen ;-)

Wenn man eine Bestimme funktion nicht braucht, kann man diesen Pin als I/O verwenden z.B. einen ADC, man hat ja 5 davon (bei mega 8 )
Den Motortreiber muss man an einem PWM - Pin anschließen, die Heißen OC1A OC1B und so weiter.
Um die richtung festzulegen (motortreiber) kann man natürlich auch einen gewöhnlichen I/O port verwenden.

Mfg Thegon

Virtuelx
25.12.2011, 17:39
So ich habe jetzt wieder etwas mehr Zeit gefunden mich der ganzen Sache wieder zu widmen.
Habe natürlich in der Zwischenzeit über das ganze nachgedacht und da sich für mich die Möglichkeit ergibt an einen MSP430 uC samt gelöteter Platine zu kommen, werde ich vorerst diese verwenden. Da ich glaube, das das für den Anfang doch sinnvoller ist als gleich ein Board selbst zu löten.
So hier gleichmal wieder Fragen die sich für mich ergeben haben: :rolleyes:

- Ich würde für die Motoren die bereits besprochenen Akkus verwenden (http://www.conrad.at/ce/de/product/206974/NIMH-2X-6V-RACING-PACK-2400MAH-T-BUCHSE/1209071&ref=list) und für den uC, der 3,6V benötigt, 3x AA Akkus von VARTA, die laut Aufschrift 750mAh liefern (spielt diese Angabe überhaupt eine Rolle?). Sollte ich eine Art Absicherung einbauen dass wirklich nicht mehr als 3.6V am uC anliegen? Wenn ja, welche?
- Kann beim Ansteuern des Motortreibers (L293 D) die Anschlüsse(1A; 2A; 1,2EN; etc.) direkt mit dem uC verbinden?
- Ist der Ultraschallsensor (http://www.conrad.at/ce/de/product/191360/ASURO-ULTRASCHALL-SATZ-FUeR-ARX-03) an und für sich mit jedem uC kombatibel? Oder vielleicht nur mit denen der ASURO-Reihe?
Hat hier vielleicht jemand einen Link für eine Beschreibung/Tutorial oder Ähnliches für den Ultraschallsensor? Habe mir zwar schon den Link der vorher gepostet wurde angesehen aber ich sehe einfach nicht welche Anschlüsse dieser hat bzw. wie dieser funktioniert oder welche Signale er sendet, habe auch ein wenig gegoogelt aber auch nichts sinnvolles gefunden.

Torrentula
25.12.2011, 18:50
Möchtest du das MSP430 Launchpad verwenden?

Das problem (finde ich persönlich) ist, dass die mitgelieferten Chips nur 2kB-Programmspeicher besitzen. Wenn man dann mitten im Projekt feststellt, dass einem der verfügbare Programmspeicher zu neige geht, dann sieht das bei dem MSP430 schlecht aus, weil man nicht mal eben so beim nächsten C oder bei Reichelt einen mit mehr Flash-Speicher kaufen kann.

Nachteile des Launchpads aus meiner Sicht (ich besitze selber zwei):

- wenig programmspeicher der mitgelieferten Chips
- schlechte Verfügbarkeit als DIP20-Package; zummindest von den "standard" Händlern nur in SMD-Ausführungen vorhanden (nichtmal der selbe Typ, eine komplett andere Produktlinie)
- keine Supportforen in deutscher Sprache (habe nur bei mikrocontroller.net einen Artikel gefunden)
- wenn man sich nicht bei TI registrieren möchte, gibts nur einen Compiler bis 2kB, was aber kein Beinbruch ist, da man in Deutschland an keine größeren Chips rankommt

Der Preis für 4,70€ ist verlockend aber wie ich finde gibts da eben den großen Haken der schlechten Chip-Verfügbarkeit.

An deine Stelle würde ich mir entweder ein Board selber löten oder auf ein fertiges Board (z.B. RN-Control) zurückgreifen.

Zur Motoransteuerung:
Hier ist das eigentlich gut beschrieben (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_IC_L293_D)

Auf die Enable Leitungen kannst du ein PWM-Signal legen, um die Geschwindigkeit deiner Motoren zu regeln (je nach Pulsbreite deiner PWM).
Die pins 1A bis 4A am L293 können auch direkt an den µC angeschlossen werden. Diese sind für die Drehrichtung der Motoren verantwortlich (Motor 1: 1A & 2A; Motor 2: 3A & 4A).

MfG

Torrentula

RobotDesign
25.12.2011, 20:07
Hallo Virtuelx,
ich habe auch vor ein paar Monaten angefangen, einen kleinen autonomen Roboter zu bauen.

Ich habe einen etwas anderen Ansatz gewählt:
Als Microcontrollersystem habe ich einen Arduino gewählt. Den kann man in einem C++ Derivat programmieren, die Entwicklugsumgebung ist umsonst und gut dokumentiert. Einen Arduino bekommt man ab 25 EUR. Ich habe mir den Arduino als Lernpaket gekauft (das liegt bei 70,--EUR z.B. bei Amazon) - allerdings war der Einstieg dafür ein Kinderspiel. Man kann sich die Informationen auch im Internet zusammensuchen: http://www.arduino.cc/ ist eine gute Einstiegsseite.
Programmiert wird der Arduino über USB, einen Programmer / Flasher benötigt man nicht.

Eine Alternative wäre vielleicht auch der Netduino. Prinzipiell dem Arduino ähnlich, allerdings deutlich schneller und zu programmieren über das .NET Microsoft Framework mit Microsoft Visual Studio (die Free- Edition reicht aus). Ich habe mich vorerst für den Arduino entschieden, weil es für den sogenennte Shields gibt: Das sind standardisierte und fertige Platinen, die man auf den Arduino stecken kann. Ein Motortreiber- Shield (z.B. für Getriebemotoren) bekommt man für ca. 25 EUR.

Ich habe mich für Schrittmotoren entschieden weil die kein Getriebe zur Drehzahl- und Drehmomentwandlung benötigen. Außerdem sind die Bewegungen des Roboters leicht kontrollierbar.
Nachdem ich die Schaltung fertig designed hatte stellte ich fest, dass die Einzelteile genau so teuer waren wie ein fertiger Baustein. Außerdem kann der fertige Baustein die Motoren im 1/4, 1/8 und 1/16 Verfahren ansprechen. Dieses Verfahren erlaubt, die 4V Schrittmotoren mit bis zu 30 V zu steuern. Der Baustein steuert die Motoren allerdings nur sehr kurz mit diesen hohen Werten an um die Magnetisierungen in den Motorwindungen schnell umzupolen. Danach regelt der Treiberbaustein die Spannung automatisch runter (sonst würden die Motoren durchbrennen). Damit bekommen die Motoren richtig Drehmoment!
Probiere so ein Verfahren bitte nicht mit normalen (Getriebe-)Elektromotoren aus - die rauchen Dir sonst sofort ab.

Die Schrittmotorsteuerung findest Du hier:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=237

Als Motoren habe ich gewählt:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=69&products_id=236

Zu Deinen Rädern:
Ich habe mir übrigens auch diese Räder bei Conrad bestellt. Die Räder sind super. Allerdings wirst Du folgendes Problem bekommen:
Die Räder haben einen Felgen-Mitnehmer von 12 mm im Format 6-Kant.
Das bedeutet: Um das Drehmoment des Motors zu übertragen benötigst Du einen Mitnehmer - irgendwie muß das Rad auf der Welle so befestigt werden das sich das Rad mit der Welle dreht. Und ich habe keinen Mitnehmer gefunden.

Ich habe mir übrigens vorher andere Räder und passende Mitnehmer gekauft:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=72&products_id=234
Allderdings waren die Mitnehmer nicht in der Lage, das Drehmoment für meinen Roboter kraftschlüssig zu übertragen - nach einigen Versuchen stellt ich fest, dass der Mitnehmer durchrutschten.

Insofern habe ich mir die gleichen Reifen wie Du bei Conrad gekauft und stand vor dem Problem mit den Mitnehmern. Meine Lösung dazu war folgende:
1.) Google SketchUp (kostet nichts) heruntergeladen. Damit habe ich in 3-D passende Mitnehmer konstruiert.
2.) Die Mitnehme habe ich mir bauen lassen. Das geht mit Anbietern wie shapeways.com. Die drucken solche Teile in einem 3D Verfahren. Zur Zeit lasse ich mir ein neues Gehäuse und eine Radaufängung für meinen Roboter "drucken".

Die Mitnehmer findest Du hier:
http://www.shapeways.com/model/312428/
Die Mitnehmer passen auf eine 5 mm Welle und werden mit 3 mm Bolzen auf die Welle gespannt. Erst den Mitnehmer auf die Welle schieben, dann festspannen, anschließend ein kleiner Klecks Sekundenkleber auf die Stirnseite des Mitnehmers, Rad aufsetzen ... und Du bekommst das Teil nie wieder ab!

Mit den Mitnehmern rutscht seitdem nichts mehr durch :cool:

Letzter Tip von meiner Seite:
www.fritzing.org hat ein fantastisches kostenloses Tool zum Plantinenbauen. Inzwischen gibt es auch einen Link, um die Platinen kostengünstig fertigen zu lassen.

Ich benutze für meinen Roboter zur Orientierung einen Ultraschall- Entfernungsmesser (SRF05) und einen IR Entfernungsmesser GP2d120.

Ultraschallentfernungsmesser haben den Nachteil, dass ein Messen der Distanz während der Fahrt zu lange dauert. Es gibt dazu 2 Lösungen:
a) Motoren stoppen und messen, dann weiterfahren.
b) Timer-Interruptgesteuerte Motorprogrammierung. Das geht auch mit dem Arduino.

IR Entfernungsmessung geht nur bei sehr kurzen Distanzen. Außerdem kann der Roboter durch starkes Sonnenlicht gestört werden.

Ich habe mich für für die timer-interrupt gesteuerte Variante mit der Ultraschall- Entfernungsmessung entschieden. IR benutze ich zusätzlich, um Treppenabsätze zu entdecken damit mein Robbi nicht die Treppe runterfällt.

Ich hoffe ich habe Dir ein paar Anregungen geben können. Mein erster Versuchsroboter lief schon nach 4 Wochen.

Erst mal viel Erfolg mit Deinem Roboter!

Torrentula
26.12.2011, 07:29
b) Timer-Interruptgesteuerte Motorprogrammierung. Das geht auch mit dem Arduino.

Mit dem Arduino geht alles, was mit jedem anderen AVR auch machbar ist. Die Arduino IDE verwendet den avr-gcc Compiler. Die Arduino IDE stellt eben bereits fertige Softwarebibliotheken zur Verfügung
==> schneller Erfolg garantiert.

Somit muss man sich keine Gedanken über den ganzen technischen Kram machen. Wenn man aber verstehen will was genau da passiert, sollte man mal die Funktionen selber proggen, die z.B. den Servo stellen, but that's just worth my two cents.

Trotzdem ist der Formfaktor des Arduino gan nett und zur Not kann man den auch per ISP flashen, dann hat man eben ein ATmega328-Board mit nem USB zu Seriell Wandler drauf.

MfG

Torrentula

Virtuelx
26.12.2011, 10:28
Danke für die Hinweise.

@Torrentula: Dieses Board soll nicht mein endgültiges für den Roboter werden. Ich möchte lieber erstmal ausprobiern um einen besseren Einblick in die ganze Sache zu erhalten, danach werde ich mir mal ein besseres Board holen bzw. vielleicht dann eines selber löten.

@RobotDesign: Werde den Arduino für später im Hinterkopf behalten. Mal sehen wie das bei mir mit den Rädern wird, wollte einfach die Räder mittels Heißklebepistole angeklebt. Die Seite mit dem 3D-Drucker sieht interessant aus, allerdings für ein komplettes Gehäuse hört sich das sehr teuer an. Sind das deine Bilder am Mitnehmer? Gibts Bilder zu deinem Projekt? Würde mich sehr interessieren.
Ist die Ultraschallmessung während der Fahrt wirklich ein Problem? Schallgeschwindigkeit ist etwa 343m/s daher wenn ich bis zu 1m Abstand messen will sind das etwa 6ms die der Schall für Hin- und Rückweg braucht. Gefühlsmäßig würde ich behaupten dass der Roboter innerhalb von 6ms kaum seine Position verändert.
Könntest du das mit "Timer-Interrupt gesteuerete Motorprogrammierung" ein wenig erläutern? Ist damit gemeint dass der Roboter z.B. in der Fahrroutine befindet und mittels Timer werden regelmäßig Interrupts ausgelöst, in denen der Abstand gemessen wird?

RobotDesign
26.12.2011, 21:20
Hallo Virtuelx,
ich habe zu wenig Erfahrung mit einer kraftschlüssigen Verbindung zwischen Metallwelle und Kuststoffrad per Heißklebepistole. Aber vermutlich wird das nicht lange halten.
Ja, das sind meine Bilder am Mitnehmer. Als erstes Robotergehäuse habe ich erst einmal eine Plastikschale verwendet. Dummerweise fliegt die Elektronik dauernd darin herum. Und dann habe ich bemerkt, dass ich die Motoren nicht mittig befestigt habe. Dadurch dreht der Roboter links herum weiter als rechts herum mit der gleichen Anzahl von Schritten. Nachdem ich das festgestellt hatte war das der auslösende Moment für die Konstruktion eines richtigen Robotergehäuses. Ich habe das Teil leider erst am 23.12. bestellt und muß mich bis Mitte Januar noch gedulden bis ich die Teile bekomme. Hier schon mal ein paar gerenderte Bilder:
209442094520946
Ganz billig ist so ein Gehäuse leider nicht. Aber was halbwegs professionelles geht nicht ohne eine gewisse Präzision...
Freigegeben zum Nachbestellen habe ich die Gehäusekonstruktion noch nicht, weil ich erst die mechanische Haltbarkeit ausprobieren will. Bei ein paar hundert Euro wären Leute die das Teil bestellen wahrscheinlich ziemlich sauer wenn das Teil bei Belastung zerbröselt.

Die Ultraschallsensoren benötigen zwischen dem Senden und dem Empfangen ein ziemlich genaues Timing. Zum Beispiel muß zwischen 2 Messungen ein Zeitabstand von 54 Millisekunden eingehalten werden. Der auslösende Impuls soll 10 Mikrosekunden lang sein. Anschließend muß auf die Antwort gewartet werden und die Zeit dazu gemessen werden (möglichst exakt). Die Zeitdauer ist beim SRF05 definiert mit 100 ys nis 25 ms.

Bei einem Roboter mit Schrittmotoren mit einer Auflösung von 200 Schritten pro Umdrehung der im 1/4 Schritt- Betrieb betrieben wird hat man pro Umdrehung 800 Schritte die in konstantem Abstand vom Microcontroller am Motorcontroller angefordert werden müssen.
Bei 2 Radumdrehungen pro Sekunde sind das dann 2 x 800 = 1600 Schritte pro Sekunde. Damit muß dann alle 0,625 Millisekunden ein Schritt vom Microcontroller angefordert werden.

Ich habe das so gelöst, dass der Arduino einen Timer benutzt. Der Timer bekommt einen Startwert und zählt dann aud Null runter. Bei Null wird ein Interrupt ausgelöst. In der Interruptroutine gebe ich dann die Motorenimpulse und setze die Startwerte für den Timer neu. Mit der Variation der Startwerte kann ich den Roboter dann sanft beschleunigen und abbremsen.
In der Hauptroutine mache ich dann alle anderen Sachen (Infrarot- Entfernungsmessung, Ultraschall- Entfernungsmessung und Wegeplanung). Das Verfahren funktioniert bei mir problemlos.

Falls Du anstatt von Schrittmotoren mit Getriebemotoren arbeitest der per PWM angesteuert wird dann hast Du dieses Problem natürlich nicht.

Virtuelx
27.12.2011, 15:49
Sieht sehr toll aus, muss ich sagen! Schade dass es erst so spät fertig ist, würde gerne eine paar Bilder sehen wenns fertig ist. Meine Ansprüche sind doch um einiges geringer, mal sehen ob das halten wird sonst wird sich schon irrgendwie eine andere Lösung finden.

Hier noch meine offenen Fragen:


- Ich würde für die Motoren die bereits besprochenen Akkus verwenden (http://www.conrad.at/ce/de/product/206974/NIMH-2X-6V-RACING-PACK-2400MAH-T-BUCHSE/1209071&ref=list) und für den uC, der 3,6V benötigt, 3x AA Akkus von VARTA, die laut Aufschrift je 750mAh liefern (spielt diese Angabe überhaupt eine Rolle?). Sollte ich eine Art Absicherung einbauen dass wirklich nicht mehr als 3.6V am uC anliegen? Wenn ja, welche?
- Ist der Ultraschallsensor (http://www.conrad.at/ce/de/product/191360/ASURO-ULTRASCHALL-SATZ-FUeR-ARX-03) an und für sich mit jedem uC kombatibel? Oder vielleicht nur mit denen der ASURO-Reihe?
Hat hier vielleicht jemand einen Link für eine Beschreibung/Tutorial oder Ähnliches für den Ultraschallsensor? Habe mir zwar schon den Link der vorher gepostet wurde angesehen aber ich sehe einfach nicht welche Anschlüsse dieser hat bzw. wie dieser funktioniert oder welche Signale er sendet, habe auch ein wenig gegoogelt aber auch nichts sinnvolles gefunden.

RobotDesign
27.12.2011, 20:46
Hallo Virtuelx,

unbedingt Sicherungen und Zugentlastungen am Kabel einbauen! Falls Du einen Kurrschluß haben solltest wird ohne Sicherung die gesamte Energie in den Akkus schlagartig frei. Die dabei entstehende Wärme wird dann dazu führen, dass der Akku und ggf's auch betroffene Schaltungsteile abrauchen. Wenn Du Pech hast raucht Dir noch mehr ab (z.B. Deine Wohnung).
Eine gesockelte Feinsicherung an jeder Spannungsquelle (am Pluspol anschließen) ist Pflicht!

Ich würde versuchen, mit einer Spannungsquelle auszukommen. Sonst kann es Dir passieren, dass die Motoren noch mit Strom versorgt werden - der Microcontroller jedoch nicht mehr. Solche Betriebszustände neigen zu unvorhersehbaren Ereignissen ...

Bei meinem Projekt war das einfach: Die Motorcontroller haben eine integrierte Spannungsregelung und liefern geregelte 5 V und 3,3 V an einem seperaten Out- Pin. In der Anleitung zu den Motorcontrollern ist angegeben, dass die Spannung für den Betrieb von Microcontrollern geeignet ist. Der Arduino hat einen 5 Volt Eingangspin. Die Spannungsregelung des Arduino ist dann stillgelegt.
Bis jetzt hat das auch anstandslos funktioniert.

Für den von Dir genannten Ultraschallsensor habe ich leider kein Datenblatt.
Falls Du eine Alternative in Betracht ziehst: http://www.robotikhardware.de/download/srf05doku.pdf

Virtuelx
28.12.2011, 11:39
Was ist denn mit "gesockelt" gemeint?

Wenn ich alles mit einem Akku versorgen will dann müsste doch Motoren mit dem uC parallelschalten und beim uC für einen Spannungsabfall von etwa 9V sorgen der Akku 12V liefert und der uC mit max. 3,6V arbeiten kann.
Hier gleich eine Frage die ich mir schon länger stelle: Um 9V abfallen zu lassen habe ich 2 Möglichkeiten, ein Spannungsregler oder ein Widerstand, beim Widerstand habe ich gehört dass da nicht beliebig viel Spannung abfallen lassen kann, wegen der Wärme die entsteht. Was ist denn nun der Unterschied der beiden Dinge, einfach nur dass ein Spannungsregler immer eine gewisse Spannung zulässt bei auch wenn eine variable Spannung anliegt?

Laut Datenblatt fließen durch den Motor (http://www.conrad.at/ce/de/product/244163/GETRIEBEMOTOR-150-TYP-20G/SHOP_AREA_19781&promotionareaSearchDetail=005#download-dokumente) max. 130mA, daher würde ich diese Sicherung (http://www.conrad.at/ce/de/product/528040/FEINSICHERUNG-5X15-FLINK-160-MA-10-ST/0217109&ref=list) da die bei 160mA auslöst. Gibts zur Dimensionierung der Sicherung eine Handregel?
Wenn ich jetzt alles mit einem Akku betreibe, ist es dann klüger mehrere Sicherung vor die einzelnen Komponenten zu setzen oder eine am Anschluss des Akkus, dimensioniert auf die Summe der Ströme?

Abnormal
28.12.2011, 16:00
gesockelt - die Sicherung steckt in einem Sockel.
Auch der Spannungsregler kann nciht alles regeln ohne Hirn und Verstand.
Beim Widerstand dürftest Du etwas über seine Bemessungsleistung gelesen haben: Diese darf nicht überschritten werden wenn P=U*I kann u oder i oder eigentlich beides nur einen bestimmten Betrag in Abhängigkeit des anderen Wertes haben.

RobotDesign
28.12.2011, 20:20
Die Spannungswerte für einen Microcontroller müssen exakt eingehalten werden - sonst raucht das Bauteil ab. Da alle Elektromotoren beim Betrieb insbesondere beim Beschleunigen und Abbremsen magnetisiert werden, treten Spannungsabfälle und Spannungsspitzen auf. Auch "Bürstenfeuer" kann erhebliche Spannungsschwankungen erzeugen. Mit Widerständen wirst Du da nicht weit kommen.

Ich empfehle Dir deshalb ernsthaft darüber nachzudenken, eine fertige Microcontrollerplattform (z.B. Arduino / Netduino / Gadgeteer ...) zu kaufen weil dort die Bauteile für die Spannungsregelung bereits integriert sind.

Für den Arduino ist die Spannungsversorgung wie folgt angegeben:
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
... natürlich als Gleichspannung ...