Forum: Mikrocontroller und Digitale Elektronik voll programmierbarer "low cost" Roboter


von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

im Moment bin ich gerade dabei, einen Open Source Source Roboter zu 
entwickeln, der möglichst unter 20 Euro kosten soll.
Das Ziel wäre, den Roboter für kleine Wettbewerbe zu verwenden:
http://www.youtube.com/watch?v=oscbdxMhX_4

Damit der Roboter schnell zusammen gelötet werden kann und billig ist, 
sollen möglichst wenig Bauteile verwendet werden.

Vielleicht möchte von euch jemand auch einen bauen ...

Im Anhang der erste Entwurf der Schaltung.

Grüße,
ChrisMicro

von Hans (Gast)


Lesenswert?

Super Schaltplan!

von Knaller (Gast)


Lesenswert?

mit nem ausgeschlachtetem Furby kann man bestimmt mehr anfagen als mit 
der schaltung

von Gerd (Gast)


Lesenswert?

Selten so einen Blödsinn gesehen (und das will in diesem Forum schon was
heißen).

von dennis (Gast)


Lesenswert?

Du sagst, du willst bauteile spare, aber dafür kannst du nicht einfach 
die kondensatoren für die versorgunh weglassen.
Genauso wie den am resetn zumalbda noch ein R fehlt. Den brauchst du bei 
deinen motoren welche deine schaltung ja sicherlich stören werden schon!
Und so kônnte man noch eine weile weiter machen...

von ChrisMicro (Gast)


Lesenswert?

Also: Jetzt mal richtige Vorschläge, was es an der Schaltung zu 
optimieren gibt.

Vom Roboter gibt es schon einen Prototyp. Er kann folgendes:

- einer Linie folgen ( die Front LEDs lassen sich als Lichtsensoren 
benutzen )
- mit der IR-Fernsteuerung gesteuert werden
- Hindernissen mittels Reflexion des IR Lichts und des IR-Empfängers 
ausweichen.
- Mit Hilfe des Audio-Bootloader über Line Out programmiert werden
- Als Entwicklungsumgebung lässt sich die Arduino-Lib mit GUI- verwenden
- Melodien auf dem Lautsprecher abspielen

Der Roboter ist also insbesondere für Schüler und Studenten für den 
ersten Einstieg in die Mikrocontrollerwelt geeignet.

von holger (Gast)


Lesenswert?

>- Mit Hilfe des Audio-Bootloader über Line Out programmiert werden

Guter Witz. Wie lange braucht der für 8kB?

von Christoph (Gast)


Lesenswert?

>Wie lange braucht der für 8kB?

8 Sekunden:
http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=128

von holger (Gast)


Lesenswert?

>>Wie lange braucht der für 8kB?
>
>8 Sekunden:

Wie kontrollierst du ob die Daten auch wirklich
richtig übertragen wurden? Verify ist mit deinem
Audio Bootloader ja nicht möglich.

Wenn das Programm dann wegen Bitfehlern in der Übertragung
Mist baut ist der User komplett angeschissen. Kann er halt
nochmal das Programm senden. Aber auch da wieder Bitfehler.
Merkt er halt nicht gleich sondern etwas später.

Vergiss den Quatsch.
Du hast ja noch nicht mal einen Quarz am uC.
Da wird dann je nach Mondphase mal dies oder
das als Bit erkannt.

Erinnert mich irgendwie an Datasette;)

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?


von ChrisMicro (Gast)


Lesenswert?

>Du hast ja noch nicht mal einen Quarz am uC.
>Da wird dann je nach Mondphase mal dies oder
>das als Bit erkannt.

Hi Holger,
Deinen Posts zu folgen hast Du noch nicht so viel Erfahrung mit der 
Elektrotechnik. Bei der verwendeten Manchestercodierung wird im Schnitt 
bei jeder zweiten Flanke neu synchronisiert, deshalb wird ein Quarz 
nicht benötigt. Genaueres findest Du hier: 
http://de.wikipedia.org/wiki/Manchester-Code

>Wie kontrollierst du ob die Daten auch wirklich
>richtig übertragen wurden? Verify ist mit deinem
>Audio Bootloader ja nicht möglich.

Die Kontrolle übernimmt der User selbst: Bei einem Fehler blinkt die 
Status-LED schnell. Aber keine Sorge: Im Gegensatz zur Datasette mit den 
Schwankungen der Bandgeschwindigkeit funktioniert der Bootloader 
ziemlich zuverlässig.

Gruß,
chris

von Karl H. (kbuchegg)


Lesenswert?

Wenn es dein Budget noch hergibt, bau noch eine oder zwei 3-polige 
Stiftleisten auf die Platine, an die man Servos anstecken kann.

von Karl H. (kbuchegg)


Lesenswert?

Was ich noch nicht durchschaut habe:
Wozu FRONTLED_CENTER bei den Front-LED?  Warum nicht einfach die LED 
gegen GND schalten und gut ists?

von Karl H. (kbuchegg)


Lesenswert?

Die Motoranschlüsse:
3-polige Stiftleisten, die alle das PWM-Signal tragen?
Mach doch an jedem Anschluss wenigstens 1 GND, damit der Kabelverhau 
nicht gar so groß wird.

von Floh (Gast)


Lesenswert?

Wie wärs den Roboter statt mit einem 9Volt-Block mit 3 Mignon-Zellen zu 
betreiben?
Spart den 7805 und hält zudem länger.
Beim Prozessor würd ich auch einen neueren Typ nehmen, z.B. mega88.
Der mega8 ist alt und wird daher immer teuerer :-)
Mit nem neuen Typ kannste dann die Batterien bis 2,7 Volt leerlutschen, 
was recht gut passt.
Theoretisch kannst du dir bei 5Volt auch den Motortreiber sparen,
einfach 2 pnp und 2 npn Transistoren also Stromverstärker 
hinterherschalten.
:-)

von klausr (Gast)


Lesenswert?

Der L293D hat die Clamp Dioden schon integriert. Wenn man nur 
Transistoren nimmt, muss man die Dioden unbedingt noch ergänzen. Ich 
würde den L293 drin lassen. Aber der Vorschlag mit den drei Mignonzellen 
sollte bedacht werden.

von Floh (Gast)


Lesenswert?

klausr schrieb:
> Der L293D hat die Clamp Dioden schon integriert.

Klar, hast recht.
Sollten also eher Mosfets sein, da sind dann Dioden drin :-)
Ich mach sowas gern bei meinen Schaltungen, einfach einen IRF7389 mit 
beiden Gates an Prozessorpin, P-Source an +5V und N-Source an Masse.
So hab ich nen Prozessorpin, der 5V und bis zu 5A kann :-)
Shot-Through kann dabei bei 5V noch vernachlässigt werden.

von ChrisMicro (Gast)


Lesenswert?

Puh, jetzt bin ich froh, dass nach den ersten Troll-Postings auch ein 
paar nützliche Hinweise dabei sind. Danke dafür.

>Was ich noch nicht durchschaut habe:
>Wozu FRONTLED_CENTER bei den Front-LED?  Warum nicht einfach die LED
>gegen GND schalten und gut ists?

Mit der Beschaltung kann man die LEDs sowohl als Leuchte und auch als 
Sensor benutzten:
http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor

In meinen versuchen haben sich seltsamerweise  die ultrahellen Orangen 
LEDs als am empfindlichsten herausgestellt. Blöderweise sind genau diese 
bei Reichelt gerade nicht lieferbar.

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

>Theoretisch kannst du dir bei 5Volt auch den Motortreiber sparen,
>einfach 2 pnp und 2 npn Transistoren also Stromverstärker
>hinterherschalten.

Das wird beim Asuro so gemacht: 
http://mechatronik.tu-ilmenau.de/MTRWeb/publications/teach/ASURO_Prakt3.pdf 
( siehe 9/22 3.7 )

Man braucht dann aber 8 Transistoren und 8 Widerstände für die beiden 
H-Brücken. Für Lötanfänger bedeutet das immer einen großen Zeitaufwand. 
Sie müssen die richtigen Transistoren an den richtigen Platz einlöten, 
das ganze dauert immer ziemlich lange und ist fehleranfällig. Deshalb 
habe ich den L293D gewählt, den es für 1,20€ zu kaufen gibt. Dieses 
wiederum bedingt den 78L05 und die 9V Block Batterie.

Im Anhang der bisherige Schaltplan für Eagle, falls jemand darin malen 
möchte.

Apropos: Wahrscheinlich werde ich Platinen machen lassen, wenn es mal 
soweit ist. Weiß jemand, wo man am günstigsten Prototypen her bekommen 
kann?

von mancrapatzner (Gast)


Angehängte Dateien:

Lesenswert?

meiner , aus 2 ollen Walkman

von ChrisMicro (Gast)


Lesenswert?

>meiner , aus 2 ollen Walkman

Sieht gut aus :-) Schön gemacht.

Auf Let's Make Robots gibt es momentan auch ein sehr günstiges 
Antriebssystem:
http://letsmakerobots.com/node/28981#robot_em_video

von ChrisMicro (Gast)


Lesenswert?


von mancrapatzner (Gast)


Lesenswert?

Die grosse Schwester :
http://www.bellibot.com/projects/botti/bot1.php

Die Seite ist schon ein Paar Jahre nicht mehr aktualisiert worden :-(

von ChrisMicro (Gast)


Lesenswert?

>Die grosse Schwester :
Ah, auch mit L293D. Interessant finde ich die LEDs an den 
Motorausgängen. Es ist immer gut, ein Lichtspiel am Roboter zu haben.
Die hier haben das sehr schön gemacht:
http://www.youtube.com/watch?v=3YDkbltzMmA

Ich habe mit überlegt, die LEDs an die Steuereingänge des L293D zu 
sezten und über einen gemeinsamen Pin zu "enablen", dann könnte man die 
LEDs durch multiplexing unabhängig leuchten lassen.

von fragezeichen (Gast)


Lesenswert?

Hi,
hab mal ein Verständnisproblem.

Es wird mithilfe der PC Soundkarte programmiert?
D.h. irgend ein .wav/MIDI... dient als Programm?

Ist hier der UART in Gebrauch? Wenn ja, warum wird hier das Ganze an TxD 
und nicht RxD vom µC angeschlossen (siehe Schematic weiter oben).

von Sam .. (sam1994)


Lesenswert?

Die restlichen Pins könnte man herausführen um evtl. Addonboards zu 
benutzen. Würde man einen Atmega48/88 benutzen, wäre es möglich durch 
die weiteren PWM-Channels den SPI-Port freizurouten und hätte eine 
univerelle Schnittstelle für Zusätzliche Boards. UART wäre auch nicht 
schlecht. Damit könnte man ein Einfaches Kamera-Addon basteln.

von ChrisMicro (Gast)


Lesenswert?

fragezeichen schrieb:
>Hi,
>hab mal ein Verständnisproblem.

Hi fragezeichen,

>Es wird mithilfe der PC Soundkarte programmiert?
>D.h. irgend ein .wav/MIDI... dient als Programm?

Es ist ein wav-File. Man kann es sich sozusagen anhören:
http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=129

>Ist hier der UART in Gebrauch? Wenn ja, warum wird hier das Ganze an TxD
>und nicht RxD vom µC angeschlossen (siehe Schematic weiter oben).
Für den Bootloader kann jeder digitale Eingang verwendet werden, so wie 
bei SOUNDRX Beitrag "SOUNDRX - Datenübertragung/Bootloader PC -> µC über PC-Soundkarte"

Ich verwende den TxD-Pin, weil ich die Arduino-Lib als Grundlage für die 
Programme verwenden. Das serial.println geht an TxD raus. Hat man das 
entsprechende Programm auf PC-Seite, kann man via Line-In Daten 
empfangen.

von ChrisMicro (Gast)


Lesenswert?

Samuel K. (sam1994)
>Die restlichen Pins könnte man herausführen um evtl. Addonboards zu
>benutzen. Würde man einen Atmega48/88 benutzen

Obwohl im Schaltplan ein Atmega8 eingezeichnet ist, verwende ich einen 
Atmega168. In meiner Eagle Lib war keiner drin und ich war zu faul das 
Problem zu lösen. Der Atemga168 ist ja Pin-kompatibel und die Arduino 
LIB braucht die Größe.

>Würde man einen Atmega48/88 benutzen, wäre es möglich durch
>die weiteren PWM-Channels den SPI-Port freizurouten und hätte eine
>univerelle Schnittstelle für Zusätzliche Boards.

Die etwas seltsam anmutende Mehrfachbelegung ist der 
Arduino-Kompatibilität geschuldet. I2C an den ADC-Eingängen könnte man 
freihalten.

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

Um nicht unbedingt eine Platine ätzen zu müssen, kann man die Elektronik 
auch auf eine Streifenrasterplatine aufbauen.

das geht dann wie folgt:
1. Layout ausdrucken
2. auf Platine kleben
3. Unterbrechungen der Streifen auf der Unterseite machen
4. Drahtbrücken auf der Oberseite ( rot ) bestücken
5. Bauteile bestücken

Das würde dann so wie diese Schaltung aussehen:
http://www.hobby-roboter.de/forum/download/file.php?id=122

von ChrisMicro (Gast)


Lesenswert?

Gerade gesehen:Streifenrasterplatinen sind ja richtig günstig für 1€ zu 
haben.
http://www.reichelt.de/Streifenraster/H25SR100/index.html?;ACTION=3;LA=2;ARTICLE=8277;GROUPID=3373

Schöner wäre natürlich eine geätzte Platine, das spart einiges an 
Zeitaufwand. Für den Drahtbrückenaufbau braucht man mindestens 2 
Stunden.

von GB (Gast)


Lesenswert?

ChrisMicro schrieb:
> das geht dann wie folgt:
>
> 1. Layout ausdrucken
>
> 2. auf Platine kleben
>
> 3. Unterbrechungen der Streifen auf der Unterseite machen
>
> 4. Drahtbrücken auf der Oberseite ( rot ) bestücken
>
> 5. Bauteile bestücken

Oder das Programm Lochmaster verwenden.

von ChrisMicro (Gast)


Lesenswert?

>Oder das Programm Lochmaster verwenden.

Das Programm sieht für Schulungszwecke gar nicht schlecht aus. Die Frage 
wäre, ob die Bauteilbibliothek so groß wie bei Eagle ist.

Bei Eagle könnte man die Platine aber auch 1:1 ätzen oder ätzen lassen, 
das dürfte bei "Lochmaster" schwierig sein.

von ChrisMicro (Gast)


Lesenswert?

Hier das ganze Paket zusammen.
Überarbeiteter Schalplan, Layout, Bootloader und Arduino Scetch, falls 
es jemand nachbauen möchte:
http://www.hobby-roboter.de/forum/download/file.php?id=130

von ChrisMicro (Gast)


Lesenswert?

Habt Ihr eine Idee, welchen Step-Up-Converter auf diesem Roboter 
verwendet werden könnte:
http://letsmakerobots.com/node/27516#robot_em_video

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.