GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

6 Schritt:Schritt 1: The Eagle Schematic Schritt 2: Controlling 2 DC Bürstenmotoren Schritt 3: Steuern von 2 Servos Schritt 4: Der Aufbau einer Steckbrett Roboter mit GOduino III Schritt 5: GOduino III Objekt Vermeidung Roboter Schritt 6: Dank

GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

UPDATES
16. November 2012 auf DangerousPrototypes.com Beliebte http://goo.gl/N4DIC 3. Oktober 2012: Ich habe eine PCB-Adapter an Position IR & Ultraschall-Sensoren helfen, 90 Grad, in Steckbrett zu GOduino III Roboter Projekte zu unterstützen 1. September 2012 entworfen : Added EAGLE Board-Layout
EINFÜHRUNG

Die GOduino III ist eine kostengünstige Arduino kompatible Open-Source-Hardware Robotersteuerung. Es ist eine einfache und kostengünstige Robotersteuerung (appx. 25 €). Ich baute diesen Controller für meine Robotik-Workshops als auch für meine persönliche Projekte. Die GOduino III kann in ein Steckbrett für einfache Prototyping eingefügt werden. Ich habe auch eine Software-Bibliothek (Goduino.h) zu motorischen Funktionen unterstützt entwickelt. Es ist eine Erweiterung von Adafruit die Boarduino .

HINWEIS: Dies ist meine erste PCB-Projekt so mit Ihrem Feedback am meisten geschätzt wird. Ich bin auch sicher, dass diese Anleitung enthält viele Tippfehler. So in den nächsten Tagen werde ich Korrekturen und das Hinzufügen von mehr Details basierend auf dem Feedback der Leser. Vielen Dank im Voraus für Ihre Unterstützung.

HINTERGRUND

Dies ist eine 3. Generation GOduino. Die eine war die vor prefboard GOduino II und der erste war ein Steckbrett GOduino.

1) GOduino II (prefboard)
http://www.instructables.com/id/GOduino-II-Arduino-L293D-Variable-Speed-Motor-/

2) GOduino I (Steckbrett)
http://www.instructables.com/id/GOduino-The-Arduino-Uno-Motor-Driver-clone/

ÜBERSICHT

Die GOduino III basiert auf dem ATMEGA328P Mikrocontroller und dem L293D Dual H-Brücken-basierte. Es ist mit DIP ICs und Durchgangsbohrung Komponenten für eine einfache Montage und Reparatur gebaut. Diese Robotersteuerung kann 2 kleine Servos handhaben und 2 DC Bürstenmotoren (max 1,2 A für jeden Motor mit 2 X L293D).

Die GOduino III kann mit einem Standard-Arduino IDE über einen FTDI USB / UART-Programmierer oder über die ICSP-Header mit Programmierern wie AVR-ISP, STK500 oder parallel Programmierer programmiert werden.

TECHNISCHE DATEN
Auf der Grundlage der ATMEGA328P Mikrocontroller @ 16 MHz (im Herzen der Arduino Uno DIP-Modell) Größe: 5 cm X 2,5 cm. Stecker in eine Steckbrett mit Hilfe von 0,1 "(2,54 mm) Stiftleisten oder Sie können Buchsenleisten löten Arduino-Standard digital, analog, und Spezialstifte ausgesetzt Digital I / O Pins:.. 14 (davon 6 ausgegebenes PWM liefern) - Analog Input Pins: 6 2 X LED: eine für Power und eine andere für Stift 13. Reset-Taste 2 X 3-poligen 0,1 "(2,54 mm) Kopfzeilen (5 V) für kleine Servos.. 2 x 2-polige 0,1 "(2,54mm) Header für bürstenbehaftete Gleichstrommotoren. 6-poligen 0,1" (2,54 mm) ICSP Stiftleiste. 6-pin 0,1 "(2,54 mm) Stiftleiste, um FTDI USB-Programmierer zubringen Flash-Speicher:. 32 KB von denen 0,5 KB SRAM durch Bootloader verwendet: 2 KB EEPROM: 1 KB
PROGRAMMIER
Die GOduino III kann mit dem Arduino IDE über einen FTDI USB Programmierer Es kann auch über die ICSP Header mit Programmierer wie AVR-ISP, STK500 oder parallel Programmierer programmiert werden programmiert werden. Die FTDI "FT232RL USB to Serial Adapter" für weniger als 10 € von Ebay erworben werden. Außerdem können Sie einen Arduino Uno DIP verwenden, um die GOduino III ATmega328 Mikrocontroller programmieren setzen Sie sie wieder in die GOduino III. Auto-Reset-Funktion für FTDI-Programmierer über den DTR-Pin.
POWER-
Logikspannung: 5V vom T7805CV Regler zugeführt. Eingangsspannung (empfohlen): 7-12V. (Grenzen): 6-20V Motor Spannung: Während der L293D Motortreiber-IC ist für 4,5V bis 36V gelesen werden wir von den empfohlenen / Grenzspannung Bewertungen des Leistungsregler gebunden. 1N7001 Diode schützt vor Gegenspannung von der externen Stromquelle. Die L7805CV Regler bietet 1,5 A, die genug an die Macht der GOduino III und 2 kleine Servos ist. Sie können die 7805 mit Pin-kompatibel Low-Drop-out-Spannungsregler mit höherer Strom wie der LM1084-5V die 5A mit einer maximalen Dropout-Spannung von 1,5 V Quelle kann zu tauschen. Die 5V-Regler auch Kräfte der Servos nicht aber die Motoren. Für die Motoren, bekommt der L293D H-Brücke seine Energie aus dem DC-Steckfassung oder der VIN Pin direkt. Sie können wählen, um die GOduino III von USB oder externes Netz mit einem Stift-Jumper Strom zu versorgen. Bitte beachten Sie, dass USB-Energie nicht ausreichen, um Servos und Motoren zu betreiben. Der L293D H-Brücke kann unterstützt 2 DC-Motoren @ 600mA Dauerstrom je. Sie können zwei L293D huckepack um den Strom auf 1,2 A pro Strommotors zu verdoppeln.
PARTS
Kondensatorkeramik 0.1uF X 5 10uF / 25V 100uF / 16V 100uF / 6V X 2 Diode 1N4007 LED Red 3MM LED Grün 3MM ATMEGA168P Mikrocontroller 7805 5V-Regler L293D Dual h-Brücke DC Jack Buchse 1X2-3.5MM 40-polige Stiftleiste (0,1 " 2,54 mm) DIP-Sockel 28-Pin-Taste DIP-Sockel 16-Pin-Resistor 10K Ohm Resistor 1.0 K Ohms X 2 Reset 16.00MHz Ceramic Resonator 3-pin
Ich überlege, Ersetzen des 3,5-mm-DC-Buchse mit einem Anschlussblock für den nächsten Patch von GOduino PCBs.

Sie können die EAGLE Schaltpläne für die Leiterplatte von Github zusammen mit der Bibliothek zu erhalten. Die Board-Layout wird geändert, aber ich werde es bald Github veröffentlicht, sobald ich fertig bin.

Software Library

Es gibt 4 motorischen Funktionen im Goduino Bibliothek. Sie werden im Abschnitt über die Steuerung von Motoren erläutert.
Motorgeschwindigkeit (mot1speed, mot2speed) Setzt Geschwindigkeit für beide Motoren. Motorstop (motorNum) Stoppt ein Motor. motorForward (motorNum) spinnt ein Motor in eine Richtung. motorBack (motorNum) spinnt ein Motor in der umgekehrten Richtung. Die GOduino III Motor Bibliothek und andere Support-Dateien können von Github zum Download bereit:
https://github.com/techbitar/goduino

VIDEO

Schritt 1: The Eagle Schematic

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    Die GOduino III ist Open Source Hardware, so dass jeder in Eagle 6.x Formate herunterladen und Wiederverwendung der Design-Dateien von Github.

    https://github.com/techbitar/goduino

Schritt 2: Controlling 2 DC Bürstenmotoren

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    Die GOduino III verwendet das L293D H-Brücke (Motorantrieb), die eine robuste und kostengünstige DIP IC, das Schaltungsdesign vereinfacht ist. Es hat sich für den Fall, Motoren eingebauten EMF Schutz und thermische Abschaltung ziehen zu viel Strom, der auch die L293D beschädigen könnten.

    Eine einzelne L293D kann 2 steuern bürstenbehaftete DC-Motoren mit Spitzen / Stillstandsstrom bis zu 600mA pro Motor. Peak / Stillstandsstrom ist der Strom der Motor zieht, wenn sich dreht, während immer noch angetrieben verhindert.

    Wenn Sie zwei L293D ICs huckepack, können Sie den Strom der GOduino III zu 1,2A pro Motor verdoppeln. Das ist mehr als genug, um die Macht am Gleichstrommotoren für kleine Roboter.

    Pololu und Solarbotic beispielsweise bieten eine große Auswahl an Motoren, die innerhalb der aktuellen Ratings der L293D gut funktionieren.

    Der L293D Logikschaltung wird über den GOduino III Leistungsregler (7805), aber Motorsteuerschaltung der L293D wird direkt aus dem batteriebetriebenen Strom versorgt.

    Jeder Motor ist von der L293D über eine 2-polige Stiftleiste (Motor 1 und Motor 2) angetrieben. Die Reihenfolge des Verbindens eines Motorpole zu dem 2-Pin-Header bestimmt die Drehrichtung des Motors. Sie können auch Motordrehrichtung ändern, von Ihrem Arduino Sketch.

    TIPP: Löten Sie einen 0,1 uF Keramik-Kondensator über die Pole des bürstenbehaftete Gleichstrommotor für zusätzliche Schaltung Stabilität. Verkürzung der Leitungen an dem Kondensator so weit wie möglich für eine bessere Antwort und um versehentlichen elektrischen Kurzschlüsse zu vermeiden.

    Die GOduino III ATmega328 Pins an der L293D H-Brücke auf diese Weise abgebildet (mit Arduino Pin Nummerierungssystem):

    Motor 1 Pole1 ---> Arduino Pin 4
    Motor 1 Pol 2 ---> Arduino Pin 2
    Motor 1 Aktivieren ---> Arduion Pin 5 (PWM)

    Motor 2 Pole1 ---> Arduino Pin 7
    Motor 2 Pole2 ---> Arduino Pin 8
    Motor 2 aktivieren ---> Arduion Pin 6 (PWM)

    Der Software-Bibliothek

    Ich schrieb den Goduino Motor-Bibliothek, um die Notwendigkeit, die hohen, niedrigen Pin-Ausgangssequenzen erforderlich zu drehen oder zu stoppen einen Motor einprägen zu beseitigen.

    Es gibt 4 Funktionen in der Bibliothek Goduino Motor: Motorgeschwindigkeit (mot1speed, mot2speed) Setzt Geschwindigkeit für beide Motoren. Motorstop (motorNum) Stoppt ein Motor. motorForward (motorNum) spinnt ein Motor in eine Richtung. motorBack (motorNum) spinnt ein Motor in der umgekehrten Richtung. PARAMETERS

    Es gibt zwei 2-polige Stiftleisten auf der Leiterplatte GOduino III: Motor 1 und Motor 2. Alle Funktionen in der Goduino Motor-Bibliothek, die einen einzelnen Parameter zu nehmen, ist es entweder 1 für Motor 1 oder 2 für Motor 2.

    Die einzige Funktion, die zwei Parameter übernimmt die Motorgeschwindigkeit () Funktion. Die ersten Parametersätze Geschwindigkeit für Motor 1 und den zweiten Satz Geschwindigkeit für Motor 2. Die maximale Geschwindigkeit beträgt 1023. Das bedeutet, max Geschwindigkeit Ihres Motors erhöht bzw. 1023 Schritten verringert werden.

    Die GOduino III-Bibliothek und andere Support-Dateien können von Github zum Download bereit:
    https://github.com/techbitar/goduino

    Sie können den Beispiel-Code (motortest.ino) im Goduino Bibliothek enthalten unter die Beispiele Ordner zu testen und die Drehrichtung des Motors zu synchronisieren verwenden. Das Video zeigt die GOduino III läuft die Testroutine. Von der Arduino IDE geöffnet:

    Files / examples / Goduino / Motortest

    HINWEIS: Ich habe vermieden mit Arduino Uno Pins 3 und 11, weil sie von der Arduino Ton () Funktion verwendet. So, jetzt kann ich einen Roboter, der Lärm macht zu bauen. (Beifall).

    Dies ist der Testcode in dem Video verwendet. Bitte überprüfen Sie mein Github für Updates und Bugfixes:

    / *
    File: motortest.ino - Beispiel Skizze der GOduino III Robotersteuerung zu testen.
    Erstellt von: Hazim Bitar (techbitar at gmail dot com)
    Datum: 23. August 20012.
    Version: 0.11 beta
    Lizenz: Veröffentlicht in die Öffentlichkeit.
    * /

    #include <Goduino.h>

    Goduino MyRobot;

    Leere setup () {
    Serial.begin (9600);
    Serial.println ("Soll-Drehzahl der beiden Motoren bis 100 (max 1024)");
    myrobot.motorSpeed ​​(50,50);
    }

    Leere Schleife () {

    Serial.println ("Testphase I - SPIN beide Motoren TOGETHER in die gleiche Richtung");
    Verzögerung (3000);

    Serial.println ("Spin beide Motoren in eine Richtung (3 s)");
    myrobot.motorForward (1);
    myrobot.motorForward (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin beide Motoren in entgegengesetzte Richtung (3 s)");
    myrobot.motorBack (1);
    myrobot.motorBack (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    // ================================================ =================================

    Serial.println ("Testphase II - SPIN jeder Motor OPPOSTE DER ANDEREN");
    Verzögerung (3000);

    Serial.println ("Spin-Motor 1 in der einen Richtung, während der Motor 2 in umgekehrter Richtung (3 sec)");
    myrobot.motorForward (1);
    myrobot.motorBack (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin-Motor 2 in einer Richtung, während der Motor 1 in umgekehrter Richtung (3 sec)");
    myrobot.motorBack (1);
    myrobot.motorForward (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    // ================================================ =================================

    Serial.println ("Testphase III - SPIN jeder Motor, während der andere steht");
    Verzögerung (3000);

    Serial.println ("Spin-Motor 1 in der einen Richtung, während der Motor 2 angehalten (3 s)");
    myrobot.motorForward (1);
    myrobot.motorStop (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin-Motor 2 in einer Richtung, während der Motor 1 gestoppt ist (3 s)");
    myrobot.motorForward (2);
    myrobot.motorStop (1);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin-Motor 1 in der umgekehrten Richtung, während der Motor 2 angehalten (3 s)");
    myrobot.motorBack (1);
    myrobot.motorStop (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin-Motor 2 in umgekehrter Richtung, während der Motor 1 gestoppt ist (3 s)");
    myrobot.motorBack (2);
    myrobot.motorStop (1);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    }

Schritt 3: Steuern von 2 Servos

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    Es gibt nichts besonderes über die Steuerung Servos mit der GOduino III. Folgen Sie einfach den Anweisungen auf dem Arduino-Website und Sie werden Spinnen Servos in kürzester Zeit.

    http://arduino.cc/it/Reference/Servo

    Nachdem Sie Ihren Servos, zu tun, ein schneller Test laden Sie die Sweep.ino Skizze, die die Servos vorwärts und rückwärts dreht. Von der Arduino IDE geöffnet:

    Files / examples / Servo / Sweep

    Stellen Sie sicher, dass Sie die Nummer in der myservo.attach (SERVO_PIN_NUMBER) zu ändern, um entweder oder Pin 9 Pin 10 je nachdem, ob Sie Ihren Servo auf die Servo 1 oder 2 Servo-Header auf der GOduino III anschließen.

    Dann laden Sie die Skizze auf die GOduino III und beobachten Sie die Servos der Reihe.

    Sie können weitere Servos (auf die aktuelle durch den Regler und Kühlkörper geliefert Wirksamkeit begrenzt) mit Hilfe der Software Der Servo-Bibliothek verbinden

    http://www.arduino.cc/playground/ComponentLib/servo

    Dieser Blog-Eintrag hat einige nützliche Informationen über die Nutzung der Software Servo-Bibliothek
    http://rcarduino.blogspot.com/2012/01/can-i-control-more-than-x-servos-with.html

    Bitte beachten Sie die Leistungsanforderungen und Regler Hitzeprobleme bei der Verwendung von Servos. Betrachten wir das Anbringen eines Kühlkörpers an den Regler, um die Wärmeabgabe zu helfen und thermische Abschaltung und Zufallsschaltung zurückgesetzt vermeiden.

    Wenn kleine Servos sind nicht genug, eine beefier Regler müssen Sie wie die LM1084-5V die 5A mit einer maximalen Dropout-Spannung von 1,5 V beziehen können. Prüfen Sie die Servo Datenblatt, um sicherzustellen, kann es auf 5V laufen.

    Dies ist der Testcode in diesem Video verwendet:

    // Sweep
    // Von BARRAGAN <http://barraganstudio.com>
    // Von Hazim Bitar Remixed für GOduino III Robotersteuerung Servotest
    // Dieses Beispiel-Code ist in der Public Domain.

    #include <Servo.h>

    Servo myservo1; // Servo Aufgabe, eine Servosteuerung erstellen
    Servo myservo2; // Servo Aufgabe, eine Servosteuerung erstellen

    int pos = 0; // Variable, um die Servoposition speichern

    Leere setup ()
    {
    myservo1.attach (9); // Misst der Servo auf Pin 9 an den Servo Objekt
    myservo2.attach (10); // Misst der Servo auf Pin 9 an den Servo Objekt
    }

    Leere Schleife ()
    {
    für (pos = 0; pos <180; pos + = 1) // geht von 0 Grad bis 180 Grad
    {// In Schritten von 1 Grad
    myservo1.write (POS); // Sagen Servo um zur Position in der Variable 'pos' gehen
    myservo2.write (POS); // Sagen Servo um zur Position in der Variable 'pos' gehen

    Verzögerung (15); // Wartet 15 ms für den Servo, um die Position zu erreichen

    }
    für (pos = 180; pos> = 1; mög- = 1) // geht von 180 Grad auf 0 Grad
    {
    myservo1.write (POS); // Sagen Servo um zur Position in der Variable 'pos' gehen
    myservo2.write (POS); // Sagen Servo um zur Position in der Variable 'pos' gehen
    Verzögerung (15); // Wartet 15 ms für den Servo, um die Position zu erreichen

    }
    }

Schritt 4: Der Aufbau einer Steckbrett Roboter mit GOduino III

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung



    Dies ist ein Steckbrett Roboter-Prototyp, den ich in weniger als einer halben Stunde gebaut. Ich wollte sehen, wie schnell ich mich als GOduino III Roboter auf ein Steckbrett-Plattform mit minimalem Budget zusammenzustellen. Der Roboter ist so programmiert (über das FTDI USB Programmierer) hin und her zu bewegen.

    Die Räder sind Abdeckungen für Kunststoffbehälter. Ich habe Klebepads, um sie mehr Stärke zu geben, damit die Schrauben nicht herausragen zu viel.

    Ich habe zwei GM9 Kunststoff-Getriebemotoren wich kann für jede € 6 aus Orten wie Solarbotic, Robotshop, Pololu gekauft werden. Diese bürstenbehaftete Gleichstrommotoren werden bei einer Spitzen / Stillstandsstrom von 700 mA @ 6 V, die Geldbuße für die GOduino III bewertet.

    Die Unterseite des Steckbrett weist einen Klebestreifen mit ihm verbunden. Ich unmittelbarer Teil davon geschält und befestigt die beiden GM9 Motoren.

    Ich habe eine 7,4 V (2-Zelle) Lipo-Akku und auch getestet, das Setup mit 7,5 V (6 x AA NiMH) Akku und es funktionierte. Es gibt etwa 1 V Abfall über dem L293D, so dass sich in der Nähe von 6,5 V, die über den Motoren 6V Bewertungen leicht ist die Spannung gebracht. Die Batterien wurden an Ort und Stelle über dem Steckbrett mit einem Stück Klebeband gehalten.

    Für Nachlauf, habe ich ein Tischtennisball mit Band auf dem Steckbrett befestigt.

    Ich kann Sensoren und andere Teile durch direkte Einstecken in die Steckbrett und dem Anschluss an den GOduino III mit Drahtbrücken hinzuzufügen.

    Für eine schnelle und billige Roboter Prototyping und für meine Workshops kann das Steckbrett freundlichen Formfaktor des GOduino III das Leben einfacher für Neulinge zu machen, aber verfügt über alle benötigten Energie für meine persönliche Roboter-Projekte.

    Dies ist die in diesem Video verwendet Code:

    #include <Goduino.h>

    Goduino MyRobot;

    Leere setup () {
    Serial.begin (9600);
    Serial.println ("Soll-Drehzahl der beiden Motoren bis 100 (max 1023)");
    myrobot.motorSpeed ​​(1000,1000);
    }

    Leere Schleife () {

    Serial.println ("Testphase I - SPIN beide Motoren TOGETHER in die gleiche Richtung");
    Verzögerung (3000);

    Serial.println ("Spin beide Motoren in eine Richtung (3 s)");
    myrobot.motorForward (1);
    myrobot.motorForward (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    Serial.println ("Spin beide Motoren in entgegengesetzte Richtung (3 s)");
    myrobot.motorBack (1);
    myrobot.motorBack (2);
    Verzögerung (3000);

    Serial.println ("Stop beide Motoren für 1 sec");
    myrobot.motorStop (1);
    myrobot.motorStop (2);
    Verzögerung (1000);

    }

Schritt 5: GOduino III Objekt Vermeidung Roboter

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    Ich bin ein großer Fan der Verwendung von DVD-Hüllen, wie Roboterplattformen. Dieser Roboter ist auch in weniger als einer Stunde zusammengebaut. Ich hatte schon die Plattform bereit, von einer vorherigen Roboter so alles, was ich zu tun hatte, ist es, die GOduino III und den Sensor in einer kurzen Steckbrett einfügen.

    Ich habe Pololu Micro Metall Getriebemotor und die HC-SR04 Ultraschall-Abstandssensor. Es gibt viele Codebeispiele für die HC-SR04-Sensor und einem Arduino Bibliothek, die gut funktioniert.

    Dies ist die in der Demo-Video verwendet den Code ein:

    // GOduino III Objektvermeidung mit dem HC-SR04 Abstandssensor
    // Dieser Code ist in der Public Domain

    #include <Goduino.h>
    #include <Ultrasonic.h>

    // Pins für HC-SR04 Abstandssensor wählen
    #define TRIGGER_PIN 12
    #define ECHO_PIN 13
    #define DISRANCE_TO_OBJECT 1300 // Das war der optimale Wert für die Objekterkennung mittels Trial & Error

    Ultraschall Ultraschall (TRIGGER_PIN, ECHO_PIN); // HC-SR04 Abstandssensor Objekt
    Goduino MyRobot; // GUduino III Motor Objekt
    int MSPEED = 50; // Setze Anfangsgeschwindigkeit Wert beider Motoren

    Leere setup ()
    {
    Serial.begin (9600);
    myrobot.motorSpeed ​​(50, 50); // Setze Anfangsgeschwindigkeit für beide Motoren
    }

    Leere Schleife ()
    {
    Serial.println ("-------------");

    schweben cmMsec = 0 inMsec = 0;
    lange Mikrosekunden = 0 avgDis = 0;

    for (int i = 0; i <10; i ++) {// Durchschnitt 10 Messwerte von dem Abstandssensor
    microsec = ultrasonic.timing ();
    Serial.print ("Mikrosekunden:");
    Serial.println (Mikrosekunden);
    avgDis + = Mikrosekunden;
    }
    avgDis = avgDis / 10;
    Serial.print ("avgDis:");
    Serial.println (avgDis);

    if (avgDis> DISRANCE_TO_OBJECT) {// wenn kein Objekt withing Bereich
    myrobot.motorForward (1); // Voran
    myrobot.motorForward (2);
    }
    else // aber wenn Objekt in Reichweite erkannt
    {
    myrobot.motorStop (1); // Stopp
    myrobot.motorStop (2); // Stopp
    Verzögerung (500); // Warte

    myrobot.motorBack (1); // Zurück
    myrobot.motorBack (2); // Zurück
    Verzögerung (1000); // Warte

    myrobot.motorBack (1); // Wiederum
    myrobot.motorForward (2);
    Verzögerung (500); // Warte

    myrobot.motorForward (1); // Dann vorwärts zu bewegen
    myrobot.motorForward (2);
    }

    }

Schritt 6: Dank

  1. GOduino III - die Steckbrett freundliche Arduino-basierte Robotersteuerung

    CREDITS
    Besonderer Dank geht an meinen guten Freund Jafar Quttaineh für seine unschätzbare Anregungen. Die GOduino III Formfaktor wurde am Adafruit basiert Boarduino die ein Arduino Klon, der in ein Steckbrett gesteckt werden können. Mit Hilfe dieser Formfaktor für die GOduino III macht Prototyping Roboter für Anfänger viel einfacher. ( adafruit.com ) Und natürlich muss ich die guten Leute von Pin 13 Protospace die sehr hilfsbereit mit Vorschlägen und Kritik sind zu erwähnen.