Introduction: Hexapod Arduino Pololu Maestro Servo Controll

About: www.ossilampe.de

Nach dem mein erster Versuch mit einem Hexapod, daran gescheitert war das die servos zu schwach waren jetzt ein neuer Versuch mit mit 10Kg Servos aus HK.

Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden.

Step 1: Material

- Arduino Nano
- Pololu Maestro Servo Controll 24
- BEC 15A
- 18 Servos 10 KG
- Pololu Carrier with Sharp GP2Y0D810Z0F Digital Distance Sensor 10cm
- ein paar Aluprofile
- 18 servowinkel
- 18 Kugellager
- ein Paar platten für das Body (alu holz oder....)

Step 2: Vorbereitung

•Bodyplatte schneiden
•Aluwinkel schneiden
•Winkel Bohren


Beim Schneiden der Bodyplatte habe ich mir diesmal überlegt, nicht wieder das ganze servo als Beweglichen teil zu machen. da das sehr auf die kraft des Servos geht, daher diesmal die Platte ausschneiden und das Servo in die Platte setzen.

Als nächstes schneide ich mir mein AluProfil mit dem innenmass von 46mm aus 20mm breite Uwinkel. Danach muss ich diese auf beiden Seiten Aufbohren mit einem 6mm Bohrer, Auf einer seite kommt Später das Kugellager rein und auf der anderen das Servohorn. Für dieses mus ich auch noch zwei kleine 2mm löcher bohren um das Servohorn fest zu schrauben.

Als nächstes schneide ich noch aus einen weiter Uprofil mit 20mm innenmass 60mm Stücke um die Servos dann auf der Längsachse zusammen zu Kleben können.

Step 3: Body Platte

•Bodyplatte Servo Montage
•Servos Ausrichten


So jetzt muss ich die servos in die Bodyplatte verbauen, im Anschluss werden Sie dann gleich auf den Servomittelpunkt ausgerichtet mit hilfe eines Servotesters.

Step 4: Body Und Knie Servos

•Servohalterungen für Knie und Bodyservo zusammenbauen
•Kugellager in die Servohalterungen einsetzen
•Servohorn Verschrauben


Hier habe ich als erstes die Kugellager in das Loch der Aluwinkel eingeschlagen, auf der seite wo ich nur ein 6mm Loch im Winkel habe. Da die andern zwei 2 mm löcher für das Servohorn gebraucht werden...

Auf der anden Seite noch das Servohorn verschraauben.

Jetzt kann ich Die Winkel für Bady und Knie miteeinander verschrauben.

Step 5: Servos Verbinden Knie Fuss

Das ist eigendlich das einfachste, servos zusammen in das 20mm Uprofil drücken und mit der Klebepistole auffüllen

Step 6: Fusswinkel

Für den Fuss habe ich gedacht es reicht wenn ich den winkel in der mitte anbohre und ein abstandshalter verschraube und am ende ein Radirgummi aufstecke um meinen Boden etwas zu schonen.

Step 7: Und Jetzt Das Wichtigste

Wenn wir jetzt alle Beine Fertig habe,

Werkstatt Aufräumen und etwas Sauber machen !!!!!

Step 8: Der Grosse Moment

•Lager winkel einsetzten
•Bode und Beine zusammenbauen


Ich habe diese Lagerwinkel noch garnicht erwähnt, (link zum händler folgt) diese habe ich im netz gefunden zum aufschieben auf das heck des Servos inkl beidseitigen klebestreifen und M3 mutter zum verschrauben des Kugellagers, echt coole sache um ein Servo auf zwei seiten lagern zu können.

Also alle Beine Auf das Body Montieren, und die Lagerschalen einsetzten und Verschrauben..

Step 9: Zum Herzstück, Pololu Maestro Controll

zum anschluss mus ich glaug ich nicht vile schreiben das kann man der PDF entnehmen.

Ich habe Channal 0- 17 für die servos genommen

wobei immer in der Reiche  Body, Knie, Fuss

also servo 0 = Body, servo 1 = Knie, servo 2 = Fuss,

von Oben gesehen oben vorne

0 - 2  Rechtes vordere Bein
3 - 5  Rechtes mittleres Bein
6 - 8  Rechtes hintere Bein
9 - 11 Linkes hintere Bein
12 - 14 Linkes mittlere Bein
15 - 17 Linkes vordere Bein

channal 18 rechte IR sensor
19 linker IR sensor



Step 10: Skript

Am besten Ihr stellt mit hilfe der Software erst einmal ein eure min, mitte und max werte ein, und vergebt den Channels nahmen damit ihr nicht durcheinander kommt...

hier ist ein beispiel zu meiner vorwärts sequenz

# forward
sub forward
  100 5504 5556 7680 4992 6016 7744
  8000 5699 8000 5056 6129 4352
  4864 6048 4800 7680 5896 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  100 7104 5056 4800 frame_4_10_16 # Frame 1
  100 4096 7360 6726 3584 7123 6016 frame_0_3_6_9_12_15 # Frame 2
  100 5984 6208 5907 frame_4_10_16 # Frame 3
  100 6784 6784 5056 frame_1_7_13 # Frame 4
  100 5504 4992 8000 5056 4864 7680 frame_0_3_6_9_12_15 # Frame 5

eure wird natürlich etwas anderst sein denn es kommt immer auf die mittelstellung der servos an, wie sind die hörner montiert und wie genau hat man gearbeitet...



so müste dann euer code aussehen damit er erst einmal vorwärts Läuft.

# forward
begin
  100 5504 5556 7680 4992 6016 7744
  8000 5699 8000 5056 6129 4352
  4864 6048 4800 7680 5896 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  100 7104 5056 4800 frame_4_10_16 # Frame 1
  100 4096 7360 6726 3584 7123 6016 frame_0_3_6_9_12_15 # Frame 2
  100 5984 6208 5907 frame_4_10_16 # Frame 3
  100 6784 6784 5056 frame_1_7_13 # Frame 4
  100 5504 4992 8000 5056 4864 7680 frame_0_3_6_9_12_15 # Frame 5
repeat

sub frame_0..17_20..23
  23 servo
  22 servo
  21 servo
  20 servo
  17 servo
  16 servo
  15 servo
  14 servo
  13 servo
  12 servo
  11 servo
  10 servo
  9 servo
  8 servo
  7 servo
  6 servo
  5 servo
  4 servo
  3 servo
  2 servo
  1 servo
  0 servo
  delay
  return

sub frame_4_10_16
  16 servo
  10 servo
  4 servo
  delay
  return

sub frame_0_3_6_9_12_15
  15 servo
  12 servo
  9 servo
  6 servo
  3 servo
  0 servo
  delay
  return

sub frame_1_7_13
  13 servo
  7 servo
  1 servo
  delay
  return

Step 11: Mein Completter Code

start:
  # wenn beide sensoren on dann Back
  left_sensor right_sensor logical_and
  if back back  goto start endif

  # wenn linker sensor on dann nach rechts
  left_sensor if back right right goto start endif

  # wenn rechter sensor on dann nach links
  right_sensor if back left left goto start endif

  # wenn kein sensor dann Vorwärts
  forward
  goto start


sub left_sensor
  19 get_position 512 less_than
  return


sub right_sensor
  18 get_position 512 less_than
  return

### Sequence subroutines: ###

# back
sub back
  350 5504 6784 7680 4992 5984 7744
  8000 6784 8000 5056 6208 4352
  4864 5056 4800 7680 5907 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  350 7360 3591 6040 frame_3_9_15 # Frame 1
  350 4096 6720 7168 frame_0_6_12 # Frame 2
  350 5556 5632 6165 frame_1_7_13 # Frame 3
  350 7104 5056 4800 frame_4_10_16 # Frame 4
  350 5504 4992 8000 5056 4897 7680 frame_0_3_6_9_12_15 # Frame 5
  350 5973 6219 5929 frame_4_10_16 # Frame 6
  return
# forward
sub forward
  100 5504 5556 7680 4992 6016 7744
  8000 5699 8000 5056 6129 4352
  4864 6048 4800 7680 5896 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  100 7104 5056 4800 frame_4_10_16 # Frame 1
  100 4096 7360 6726 3584 7123 6016 frame_0_3_6_9_12_15 # Frame 2
  100 5984 6208 5907 frame_4_10_16 # Frame 3
  100 6784 6784 5056 frame_1_7_13 # Frame 4
  100 5504 4992 8000 5056 4864 7680 frame_0_3_6_9_12_15 # Frame 5
  return
# left
sub left
  300 5504 5556 7680 7360 5994 7744
  8000 5643 8000 5056 6185 4352
  7168 6122 4800 7680 5896 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  300 4096 4992 6720 3584 4864 6040 frame_0_3_6_9_12_15 # Frame 1
  300 6606 6784 5056 frame_1_7_13 # Frame 2
  300 5504 8000 7168 frame_0_6_12 # Frame 3
  300 5568 5598 6112 frame_1_7_13 # Frame 4
  300 7104 5078 4800 frame_4_10_16 # Frame 5
  300 4096 7360 6720 5056 4864 7680 frame_0_3_6_9_12_15 # Frame 6
  return
# right
sub right
  300 4806 5556 7680 6176 5994 7744
  7372 5643 8000 4334 6185 4352
  5993 6122 4800 6856 5896 4608
  0 0 0 0 frame_0..17_20..23 # Frame 2
  300 5504 7360 8000 5056 7168 7680 frame_0_3_6_9_12_15 # Frame 1
  300 4096 6784 6720 6784 4864 5056 frame_0_1_6_7_12_13 # Frame 2
  300 5579 5643 6133 frame_1_7_13 # Frame 3
  300 7104 5056 4800 frame_4_10_16 # Frame 4
  300 5504 4992 8000 3584 7168 6016 frame_0_3_6_9_12_15 # Frame 5
  return
# startup
sub startup
  500 4820 5603 7680 6187 5984 7744
  7360 5620 8000 4327 6208 4352
  5993 6122 4800 6823 5907 4608
  0 0 0 0 frame_0..17_20..23 # Frame 0
  500 4387 6132 4864 6159 4480 6368
  7348 5828 7210 6337 7104 6061 frame_1_2_4_5_7_8_10_11_13_14_16_17 # Frame 1
  500 4096 4992 6720 3598 4864 6016 frame_0_3_6_9_12_15 # Frame 3
  500 5504 7360 8000 5056 7168 7680 frame_0_3_6_9_12_15 # Frame 3
  500 4779 6164 7372 4334 5982 6848 frame_0_3_6_9_12_15 # Frame 4
  500 5568 7650 5994 7744 5632 8000
  6219 4352 6154 4800 5929 4608 frame_1_2_4_5_7_8_10_11_13_14_16_17 # Frame 5
  200 5504 7360 8000 5056 7168 7680 frame_0_3_6_9_12_15 # Frame 6
  200 4096 4992 6720 3584 4864 6016 frame_0_3_6_9_12_15 # Frame 7
  200 5504 7360 8000 5056 7168 7680 frame_0_3_6_9_12_15 # Frame 9
  200 4096 4992 6720 3584 4864 6016 frame_0_3_6_9_12_15 # Frame 7
  200 5504 7360 8000 5056 7168 7680 frame_0_3_6_9_12_15 # Frame 9
  200 4800 6176 7360 4334 6038 6848 frame_0_3_6_9_12_15 # Frame 8
  return

sub frame_0..17_20..23
  23 servo
  22 servo
  21 servo
  20 servo
  17 servo
  16 servo
  15 servo
  14 servo
  13 servo
  12 servo
  11 servo
  10 servo
  9 servo
  8 servo
  7 servo
  6 servo
  5 servo
  4 servo
  3 servo
  2 servo
  1 servo
  0 servo
  delay
  return

sub frame_3_9_15
  15 servo
  9 servo
  3 servo
  delay
  return

sub frame_0_6_12
  12 servo
  6 servo
  0 servo
  delay
  return

sub frame_1_7_13
  13 servo
  7 servo
  1 servo
  delay
  return

sub frame_4_10_16
  16 servo
  10 servo
  4 servo
  delay
  return

sub frame_0_3_6_9_12_15
  15 servo
  12 servo
  9 servo
  6 servo
  3 servo
  0 servo
  delay
  return

sub frame_0_1_6_7_12_13
  13 servo
  12 servo
  7 servo
  6 servo
  1 servo
  0 servo
  delay
  return

sub frame_1_2_4_5_7_8_10_11_13_14_16_17
  17 servo
  16 servo
  14 servo
  13 servo
  11 servo
  10 servo
  8 servo
  7 servo
  5 servo
  4 servo
  2 servo
  1 servo
  delay
  return

Robot Contest

Participated in the
Robot Contest