Arduino 3D gedruckter Sumobot - Gunook

Arduino 3D gedruckter Sumobot - Gunook

Inhaltsverzeichnis:

Anonim

Also lag eine Menge Teile um mein Haus herum. Ich wollte in ein paar Monaten an einem Sumowettbewerb teilnehmen, aber ich hatte keinen Bot. Anstatt einen Bot zu kaufen oder ein vorhandenes Design zu verwenden, bei dem ich Dinge für das Projekt kaufen müsste, habe ich aus meinen eigenen Teilen, die ich hatte, einen eigenen Bot aus meinem eigenen Design gemacht. Für dieses Tutorial benötigen Sie Folgendes.

  1. Eines von jedem 3D-gedruckten Teil finden Sie hier.
  2. Eine 7,4 Volt Batterie oder zwei 18650 Batterien.
  3. Bei Bedarf ein Batteriehalter.
  4. Arduino uno.
  5. Arduino Uno Breakout-Schild.
  6. USB-Kabel für Arduino.
  7. Tischnetzteil (optional).
  8. Ladegerät (optional).
  9. Drähte und viele von ihnen.
  10. Kontinuierliche Rotationsservos mit Metallgetriebe in Standardgröße.
  11. Zwei IR-Schaltersensoren.
  12. 7cm Servoräder.
  13. Ein- und Ausschalter.

Dieser Code wird ständig geändert. Den Code für diesen Roboter finden Sie hier. Dies ist die aktuellste Version dieses Projektcodes. Genießen!

Zubehör:

Schritt 1: Montage.

  1. Der Roboter verwendet zwei Metallgetriebe-Servos. Sie sollten sie mit m3-Schrauben und -Muttern so einschrauben, dass die Servos im Gehäuse in beide Richtungen nach außen zeigen. Es gibt nur einen Weg, auf dem die Servos in den Roboter eindringen können. Dies ist also ziemlich einfach.
  2. Befestigen Sie die Servoräder.
  3. Bringen Sie die IR-Sensoren so an, dass sie vorne am Roboter nach unten zeigen. Sie werden mit zwei Schrauben durch die M3-Löcher an der Vorderseite des Roboters befestigt. Am Boden des Roboters befinden sich Schlitze, durch die sie hindurchschauen können. Sie sollten darauf achten, dass die Sensoren das Chassis nicht erfassen und den gesamten Weg durch die Schlitze sehen. Sie werden später mehr darüber erfahren, wenn wir den Roboter testen, um festzustellen, ob Ihre praktische Arbeit funktioniert hat.
  4. Setzen Sie den HC-SR04-Sensor von innen in die beiden Löcher, die außerhalb des Roboters liegen. Die Löcher befinden sich an der Vorderseite des Gehäuses.
  5. Legen Sie den Arduino Uno mit dem Schild darauf in das Gehäuse.
  6. Verdrahten Sie alles gemäß der nachstehenden Aufzählung.
    1. Stromversorgung von der Stromquelle Ihrer Wahl zum Netzschalter. Sie verdrahten die positive oder negative Leitung zum Schalter. Wenn Sie die negative Leitung gewählt haben, ist dies Ihre Erdung, während Sie die positive Leitung gewählt haben, die Ihre Stromquelle sein wird. Der andere Draht, je nachdem ob er positiv oder negativ ist, ist Ihr positiver oder negativer Draht.
    2. Verbinden Sie die positive Leitung mit vin am Arduino und die positiven Leitungen an den Servos.
    3. Verbinden Sie Masse mit Masse auf den Servos und dem Arduino.
    4. Verbinden Sie 5 V vom 5-Volt-Regler am Arduino mit allen positiven Anschlüssen an jedem der Sensoren.
    5. Verdrahten Sie die Sensoren auf dem Arduino mit Masse.
    6. Zuletzt Pin 7 am Arduino mit dem rechten IR-Sensor verbinden, Pin 6 mit dem linken IR-Sensor, Pin 8 mit einem der Servos, Pin 9 mit dem letzten Servo.

Warnung: Wenn der Roboter nicht richtig verkabelt wird, kann er rauchen und die Elektronik zerstören.

Schritt 2: Erste Lebenszeichen.

Warnung: Schließen Sie den Roboter nicht an Ihren Computer an, während er mit Strom versorgt wird oder die Servos verkabelt sind. Andernfalls kann Ihr Computer beschädigt werden.

int mode = 3;

Diese Codezeile ist die entscheidende Variable für den Roboter. Es wird Folgendes ausgeführt, wenn die unten aufgelisteten Zahlen gleich sind.

  1. Während er gleich Null ist, bewegt sich der Roboter in einem bestimmten Muster.
  2. Wenn der Modus gleich eins ist, druckt der Roboter die Ausgabe aller Sensorwerte an den Computer.
  3. Bei zwei vermeidet der Roboter Kanten und Hindernisse, wenn er auf sie trifft.
  4. Der Roboter kämpft gegen andere Bots.

Dies sind die verschiedenen Modi des Roboters, mit denen der Roboter getestet und seine Fortschritte erzielt werden. Sie müssen diese "3" für den ersten Schritt dieses Tutorials auf Null setzen.

Laden Sie nun den Code auf den Roboter hoch. Sie werden sehen, wie es sich in dieser Reihenfolge vorwärts, rückwärts, links und rechts bewegt.

Schritt 3: Es kann sehen!

int mode = 0;

Ändern Sie die folgende Variable auf "1", wenn der vorherige Schritt abgeschlossen wurde. Wenn Sie jetzt mit Ihrem seriellen Monitor auf Arduino verbunden sind, druckt er aus, was Ihr Roboter sieht. "0" bedeutet für die Kantensensoren, dass sie etwas sehen. "1" bedeutet, dass keine Kanten sichtbar sind. Wenn Sie feststellen, dass die Logik invertiert ist, beachten Sie dies für die zukünftigen Schritte.

Mach dir keine Sorgen über den Ping-Sensor. Das habe ich sowieso noch nicht zum Laufen gebracht. Dieser Roboter befindet sich in starker Entwicklung.

Schritt 4: Es kann die Tischkante vermeiden!

nichtig Vermeiden () {

int sensorStateLeft = digitalRead (leftSensor);

int sensorStateRight = digitalRead (rightSensor);

Verzögerung (50);

if (Ping.ping_cm ()> = 15 && sensorStateLeft == 0 && sensorStateRight == 0) {

left.write (0); right.write (90);

}

if (Ping.ping_cm () <= 15 && Ping.ping_cm ()! = 0 || sensorStateLeft == 1 || sensorStateRight == 1) {

left.write (90);

right.write (0); }

}

Dieser Code oben ist der Code, der aufgerufen wird, wenn der Modus gleich zwei ist. Wenn der vorherige Schritt abgeschlossen ist, ändern Sie den Modus auf "2".

Wenn die Sensoren invertiert sind, können Sie "sensorStateLeft" und "sensorStateRight" in jeder der "if" -Anweisungen so invertieren, dass sie einer anderen Zahl entsprechen, als sie angegeben wurden, die entweder "1" oder "0" ist.

Jetzt kann der Roboter den Rand einer Sumo-Arena meiden. Es ist fast bereit zu kämpfen. Probieren Sie es einfach aus, um zu sehen, ob es funktioniert oder nicht.

Schritt 5: SCHLACHT!

Ihr Sumo ist jetzt mit ein paar Codeänderungen kampfbereit. Ändern Sie den Modus auf "3" und invertieren Sie die Logik nach Bedarf im leeren "Sumo". Jetzt sollte Ihr Roboter den Rand der Arena meiden, kann aber keine anderen Roboter erkennen. Grundsätzlich meidet es die Ränder der Arena und bewegt sich so schnell, dass es hoffentlich einen Roboter von der Tischkante stoßen kann. Genießen!

Schritt 6: Fazit!

Ihr Roboter ist jetzt fertig. Wenn es Probleme oder Kommentare zu diesem Projekt gibt, können Sie sich gerne an mich wenden. Ich bin unglaublich offen für Feedback, weil ich keine Ahnung habe, ob dies ein gut gemachtes Tutorial war oder nicht. Genießen!

Dies ist ein Eintrag in der

Arduino-Wettbewerb 2019