Servo Steuerung?, mein erstes Robot Projekt "ArBOt

Hallo,

so nach meinen ersten LED versuchen kommt direkt ein Projekt Namens “ArBOt” das ist ein 4WD Servo getriebener Robot (noch kann er Nix hat ja nichtmal einen Sensor). ;D

Einen ersten überblick könnt Ihr hier finden www.zieseniss.eu

So und jetzt schon zum Problem:

In dem gezeigten Video waren die Servos alle über einen Pin gesteuert daher auch dieser “Tanz”.

Nun habe ich versucht die Servos auf zu teilen Linke Seite Pin9 Rechte Seite Pin10, in dem Sketch habe ich dann erstmal nur die Linke Seite angesteuert, die dann auch macht was sie soll.
Aber die Rechte Seite dreht sich dann auch ständig im Durchlauf.

Muss man anstatt der Rechten Seite (Pin10) einfach keinen befehl zu geben einen “Stop” befehl geben?

Hier mal der Code:

// Sweep
// by BARRAGAN <http://barraganstudio.com> 

#include <Servo.h> 
 
Servo servo1;  // create servo object to control a servo 
Servo servo2;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  servo1.attach(9);  // attaches the servo on pin 9 to the servo object 
  servo2.attach(10);  // attaches the servo on pin 10 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    servo1.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=1; pos-= 1)     // goes from 180 degrees to 0 degrees 
  {                                
  servo1.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
}

Ich danke für eure Hilfe

Viele Grüße Sven

So hab gestern noch herrausgefunden woran es gelegen hat, so wie ich es verstanden habe war die Servo lib nicht die richtige wahl, jetzt nehme ich die MegaServo lib und es klappt schon wesendlich besser.

Jetzt habe ich nur noch ein kleines Problem mit den Servo Geschwindigkeiten, 0 Grad der Servo dreht rückwärts 180 Grad der Servo dreht vorwärts. Dann habe ich mal ein wenig herum probiert und bei 60 Grad drehen die Servos schön langsam, finde aber aber kein gegenstück das Servo in der selben geschwindigkeit in die andere richtung dreht.

Hat da noch jemand den ein oder anderen Trick?

Viele Grüße Sven

Sven,

The speed is proportional to the offset from 90. so writing 120 should result in the same speed in the opposite direction. 90 – 30 = 60, this sets the same speed as 60 in the opposite direction: 90 + 30 = 120

90 should stop the servo. If the servo does not stop at 0 then you can adjust the values in the servo.attach command . You need to expirement with the last two paramaters (increase the 544 value or decrease the 2400 value until the servo stops when writing a speed of 0 (or an angle of 90)

Servos*.attach( pin, 600, 2400); // adjust the 600 or 2400 values until the following command stops the servo* * myServo.write(90); // stop * If you would like something more convenient to control the speed you can use this function in your sketch to set the speed ``` *// set speed from -100 to +100, 0 is stop

int speed(int value) {   int angle = map(value, -100, 100, 0, 180);   return angle; }* ``` You can use the function like this: * myServo.write(speed(100)); // full speed forward * * myServo.write(speed(0)); // stop * * myServo.write(speed(-100)); // full speed reverse * * myServo.write(speed(0)); // stop * * myServo.write(speed(20)); // forward slowly* * myServo.write(speed(-20)); // backwards slowly*

Hallo Sven,

cooles Projekt. Ich habe mich auch schon lange "gewunden" und überlegt ob ich nicht auch mal einen "Roboter" baue. . . Steuerung erst mal über XBee und später vielleicht mit entsprechenden Sensoren automatisch...

Dazu habe ich auch gleich mal eine Frage an Dich:

Hast Du die Servos nach der Anleitung auf freeduino.de umgebaut (Durchlauf)?

Hatte eben gerade mal ein (mein einziges) Servo auf... habe aber die Platine nicht heraus bekommen. Falls Du sie selber umgebaut hast, kannst Du mir welche empfehlen? Welche hast Du genommen (Bezugsquelle, Preis)???

Danke und weiterhin viel Erfolg. Bin gespannt.

LG Poldi

Hallo Poldi,

ja die Servos sind nach der Anleitung umgebaut, sind aber vom Aufbau etwas anders als die beschriebenen.

So wie es sich anhört hast du die gleichen oder ähniche Servos wie ich. Ich habe das komplette getriebe auseinander gebaut und die beiden Metallachsen herausgenommen damit das letzte Ritzel auch heraus geht. Dann konnte ich zwischen dem Motorritzel und dem Gehäuse ein wenig Hebeln und die Platine sammt Motor heraus ziehen.

Die Servos die ich Verwende sind die Günstigsten von Conrad (stck. 4,95? Name: RS-2. Der nachteil dieser sensoren ist. wenn ich die mit Speed(0) ansteuere dreht einer langsam L und einer langsamm R.

Heute abend stelle eich ein Video ein in dem der ArBOt von einem LED sensor gesteuert wird. (Das funst leider nur wenn es Dunkel ist, IR Abstandssensoren sind bestellt. ::))

Huhu!

Danke für die schnelle Antwort. Dann muss ich wohl bei meinem nächsten Besuch bei Conrad schauen, ob sie die haben. Meins (vom Flohmarkt) ist ein Conrad ES-030.

Kenne mich damit nicht so gut aus, aber ist dieser Umbau denn unproblematisch? Halten die Servos das aus? Kenne sie in Modellen halt "nur" zum Stellen / Drehen - so ein Dauerbetrieb als Antrieb eines Roboters ist da schon etwas anderes, oder?

Ich habe aber sonst keine Ahnung, was man da nimmt. Normale Motoren bekommt man so (Links-/Rechtslauf mit unterschiedlichen Geschwindigkeiten) nicht so schnell ans Laufen / Drehen ;-)

Bin gespannt auf Dein Video.

LG Poldi

So das neue Video ist ON http://www.youtube.com/user/Nordwork

Was mit einer dauerbelastung der Servos ist weiß ich auch nicht, sehr stabil sehen die getriebe nicht aus :-[

Es gibt ja noch die möglichkeit mit schrittmotoren, aber ich glaube da ist die ansteuerung auch schwieriger.

Gruß Sven

Hi,

ja, Schrittmotoren sind schon etwas aufwendiger.

Ich finde die Servos hören sich auch nicht so toll an im "Durchlauf-Modus"... Aber naja. Da sie bei Conrad gerade echt günstig sind - 2.95ch8364 werde ich mir am Dienstag wohl mal welche shoppen gehen und auch einen kleinen Flitzer bauen.

Was hast Du denn noch so vor? Ich überlege schon wie wild, was man dem Teil alles beibringen kann...

Wenn ich das richtig erkannt habe fährt dein Bot derzeit so lange geradeaus, bis das ausgesendete Licht von einem Hindernis reflektiert wird. Dann fährst du etwas Rückwärts, drehst um 90° and so on...

Hast Du das Problem mit dem Stillstand nach der Anleitung von mem lösen können?

Gruß Poldi

PS: Ich habe da noch etwas gefunden: http://webmeister.ch/blog/easy-arduino-robot-143

Da bin ich mal gespannt auf ein Video von deinem Bot.

Was ich noch genau damit machen will weiß ich auch noch nicht so genau ;D .

Aber ich finde es schon witzig wenn das ding alleine rumfährt ohne irgendwo anzustoßen.

Für mich ist das ganze ja auch erstmal der einstieg in die Mikrocontroller Welt.

Ich habe mir jetzt noch IR Entfernungsmesser bestellt http://shop.embedit.de/product__229.php und werde davon dann erstmal so 3-5 stück anbauen.

Die Anleitung von mem war genau der richtige Tip, das funktioniert ganz gut, nur leider (ich glaube weil die Servos recht billig sind) reagieren die etwas unterschiedlich auf die Taktung. Ich steuere immer 2 gleichzeitig an einer steht dann und einer dreht noch ein kleines bischen.

Das Fahrgeräusch ist angenehmer als das Leerlaufgeräusch der Servos.

Hallo,

ich habe das Servo-Durchlauf-Tutorial bei Freeduino geschrieben und dabei die 4,95-Dinger von Conrad benutzt (ja, ich glaube, RS-2 hießen die). Im Freeduino-Forum unter "Arduino-Roboter" gibt's ein Bild von meinem Roboter, inzwischen habe ich das riesige Steckbrett durch ein Protoshield mit Minibreadboard ersetzt. Ich will mal ein paar Ideen, die man mit dem ArBot so umsetzen könnte, beisteuern:

  1. Linienfolge -> daran bastle ich gerade.
  2. Fernsteuerung -> wie schon geschrieben wurde, mit XBee.
  3. Segway-Bewegung -> mit einem Accelerometer.
  4. Humanoidität -> Augen: Entfernungsmesser, Glieder: Servos.
  5. Autonomer Modellrennwagen -> Radantrieb per DC-Motoren statt Servos.

Letzteres ist mein letztendliches Ziel. Wenn ich meine Komponenten zusammen habe (L293D, Accelerometer, IR-Entfernungsmesser, XBee-Module, Farbsensor blablabla), soll das Gefährt hübsch durch die Gegend fahren, Sensordaten erfassen und drahtlos an Pachube senden sowie entsprechend reagieren ::) . Allerdings muss ich noch an der Konstruktion des Roboters basteln - momentan sind meine Probleme die Befestigung der Servos unterhalb der Plattform und die Anbringung des "dritten Beines" - da weiß ich aber schon, dass ich eins von diesen Einkaufswagenrädern in klein holen werde (wie auch beim Easy Arduino Robot zu sehen), da die so glatt mitlaufen.

Auch für mich ist das so eine Art "Einstieg in die µC-Welt" bzw. eine Festigung und Erarbeitung/Erweiterung meiner bisherigen Arduino-Kenntnisse (Sensoren, Motoransteuerung, Programmierung). Aber so ein Roboterprojekt bringt vor Allem auch viel Spaß. Außerdem kommt etwas Vorzeigbares dabei heraus ;D .

Ich glaube, mit dem Motor-/Stepper-Shield von Lady Ada ist es nicht allzu kompliziert, auch mit Schrittmotoren zu arbeiten.

Gruß,

Concrete

Ich habe nun auch mein Servo umgebaut... bekomme es aber nicht zufriedenstellend zum Stillstand!? :'(

Bei einem (seriell geprüft) Wert von 81 dreht es noch ganz langsam links herum, bei 82 langsam nach rechts. Außerdem fließen dann immer noch 30mA und das bei einem Servo im Beinahe-Sitllstand. Da ist der Akku aber schnell leer...

Kannst Du jemand was zu sagen?

Gruß Poldi

cool, genau die servos hab ich auch gerade gekauft. Falls ich Hilfe bei Umbau brauchen sollte meld ich mich nochmal. Und wo Concrete schon beim Beisteuern ist... wie wäre es mit GPS? :) Weiss eigentlich jemand wie genau da die Ortung ist und obs in einem Gebäude überhaupt zu nutzen ist?

GPS hört sich sicherlich nicht schlecht an, allerdings ist die umsetzung glaube ich recht schwer.

In gebäuden ist sowieso kein richtiger gps empfang möglich.

Gruß Sven

Hi,

na was machen eure Robot Projekte so?

Meiner bekommt die Tage seine IR sensoren, der erste Testaufbau der Sensoren verlief positiv.

Wenn er dann mit den Sensoren so richtig läuft will ich ihm Bauklötze aufsammeln beibringen.

Neues Video gibt es an gewohnter Adresse bei Youtube.

Hey!

Ich bin leider, bedingt durch zu viel Arbeit, noch nicht wirklich weiter.

Habe allerdings bereits erste Tests mit einem IR-Abstandssensor hinter mir (Visualisierung über Processing), Motoren anstelle der Servo-Antriebe bestellt und mir über deren Ansteuerung Gedanken gemacht. Die Kommunikation zwischen PC und Bot über XBee läuft prima.

Ich werde diesem Thema nebenbei immer mal wieder etwas Zeit widmen. Vermehrt dann wohl im Winter ;-)

Gruß Poldi

Die Arbeit hält mich auch auf... aber bald sind richtig Semesterferien! :) Hab meinen Arduino noch nicht so lange, bin daher noch mit dem Fahrzeug selbst beschäftigt. Bis jetzt verhindern auch nur ganz normale Microschalter dass er es bei Testfahrten nicht irgendwo hängen bleibt. ;D

Ich versuch auch mal nen youtube video zu erstellen. Dein IR Test Video ist übrigens genial.

Edit: So, ging schnell mit dem Video... nur für euch: http://www.youtube.com/watch?v=x5EdzCqdSpg

So auch bei meinem Robot geht es weiter, der ArBOt hat jetzt die Versionsnummer 1.3 g und kann mit seinen 4 Augen "sehen" ;)

Hier ein Youtube Video: http://www.youtube.com/watch?v=uyMc0cLKQtI

Als nächstes folgt eine art Bauklötze erkennung und aufsammlung.

Hallo Sven!

Das sieht ja schon echt ordentlich aus. :)

Magst Du nähere Informationen zu Deinen selbstgebauten Sensoren posten?

Hätte ich doch mehr Zeit...

Hätte ich doch mehr Zeit…

grins

2 Kinder
3x in der Woche Laufen
Selbst und Ständig daher >60h Working ← www.nordwork.de
Und Basteln klappt auch noch 1-2x in der Woche

So aber nun zum Sensor

das ganze ist einfach anhand dieser Schaltung aufgebaut:
http://www.rn-wissen.de/index.php/Sensorarten#Distanzsensor_IS471F

Viele Grüße

Sven

@Nordwork

Na das ist ja mal ein creativer Beruf mit hübschen “Objekten”…

Ich habe sowohl dienstlich als auch privat (dann halt nicht mehr so oft) Leiterplatten in der Hand…

Vielen Dank für den Link. Einen Sharp Sensor habe ich schon. Aber wenn man sie auch selber machen kann… Wo hast Du denn die Teile gekauft? Hast Du zufällig noch Preise und / oder Artikelnummern?

Deinen Selbstbau-Sensoren könntest Du auch eine Seite im Playground widmen. Wenn Du schon so viel Zeit hast ;D :wink:

Gruß
Poldi