Inhaltsverzeichnis:

Arduino gesteuerter Servoroboter (SERB) - Gunook
Arduino gesteuerter Servoroboter (SERB) - Gunook

Video: Arduino gesteuerter Servoroboter (SERB) - Gunook

Video: Arduino gesteuerter Servoroboter (SERB) - Gunook
Video: TinyWanderer.wmv 2024, November
Anonim
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)
Arduino-gesteuerter Servoroboter (SERB)

Gibt es einen besseren Weg, um mit Open-Source-Mikrocontrollern (Arduino) zu experimentieren, als mit dem Bau Ihres eigenen Open-Source-Roboters (CC (SA -BY))? Was tun mit Ihrem SERB?

  • (hier) - So verbinden Sie Ihren SERB mit dem Internet und steuern ihn über einen Skype-Videoanruf.
  • (hier) - So steuern Sie Ihren SERB mit den Beschleunigungsmessern eines Wii-Nunchucks
  • (hier) - So fügen Sie Ihrem Roboter Hinderniserkennungs-Whisker hinzu
  • (hier) - Wie man 30 Bausätze herstellt (Open Manufacturing)

Merkmale:

  • Vollständig programmierbar mit einem Arduino Duemilanove-Mikrocontroller (oder einem anderen Mikrocontroller Ihrer Wahl).
  • Kein Löten nötig.
  • Auswahl an Schneideoptionen für Acrylteile. (Rollensäge, Zugang zu einem Laserschneider, Kauf von vorgeschnittenen Teilen)
  • Leicht erweiterbar und modifizierbar mit zusätzlichen Schraubenlöchern und mitgeliefertem Steckbrett.
  • Hinterrad mit Doppelkugellager.
  • In 1-2 Stunden einsatzbereit. (aus Bausatz)
  • Open-Source-Design (bauen Sie so viele wie Sie möchten)

(Shameless Plug) In Großbritannien und wie Arduino-Sachen? Schauen Sie sich unseren neu eröffneten Webshop oomlout.co.uk an Ein kurzes Video eines abgeschlossenen Arduino-gesteuerten Servoroboters - (SERB), der das mitgelieferte Testprogramm ausführt (Schritt 6) Hinweis: Quelldateien sind auf einem parallelen Instructable verfügbar (Quelldateien für) - Wie man einen Arduino-gesteuerten Servoroboter herstellt - (SERB)

Schritt 1: Teile & Werkzeuge

Teile & Werkzeuge
Teile & Werkzeuge

Alle Schrauben können bei Ihrem lokalen Home Depot gefunden werden. Die anderen Teile können online gefunden werden (ich habe jeweils einen Link zu meiner Lieblingsquelle eingefügt). Teileliste: Ein Bundle mit allen Hardware-Artikeln kann im Shop von oomlout.com (hier) erworben werden ($ 120) Muttern und Schrauben:

  • 3mm x 15mm Schraube (x20)
  • 3mm x 10mm Schraube (x12)
  • 3mm Mutter (x34)
  • 3mm Unterlegscheibe (x12)
  • 8mm x 25mm Schraube (x2)
  • 8mm Mutter (x2)
  • Skate-Lager (x2) (VXB) (dies sind Standard-Skate-Lager, damit sie von einem Paar Rollerblades oder einem Skateboard gerettet werden können)

Reifen

  • Großer O-Ring (4.5" ID 3/16" Bead Dash #349) (x2) (McMaster-Carr Produkt #9452K407)
  • Kleiner O-Ring (3/4" ID 3/16" Bead Dash #314) (x1) (McMaster-Carr Produkt #9452K387)

Elektronik

  • Arduino Duemilanove (x1) (Herstellerschuppen)
  • Kontinuierlicher Rotationsservo (x2) (Parallaxe)
  • 400 Kontakt-Breadboard (x1) (alle Elektronik))
  • Quad AA Batteriebox (x1) (alle Elektronik)
  • 9V Batterieclip (x1) (alle Elektronik)
  • 2,1 mm Stecker (x1) (alle Elektronik)
  • 3-poliger Header (x2) (Alle Elektronik)
  • A-B-USB-Kabel - Druckerstil (x1) (alle Elektronik) (nicht im Kit enthalten)

Batterien:

  • AA-Batterie (x4) (nicht im Kit enthalten)
  • 9V Batterie (x1) (nicht im Kit enthalten)

Draht: (Alle Drähte sind 22 AWG solide, ich kaufe meine über McMaster-Carr)

  • 15 cm Lila (x2)
  • 15 cm Schwarz (x1)
  • 5 cm Schwarz (x2)
  • 5 cm Rot (x2)

Werkzeuge

  • Schraubendreher (x1) (Philips)
  • Spitzzange (x1)

Schritt 2: Stücke schneiden

Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen
Schneiden von Teilen

Bitte wählen Sie die zu befolgenden Schritte basierend auf der von Ihnen gewählten Schneideoption. Option 1 (Kauf von vorgeschnittenen Teilen)

Kaufen Sie ein vorgeschnittenes Chassis im Shop von oomlout.com (hier) (60 USD inklusive Versand in die USA und Kanada)

Option 2 (Digitale Fertigung (z. B. Ponoko) / Zugang zu einem Laserschneider)

  • Laden Sie das Laserschneider-Layout herunter ("03 SERB Ponoko Cutting Layout P2.eps" oder "03-(SERB)-Ponoko Cutting Layout (P2).cdr")
  • Schneiden Sie die Dateien mit Ponoko oder auf Ihrem eigenen Laserschneider (unter Verwendung von 3 mm,.118" Acryl (manchmal verkauft als.125")

Option 3 (Rollsäge und Bohrer)

  • Laden Sie das PDF-Muster herunter und drucken Sie es aus (bitte wählen Sie die Datei, die Ihrem Papierformat entspricht) 03-(SERB)-ScrollSaw-Muster (Brief).pdf 03-(SERB)-ScrollSaw-Muster (A4).pdf (es ist wichtig, nicht zu skalieren die Zeichnung beim Drucken)
  • Messen Sie das Lineal auf dem Ausdruck mit einem Lineal Ihres Vertrauens, wenn es nicht mit dem skalierten Muster übereinstimmt und Sie Ihre Druckereinstellungen vor dem erneuten Drucken überprüfen müssen. Wenn sie übereinstimmen, weiter.
  • Kleben Sie das Muster auf die Acrylplatte (3 mm,.118" (manchmal als.125") verkauft.
  • Löcher bohren.
  • Teile mit einer Dekupiersäge ausschneiden

Schritt 3: Montage

Montage
Montage
Montage
Montage
Montage
Montage

Herzlichen Glückwunsch, dass Sie es so weit geschafft haben, dass 90% des Prozesses abgeschlossen sind. Um Sie auf dem Weg hierher zu unterhalten, ist ein Zeitraffer meiner Montage:

Schritt 4: Verkabelung

Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung

Mit all den großen Teilen zusammen ist es an der Zeit, die kleinen elektrischen Adern hinzuzufügen, die es ermöglichen, unseren Roboter zu steuern. Laden Sie dazu den Schaltplan (05-(SERB)-Wiring Diagram.pdf) herunter und drucken Sie ihn aus. Ein erster Blick darauf kann ziemlich entmutigend aussehen, aber wenn Sie jede Verbindung nacheinander herstellen und sich Zeit nehmen, kommt es bemerkenswert schnell zusammen. Die Verkabelung ist recht einfach und kann Ihrem Stromkreis keinen Schaden zufügen, bis Sie Batterien hinzufügen. Verdrahten Sie also alles, überprüfen Sie es und fügen Sie dann die Stromversorgung hinzu.

Schritt 5: Testen und Fehlerbehebung

Testen & Fehlerbehebung
Testen & Fehlerbehebung

Wenn Sie ein Kit bestellt haben, ist Ihr Arduino mit einem Testprogramm vorinstalliert. Legen Sie einfach 4 AA-Batterien ein und stecken Sie die 9-V-Batterie in den Arduino. Und wenn alles richtig gemacht wurde, beginnt sich Ihr Roboter zu bewegen (er dreht sich für eine Zeit zwischen 0,1 und 1 Sekunde in eine zufällige Richtung, bevor er für eine zufällige Zeit zwischen 1 und 2 Sekunden vorwärts fährt und dann 2 Sekunden lang pausiert, bevor er wieder startet). Wenn Sie kein Kit gekauft haben, ist ein zusätzlicher Schritt erforderlich. Laden Sie die angehängte Zip-Datei (07-(SERB)-SERB-Test Arduino Program.zip) herunter. Entpacken Sie es dann in Ihr Arduino-Skizzenverzeichnis (Standard "my Documents\Arduino\") und laden Sie es auf Ihr Arduino-Board herunter. (Wenn Sie neu bei Arduino sind, springen Sie einen Schritt weiter, wo es Links zu großartigen Tutorials für den Einstieg gibt) Häufige Probleme: Mein SERB bewegt sich langsam, wenn er gestoppt werden sollte. Dies ist darauf zurückzuführen, dass Ihre Servos nicht richtig kalibriert sind. Um Ihre Servos zu kalibrieren, warten Sie, bis Ihr Programm die Servos gestoppt hat, dann drehen Sie mit einem kleinen Schraubendreher das Potentiometer im Servo (die kleine Öffnung im Servogehäuse genau über den Drähten)). Drehen Sie ihn entweder nach links oder rechts, bis das Servo wirklich gestoppt ist. Die Dinger funktionieren nicht richtig. Senden Sie uns eine E-Mail mit Ihren Symptomen und wir werden versuchen, Ihnen zu helfen, während Sie auf eine Antwort warten, überprüfen Sie alle Ihre Kabel mit dem Schaltplan aus Schritt 4. Wenn Sie auf ein Problem stoßen, fügen Sie bitte entweder einen Kommentar hinzu zu diesem Instructable oder senden Sie eine E-Mail an [email protected] und wir werden unser Bestes geben, um Ihnen zu helfen, Ihren SERB zum Laufen zu bringen

Schritt 6: Programmierung

Programmierung
Programmierung

Der physische Roboter ist fertig, um ihm ein Gehirn zu geben. Bevor wir in die Details der Programmierung eines Arduino Controlled Servo Robot - (SERB) eingehen - ein paar Links zu einigen hervorragenden Arduino-Programmierressourcen im Internet. Arduino Starter Guide - A guide um Ihnen beim Start mit Arduinos zu helfen, vom Herunterladen der Programmierumgebung bis zum Schreiben Ihres ersten Programms. Arduino Programming Reference - Eine vollständige, leicht verständliche Anleitung zur Arduino-Programmiersprache. Wie Servos funktionieren - Eine kurze Einführung in die Funktionsweise von Servomotoren. Arduino Servo Library - Wie die Arduino Servo-Bibliothek funktioniert (wie wir unsere Servos steuern). In Ordnung mit dem Lernen aus dem Weg, können wir programmieren. Es gibt drei Möglichkeiten, um mit der Programmierung Ihres Arduino-gesteuerten Servoroboters (SERB) zu beginnen. Laden Sie dazu das gezippte Programm SERB_Test (07-(SERB)-SERB-Test Arduino Program.zip) herunter. Fahren Sie damit fort, diese in Ihrem Arduino-Skizzenordner zu entpacken (Standard "My Documents\Arduino\"). Öffnen Sie schließlich die Arduino-Programmierumgebung und laden Sie sie auf Ihren Arduino herunter. Der Code ist gut kommentiert. (oder kopieren Sie den Code aus dem Anhang zu diesem Schritt und fügen Sie ihn in eine neue Arduino-Skizze ein) Option 2: (Hinzufügen von SERB-Routinen zu Ihrem Programm) Fügen Sie Ihrem bereits vorhandenen Programm einige einfache Routinen hinzu (wie goForward(), setSpeed(int) usw.). Laden Sie dazu die Routinen in der Textdatei (07-(SERB)- Simple Routines Text.txt) herunter. 1. Kopieren Sie den Präambelteil und fügen Sie ihn am Anfang Ihres Programms ein.2. Kopieren Sie den Routineteil und fügen Sie ihn in den Hauptteil Ihres Programms ein.3. Fügen Sie einen Aufruf zu serbSetup() hinzu; zu Ihrer setup()-Routine. Option 3: (Erstellen Sie Ihr eigenes Programm von Grund auf) Dies ist nicht allzu schwierig. Sie müssen sich lediglich mit der Arduino Servo Library vertraut machen. Dann wird das rechte Servo an Pin 9 und das linke Servo an Pin 10 angeschlossen. Hinweis: Weitere Programme werden hier nach ihrer Entwicklung hinzugefügt; oder wenn Sie etwas entwickeln und möchten, dass es vorgestellt wird, senden Sie mir eine private Nachricht und es kann hinzugefügt werden. Anhang: (SERB_Test.pde Code)

/* * Arduino Controlled Servo Robot (SERB) - Testprogramm * Für weitere Details besuchen Sie: https://www.oomlout.com/serb * * Verhalten: Ein einfaches Testprogramm, das den SERB * zufällig nach links oder rechts drehen lässt für einen * zufälligen Zeitraum zwischen 0,1 und 1 Sekunde. * Der SERB fährt dann für einen zufälligen * Zeitraum zwischen 1 und 2 Sekunden vorwärts. Zum Schluss * 2 Sekunden pausieren, bevor wieder gestartet wird. * * Verdrahtung: Rechtes Servosignal - Pin 9 * Linkes Servosignal - Pin 10 * * Lizenz: Dieses Werk ist lizenziert unter der Creative Commons * Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported License. Um * eine Kopie dieser Lizenz anzuzeigen, besuchen Sie * https://creativecommons.org/licenses/by-sa/3.0/ * oder senden Sie einen Brief an Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * VEREINIGTE STAATEN VON AMERIKA. * */ //--------------------------------------------------------- ------------------------------------------// START VON ARDUINO CONTROLLED SERVO ROBOTER (SERB) PRÄAMBEL#include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo linksServo; Servo rechtsServo; int-Geschwindigkeit = 100; // stellt die Geschwindigkeit des Roboters ein (beide Servos) // einen Prozentsatz zwischen 0 und 100 // ENDE DES ARDUINO CONTROLLED SERVO ROBOT (SERB) PRÄAMBEL // ---------------- -------------------------------------------------- --------/* * setzt die Pins in die entsprechenden Zustände und verbindet die Servos. Dann pausiert * für 1 Sekunde, bevor das Programm startet*/ void setup() { serbSetup(); // Setzt den Zustand aller notwendigen // Pins und fügt Servos zu Ihrer Skizze hinzu randomSeed (analogRead (0)); // setzt den Zufallszahlen-Seed mit //etwas mild zufälliger Verzögerung (1000);}/* * dreht den Roboter entweder nach links oder rechts (zufällig) für einen Zeitraum zwischen * 0,1 und 1 Sekunde. Bevor Sie für einen zufälligen Zeitraum * zwischen 1 und 4 Sekunden vorwärts gehen. Bevor Sie für zwei Sekunden pausieren und dann * erneut starten.*/void loop () { turnRandom (100, 1000); // Dreht sich zufällig nach links oder rechts für eine // zufällige Zeitspanne zwischen 0,1 Sekunde // und einer Sekunde goForwardRandom(1000, 2000); // Geht für einen zufälligen Zeitraum vorwärts // zwischen // und 2 Sekunden goStop(); // Stoppt die Roboterverzögerung (2000); // pausiert für 2 Sekunden (während er angehalten ist)}/* * dreht den Roboter zufällig nach links oder rechts für einen zufälligen Zeitraum zwischen * minTime (Millisekunden) und maxTime (Millisekunden) */void turnRandom(int minTime, int maxTime){int Wahl = zufällig (2); //Zufallszahl zur Entscheidung //zwischen links (1) und rechts (0) int turnTime = random(minTime, maxTime); //Zufallszahl für die Pause //Zeit if(choice == 1){ goLeft();} //Wenn Zufallszahl = 1 dann abbiegen //links sonst {goRight();} //Wenn Zufallszahl = 0 dann drehen // rechts Verzögerung (turnTime); // Verzögerung für zufällige Zeit}/* * geht vorwärts für einen zufälligen Zeitraum zwischen minTime (Millisekunden) * und maxTime (Millisekunden) */void goForwardRandom (int minTime, int maxTime) { int forwardTime = random(minTime, maxTime); //bestimme eine zufällige Zeit, um // vorwärts zu gehen goForward(); // setzt die SERB-Forward-Verzögerung (forwardTime); //Verzögerungen für zufälligen Zeitraum}//---------------------------------------------------- ---------------------------------//START DER ARDUINO CONTROLLED SERVO ROBOTER (SERB) ROUTINES/* * richtet Ihre arduino, um Ihren SERB mit den enthaltenen Routinen zu adressieren */void serbSetup () { setSpeed (speed); pinMode (LINKSSERVOPIN, AUSGANG); // Setzt den linken Servo-Signal-Pin // um PinMode auszugeben (RIGHTSERVOPIN, OUTPUT); // Setzt den rechten Servosignal-Pin // um leftServo.attach (LEFTSERVOPIN) auszugeben; // befestigt linkes Servo rightServo.attach (RIGHTSERVOPIN); // befestigt rechtes Servo goStop ();}/* * setzt die Geschwindigkeit des Roboters zwischen 0-(gestoppt) und 100-(volle Geschwindigkeit) * HINWEIS: Die Geschwindigkeit ändert nicht die aktuelle Geschwindigkeit, Sie müssen die Geschwindigkeit ändern * dann rufen Sie einen an der Go-Methoden, bevor Änderungen auftreten. * / void setSpeed (int newSpeed) { if (newSpeed >= 100) {newSpeed = 100;} // wenn die Geschwindigkeit größer als 100 ist // mache es zu 100 if (newSpeed <= 0) {newSpeed = 0;} // wenn die Geschwindigkeit kleiner als 0 ist, mache // es 0 Geschwindigkeit = newSpeed * 0,9; // skaliert die Geschwindigkeit auf // zwischen 0 und 90}/* * sendet den Roboter vorwärts */void goForward () { leftServo.write (90 + speed); rightServo.write(90 - Geschwindigkeit);}/* * schickt den Roboter rückwärts */void goBackward(){ leftServo.write(90 - Geschwindigkeit); rightServo.write (90 + Geschwindigkeit);} /* * sendet den Roboter nach rechts */void goRight () { leftServo.write (90 + Geschwindigkeit); rightServo.write(90 + Geschwindigkeit);}/* * sendet den Roboter nach links */void goLeft(){ leftServo.write(90 - Geschwindigkeit); rightServo.write(90 - Geschwindigkeit);}/* * stoppt den Roboter */void goStop(){ leftServo.write(90); rightServo.write(90);} //ENDE ARDUINO CONTROLLED SERVO ROBOTER (SERB) ROUTINES //---------------------------- ----------------------------------------------------------

Schritt 7: Fertig, andere, die fertig sind und die Zukunft

Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft
Fertig, andere, die fertig sind & die Zukunft

Herzlichen Glückwunsch, dass Sie so weit gekommen sind und ich hoffe, Sie haben Spaß mit Ihrem Arduino Controlled Servo Robot - (SERB). Michael Becks SERB -Michael hat die Pläne für den SERB bei Thingiverse.com gefunden und seinen aus gelbem und rotem Acryl geschnitten. Ich finde, es sieht großartig aus. Mikes SERB - Mike (vom Roboterclub ROBOMO in St. Louis Area) ließ einen Freund ein SERB-Chassis laserschneiden und nutzte sein eigenes Roboter-Know-how, um es zum Laufen zu bringen. Ich finde es sieht toll aus in Blau. (Einzelheiten dazu sowie zu seinen anderen Robotern finden Sie auf seiner Website (hier). In diesem Abschnitt finden Sie Details zu zukünftigen Entwicklungen und Anbaugeräten (sie werden hier vorgestellt, bevor sie ordnungsgemäß dokumentiert werden). Aber ich möchte auch Bilder zeigen von anderen Völkern SERB's. So, wenn Sie fertig sind, senden Sie mir eine private Nachricht mit einem Foto und ein paar Worten (sei es eine Beschreibung oder ein Link zu Ihrer Website) und ich füge es hier hinzu. (Shameless Plug) Wenn Sie möchten Diese anweisbare Check-out oomlout.com für andere lustige Open-Source-Projekte.

Erster Preis beim SANYO eneloop Battery Powered Contest

Empfohlen: