PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externer Motor mit RP6 ansteuern



petzi--
27.05.2012, 17:16
Ich brauche einen Ratschlag,
ich kaufte mir vor kurzem einen RP6 und die grundsätzlichen Sachen habe ich auch schon verstanden ,
nun möchte ich mit dem rp6 einen externen Motor steuern,
Meine eigentliche Frage ist wo muss ich die (+ und - ) Kabel des Motors auf dem Mainboard anlöten
und wie ich das dann programmieren soll ( ein kleines Beispiel wäre nett )

Dirk
27.05.2012, 22:02
Im RN-Wissen gibt's Infos dazu:
http://www.rn-wissen.de/index.php/Ge...en_Ansteuerung (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung)

petzi--
28.05.2012, 08:27
Danke erstmal,
aber wie würde das dann speziell beim RP6 aussehen?


Gruß
petzi--

Dirk
28.05.2012, 14:25
Das hängt davon ab, welche Art der Ansteuerung du nimmst.
Auf jeden Fall kriegt der RP6 das hin: Das ist dein kleineres Problem.

petzi--
02.06.2012, 09:33
Das ist gut zu wisssen...
Wie ich mitterlerweile mitbekommen habe muss ich den Motor an ADC0 oder ADC1 anschließen diese sind jedoch mit 1-3 nummerriert also wo muss ich den Motor anschließen und wie wird das dann programmiert
Eine Weitere Frage ist ob es einen Befehl gibt mit der ich eine Endlosschleife beenden kann wenn eine Bestimmte Bedingung gegeben ist
Und beim ACS ist die Bedingung ja obstacle_right oder left, gibt es auch eine Bedingung für den Fall dass kein Hinderniss erkannt ist.
Schonmal Danke.

SlyD
02.06.2012, 15:19
> also wo muss ich den Motor anschließen


Einen Motor schließt Du nirgendwo direkt am RP6 an.
Den Motor*TREIBER* kannst Du mit einem I/O Pin verbinden und hinter den Treiber kommt dann der Motor. ADC0 / 1 sind beide als ADC Eingang oder als normaler I/O nutzbar.

Wenn Du von einem Servo sprichst wäre das natürlich was anderes - da ist das schon fertig.

Du solltest also vielleicht auch erstmal erzählen was Du genau vor hast :-)
Muss die Drehrichtung des Motors eingestellt werden?
Muss die Drehzahl einstellbar sein?
Wie groß ist der Motor, welche Spannung und welcher Strom wird benötigt bzw. was soll angetrieben werden?



Schau Dir den Schaltplan vom RP6 an und schau auf der Platine bei den H-Brücken mit den MOSFETs (da in dem Bereich mit den zwei großen weissen Widerständen).
Wie das funktioniert wird sogar kurz in der RP6 Anleitung erläutert.
Die Treiberstufen sind aber schon für recht kräftige Motoren geeignet, also vermutlich gehts für Dich etwas einfacher.

MfG,
SlyD

petzi--
02.06.2012, 17:33
Was ist mit dem Motortreiber genau gemeint ?
Mein Motor ist ein kleiner Servo aus dem ich Steuerungsplatine ausgebaut habe und den Motor direkt mit Plus und Minus verbunden habe,
Der Motor soll ersteinmal einfach nur aus und einschaltber sein ( fürs erste ) über die Software .

petzi--
02.06.2012, 18:23
Jedoch wäre die Ansteuerung eines normalen Servos auch sehr hilfreich jedoch hat meiner nicht ein rot schwarz weißes Kabel sondern gelb rot schwarz .
schonmal danke..

petzi--
02.06.2012, 18:38
Was auch wichtig wäre ob es einen Befehl gibt mit der ich eine Endlosschleife beenden kann wenn eine Bestimmte Bedingung gegeben ist .
Und beim ACS ist die Bedingung ja obstacle_right oder left, gibt es auch eine Bedingung für den Fall dass kein Hinderniss erkannt ist.
Schonmal Danke.

Dirk
03.06.2012, 12:28
@petzi--:

Der Motor soll ersteinmal einfach nur aus und einschaltber sein ( fürs erste ) über die Software .
Aus dem genannten RN-Wissen-Artikel reicht dann diese Schaltung: http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Relais _und_MOS-FET
Die Entscheidung, ob du den MOSFET (Schaltung mit R1, Q1) auch dazu nehmen willst, hängt davon ab, ob du außer AN-AUS auch noch die Geschwindigkeit regeln willst. Wenn nein, reicht der Transistor mit Relais aus.
Welcher Transistor geeignet ist, richtet sich nach der Stromaufnahme deines gehackten Servos an 5V (mit Messinstrument messen!).


Jedoch wäre die Ansteuerung eines normalen Servos auch sehr hilfreich jedoch hat meiner nicht ein rot schwarz weißes Kabel sondern gelb rot schwarz .
Die Farben weiß oder gelb sind egal: Dieses gelbe oder weisse Kabel ist immer die Servo-Ansteuerung (rot ist +, schwarz ist -).


Und beim ACS ist die Bedingung ja obstacle_right oder left, gibt es auch eine Bedingung für den Fall dass kein Hinderniss erkannt ist.
Das Gegenteil von "if(obstacle_left) ..." ist "if(!obstacle_left) ...".

SlyD
03.06.2012, 13:23
Die Ansteuerung mit dem Relais ist eigentlich gar nicht nötig wenn Du den Motor nur an/abschalten willst. Dann reicht das MOSFET und Freilaufdiode.
http://www.picotech.com/applications/pwm_drivers/graphics/mosfet.gif

(die angegebenen Teile sind vermutlich für Deinen kleinen Motor überdimensioniert das gehts auch einiges kleiner).
Du musst aber unbedingt ein Logik Level FET verwenden (was schon mit 5V durchschaltet).
Am Gate sollte auch noch ein 1 bis 4.7K Widerstand nach Masse geschaltet werden...


> Und beim ACS ist die Bedingung ja obstacle_right oder left,

Das ist keine "Bedingung" das ist einfach eine normale Variable.
Du fragst mit if(variable) ab ob die Variable einen Wert ungleich 0 hat.


> ob es einen Befehl gibt mit der ich eine Endlosschleife beenden kann wenn
> eine Bestimmte Bedingung gegeben ist .


while(true)
{
if(...) break;
}

MfG,
SlyD

petzi--
04.06.2012, 10:22
Danke für die guten Antworten ,
ich hätte aber noch eine Frage:
Ich hab alles so gemacht wie in diesem Beitrag ( https://www.roboternetz.de/community/threads/40567-RP6-Servo-Ansteuerung ) in #3 Das funktioniert auch prima aber wie kann ich den Servo in die andere Richtung laufen lassen ?

MfG,
petzi--

SlyD
04.06.2012, 16:24
Hast Du Dir auch die Links von Dirk und seine Library angesehen?

MfG,
SlyD