Simpler Linienfolger - AZ-Delivery

Hallosamen

Vandaag wil ik u voorstellen aan een project waarvan we op de hoogte kwamen via een klantonderzoek. We bouwen een eenvoudige lijn die robot volgt.

Het project is zo ontworpen dat de code zowel met twee- als vierwielige robots kan werken en een compromis vertegenwoordigt. Voor continu gebruik moeten de schets en de verbinding absoluut worden gewijzigd, omdat de belasting van de vier motoren op één IC zeer hoog is is hoog.

Met behulp van twee sensoren maakt het voertuig onderscheid tussen witte en zwarte achtergrond en corrigeert de rijrichting dienovereenkomstig.

Het principe is vrij eenvoudig en de bijbehorende code is dienovereenkomstig compact, wat we erg leuk vonden aan dit project.

Ik heb een set gemaakt voor dit project, je zult het vinden hier

Dus we hebben nodig:

We beginnen met het monteren van het chassis:

Eerst moet u de beschermende film verwijderen, we hebben dit niet gedaan omdat transparante platen nog moeilijker te fotograferen zijn.

Voor een eenvoudigere montage moet u de motoren bedraden voor de installatie.

Soldeer hiervoor de kabels aan de kleine koperen vlaggen op de motoren. Waar rood en zwart zijn bevestigd, maakt in het begin niet uit. Kort om te begrijpen: de draairichting van de motoren kan worden gewijzigd door de polariteit om te keren.

Steek vervolgens de beugels voor de motoren door het chassis.

Bevestig vervolgens de bedrade motoren met de meegeleverde lange schroeven en zet ze vast met de moeren:

Steek vervolgens de koperen bouten door de plaat en bevestig ze met de meegeleverde moeren, waar u ze bevestigt, afhankelijk van uw ontwerp en het latere gebruik. De posities zijn variabel.

Als volgende stap kunt u de bovenkant al monteren en schroeven:

Voor een beter begrip is hier een foto van de zijkant:

 

U kunt ook bepalen waar u uw controller bevestigt en in welke richting de lijnvolger zich verplaatst. Hiermee is de assemblage van de mechanica voltooid. Als volgende stap moet u de pin-headers op het motorschild solderen, zoals weergegeven in de afbeelding:

Deze zijn nodig om de sensoren later te kunnen aansluiten.

De vastgelijmde koellichamen zijn niet absoluut noodzakelijk, maar worden ten zeerste aanbevolen. Het is eenvoudig mogelijk om de belasting over meerdere IC's te verdelen en alle vier motoren afzonderlijk op de afscherming aan te sluiten (kan ook worden gewijzigd in de schets).

Vervolgens de aansluiting van de motoren: eerst verbinden we de twee motoren aan de linker- en rechterkant. Hier moet je iets proberen totdat de motoren aan de ene kant en de motoren aan de andere kant samen in dezelfde richting lopen. Zoals reeds vermeld, kan dit eenvoudig worden gewijzigd door de polen te verwisselen.

Sluit de motoren hier aan:

De verbindingen zijn gemarkeerd met M3 en M4 op de printplaat, de linker motoren op één terminal en de rechter op de tweede terminal.

Nu de voeding: het schild voorziet de microcontroller ook van stroom.

De twee pijlen rechtsonder in de afbeelding markeren de verbindingen voor A4 en A5, waar we onze lijnvolgersensoren aansluiten.

Omdat we onze robo-auto vaak herbouwen, hebben we de sensoren slechts tijdelijk met plakband bevestigd. De linker sensor op pin A4, de rechter sensor op A5, zoals hier getoond:

Het is belangrijk om de sensoren niet frontaal te monteren, maar onder een kleine hoek op de flanken, zoals weergegeven in de bovenstaande afbeelding.

Voordat we ons wijden aan de code die we van Aarav hebben geleend, hebben we nog een libary nodig voor het motorschild.We hebben de Adafruit Libary gebruikt die jij hebt gebruikt. hier Zoek.

Hier is de code:

 

   ////////////////////////////////////////////////////////   LinoBot v1.0
 Door Aarav Garg
////////////////////////////////////////////////////////

Ik heb de mogelijkheden van het testen toegevoegd
De waarden van analogRead kunnen worden gewijzigd voor problemen schieten

Inclusief de bibliotheken
"35; omvat <AFMotor.H>

definitie van pins en variabelen
35; definieer Links A4 
35; definieer rechten A5 

definiërende motoren
AF/DCMotor motor(4, MOTOR 12-KHZ); 
AF/DCMotor motor2(3, MOTOR 12-KHZ);
/*
AF/DCMotor motor 3(1, MOTOR12 tot en met 8KHZ);
AF/DCMotor motor 4(2, MOTOR12 tot en met 8KHZ);
 */

Leeg setup() {   vaststelling van de snelheid van de motoren   motor.setSpeedComment(100);   motor2.setSpeedComment(100);   /decking pintypen   PinMode(Links,INPUT);   PinMode(rechten,INPUT);   /start seriële communicatie   Serie.start(9600);    }

Leeg ren(){   (printwaarden van de sensoren naar de seriële monitor)   Serie.Afdrukken(analoog(Links));   Serie.Afdrukken(analoog(rechten));   lijn gedetecteerd door beide   indien(analoog(Links)<=400 && analoog(rechten)<=400){     /stop     motor.ren(VRIJGIFTE);     motor2.ren(VRIJGIFTE);   }   lijn gedetecteerd door linker sensor   sm indien(analoog(Links)<=400 && !analoog(rechten)<=400){     turn left     motor.ren(ACHTER);     motor2.ren(VOORZITTER);     /*
 motor-1.run(vrij verkeer);
 motor-2.run(forward);
     */   }   lijn gedetecteerd door rechter sensor   sm indien(!analoog(Links)<=400 && analoog(rechten)<=400){     /bocht rechts     motor.ren(VOORZITTER);     motor2.ren(ACHTER);     /*
 motor-1.run(forward);
 motor-2.run(vrij verkeer);
     */   }   lijn gedetecteerd door geen   sm indien(!analoog(Links)<=400 && !analoog(rechten)<=400){     /stop     motor.ren(VOORZITTER);     motor2.ren(VOORZITTER);     /*
 motor-1.run(BACKARD);
 motor-2.run(BACKWARD);
     */   }    }


Tussen haakjes, de analoge pinnen werden gebruikt omdat, in tegenstelling tot de digitale pinnen op het schild, ze gemakkelijk toegankelijk zijn.

Het project is zo ontworpen dat de code zowel met twee- als vierwielige robots werkt en een compromis vormt.Voor continue werking is het essentieel om de schets en de bedrading te veranderen, aangezien de lading van de vier motoren op een IC zeer hoog is.

Het instellen van de rijrichting voor de motoren kan een beetje lastig zijn, hier is een beetje geduld.

Veel plezier met het herbouwen van & tot de volgende keer:)

 

Für arduinoProjekte für anfängerSensoren

7 Reacties

Andreas Wolter

Andreas Wolter

@Michael Beylich: das ist eine sehr interessante Idee.
Die Funktionsweise der Linienfolger ist so aufgebaut, dass sich die Spannung an der Fotodiode verändert, wenn sich die Intensität des reflektierten Lichts verändern. Daher ist auch ein hoher Kontrast notwendig (hier schwarz und weiß, also der höchstmögliche Kontrast).
Wenn ich Ihre Idee richtig verstanden habe, möchten Sie einen Leitstrahl installieren.
Dafür sollte man eher andere Sensoren verwenden, da die Linienfolger nur geringe Abstände zulassen.
Ich hatte schonmal ein ähnliches Projekt mit einem robocar, Fotosensor und einer Taschenlampe.
Mit einem IR-Laser könnte man das theoretisch genauso umsetzen. Um die Richtungsänderung des Lasers zu detektieren, bräuchten man mehrere voneinander getrennte Fotodioden, die auf den IR-Laser reagieren können. Ich würde zuerst probieren, vier in einer Matrix anzuordnen und mit Sichtschutz voneinander zu trennen. Ähnlich wie beim Solartracker von Miguel Torres Gordo: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/solar-tracker-mit-schrittmotoren-und-oled-display

Ansonsten können Sie uns auch gern kontaktieren über die blogs@ Adresse. Vielleicht finden wir eine praktikable Lösung.

Grüße,
Andreas Wolter

Michael Beylich

Michael Beylich

Hallo,
Ich komme aus dem Schiffsmodellbau und frage mich, ob es möglich ist, diesen Aufbau zu adaptieren. Bei Rettungskreuzern gibt es sog. Tochterbote, die nach dem Aussetzen auch mal wieder aufgenommen werden müssen. Das ist bei ruhigem Wasser schwierig, bei bewegtem nahezu unmöglich. Man „trifft“ die Tochterboot-Wanne nicht.
Die Idee wäre, im Mutterschiff z.B. eine IR-Diode zu platzieren und dann dem „Strahl“ automatisch zu folgen. Gesteuert werden müsste nur der Motor für die Schraube und das Lenkservo.
Wäre das realisierbar? Und auch nicht zu gross und schwer?
Danke im voraus.

Andreas Wolter

Andreas Wolter

@Wulv: A sensor detects differences in contrast. A black line on a white background has the highest contrast. If a change is detected, the direction will be corrected. Since a black line has a transition to the white background on both sides, two sensors are used. It would also work with one sensor. Then the code looks different.

Best Regards,
Andreas Wolter
AZ-Delivery Blog
>Ich verstehe nicht, wie man mit dieser Position der Sensoren einer Linie folgen kann. Ist es nicht so, dass es über die Linie schwingt?

Wulv

Wulv

Ik snap niet hoe je met die positie van de sensoren een lijn kan volgen. Zo zwabbert het toch over de lijn?

Stefan

Stefan

Der set link funktioniert nicht.

Lg

Moritz

Moritz

Hallo,
die vier Motoren sind im Beitrag oben am Shield an M3 und M4 angeschlossen. Das funktioniert bei uns wunderbar, allerdings ist die Last auf den IC recht hoch. Die Last lässt sich bei zusätzlicher Nutzung von M1 und M2 auf dem Shield verteilen, sprich je einen Motor pro Anschluss. Den Sketch müssen Sie dann erweitern, indem Sie die beiden zusätzlichen Motoren zuerst definieren und anschließend mit motor3.run und motor4.run erweitern.

Frank Raddau

Frank Raddau

Hallo,
Wie würde der Sketch und die Verschaltung für eine Dauerbelastung aussehen?
Danke im voraus.

Laat een reactie achter

Alle opmerkingen worden voor publicatie gecontroleerd door een moderator

Aanbevolen blogberichten

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery