PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 erweitern (Greifarm, Ultraschall, Kamera,..)



I♥ROBOTIC
24.04.2010, 18:33
Hi leute,

ich hab mir vor ner Zeit den RP6 gekauft. Ich kann schon einiges programmieren (z.B. fahren, auf bumper reagieren, ACS auslesen...) aber ich möchte meinen RP6 etwas erweitern. Leider kenn ich mich ehrlich gesagt nicht mit widerständen und dioden o.ä aus.

Ich möchte einen Greifarm dran bauen (später dann ne Kamera), aber hat vll jemand eine Bauanleitung, Bilder etc. ?

Gruß Julian

schumi2010
25.04.2010, 07:17
Hallo,

schau mal hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=52298

Vielleicht hilft dir das etwas weiter :)

Gruß Michael

I♥ROBOTIC
25.04.2010, 11:32
ja genau so einen Roboterarm möchte ich bauen. ich hab noch ein paar bilder die ich per screenshout von einer 3D datei abfotografiert habe auf denen zu sehen ist wie das aussehen sollte, die sind aber aufm anderen Rechner also muss ich sie erst auf nen USB-stick tun. Ich werd sie später mal hochladen :D

und ich hab noch ne frage:

kann ich an den RP6 vll auch die sensoren des Lego Mindstorms anschließen?

ach ja:
mir ist aufgefallen, dass bei meinem RP6 die vordere Verstrebung fehlt, wird aber schon nicht so schlimm sein oder :D ?

roboter14
25.04.2010, 11:45
Welche vorderre Verstrebung?

RobbyMartin
25.04.2010, 14:37
beim rp6 gibt es nur einen verstrebung hinten
das ist so schon korrekt

lg
martin

Thund3r
25.04.2010, 15:43
Hallo

Theoretisch kannst du Lego Mindstorm Sensoren benutzen und auswerten. Man müsste sich nur die Datenblätter angucken bzw etwas rumfummeln.

Zum Aufbau meines Roboterarms:

https://www.roboternetz.de/phpBB2/viewtopic.php?p=497900

(Ist zwar mein Asuro Modell aber vom Prinzip ähnlich)

Gruß Thund3r

Martinius11
25.04.2010, 17:09
Wenn du nen guten Roboterarm bauen willst wie ich gerade soltest du viel Zeit haben und auch viel Werkzeug ich bastle schon mindenstens 24 Arbeitsstunden und hab erst 50 % der Bauteile fertig(das kann auch daran liegen das ich ein Perfektionist bin)

Thund3r
25.04.2010, 17:11
Hallo

Ja n Roboarm braucht viel Zeit und Aufwand da muss man sich n Wochenende Zeit nehmen.

Gruß Thund3r

Martinius11
25.04.2010, 17:20
eher drei wenn man alle teile aus platten ausschneiden muss ,dann auf die gleiche größe bringen, abschleifen und schließlich grade biegen

I♥ROBOTIC
25.04.2010, 17:20
ja Zeit hab ich mehr als genug bin ja erst 12 und daher noch in der schule :mrgreen: , Werkzeug hab ich eigentlich auch (das einzige was vll noch fehlt is ein Lötkolben, möchte ich mir aber bald bestellen).

Was für Motoren soll ich denn da hernehmen ( ich möchte mindestens eine lehre und wenn möglich auch eine volle Getränkedose heben :mrgreen: ).

und wo müsste ich das allse anschließen ???

Gruß Julian

Thund3r
25.04.2010, 17:25
Hallo

Ja du musst dir vorher klar überlegn was du heben möchtest wie groß das sein soll etc. Daraus musst du dann die Länge die der Arm haben soll, das gewicht bzw Mateial des Arms und welche Motoren du bentuzen willst erschließen.
Servos bieten sich an zur Ansteuerung. Wenn du weißt wieviel diese zu bewältigen haben kannst du ja bei Conrad oder so mal schauen.
Anschlüsse bieten sich bei dem RP6 zB über die M32 I/O Ports an.
So ein Arm sieht einfacher aus als er ist. Ich würde dir vielleicht raten dich vorher mehr mit dem Roboter und eher kleinen Erweiterungen zu befassen um dich dann nachher effektiver mit der Arm Idee auseinander zu setzen

Gruß Thund3r

Martinius11
25.04.2010, 17:44
hier mal ein beispiel: http://robotikportal.de/phpBB2/viewtopic.php?t=7145


ich nehme Alu als Malterial ist am leichtesten

I♥ROBOTIC
25.04.2010, 17:45
Hier ist noch ein Bild:

http://s5.directupload.net/images/100425/x4dzfcie.jpg (http://www.directupload.net)

Thund3r
25.04.2010, 17:47
Hallo

Alu. ist am besten.
Und das Bild entspricht fast genau meinem Aufbau vom RP6-Arm

Gruß Thund3r

I♥ROBOTIC
25.04.2010, 17:49
ja diesen arm hab ich mir schon mal angeschaut :D

zu meinem Bild:

der Arm sollte auf einer platte festgeschraubt werden welche wie eine EXP auf dem RP6 befestigt wird :mrgreen:

I♥ROBOTIC
25.04.2010, 17:51
Hier ist noch ein Bild aber da wollte ich den arm noch eine EXP draufschrauben :mrgreen: :

http://s5.directupload.net/images/100425/mwshtq64.jpg (http://www.directupload.net)

RoboNull
25.04.2010, 17:57
Den RP6 wirds vorne aufheben, wenn du den Arm so auf den Roboter anbaust!

P.S. mit welchem Programm hast du die Pläne entworfen?

I♥ROBOTIC
25.04.2010, 18:00
ja das hab ich mir auch schon gedacht :mrgreen: ich möchte ihn sowieso etwas kleiner und leichter bauen und ihn etwas weiter nach vorne bauen :mrgreen:

I♥ROBOTIC
25.04.2010, 18:07
äämm diese 3D dateien hab ich mit Wings 3D gemacht und dann hab ich einen screenshout gemacht :mrgreen: und diesen dann zugeschnitten

Martinius11
25.04.2010, 18:33
Ich hab mir ein stück blech so zu geschnitten das ich es auf die abstandsboltzen schrauben und ich werde noch einen Servo zum drehen verwenden

I♥ROBOTIC
27.04.2010, 13:32
also ich möchte jetzt mal nen Servo von meinem Verbrenner steuern aber ich weis ja nicht ein mal wo ich den anschliessen muss bzw wie ich den dann ansteuern muss !!!!! ?????

Martinius11
27.04.2010, 14:03
Klick jetzt mal auf das blaue "Servo" und schaust welchen Servo du hast und schließt die signal leitung an scl und hier steht was zum port definieren





Port definieren

Für jeden port gibt es drei register, in denen jeweils 8 bit gespeichert werden. sinnvollerweise steht immer das nullte bit für den nullten pin, das erste bit für den ersten usw. bis zum siebten bit für den siebten pin. es gibt (zumindest rein auf informatischer ebene =) weder ein achtes bit noch einen achten port =)

als beispiel nehme ich port D, für alle anderen ports muss nur jeweils der großbuchstabe geändert werden.
die drei register heissen
DDRA,DDRB,DDRC,DDRD für die RICHTUNG
-für jedes bit gilt, 1=ausgang,0=eingang
PORTA,PORTB,PORTC,PORTD für den ausgangspegel oder die pullups(später)
1=strom an, 0 = aus ODER 1=pullup an, 0=aus
PINA,PINB,PINC,PIND für das eingangssignal.
1 gelesen = strom von aussen ist an, 0=aus

wenn ich also PD2 zum beispiel einschalten möchte, dass 5v spannung ausgegeben werden, muss ich
zuerst in das richtungsregister an die entsprechende stelle eine 1 schreiben. damit die anderen bits nicht verändert werden, wird das ganze mit einer ODER-bedingung verknüpft.
damit man nicht immer alle bitwerte in hex-zahlen umrechnen muss (was aber durchaus möglich ist) wird einfach nur eine 1 verschoben, wie recht weit obern geschrieben mit dem << - operator.
für pd2:
DDRD |= (1<<2);

also im register DDRD wird das zweite bit gesetzt. der pin ist jetzt ein ausgang.

jetzt wollen wir strom anlegen, dafür ist das register PORTD da. hier muss eine 1 gesetzt werden zum einschalten oder eine null zum ausschalten. aber um eine null zu setzen, muss man umdenken: man verschiebt eine 1 an die entsorechende stelle, (00000100) invertiert das ganze mit dem ~ operator (11111011) und verknüpft das ganze mit dem und-operator.
PORTD |= (1<<2); //eingeschaltet
PORTD &= ~(1<<2); //ausgeschaltet.

damit kannst du zb schon leds anschalten usw, du kannst ja einfach im schaltplan rausfinden an welchem pin die jeweilige led angeschlossen ist.

um einen pin als eingang zu nutzen, zb um einen taster auszulesen, muss der taster gegen masse an den pin angeschlossen werden.
also GND --- taster --- atmega
dann schaltest du dein pin auf eingang:
DDRD &= ~(1<<2);
und den pullup-widerstand ein. das ist nötig um festzuegen dass der pin solange high ist bis der taster gedrückt wird.
PORTD |= (1<<2); //das gleiche register wie für den ausgangpegel, aber hier für den pullupverwenndet
wenn du jetzt wissen willst ob der taster gedrückt wurde, mach folgendes

unsigned char test;
test = PIND & (1<<2);

wenn test >0 ist, dann wurde die taste NICHT gedrückt, wenn test gleich null ist, wurde die taste gedrückt.

I&amp;#9829;ROBOTIC
28.04.2010, 12:44
ich versteh erhlich gesagt nur Bahnhof :-k :-k :-k :-k :-k :-k

Thund3r
28.04.2010, 13:06
Hallo

Ich versuchs mal einfacher zu erklären.
Wenn du die M32 hast schließt den den Servo an die 5V Stromversorgung (rotes und schwarzes Kabel) dann bleibt ein Kabel (Orange oder Weiß meistens) über. Über dieses Kabel wird der Servo angesteurt bzw die Position übermittelt bis wohin er sich drehen soll --> das so genannte PWM Signal (Pulsweitenmodulation). Dieses Steuerkabel ( in Zukufnt PWM-Kabel genannt) wird an einen Ausgang des Robos (in dem Beispiel an die I/O Ports der M32 Platine geklemmt).
Das PWM Kabel bekommt dann (bedingt durch das Programm) jeweils einen kurzen Impuls der dem Servo sagt was er machen soll.
Im Programm sieht die Methode dann so aus:

void Servo(uint8_t pos)
{
DDRC |= IO_PC4; //I/O Port als Ausgang deffinieren
PORTC |= IO_PC4; // Impulsstart
sleep(pos); // so und soviel ms warten
PORTC &= ~IO_PC4; // Impulsende
sleep(185); // 18,5ms warten
}

In der main Methode wird dann zB gesagt:

...

int x;
for(x=0;x<50;x++)
{
Servo(20);
}

...

Dann dreht sich der Servo auf eine bestimmte Position (unabhängig von seiner vorherigen Position das is das geniale bei Servos) und bleibt dort bis er weiter angesteuert wird.
Die Positionen sind bei meiner Methode zwischen 3-23 wählbar (Anschlag auf einer Seite bzw auf der anderen)

Ich hoffe es ist so etwas verständlicher ;)

Gruß Thund3r

RoboNull
28.04.2010, 13:07
Geht mir grad auch so ;)
Aber wenn du den Text 2x durchliest, wirds dir klarer :)

I&amp;#9829;ROBOTIC
28.04.2010, 13:36
@ Thund3r :

meinst du mit M32 das erweiterungsmodul?

das hab ich nämlích nicht :mrgreen:

roboter14
28.04.2010, 16:01
@RoboNull:
Geht mir auch so

@I♥ROBOTIC (Was ist das für ein Name?)
Ja er meint das MEGA32 Erweiterungsmodul

Thund3r
28.04.2010, 17:26
Hallo

Ja das mein das MEGA32 Erweiterungsmodul
Geht aba auch mit der Base so ähnlich.

Gruß Thund3r

I&amp;#9829;ROBOTIC
29.04.2010, 17:33
ja leider ne kleine planänderung:

ich darf mir zurzeit nichts kaufen, also auch keine servos :frown: :frown: :frown:


tja hat sich also erledigt......ich meld mich wieder wenn ich dann Teile hab....


@roboter14

dieses #&...; sollte eigentlich als herz dagestellt werden :mrgreen: schau mal in deinen Beitrag da wird der name richtig angezeigt :mrgreen:

RoboNull
29.04.2010, 18:37
Ich weiß nicht wie du das Herz in deinem Nicknamen geschrieben hast, sollte es aber so aussehen:

<3

greift der XSS Filter des Boards ;)

I&amp;#9829;ROBOTIC
29.04.2010, 18:58
nein es sollte so aussehen wie bei dem beitrag von roboter14.

das ist ein HTML-code und den hab ich einfach in den namen geschrieben aber er wird nicht als herz angezeigt ausser in einem beitrag, da gehts dann :mrgreen:

Martinius11
29.04.2010, 19:02
du kannst dich ja für die wanderkiste anmelden die kostet nur Porto