: 6 Schritte (mit Bildern)
: 6 Schritte (mit Bildern)
Anonim
Bild
Bild

Schritt 1: Teile & Werkzeuge

Teile & Werkzeuge
Teile & Werkzeuge
Teile & Werkzeuge
Teile & Werkzeuge

Teile: ~ 2 x Servomotoren - Lokaler Elektronikladen ~ 4 x LDR's - Lokaler Elektronikladen ~ 4 x 10k Widerstände - Lokaler Elektronikladen ~ Arduino Uno - Sparkfun.com ~ 2 x 50k variabler Widerstand - Lokaler ElektronikladenTools: ~ Lötkolben - Sparkfun.com ~ Lötdraht - Sparkfun.com ~ Jumper Wires - Sparkfun.com ~ Protoboard - Lokaler Elektronikladen Alle Teile kosten weniger als 30 $ (ohne Arduino und alle Werkzeuge)

Schritt 2: Bauen Sie die Schaltung auf

Baue die Schaltung
Baue die Schaltung
Baue die Schaltung
Baue die Schaltung
Baue die Schaltung
Baue die Schaltung

Die Schaltung ist ziemlich einfach. Verbinden Sie die vier LDRs über einen 10k-Widerstand mit den analogen Pins 0, 1, 2 und 3. Verbinden Sie die beiden Servos mit den digitalen Pins 9 bzw. 10. Verbinden Sie die beiden variablen Widerstände mit den analogen Pins 4 und 5. Nehmen Sie a Schauen Sie sich die Bilder an, sie helfen wirklich. Sehen Sie das letzte Bild für den Schaltplan (Es könnte das schlimmste sein, das Sie je gesehen haben).

Schritt 3: Bauen Sie die Sensorbaugruppe

Bauen Sie die Sensorbaugruppe
Bauen Sie die Sensorbaugruppe
Bauen Sie die Sensorbaugruppe
Bauen Sie die Sensorbaugruppe
Bauen Sie die Sensorbaugruppe
Bauen Sie die Sensorbaugruppe

Um die Sensorbaugruppe zu bauen, nehmen Sie zwei rechteckige Pappstücke, schneiden Sie einen langen Schlitz durch die Mitte des ersten Pappstücks. Schneiden Sie einen kurzen Schlitz durch die Mitte des zweiten Pappstücks und schneiden Sie dann beide und befestigen Sie sie mit etwas Band. Es sollte wie ein 3D-Kreuz mit 4 Abschnitten aussehen. In diese vier Abschnitte des Kreuzes müssen wir unsere vier LDRs platzieren. Sehen Sie sich die Bilder an, die wirklich helfen.

Schritt 4: Richten Sie es ein

Es einrichten
Es einrichten

Suchen Sie eine Basis (in meinem Fall eine Nescafe-Flasche) und kleben Sie Ihr Faustservo darauf, dann schließen Sie das zweite Servo an den Rotor des ersten Servos an. Schließen Sie an den Rotor des zweiten Servos die Sensorbaugruppe an, die wir zuvor hergestellt haben Nehmen Sie es in die Sonne und es sollte sich automatisch auf die Sonne ausrichten. Wenn es drinnen ist, richtet es sich nach der hellsten Lichtquelle im Raum aus. Schauen Sie sich die Bilder an, sie helfen wirklich.

Schritt 5: Der Code

Hier ist der Code für Ihren Solar-Tracing-Roboter: #include // einschließen Servo-Bibliothek Servo horizontal; // horizontales Servo Int Servoh = 90; // stehen horizontaler Servo Servo vertikal; // vertikales Servo Int Servov = 90; // vertikales Servo stehen // LDR-Pin-Anschlüsse // Name = Analogpin; int ldrlt = 0; // LDR oben links int ldrrt = 1; // LDR oben rechts int ldrld = 2; // LDR unten links int ldrrd = 3; // ldr down rigt void setup () { Serial.begin (9600); // Servoanschlüsse // name.attacht (pin); horizontal.anhängen(9); vertikal.anhängen(10); aufrechtzuerhalten. Void Schleife () { Int lt = analogRead (ldrlt); // oben links int rt = analogRead (ldrrt); // oben rechts int ld = analogRead (ldrld); // unten links int rd = analogRead (ldrrd); // unten rechts int dtime = analogRead (4)/20; // Potentiometer lesen Int Tol = analogRead (5)/4; int avt = (lt + rt) / 2; // Durchschnittswert top int avd = (ld + rd) / 2; // Durchschnittswert nach unten int avl = (lt + ld) / 2; // Durchschnittswert links int avr = (rt + rd) / 2; // Mittelwert rechts int dvert = avt - avd; // Überprüfen Sie die Differenz von up und down int dhoriz = avl - avr; // Überprüfen Sie die Differenz von links und rechts if (-1*tol > dvert || dvert > tol) // Überprüfen Sie, ob die Differenz innerhalb der Toleranz liegt else vertikalen Winkel ändern { if (avt > avd) { servov = ++servov; Wenn (Servov > 180) {Servov = 180; } } else if (avt <avd) {servov = --servov; wenn (Servov < 0) { Servov = 0; } } vertikal.write(servov); aufrechtzuerhalten. If (-1 * tol > dhoriz || dhoriz > tol) // prüfen, ob die Differenz in der Toleranz liegt, sonst ändern Sie den horizontalen Winkel { if (avl > avr) { servoh = --servoh; Wenn (Servo < 0) { Servo = 0; aufrechtzuerhalten. aufrechtzuerhalten. Sonst if (avl < avr) { Servoh = ++ Servoh; Wenn (Servoh > 180) {Servoh = 180; } } else if (avl = avr) { // nichts} horizontal.write (servoh); } Verzögerung (dtime); }

Schritt 6: Fertig

Alles erledigt!
Alles erledigt!

Ich hoffe, dieses Projekt inspiriert zu weiteren Experimenten. Das Arduino-Board ist unglaublich vielseitig, günstig und für alle Bastler zugänglich. Dies ist nur eines von vielen einfachen Projekten, die mit dem Arduino erstellt werden können. Denken Sie weiter nach!. Vergessen Sie nicht, mehr zu folgen