Benutzerdefinierte Arduino Schild und Sensoren

10 Schritt:Schritt 1: Blattschalter Schritt 2: Buttons Schritt 3: Lichtsensoren Schritt 4: IR-Abstandssensor Schritt 5: Ultraschall-Abstandssensor Schritt 6: Summer Schritt 7: Laser Schritt 8: LEDs Schritt 9: Arduino Schild Schritt 10: Arduino-Code für Obstacle Vermeidung Robot

Benutzerdefinierte Arduino Schild und Sensoren

Übersicht:
Diese instructable wird eine Reihe von kundenspezifischen Sensormodule und ein Arduino Schild zu errichten. Solche Module sind aus vielen verschiedenen Quellen, aber die Fans der Instructables Website würde wahrscheinlich feststellen, Zufriedenheit bei ihrer eigenen. Jedes Modul wird ein Satz von 1,5 cm Größe von 2,5 cm und beschäftigen eine dreipoligen Stecker des Signalform-Voltage-Ground. Der Brauch Schild wird die Arduino Stifte in der gleichen Signalspannungs-Masse-Konfiguration ausbrechen. So werden elektronische Verbindungen zu mit einem Drei-Pin-Kabel, einen Sensor zu seinem entsprechenden Stift auf dem Arduino Schild gesetzt befestigen reduziert werden. Gleichmäßig beabstandete Befestigungslöcher an den Ecken der Module wird für auswechselbare Konfigurationen an einem Roboter-Deck oder in andere Elektronikprojekten erlauben. Das eingebettete Video zeigt die Sensoren in Aktion auf einem autonomen Roboter Hindernis vermeiden. Arduino Code für den Roboter ist unten angegeben. Die in Schritt drei dieser instructable beschriebenen Lichtsensoren wurden auch in meinem früheren instructable verwendet.
Die Konstruktion der Sensoren beinhalten einige grundlegende Materialien, darunter mehrere perf Platten , Kopfbänder , Steckdosenleisten und drei Pin-Kabel . Geraden und rechtwinkligen Header verwendet. Die perf Platten müssen in mehrere 1.5cm 2.5cm durch Rechtecke mit einem Schraubenloch in jeder Ecke gebohrt geschnitten werden. (Siehe Abbildungen in den folgenden Schritten.) In den folgenden Schritten ein Bild Note in der linken oberen geben jeder Figur eine Reihe von Form Abbildung xx. Zum Beispiel zeigt 2-4 bezieht sich auf die vierte Figur in Schritt two.Step 1: Blattschalter



Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
2x Reed
2x 10K Widerstände
2x drei Stiftleisten
2x Sensorplattformen
geeigneten Schrauben und Muttern
Die Blattschalter sind ausgelegt, als Berührungssensoren an den Seiten eines Roboters eingesetzt werden. So werden sie als Spiegelbildpaare, eines für die linke Seite und eines für die rechte Seite des Roboters konstruiert werden. Anordnung der Komponenten für die linke Blattschalter sind auf der linken in Fig 1-2 gezeigt. Ich heiße verklebt die drei Pin-Anschluss an seinen Platz, aber ich verwendet, Muttern und Schrauben, um den Schalter selbst auf der Sensorplattform für mehr Stabilität zu sichern. Löten Sie einen weißen Draht von Schließer auf den Schalter mit dem Signalanschluss des Sensors. Siehe Abbildung 1-3. (Beachten Sie, für alle Sensoren in diesem instructable, wenn die drei Pin-Anschluss ist auf der Sensorplattform angeordnet und nach unten, um den Stift von links nach rechts ist Signal, Spannung, Ground. Natürlich bei Betrachtung der Rückseite des Sensor, ist die Reihenfolge von links nach rechts Ground, Spannung, Signal.) Als nächstes löten einen weißen Draht vom Signalstift an einer Leitung des 10K-Widerstand. Löten Sie einen schwarzen Draht vom anderen Ende der 10K-Widerstand dem Erdungsstift an. Schließlich löten einen roten Draht von der gemeinsamen Kontakt des Schalters an die Spannungsstift. Der Widerstand zieht den Signalstift gering. Drücken Sie den Schalter dann zieht den Signalstift hoch. Schritt 2: Buttons

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
2x Tasten
2x 10K Widerstände
2x drei Stiftleisten
2x Sensorplattformen
Heißkleber die Komponenten an Ort und Stelle, wie auf der linken Seite der Abbildung 2-2 dargestellt. Auf der Rückseite des Sensors, beugen der Widerstand führt zu den äußeren Stifte des dreipoligen Stecker und löten. Löten Sie einen weißen Draht vom Signalstift an einer Seite des Schalters. Löten Sie einen roten Draht von der Spannungsstift auf die andere Seite des Schalters. Vergessen Sie nicht, löten alle vier Schalterkabel für Stabilität. (I ursprünglich nur verlötet die beiden Zuleitungen zu den Drähten und der Taste verbunden begann hin und her zu schaukeln.) Schritt 3: Lichtsensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
3x Photowiderstände
3x 250K Potentiometer
3x zwei Stiftsockel
3x drei Stiftleisten
3x Sensorplattformen
Die hier angegebenen Richtungen eng entsprechen denen meiner früheren instructable. Jeder Lichtsensor wird über einen Spannungsteiler aus einem Fotowiderstand und einem Potentiometer 250K hergestellt wurden. Erstens, Heißkleber die Komponenten an Ort und Stelle, wie in Abbildung 3-2 dargestellt. Biegen Sie die Zuleitungen der Potentiometer als zeigen in der Abbildung 3-4. Nehmen Sie ein weißes Kabel und löten das Recht am Steckerstift (von der Rückseite aus gesehen) auf die Potentiometerschleifer und rechte Buchse führen. Verwenden Sie einen roten Draht an die linke Buchse führen zur rechten Potentiometer Blei und Zentrum Steckerstift zu löten. Verwenden Sie einen schwarzen Draht, um die verbleibende Potentiometer führen zu dem restlichen Anschlussstift zu löten. Als nächstes legen Sie etwas Schrumpfschlauch um die Beine der Fotowiderstände, bevor Sie sie in die Buchsen. Siehe Abbildung 3-5. Dies gibt der Sensor einen schönen fertigen Blick und natürlich auch verhindert Kurzschlüsse. (Ich nahm dieses Schrumpfschlauch Tipp von BIGDOG1971 die Licht folgenden Roboter instructable.) Diese Spannungsteiler kann auch mit anderen Sensoren verwendet werden, wie Flexsensoren und Kraftsensoren .Schritt 4: IR-Abstandssensor

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
1x IR-Abstandssensor
1x kompatible Sensorkabel
1x Sensor platorm
Für dieses Modul I einfach heiß verklebt den IR-Sensor zum Sensor platform.Step 5: Ultraschall-Abstandssensor

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
1x Ultraschall-Abstandssensor
1x Vier Pin-Kabel
1x Sensorplattform
Auch dieses Modul besteht aus dem Sensor heiß auf die Sensorplattform geklebt. Vielleicht möchten Sie ein kleines Stück Holz oder Karton unter den "Augen" des Sensors zu verwenden, da es nicht ganz zu passen auf der Plattform. Auch dann, wenn die HC-SR04-Sensor, die ich früher nicht auf die drei Pin-Konfiguration der anderen Sensoren entsprechen. Dies erfordert eine dedizierte vier Pin-Knoten auf dem Arduino Schild wie in Schritt 6 beschrieben 10.Step: Summer

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
1x Summer
1x drei Pin-Anschluss
1x Sensorplattform
Heißkleber die Komponenten an Ort und Stelle, wie in Abbildung 6-2 gezeigt. Nehmen Sie ein weißes Kabel und löten die positive Leitung des Summers mit dem Signalanschluss und mit einem schwarzen Kabel, die Minusleitung des Summers an den Erdungsstift zu löten. Der Spannungsstift links unconnected.Step 7: Laser

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
1x Laser-Pointer
1x drei Pin-Anschluss
1x Sensorplattform
Demontieren Sie vorsichtig den Laser-Pointer und entfernen Sie die Laserkomponente. Achten Sie darauf, die positiven und negativen Kontakte für den Laser zu identifizieren. Heißkleber der Laser und drei Pin-Anschluss auf der Sensorplatine, wie in Abbildung 7-2 gezeigt. Auf der Laser, die ich verwendet, der negative Kontakt war die Quelle, die mit der negativen Seite der Laserpointer Batterien ging. Die positive Leitung war, wo der Laser-Pointer-Taste nahm Kontakt mit der Lasereinheit. Löten Sie die negativen Laser führen zu dem Erdungsstift mit einem schwarzen Kabel und löten die positive Laser führen zu dem Signalstift mit einem weißen wire.Step 8: LEDs

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Komponenten:
2x LEDs
2x Potentiometer 1K
2x Zweistiftsockel
2x drei Stiftleisten
2x Sensorplattformen
Heißkleber die Komponenten an Ort und Stelle, wie auf der linken Seite der Abbildung 8-2 gezeigt. Biegen Sie das Potentiometer führt wie auf der linken Seite der Abbildung 8-3 gezeigt. Verwenden Sie ein weißes Kabel, um das Signal-Pin an den Schleifer des Potentiometers zu löten. Wie von hinten gesehen, löten die richtige Buchse führen zur nächsten Potentiometer Blei. Verwenden Sie eine schwarze Kabel an die linke Buchse führen zu dem Erdungsstift zu löten. Ich habe ein Potentiometer 1K, weil ich dachte, das könnte auf den richtigen Widerstand für jeden gemeinsamen LED eingestellt werden. Wie von der Vorderseite betrachtet, wird das Signal-Buchse auf der linken Seite und der Bodenhülse auf der rechten Seite. So setzen Sie das längere Ende der LED in die linke Buchse und das kürzere Ende in die rechte Buchse. Siehe Abbildung 8-4. Um den Widerstand zu messen, nehmen Sie die LED und schließen Sie ein Ende des Widerstandsmessers zu einem Stück Draht und fügen diesen in die linke Buchse (von vorne gesehen). Schließen Sie das andere Ende des Widerstandsmesser an den Signalstift. Stellen Sie die protentiometer an die für Ihren LED.Step 9 benötigt Wert: Arduino Schild

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Benutzerdefinierte Arduino Schild und Sensoren

Alle 10 Artikel anzeigen

Komponenten:
1x Arduino Protoshield Platine
20x drei Stiftleisten
1x Vierstiftleisten
2x sechs Pin-Anschlüsse
2x acht Pin-Anschlüsse
2x Zweistiftsockel
Konstruktion des Arduino Schild war der schwierigste Teil des Projekts. Das fertige Produkt kann von vorn und hinten, in den Figuren 9-2 und 9-3 ersichtlich. Um eine klarere Vorstellung über die Verdrahtung zu bekommen, siehe Abbildungen 9-5, 9-6 und 9-7. In diesen Figuren sind die schwarzen Rechtecke bezeichnen die Positionen der 20 drei Pin-Anschlüsse und der 1 vier Pin-Anschluss. (Recall, der Ultraschallsensor von Schritt 5 benötigt einen Vierstift-Verbindung.) Das erste, was ich tat, war löten Sie die Stecker der bloßen Arduino Board. Verwenden Sie keine Seitenschneider abgeschnitten der Stecker führt auf der Rückseite der Platine, wie die Leitungen sind zu dick und wird wahrscheinlich die bündig Schneider beschädigen. Ich habe schwere Blechschere, jene Leitungen zu schneiden.
Die ersten Drahtverbindungen ich waren diejenigen, die in Abbildung 9-5 dargestellt. Die weißen Linien sind Drähte, die Arduino Pins Anschluss an den Signalanschluss des entsprechenden dreipoligen Stecker. Diese Verbindungen werden als die weißen Drähte in Abbildung 9-2. Die gelben Linien in Abbildung 9-5 sind die Fortsetzung der weißen Drähte unter dem Schild der bezeichneten Stift. Ich würde nackten einen zusätzlichen Zoll von Draht abzustreifen, stoßen sie durch das angezeigte Loch in Abbildung 9-5, und dann an der Unterseite der Abschirmung würde ich den blanken Draht um den Signalstift und Lot zu biegen. Dies ist der gelb Anschluss in Abbildung 9-5. Die rote Linie in Abbildung 9-5 ist der Eingang Batteriespannung (Vin) und verbindet es mit den beiden Stiften durch die gelbe Verbindungen angezeigt. (Wiederum sind die Anschlüsse auf der Unterseite des Schildes.)
Abbildung 9-6 zeigt die Anschlüsse auf der Unterseite des Schildes. Ein Wort der Erklärung ist hier erforderlich. Die digitalen PWM-Pins auf der Arduino (D3, D5, D6, D9, D10 und D11) werden häufig zur Servos, einschließlich Laufservos als Räder an einem Roboter verwendet zu fahren. So ziehen sie manchmal eine Menge Strom. So wäre es schön, wenn sie könnten vom Eingang Batterien direkt und nicht der geregelte 5V vom Arduino angesteuert werden. An der Spitze der Abbildung 9-6, zwei schwarze Rechtecke erstrecken höher als die anderen. Die Top-Stifte dieser Rechtecke liegen auf dem Arduino 5V Schiene. Die unteren Stifte dieser Rechtecke sind mit dem Eingang der Batteriespannung durch die rote Linie in Abbildung 9-5 verbunden. Der mittlere Stift eines dieser Rechtecke verbindet den Spannungsstifte des D3, D5 und D6. Der mittlere Pin des anderen Rechtecks ​​verbindet den Spannungsstifte des D9, D10 und D11. Somit wird auf der Oberseite des Arduino-Board kann ein Jumper verwendet, um die PWM-Pins an den 5V-Schiene anschließen werden, wenn sie auf niedrige Stromsensoren an den Eingang Batteriespannung angeschlossen sind, oder wenn die PWM-Pins sind mit hohen Strom Rad Servos verbunden . (Mehr dazu später.)
Zurück zu den Verbindungen in Abbildung 9-6. Die schwarzen Linien die Masse-Pins eine Verbindung mit dem Arduino Bodenschiene. Die rote Linie am unteren Rand der Abbildung 9-6 verbindet die Spannungsstifte der analogen Anschlüsse auf 5V. Die rote Linie in der Mitte der Abbildung 9-6 verbindet die Spannungsstifte der Nicht-PWM digitale Anschlüsse an den 5V-Schiene. Die obere rote Linien in Abbildung 9-6 die Spannungsstifte der PWM digital anschließen, um eine der beiden im letzten Absatz beschriebenen Jumper gesteuert Anschlüsse. Die Stifte sind ziemlich nahe, was bedeutete, ich musste viel blanken Draht wie in Abbildung 9-3 zu sehen ist zu verwenden. Zum Glück habe ich nicht am Ende mit allen Shorts. Schließlich sind die sechspoligen und acht Pin-Anschlüsse durch den Boden der Abschirmung eingeführt und angelötet, um die Anschlüsse für die Abschirmung mit einem Arduino bereitzustellen.
Um die Jumper für die PWM Pins machen Ich habe gerade ein Paar von zwei Stiftsockel und verlötet die Stifte zusammen. Diese können auf der linken Seite in Abbildung 9-4 zu sehen Biene. Abbildung 9-7 zeigt die Etiketten für den Schirm. Sensoren können nun durch die dreipoligen Kabel nach einem der schwarzen Rechtecke D0-D13 oder A2-A5 bezeichnet angeschlossen werden. Ein Vier-Pin-Kabel verwendet werden, um die analogen A0 und A1 zu einer HC-SR04 Ultraschallsensor zu verbinden. Die PWM Jumper sind in die zwei schwarze Rechtecke, die höher als alle anderen in Abbildung 9-7 zu verlängern eingefügt. Das schwarze Rechteck auf die richtigen Kontrollen Stifte D3, D5 und D6. Das schwarze Rechteck auf der linken Seite steuert Pins D9, D10 und D11. Wenn Sie die PWM-Pins an den Arduino 5V angeschlossen möchten, setzen Sie den Jumper auf die oberen Stift der schwarzen Rechtecke an den mittleren Pin zu verbinden. Wenn Sie die PWM-Pins an den Eingang Batteriespannung angeschlossen möchten, setzen Sie den Jumper auf die unteren Bolzen der schwarzen Rechtecke an den mittleren Pin zu verbinden. Abbildung 9-8 zeigt die PWM-Pins und Spannungsauswahlstifte genauer. Abbildung 9-9 zeigt die Jumper gesetzt, um die Spannungsstifte von D3, D5 und D6 mit Spannung von der Eingangs Batterien versorgen. Abbildung 9-10 zeigt die Jumper gesetzt, die gleichen Pins mit 5 volts.Step 10 liefern: Arduino-Code für Obstacle Vermeidung Robot

Benutzerdefinierte Arduino Schild und Sensoren

Der folgende Code verwendet die Sensoren aus dieser instructable eine autonome Hindernis Vermeidung Roboter zu steuern. Die Blattschalter werden verwendet, um mit Gegenständen in Berührung zu der linken und der rechten Seite zu erkennen. Wenn ein Kontaktschalter aktiviert wird, stoppt der Roboter, sichert, und dann wendet sich von dem Objekt, bevor Sie fortfahren. Das IR-Abstandssensor verwendet wird, um den Abstand zu Objekten vor dem Roboter bestimmen. Wenn ein Objekt näher ist als eine eingestellte Toleranz, stoppt der Roboter und eine Servo dreht den IR-Sensor nach rechts und nach links für die Messungen. Der Roboter dreht sich dann in Richtung der klareren Weg, bevor Sie fortfahren. A-Taste wird verwendet, um den Roboter zu starten. Obwohl technisch nicht Sensoren der Laser, Summer und LEDs werden verwendet, um visuelle und akustische Rückmeldung von den Sensoren zu geben. Wenn der Roboter in Bewegung ist, ist die grüne LED leuchtet Wenn der Roboter stoppt, ertönt der Summer und die rote LED leuchtet Der Laser ist mit dem IR-Sensor eine visuelle Angabe der Stelle der IR-Abstandssensor zeigt befestigt.
Ich habe die Arduino Code (mit vermasselt Formatierung) eingefügt, aber aus irgendeinem Grund war ich nicht in der Lage, eine Datei, die den Code zu laden. Das ist seltsam, da ich in der Lage, so zu meiner vorherigen instructable tun. Doch dieses Mal, wenn ich versuche, die .ino Datei bekomme ich die Meldung Upload "ERROR 400: nicht Skripte hochzuladen:"
/ * 4/29/14
Dieser Code verwendet mehrere Sensoren, um das Verhalten zu steuern
einer autonomen Hindernis vermieden Roboters. Wie der Roboter
bewegt sich nach vorne, ein IR-Abstandssensor misst den Abstand
Hindernisse in der Roboterbahn. Wenn der gemessene Abstand
unter dem eingestellten Toleranz, hält der Roboter und eine Servo Pfannen
der IR-Sensor nach rechts und links, um die klarste Weg zu bestimmen.
Der Roboter dreht sich dann in Richtung der Bahn klarsten
und geht dann weiter.
Rechten und linken Blattschalter erkennen Kontakt mit irgendwelchen Gegenständen
nach rechts oder links des Roboters. Wenn der Kontakt hergestellt ist, die
Roboter sichert und dann wendet sich von dem erfassten Objekt
bevor Sie fortfahren.
Ein Laser, der über dem IR-Sensor befestigt zeigt die Richtung
in dem der Roboter "suchen". Wenn der Roboter stoppt ein
rote LED leuchtet und eine Piezo-Summer ertönt. Wenn der Roboter
In Zukunft ist eine grüne LED leuchtet Wenn der Roboter betriebene
up, findet keine Bewegung statt, bis eine Taste auf dem Roboter
gedrückt.
* /
#include <Servo.h>
Servo leftWheelServo;
Servo rightWheelServo;
Servo panServo;
// Digitale Stifte Deklarieren
int stopLightPin = 2;
int leftContactPin = 3;
int rightContactPin = 4;
int servoPinLeft = 5;
int servoPinRight = 6;
int Laserpin = 7;
int goLightPin = 8;
int servoPinPan = 9;
int buzzerPin = 12;
int buttonPin = 13;
// Analoge Stifte Deklarieren
int Irpin = 4;
// Variablen definieren
int distanceReading;
int wallDistance;
int wallDistanceTolerance = 30;
int distanceReadingLeft;
int distanceReadingRight;
int wallDistanceLeft;
int wallDistanceRight;
int panDelay = 1000; // Verzögerung, damit IR-Sensor, um eine Messung vorzunehmen
int turnTime = 250; // Dauer der wiederum auf Versuch und Irrtum
int Buzztime = 200;
int buttonValue = 0;
int oldButtonValue = 0;
int leftContactValue = 0;
int rightContactValue = 0;
Leere setup ()
{
pinMode (buzzerPin, OUTPUT);
pinMode (stopLightPin, OUTPUT);
pinMode (goLightPin, OUTPUT);
pinMode (buttonPin, INPUT);
pinMode (Laserpin, OUTPUT);
digital (buzzerPin, LOW);
digital (stopLightPin, LOW);
digital (goLightPin, LOW);
leftWheelServo.attach (servoPinLeft);
rightWheelServo.attach (servoPinRight);
panServo.attach (servoPinPan);
// Ton Summer, um anzuzeigen, dass der Roboter Kraft hat
digital (stopLightPin, HIGH);
digital (buzzerPin, HIGH);
Verzögerung (Buzztime);
digital (buzzerPin, LOW);
// Warten Sie, bis Taste gedrückt wird, bevor er
while (buttonValue == LOW)
{
leftWheelServo.write (90);
rightWheelServo.write (90);
buttonValue = digitalRead (buttonPin);
}
// Ton Summer Start-Taste zeigen gedrückt wurde
digital (buzzerPin, HIGH);
Verzögerung (Buzztime);
digital (buzzerPin, LOW);
// Kommentieren Sie die Serienspeisung für die Prüfung, wenn nötig
// Serial.begin (9600);
}
Leere Schleife ()
{
// Auf Laser Schalten
digital (Laserpin, HIGH);
// Punktabstandssensor geradeaus
panServo.write (90);
// Voran
leftWheelServo.write (0);
rightWheelServo.write (120);
digital (goLightPin, HIGH);
digital (stopLightPin, LOW);
// Test für Wandstöße
leftContactValue = digitalRead (leftContactPin);
if (leftContactValue == HIGH)
{
// Stopp
leftWheelServo.write (90);
rightWheelServo.write (90);
digital (goLightPin, LOW);
digital (stopLightPin, HIGH);
digital (buzzerPin, HIGH);
Verzögerung (Buzztime);
digital (buzzerPin, LOW);
// Sicherungs
leftWheelServo.write (120);
rightWheelServo.write (0);
digital (goLightPin, HIGH);
digital (stopLightPin, LOW);
Verzögerung (500);
// Biegen Sie rechts ab
leftWheelServo.write (180);
rightWheelServo.write (180);
Verzögerung (turnTime);
leftWheelServo.write (90);
rightWheelServo.write (90);
// Linken Kontakt variable zurücksetzen
leftContactValue = 0;
}
rightContactValue = digitalRead (rightContactPin);
if (rightContactValue == HIGH)
{
// Stopp
leftWheelServo.write (90);
rightWheelServo.write (90);
digital (goLightPin, LOW);
digital (stopLightPin, HIGH);
digital (buzzerPin, HIGH);
Verzögerung (Buzztime);
digital (buzzerPin, LOW);
// Sicherungs
leftWheelServo.write (120);
rightWheelServo.write (0);
digital (goLightPin, HIGH);
digital (stopLightPin, LOW);
Verzögerung (500);
// Biegen Sie links ab
leftWheelServo.write (0);
rightWheelServo.write (0);
Verzögerung (turnTime);
leftWheelServo.write (90);
rightWheelServo.write (90);
// Rechte Sensorgröße zurücksetzen
rightContactValue = 0;
}
// Nehmen Sie das Lesen von Abstandssensor
distanceReading = analogRead (Irpin);
wallDistance = 40-distanceReading / 10;
// Der Wandabstand obigen Formel wird durch Versuch bestimmt
// Und Irrtum und lineare Konvertierung
// Test, um zu sehen, ob eine Wand in der Nähe
if (wallDistance <wallDistanceTolerance)
{
// Stopp
leftWheelServo.write (90);
rightWheelServo.write (90);
digital (goLightPin, LOW);
digital (stopLightPin, HIGH);
digital (buzzerPin, HIGH);
Verzögerung (Buzztime);
digital (buzzerPin, LOW);
// Pan Abstand Servo links und rechts, um die Richtung zu sehen
// Bietet einen klareren Weg
panServo.write (170);
Verzögerung (panDelay);
distanceReadingLeft = analogRead (Irpin);
Verzögerung (panDelay);
wallDistanceLeft = 40-distanceReadingLeft / 10;
panServo.write (20);
Verzögerung (panDelay);
distanceReadingRight = analogRead (Irpin);
Verzögerung (panDelay);
wallDistanceRight = 40-distanceReadingRight / 10;
// Kommentieren Sie die Seriendruckanweisungen für die Fehlersuche
// Serial.print (wallDistance);
// Serial.println ("cm");
// Serial.print (wallDistanceLeft);
// Serial.println ("cm");
// Serial.print (wallDistanceRight);
// Serial.println ("cm");
// Serial.println ("");
// Serial.println (distanceReading);
// Serial.println (distanceReadingLeft);
// Serial.println (distanceReadingRight);
// Serial.println ("");
// Test, um zu sehen, in welche Richtung einen klaren Weg bietet
// Und drehen Sie den Roboter in dieser Richtung
if (wallDistanceLeft> wallDistanceRight)
{
// Biegen Sie links ab
leftWheelServo.write (180);
rightWheelServo.write (180);
Verzögerung (turnTime);
leftWheelServo.write (90);
rightWheelServo.write (90);
}
sonst
{
// Biegen Sie rechts ab
leftWheelServo.write (0);
rightWheelServo.write (0);
Verzögerung (turnTime);
leftWheelServo.write (90);
rightWheelServo.write (90);
}
}
Verzögerung (200);
}