Simpler Linienfolger

Hallo zusammen,

heute möchte ich Ihnen ein Projekt vorstellen auf das wir durch eine Kundenanfrage aufmerksam wurden. Wir bauen einen einfachen Linienfolge-Roboter.

Das Projekt ist so ausgelegt, dass der Code sowohl mit zwei-, als auch mit vierrädigen Robotern lauffähig ist und stellt einen Kompromiss dar. Für einen Dauerbetrieb sollte der Sketch und die Verschaltung unbedingt geändert werden, da die Last der vier Motoren auf einen IC sehr hoch ist.

Mithilfe zweier Sensoren unterscheidet das Fahrzeug zwischen weißen und schwarzen Untergrund und korrigiert die Fahrtrichtung entsprechend, wir benutzen dazu unsere neuen Sensormodule, ohne Poti.

Das Prinzip ist recht einfach und der dazugehörige Code dementsprechend kompakt was uns an diesem Projekt sehr gefallen hat. 

Für dieses Projekt habe ich Ihnen ein Set erstellt, dieses finden Sie hier

Wir brauchen also:

Wir starten mit dem zusammenbauen des Chassis:

Zuerst sollen Sie die Schutzfolien abziehen, wir haben das nicht gemacht, da sich transparente Platten noch schlechter fotografieren lassen.

Zum leichteren Zusammenbau sollten Sie die Motoren, noch vor dem Einbau verdrahten.

Löten Sie dazu Kabel an die kleinen Messing-Fähnchen der Motoren. Wo rot und schwarz befestigt werden spielt vorerst keine Rolle. Kurz zum Verständnis: die Laufrichtung der Motoren kann geändert werden indem die Polung umgedreht wird. 

Als nächstes die Halterungen für die Motoren durch das Chassis stecken.

Im Anschluss die bedrahteten Motoren mit den langen, beiliegenden Schrauben befestigen und mit den Muttern sichern:

Dann die Messingbolzen durch die Platte stecken und mit den beiliegenden Muttern befestigen, wo Sie diese anbringen ist abhängig von Ihrem Entwurf und dem späteren Verwendungszweck. Die Positionen sind variabel.

Als nächsten Schritt können Sie schon die Oberseite montieren und festschrauben:

Zum bessern Verständnis hier noch ein Bild von der Seite:

 

Wo Sie Ihren Controller anbringen und in welche Richtung der Linienfolger fährt können Sie ebenfalls bestimmen. Damit ist der Zusammenbau der Mechanik abgeschlossen. Als nächsten Arbeitsschritt sollten Sie auf dem Motor-Shield die Stiftleisten anlöten, wie hier im Bild zu sehen:

Diese werden benötigt, um später die Sensoren anschließen zu können.

Die aufgeklebten Kühlkörper sind nicht unbedingt notwendig, aber sehr empfehlenswert. Es ist ohne weiteres möglich die Last auf mehrere ICs zu verteilen und alle vier Motoren getrennt am Shield anzuschließen (kann auch im Sketch geändert werden).

Als nächsten der Anschluss der Motoren: zuerst schalten wir die beiden Motoren der linken Seite und der rechten Seite jeweils zusammen. Hier müssen Sie etwas probieren, bis die Motoren der einen, und die Motoren der anderen Seite zusammen in die gleiche Richtung laufen. Wie bereits erwähnt kann diese ganz leicht, durch vertauschen der Pole geändert werden.

Hier die Motoren anschließen:

Die Anschlüsse sind auf der Platine mit M3 und M4 beschriftet, jeweils die linken Motoren auf einer Klemme, und die rechten an der zweiten Klemme.

Jetzt noch die Stromversorgung: Das Shield versorgt auch den Uno mit Strom.

Die beiden Pfeile unten rechts im Bild markieren die Anschlüsse für A4 und A5, wo wir unsere Linienfolger-Sensoren anschließen.

Da wir unser Robo-Car öfter umbauen haben wir die Sensoren nur temporär mit Klebeband befestigt. Den linken Sensor an Pin A4, den rechten Sensor auf A5, wie hier im Bild:

Dabei ist es wichtig, die Sensoren nicht frontal zu montieren, sondern leicht schräg an den Flanken, wie oben im Bild zu sehen.

Bevor wir uns dem Code widmen, welchen wir uns von Aarav geliehen haben, brauchen wir noch eine Libary für das Motor-Shield. Wir haben die Adafruit Libary benutzt welche Sie hier finden.

Hier der Code:

 

   ////////////////////////////////////////////////////////
  //                LinoBot v1.0                        //             
 //               By Aarav Garg                        //
////////////////////////////////////////////////////////

//I have added the possibilities of testing
//The values of analogRead could be changed for trouble shooting

//including the libraries
#include <AFMotor.h>

//defining pins and variables
#define lefts A4 
#define rights A5 

//defining motors
AF_DCMotor motor1(4, MOTOR12_8KHZ); 
AF_DCMotor motor2(3, MOTOR12_8KHZ);
/*
AF_DCMotor motor1(3, MOTOR12_8KHZ);
AF_DCMotor motor2(4, MOTOR12_8KHZ);
 */

void setup() {
  //setting the speed of motors
  motor1.setSpeed(100);
  motor2.setSpeed(100);
  //declaring pin types
  pinMode(lefts,INPUT);
  pinMode(rights,INPUT);
  //begin serial communication
  Serial.begin(9600);
  
}

void loop(){
  //printing values of the sensors to the serial monitor
  Serial.println(analogRead(lefts));
  Serial.println(analogRead(rights));
  //line detected by both
  if(analogRead(lefts)<=400 && analogRead(rights)<=400){
    //stop
    motor1.run(RELEASE);
    motor2.run(RELEASE);
  }
  //line detected by left sensor
  else if(analogRead(lefts)<=400 && !analogRead(rights)<=400){
    //turn left
    motor1.run(BACKWARD);
    motor2.run(FORWARD);
    /*
    motor1.run(RELEASE);
    motor2.run(FORWARD);
     */
  }
  //line detected by right sensor
  else if(!analogRead(lefts)<=400 && analogRead(rights)<=400){
    //turn right
    motor1.run(FORWARD);
    motor2.run(BACKWARD);
    /*
    motor1.run(FORWARD);
    motor2.run(RELEASE);
     */
  }
  //line detected by none
  else if(!analogRead(lefts)<=400 && !analogRead(rights)<=400){
    //stop
    motor1.run(FORWARD);
    motor2.run(FORWARD);
    /*
    motor1.run(BACKWARD);
    motor2.run(BACKWARD);
     */
  }
  
}


Übrigens wurden die Analog-Pins genutzt weil diese im Gegensatz zu den Digital-Pins auf dem Shield leicht zugänglich sind.

Das Projekt ist so ausgelegt, dass der Code sowohl mit zwei-, als auch mit vierrädigen Robotern lauffähig ist und stellt einen Kompromiss dar. Für einen Dauerbetrieb sollte der Sketch und die Verschaltung unbedingt geändert werden, da die Last der vier Motoren auf einen IC sehr hoch ist.

Das Einstellen der Laufrichtung für die Fahrmotoren kann u.U. etwas knifflig werden, hier ist etwas Geduld gefragt.

Viel Spaß beim nachbauen & bis zum nächsten mal :) 

 

Letzter Artikel Sonnenaufgang mit LED Panel
Neuer Artikel AZ-Brunnen

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe