Einfache Arduino Licht folgenden Robot

4 Schritt:Schritt 1: Materialien Schritt 2: Verdrahtung Schritt 3: Legen Sie es auf dem Chassis Schritt 4: Code

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Dies ist eine Anleitung, wie man ein Licht folgenden Roboter mit Arduino zu machen, hat es sich vereinfacht, so dass Anfänger können dieses Projekt zu versuchen. Dieses Projekt sollte nur nehmen Sie am meisten von einer Stunde. Ich hoffe, Sie enjoy.Step 1: Werkstoffe



Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Arduino Uno: http: //www.freetronics.com.au/products/eleven#.VZn ...
H-Brücke Schild: http: //www.freetronics.com.au/products/hbridge-dua ...
Chassis: http: //www.hobbyking.com/hobbyking/store / __ 26.249 __...
2X LDR / Light Dependant Resistors
2X 100k Ω Widerstände
Überbrückungskabel
3X 9vStep 2: Verdrahtung

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Einfache Arduino Licht folgenden Robot

Mit den Drähten auf dem Brot Board, das auf die Seite zu gehen, 2 gehen, um auf Arduino 5 V und der andere geht an GND
Es ist einfacher, die Bilder folgen Sie mich erklären.
Erstes die H-Brücke Schild mit dem Arduino Uno
Verbinden Sie dann die LDR ist, wie in dem Diagramm
Nach, legen Sie sich an, um die Abschirmung der positiven und negativen der Motoren
* Nun, schließen 2 9V-Batterien in einer Reihe, und dann positiv und negativ auf die Flecken auf dem Schild
* Schließlich stecken Sie eine 9V Batterie in die Arduino
(* Letzte 2 sind für, wenn Sie den Code hochgeladen haben) Schritt 3: Legen Sie es auf dem Chassis

Einfache Arduino Licht folgenden Robot

Setzen Sie die Erstellung Ihres Chassis, wie immer Sie wollen, es so aussehen, wie immer Sie auch wollen. Es gibt viel ich kann zu diesem Schritt though.Step 4 sagen: Code


Bitte beachten Sie, dass es dauerte eine Weile, um herauszufinden, und schreiben Sie diesen Code ein:
// Kodex von Jason McLaughlin
// 2015
const int channel_a_enable = 6; // beginnen Motor ein / links
const int channel_a_input_1 = 4; // positive / negative 1
const int channel_a_input_2 = 7; // positive / negative 2
const int channel_b_enable = 5; // Motor b / rechts starten
const int channel_b_input_3 = 3; // positive / negative 1
const int channel_b_input_4 = 2; // positive / negative 2
const int RightSensor = A1; // Den richtigen Sensor Lesen
const int LeftSensor = A2; // Den linken Sensor Lesen
// Variablen Definitionen
int SensorLeft; // Diese speichert den Wert des linken Sensorstift zu einem späteren Zeitpunkt in der Skizze verwenden
int SensorRight; // Speichert den Wert des rechten Sensorstift zu einem späteren Zeitpunkt in der Skizze verwenden
int SensorDifference; // Dieser Wert wird verwendet, um den Unterschied zwischen der linken und rechten festzustellen,
Leere Setup () {
pinMode (channel_a_enable, OUTPUT); // Kanal A zu ermöglichen
pinMode (channel_a_input_1, OUTPUT); // Kanal A Eingang 1
pinMode (channel_a_input_2, OUTPUT); // Kanal A Eingang 2
pinMode (channel_b_enable, OUTPUT); // Kanal B zu ermöglichen
pinMode (channel_b_input_3, OUTPUT); // Kanal B Eingang 3
pinMode (channel_b_input_4, OUTPUT); // Kanal B Eingang 4
pinMode (LeftSensor, INPUT); // Definiert diesen Stift als Eingang. Das Arduino werden Werte aus diesem Pin zu lesen.
pinMode (RightSensor, INPUT); // Definiert diesen Stift als Eingang. Das Arduino werden Werte aus diesem Pin zu lesen.
digital (A1, HOCH); // Ermöglicht LDR
digital (A2, HOCH); // Ermöglicht LDR
Serial.begin (9600); // Ermöglicht eine serielle Verbindung über den Arduino, um USB oder UART (Stifte 0 & 1). Beachten Sie, dass die Baudrate auf 9600 eingestellt
Serial.println ("\ Nbeginning Licht suche Behavior"); // Ganz am Ende der Lücke Setup (Gestellt), so dass es läuft einmal, kurz vor der Leere Loop ()}
Leere Schleife () {SensorLeft = 1023 - analogRead (LeftSensor); // Diese liest den Wert des Sensors, dann speichert sie auf die entsprechende Ganzzahl.
Verzögerung (1);
SensorRight = 1023 - analogRead (RightSensor); // Diese liest den Wert des Sensors, dann speichert sie auf die entsprechende Ganzzahl.
Verzögerung (1);
SensorDifference = abs (SensorLeft - SensorRight); // Diese berechnet die Differenz zwischen den beiden Sensoren und speichert es in eine ganze Zahl.
// In diesem Abschnitt wird der Skizze wird verwendet, um die Werte der // Sensoren durch Seriell-zu-Computer zu drucken. Nützlich für die Bestimmung // wenn die Sensoren arbeiten und wenn der Code auch richtig funktioniert.
Serial.print ("Left Sensor ="); // Gibt den Text innerhalb der Anführungszeichen.
Serial.print (SensorLeft); // Gibt den Wert der linken Sensor.
Serial.print ("\ t"); // Gibt eine Registerkarte (Leerzeichen).
Serial.print ("Right Sensor ="); // Gibt den Text innerhalb der Anführungszeichen.
Serial.print (SensorRight); // Gibt den Wert des Rechts Sensor.
Serial.print ("\ t"); // Gibt eine Registerkarte (Leerzeichen).
// In diesem Abschnitt der Skizze ist, was tatsächlich interperets die Daten und führt dann die Motoren entsprechend.
if (SensorLeft> SensorRight && SensorDifference> 75) {// Dies wird so interpretiert, als ob die Linke Sensor liest mehr Licht als den richtigen Sensor, Tun Sie dies:
analogWrite (channel_a_enable, 255);
digital (channel_a_input_1, LOW);
digital (channel_a_input_2, HIGH);
analogWrite (channel_b_enable, 255);
digital (channel_b_input_3, HIGH);
digital (channel_b_input_4, LOW);
Serial.println ("Links"); // Dies druckt links, wenn der Roboter tatsächlich nach links abbiegen.
Verzögerung (50);
}
if (SensorLeft <SensorRight && SensorDifference> 75) {// Dies wird so interpretiert, als ob die Linke Sensor liest weniger Licht als den richtigen Sensor, Tun Sie dies:
analogWrite (channel_a_enable, 255);
digital (channel_a_input_1, HIGH);
digital (channel_a_input_2, LOW);
analogWrite (channel_b_enable, 255);
digital (channel_b_input_3, LOW);
digital (channel_b_input_4, HIGH);
Serial.println ("Right"); // Dies druckt Rechts, wenn der Roboter wäre eigentlich rechts abbiegen.
Verzögerung (50);
}
else if (SensorDifference <75) {// Dies wird so interpretiert, als wenn die Differenz zwischen den beiden Sensoren unter 125 (Versuch, unsere Sensoren passen), Tun Sie dies:
analogWrite (channel_a_enable, 255);
digital (channel_a_input_1, HIGH);
digital (channel_a_input_2, LOW);
analogWrite (channel_b_enable, 255);
digital (channel_b_input_3, HIGH);
digital (channel_b_input_4, LOW);
Serial.println ("Vorwärts"); // Dies druckt vorne, wenn der Roboter tatsächlich vorwärts zu gehen.
Verzögerung (50);
}
Serial.print ("\ n");
}