Bonjour Ensemble
Aujourd’hui, je voudrais vous présenter un projet dont nous avons pris connaissance grâce à une demande du client. Nous construisons un robot simple qui suit la ligne.
Le projet est conçu pour faire fonctionner le code avec des robots à deux roues et à quatre roues et représente un compromis. Pour un fonctionnement continu, l’esquisse et l’interconnexion doivent être modifiées, car la charge des quatre moteurs sur un IC est très élevée.
Avec l’aide de deux capteurs, le véhicule fait la distinction entre le fond blanc et le noir et corrige la direction du voyage en conséquence, nous utilisons nos nouveaux modules de capteurs sans poti.
Le principe est assez simple et le code correspondant en conséquence compact, que nous avons beaucoup aimé sur ce projet.
Pour ce projet, j’ai créé un ensemble pour vous, cela peut être trouvé Ici.
Nous avons donc besoin de :
- Châssis avec moteurs et pneus de traction
- 2 modules de suivi en ligne
- Microcontrôleur, compatible avec Arduino R3
- Bouclier moteur L2930
- Alimentation (légèrement sous-approvisionnée avec des batteries 4x AA pour 4 moteurs de traction)
Nous commençons par l’assemblage du châssis :
Tout d’abord, vous devriez décoller les foils de protection, nous n’avons pas fait cela, parce que les plaques transparentes peuvent être photographiés encore pire.
Pour un assemblage plus facile, vous devriez filer les moteurs avant l’installation.
Pour ce faire, les câbles de soudeur aux petits drapeaux en laiton des moteurs. Là où le rouge et le noir sont attachés n’a pas d’importance pour le moment. Pour une courte compréhension : la direction du déplacement des moteurs peut être modifiée en tournant le poteau.
Ensuite, branchez les supports pour les moteurs à travers le châssis.
Attachez ensuite les moteurs câblés avec les longues vis fermées et fixez-les avec les noix :
Ensuite, mettez les boulons en laiton à travers la plaque et attachez-les avec les noix fermées, où vous les attachez dépend de votre conception et plus tard l’utilisation. Les positions sont variables.
Comme une prochaine étape, vous pouvez déjà monter le haut et le visser sur:
Pour une meilleure compréhension, voici une photo de la page:
Vous pouvez également déterminer où vous attachez votre contrôleur et dans quelle direction la ligne suit. Cela complète l’assemblage de la mécanique. Comme l’étape suivante, vous devriez soudit les en-têtes broche sur le bouclier moteur, comme indiqué ici dans l’image:
Ceux-ci sont nécessaires afin d’être en mesure de connecter les capteurs plus tard.
Les éviers de chaleur collés ne sont pas nécessairement nécessaires, mais fortement recommandés. Il est facilement possible de distribuer la charge à plusieurs CI et de connecter les quatre moteurs séparément au bouclier (peut également être changé dans le croquis).
Ensuite, la connexion des moteurs: d’abord nous commutons les deux moteurs du côté gauche et le côté droit ensemble. Ici, vous devez essayer quelque chose jusqu’à ce que les moteurs d’un côté, et les moteurs de l’autre côté courir ensemble dans la même direction. Comme déjà mentionné, cela peut être facilement changé en échangeant les poteaux.
Connectez les moteurs ici:
Les connecteurs sont étiquetés sur le plateau avec M3 et M4, chacun les moteurs gauches sur un terminal, et le droit sur le deuxième terminal.
Maintenant, l’alimentation: Le bouclier fournit également le microcontrôleur avec de l’énergie.
Les deux flèches en bas à droite de l’image marquent les connecteurs pour A4 et A5, où nous connectons nos capteurs de suivi de ligne.
Puisque nous remodelons notre robo-voiture plus souvent, nous avons seulement temporairement attaché les capteurs avec du ruban adhésif. Le capteur gauche sur la broche A4, le capteur droit sur A5, comme indiqué ici dans l’image:
Il est important de ne pas monter les capteurs à l’avant, mais de les voir légèrement obliquement sur les flancs, comme on le voit dans l’image ci-dessus.
Avant de nous consacrer au code que nous avons emprunté à Aarav, nous avons besoin d’une bibliothèque pour le bouclier moteur. Nous avons utilisé l’Adafruit Libary que vous Ici Trouver.
Voici le code:
//////////////////////////////////////////////////////// LinoBot v1.0 / Par Aarav Garg //////////////////////////////////////////////////////// J’ai ajouté les possibilités de tests Les valeurs de analogRead pourrait être changé pour le tir problème y compris les bibliothèques #include <AFMotor (EN).H (en)> définir les broches et les variables #define Gauches A4 #define Droits A5 définir les moteurs AF_DCMotor moteur1(4, MOTOR12_8KHZ); AF_DCMotor moteur2(3, MOTOR12_8KHZ); /* AF_DCMotor moteur3(1, MOTOR12_8KHZ); AF_DCMotor moteur4(2, MOTOR12_8KHZ); */ Vide Configuration() { réglage de la vitesse des moteurs moteur1.setSpeed setSpeed setSpeed setS(100); moteur2.setSpeed setSpeed setSpeed setS(100); déclarant les types d’épingles pinMode(Gauches,Entrée); pinMode(Droits,Entrée); commencer la communication en série Série.Commencer(9600); } Vide Boucle(){ valeurs d’impression des capteurs au moniteur de série Série.println(analogRead (en)(Gauches)); Série.println(analogRead (en)(Droits)); ligne détectée par les deux Si(analogRead (en)(Gauches)<=400 && analogRead (en)(Droits)<=400){ Arrêter moteur1.Courir(Libération); moteur2.Courir(Libération); } ligne détectée par capteur gauche Autre Si(analogRead (en)(Gauches)<=400 && !analogRead (en)(Droits)<=400){ tourner à gauche moteur1.Courir(Arrière); moteur2.Courir(Avant); /* motor1.run(RELEASE); motor2.run (FORWARD); */ } ligne détectée par capteur droit Autre Si(!analogRead (en)(Gauches)<=400 && analogRead (en)(Droits)<=400){ tourner à droite moteur1.Courir(Avant); moteur2.Courir(Arrière); /* motor1.run (FORWARD); motor2.run (RELEASE); */ } ligne détectée par aucun Autre Si(!analogRead (en)(Gauches)<=400 && !analogRead (en)(Droits)<=400){ Arrêter moteur1.Courir(Avant); moteur2.Courir(Avant); /* motor1.run(BACKWARD); motor2.run(BACKWARD); */ } }
Soit dit en passant, les broches analogiques ont été utilisés parce que, contrairement aux broches numériques sur le bouclier, ils sont facilement accessibles.
Le projet est conçu pour faire fonctionner le code avec des robots à deux roues et à quatre roues et représente un compromis. Pour un fonctionnement continu, l’esquisse et l’interconnexion doivent être modifiées, car la charge des quatre moteurs sur un IC est très élevée.
Définir la direction de course pour les moteurs de traction peut être un peu difficile, ici un peu de patience est nécessaire.
Amusez-vous à reconstruire et jusqu’à la prochaine fois :)
7 commentaires
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
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
@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
Ik snap niet hoe je met die positie van de sensoren een lijn kan volgen. Zo zwabbert het toch over de lijn?
Stefan
Der set link funktioniert nicht.
Lg
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
Hallo,
Wie würde der Sketch und die Verschaltung für eine Dauerbelastung aussehen?
Danke im voraus.