Sucht nach Licht und Obstacle Vermeidung Robot

9 Schritt:Schritt 1: Liste der Komponenten und Werkzeuge Schritt 2: Montage des Chassis und Motoren Schritt 3: Ultraschallsensor Schritt 4: Um es zusammen Schritt 5: Lichtabhängige Widerstände und endgültige Verdrahtung Schritt 6: Arduino-Code Schritt 7: Fazit Schritt 8: Update -Februar 11 2015- Schritt 9: Update -Februar 27 2015-

Sucht nach Licht und Obstacle Vermeidung Robot

Das Ziel dieses Projektes ist es, ein Arduino Roboter, Licht folgt und vermeidet mögliche Hindernisse in den Weg zu bauen. Es basiert auf einem Arduino Uno Mikrocontroller-Board basiert und nutzt Lichtabhängige Widerstände, um das Beste helle Lichtquelle zu finden, während die Vermeidung jedes Hindernis auf dem Weg zu der Lichtquelle unter Verwendung eines Ultraschall-Abstandssensor.
Die lustige Sache ist, dass es einen alten Android-Smartphone auf, und es Live-Übertragungen Onboard-Video auf den Computer-Bildschirm. Sie können sehen, was es zu sehen.

Schritt 1: Liste der Komponenten und Werkzeuge

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Alle 12 Artikel anzeigen

    Components
    Arduino Uno Board Steckbrett 2 x Freilauf Servo 1 x Micro Generika Servo Ultraschall-Abstandssensor (HC-SR04 ist billig und zuverlässig) 2 x Lichtabhängige Widerstände 2 x 10k Widerstände 2 x 330μF Kondensatoren 1 x 100μF Kondensator Robot Chassis (i verwendet der Magier Chassis, die Sie für die Servos für die Arduino-Halter für die Batterien verwenden, was auch immer Sie mögen, auch Karton) 2 x Kunststoffräder 9V Batterie 4 x 1,5V Batterien Schließen Sie Drähte Gummibänder Schrauben Kabelbinder mehrere Träger für die Komponenten On / Off Switches (optional) Old Android Smartphone (optional)
    Tools
    Schraubendreher Drahtschneider Klebeband (oder Isolierband) Lötkolben (optional) Entlötlitze (optional)

Schritt 2: Montage des Chassis und Motoren

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Alle 7 Artikel anzeigen

    Der erste Schritt ist die Montage unserer Chassis und an den Laufservos setzen. Sie können eine beliebige Chassis möchten Sie verwenden, kann es Acryl, Aluminium oder auch von einer CD Fall sein. Ich wählte die Magician Chassis (Sie es auf ebay zu finden), weil es so viel Löcher und so kann es sehr vielseitig für viele Projekte sein.
    Also, zunächst einmal, schrauben Sie die vier Kunststoffhalter für die Servos in das Gehäuse ein. Achten Sie darauf, um sie zu straffen richtig, damit sie nicht zu bewegen. Als nächstes fügen Sie die Servomotoren und schrauben Sie die Kunststoffräder auf sie. Unsere Räder sind bereit !! Sie können ein Gummiband verwenden, um sie gerade zu halten, weil sie nach links bewegen oder rechts aus dem Gewicht des Roboters, wenn wir es zu beenden.
    Als nächstes legen Sie die 4 Batterien (1,5 V je eins) in die Halterung und befestigen Sie es mit dem Chassis mit einem Gummiband. Das ist die Macht für die Arduino.

Schritt 3: Ultraschallsensor

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Es ist Zeit für den Abstandssensor. In diesem Projekt verwendet i ein Ultraschall-Abstandssensor, der HC-SR04, die günstig und sehr zuverlässig ist. Ultraschall-Sensoren arbeiten wie diese; sie erzeugen ein Ultraschall, die auf Objekten abprallen und dann erhalten sie es zurück. Die Menge an Zeit, die der Schall braucht, um vom Sensor zum Objekt gehen und dann zurück zum Sensor gibt uns die Entfernung in cm (oder jedes andere Gerät). Wir werden dazu im Programmierteil sprechen also keine Sorge.
    Was wir wollen, ist es, den Abstandssensor auf der Mikroservo befestigen, damit unsere Roboter kann rechts und links zu überprüfen, wenn es ein Objekt trifft und wählen Sie den klaren Weg weiter zu gehen. Ich habe ein Gummiband (was sonst) zu meinem Sensor unterstützt und schraubte sie in einem metallischen Rahmen i in meinem Werkzeugkasten gefunden. So habe ich es geschafft, es auf der Oberseite der Mikroservo eingeben, damit sie sich bewegen kann. Sie können es direkt in den Servo mit einem Stück Schnur, um sie in Position zu halten, nutzen Sie Ihre Fantasie und kreativ zu setzen !! Dies ist eine einzigartige Roboter von Ihnen gemacht !!

Schritt 4: Um es zusammen

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Alle 8 Artikel anzeigen

    Nun ist es Zeit, um das Oberdeck des Magician Chassis montieren. Einfach einschrauben Platz und setzen Sie die Arduino-Board auf sie. Weiter legte die 9V-Batterie Halter vor dem Arduino und Breadboard oben drauf. Früher habe ich Blu-Tack zu "kleben" sie togoether, damit sie nicht zu bewegen. Auch hier können Sie, was Sie wollen zu "kleben" sie. Danach setzen Sie den Mikroservo mit dem Abstandssensor in der Frontseite des Chassis und die Nutzung Nutzung Blu-Tack, um es dort zu stehen. Ich habe einen Kabelbinder um sicherzustellen, dass es nicht fallen. Achten Sie darauf, um eine Lücke zwischen dem Steckbrett und dem Servosensor "Turm" zu verlassen, damit der Sensor frei in beide Richtungen (von links nach rechts) zu bewegen. Ich habe eine ziemlich große Lücke gibt und ich rutschte meine alten Smartphone zwischen ihnen, so kann ich die Kamera verwenden. Ich sicherte es mit einem einzigen Kabelbinder. So ist es sicher, Sie können es dort in der Hand wirklich schnell setzen oder nehmen Sie es. Um Live-Video von Ihrem Roboter auf den Computer-Bildschirm haben, ist alles, was Sie tun müssen, um den "IP Webcam" App auf Ihrem Smartphone installieren und folgen Sie den Anweisungen, um es zu tun.
    Sie können auch einen Ein- / Ausschalter, um den Roboter anzutreiben, aber dies ist ein optionaler Schritt. Wenn Sie es wollen, einfach schneiden Sie die Stromkabel von den Batterien und löten es in den Switch. Schneiden Sie nicht den Erdungsdraht.

Schritt 5: Lichtabhängige Widerstände und endgültige Verdrahtung

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Alle 9 Artikel anzeigen

    Lichtabhängige Widerstände oder Fotowiderstände, sind die Augen des Roboters. Sie sind für die Lichterfassung zuständig und sie werden auf Ihre Roboter zu sagen, um die hellste Lichtquelle zu bewegen. Legen Sie sie auf Ihre Steckbrett, eine auf jeder Seite, um die linke bestimmen - Rechts-Orientierung, und schließen Sie ein Ende des Fotowiderstand an die Macht und die andere auf den Boden durch ein 10k (Kilo-Ohm) Widerstand. Schließen Sie den linken Analog-Fotowiderstand Pin A2 auf dem Arduino. Das Recht photoresitor geht an Analog Pin A0. Wenn Ihr Roboter in der dunkelsten Seite des Raumes statt der hellsten geht nur um die Stifte zu wechseln und es wird in Ordnung sein.
    Können nun zu den Servos. Befestigen Sie die 3 Stiftleiste von jeder der Servo in dem Steckbrett. Die Farben der Drähte zeigen den Zweck der einzelnen Draht. Rot ist für die Strom, schwarz geht zu Boden und weiß geht an Arduino. Achten Sie darauf, dass die Messe mit Strom und Masse, sonst können Sie das Servo beschädigen. Lesen Sie die Bedienungsanleitung Ihres Servo und notieren Sie sich, was die Farbe von jedem Draht bedeutet. Wenn ein Servomotor zu bewegen beginnt, zieht es mehr Strom, als wenn sie in Bewegung bereits. Dies bewirkt, dass ein Bad in der Spannung auf dem Board. Mit der Abgabe eines Kondensators accross Strom und Masse direkt an den Stiftleisten können Sie glätten keine Spannungsänderungen, die auftreten können. Für die beiden Laufservos i verwendet 2 x 330μF Kondensatoren und für den Mikroservo i verwendet 1 x 100μF Kondensator. Seien Sie sehr vorsichtig, um sicherzustellen, dass Sie die Kathode mit Masse (das ist die Seite mit einem schwarzen Streifen unten auf der Seite) und die Anode an die Macht. Wenn die Kondensatoren nach hinten setzen, sie explodieren können. Befestigen Sie nun die linke Servo Digital Pin 10 auf der Arduino und der rechten Servo Digital Pin 11. Außerdem bringen Sie den Mikroservo Digital Pin 6.
    Schließlich müssen wir den Abstand Sensor zu verbinden. Befestigen Sie den Vcc Pin an die Macht, die GND-Pin auf Masse, die Trig Stift Digital Pin 7 und der Echo Pin Digital Pin 4 auf Ihrem Arduino. Das ist es!
    Schließlich müssen wir Macht, unsere Steckbrett zu verbinden. Wie Sie im Bild, das unsere Schaltung zeigt, sehen können, habe ich zwei verschiedene Stromquellen in der gleichen Versuchsaufbau verwendet. Eine für die Servos und die andere für die Sensoren. Seien Sie sehr vorsichtig nicht, um die Verkabelung zu mischen, weil Sie in Schwierigkeiten geraten. Folgen Sie den schematischen Bild und achten!
    Wir haben gerade gebaut unsere Roboter !!!
    Aber es kann nichts tun, bis wir es zu programmieren. Also gehen wir !!

Schritt 6: Arduino-Code


  1. Zunächst müssen Sie Ihre Laufservos zu zentrieren. Durch Zentrieren sie, ich meine, sie frei dreht die ganze Zeit zu stoppen. Geben Sie den Code unten ein und laden Sie sie auf Ihren Arduino. Jetzt zwei Dinge passieren. Entweder die Servos nicht drehen, was bedeutet, dass sie bereits zentriert sind, oder sie werden an einem gewissen Geschwindigkeit zu drehen. Wenn sie spinnen müssen Sie etwas tun. Kontinuierliche Servos haben eine Schraube in der Seite, wo die Kabel sind. Nehmen Sie den Schraubendreher und während die Servo dreht Schraube oder die Schraube ein wenig, bis die Servo stoppt. Dies ist, wie Sie sie zu zentrieren. Die Bremse (Mitte) ist bei 90, ist Vollgas links 0 und Vollgas richtig ist 180.
    # include
    Servo leftMotor;
    Servo rightMotor;
    Leere setup () {
    rightMotor.attach (11);
    leftMotor.attach (10);
    }
    Leere Schleife () {
    rightMotor.write (90);
    leftMotor.write (90);
    }
    Nun sind Sie bereit, um Ihren Arduino Roboter programmieren !! Holen Sie sich diesen Code und laden Sie sie auf Ihren Arrduino !! Hoffentlich läuft alles perfekt funktionieren !!
    #include // gehören Servo-Bibliothek



    #define trigPin 7 // die trig Stift von Abstandssensor
    #define echoPin 4 // das Echo Stift von Abstandssensor


    const int RForward = 120; // Die Geschwindigkeit des Servo 180 Höchstgeschwindigkeit
    const int RBackward = 60;
    const int LForward = 60;
    const int LBackward = 120;
    const int RNeutral = 90; // Zentrierte Position
    const int LNeutral = 90;
    const int RightLightSensor = 0; // Erklären die analogen Stifte für die Photowiderstände
    const int LeftLightSensor = 2;
    const int collisionThresh = 15; // Schwellenwert für Hindernisse (in cm)


    int SensorLeft;
    int SensorRight;
    int SensorDifference;
    int leftDistance, rightDistance; // Abständen beidseits


    Servo panMotor; // Mikroservo mit dem Abstandssensor darauf
    Servo leftMotor; // Motoren erklären
    Servo rightMotor;


    langer Dauer; // Lange es dauert, erhalten PING))) Signal


    Leere setup () {
    rightMotor.attach (11); // Befestigen Motoren, um die ordnungsgemäße Stifte
    leftMotor.attach (10);
    panMotor.attach (6);
    panMotor.write (90); // Zentrum der Pfanne Servo
    pinMode (trigPin, OUTPUT);
    pinMode (echoPin, INPUT);
    pinMode (LeftLightSensor, INPUT);
    pinMode (RightLightSensor, INPUT);
    }


    Leere Schleife () {
    int Abstand = ping (); // Rufen Sie die Ping-Funktion, um den Abstand vor dem Roboter erhalten
    SensorLeft = 1023 - analogRead (LeftLightSensor); // Die Fotowiderstände lesen
    Verzögerung (1);
    SensorRight = 1023 - analogRead (RightLightSensor);
    Verzögerung (1);
    SensorDifference = abs (SensorLeft - SensorRight);


    if (Abstand> collisionThresh) // wenn Weg ist klar von der Licht geführt werden
    {
    if (SensorLeft> SensorRight && SensorDifference> 75) {// links
    leftMotor.write (LBackward);
    rightMotor.write (RForward);
    Verzögerung (250);
    }
    if (SensorLeft <SensorRight && SensorDifference> 75) {// rechts
    leftMotor.write (LForward);
    rightMotor.write (RBackward);
    Verzögerung (250);
    }
    else if (SensorDifference <75) {// weiterleiten
    leftMotor.write (LForward);
    rightMotor.write (RForward);
    Verzögerung (500);
    }
    }
    else // wenn Pfad blockiert wird {
    leftMotor.write (LNeutral);
    rightMotor.write (RNeutral);
    panMotor.write (0);
    Verzögerung (500);
    rightDistance = ping (); // Scan nach rechts
    Verzögerung (500);
    panMotor.write (180);
    Verzögerung (700);
    leftDistance = ping (); // Scan nach links
    Verzögerung (500);
    panMotor.write (90); // Zur Mitte zurück
    Verzögerung (100);
    compareDistance ();
    }
    }
    Leere compareDistance () {
    if (leftDistance> rightDistance) // wenn links ist weniger verstellte
    {
    leftMotor.write (LBackward);
    rightMotor.write (RForward); // Links abbiegen
    Verzögerung (500);
    }
    else if (rightDistance> leftDistance) // wenn rechts weniger behindert
    {
    leftMotor.write (LForward);
    rightMotor.write (RBackward); // Rechts abbiegen
    Verzögerung (500);
    }
    else // wenn sie gleichermaßen behindert werden
    {
    leftMotor.write (LForward);
    rightMotor.write (RForward); // 180 Grad drehen
    Verzögerung (1000);
    }
    }
    Lang ping () {// Senden Sie PING))) Signalimpuls
    digital (trigPin, LOW);
    delayMicroseconds (2);
    digital (trigPin, HIGH);
    delayMicroseconds (5);
    digital (trigPin, LOW);
    // Hole Dauer es braucht, um Echo erhalten
    Dauer = pulseIn (echoPin, HIGH);
    // Dauer in Abstand umrechnen
    Rücklaufzeit / 29/2;
    }

Schritt 7: Fazit


  1. Nun, ich hoffe, Sie diesen instructable genossen.
    Give it a shot und erstellen Sie Ihre eigenen Roboter !! Es ist einfach und Sie werden so viel Dinge !!
    Senden Sie uns Ihre Meinung zu diesem instructable im Kommentarbereich und zeigen Sie mir Ihre Kreationen !!
    Viel Spaß und kreativ zu sein !!

Schritt 8: Update -Februar 11 2015-


  1. Das erste Update ist da!
    Ich wollte etwas über die Servomotoren i verwendet zu sagen. Ich benutzte Laufservos, weil ich in meinem Werkzeugkasten hatte ein Paar von ihnen. Sie können simlpe Gleichstrommotoren zu verwenden, wenn Sie wollen, es geht um die gleiche sein. Der einzige Unterschied ist, dass Servos höherer Genauigkeit, aber es ist in diesem Projekt nicht erforderlich. Wenn Sie den Gleichstrommotoren setzen wählen, müssen Sie den Code ein wenig zu ändern, weil sie nicht mit den servo.write Befehle zu betreiben. Gleichstrommotoren arbeiten mit dem Befehl digital ().
    Außerdem möchte ich einen Link zu meinem Code zu GitHub hinzufügen, so dass Sie meinen Code leichter zu folgen. So, hier ist es:
    Link
    Das ist dann auch schon !! Schickt mir Feedback, so kann ich dies instructable besser zu machen !!
    Halten Codierung !!

Schritt 9: Update -Februar 27 2015-

  1. Sucht nach Licht und Obstacle Vermeidung Robot

    Sucht nach Licht und Obstacle Vermeidung Robot

    Nur ein wenig Kabelmanagement für heute !!
    Es war ein Durcheinander gibt, so habe ich den chasis Löcher mit Bedacht, damit es schön und sauber aussehen.
    Außerdem ersetzt i die 6 AA-Batterien mit einem klassischen 9V-Batterie.
    Einen schönen Tag noch!