- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 56

Thema: Erster Roboter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2011
    Ort
    Weil
    Beiträge
    13
    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/s...roducts_id=237

    Als Motoren habe ich gewählt:
    http://www.shop.robotikhardware.de/s...roducts_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/s...roducts_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

    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!

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    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
    MfG Torrentula

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    68
    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?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2011
    Ort
    Weil
    Beiträge
    13
    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:
    Klicke auf die Grafik für eine größere Ansicht

Name:	1 MyRobot_v2.8 Front Left.jpg
Hits:	24
Größe:	35,7 KB
ID:	20944Klicke auf die Grafik für eine größere Ansicht

Name:	3 MyRobot_v2.8 Front.jpg
Hits:	19
Größe:	16,5 KB
ID:	20945Klicke auf die Grafik für eine größere Ansicht

Name:	5 MyRobot_v2.8 Motor and Bumper.jpg
Hits:	25
Größe:	30,0 KB
ID:	20946
    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.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    68
    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:
    Zitat Zitat von Virtuelx Beitrag anzeigen
    - Ich würde für die Motoren die bereits besprochenen Akkus verwenden (http://www.conrad.at/ce/de/product/2...09071&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/1...TZ-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.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    25.12.2011
    Ort
    Weil
    Beiträge
    13
    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

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    18.10.2011
    Beiträge
    68
    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 max. 130mA, daher würde ich diese Sicherung 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?

Ähnliche Themen

  1. Erster Roboter
    Von cubebox im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 08.02.2011, 10:19
  2. Erster Roboter
    Von ProblemLED im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 6
    Letzter Beitrag: 15.06.2010, 11:22
  3. Erster roboter
    Von papitenhallo im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 20
    Letzter Beitrag: 11.12.2008, 22:55
  4. Erster Roboter
    Von BKA im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 30.04.2006, 06:38
  5. Erster Roboter
    Von Phantomlord im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 3
    Letzter Beitrag: 08.08.2005, 12:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests