Maak deze Line Follower Robot voor Science Fair Project

Probeer Ons Instrument Voor Het Oplossen Van Problemen





In deze post leren we hoe we een lijnvolger-robotcircuit kunnen bouwen met Arduino, dat over een specifiek getekende lijnlay-out loopt en deze getrouw zal volgen zolang deze beschikbaar en traceerbaar is door zijn sensoren.

Door navneet sajwan



Wat is een Line Follower Robot

Een autonome robot is een machine die een reeks acties kan uitvoeren volgens de instructies van de programmeur, zonder handmatig in realtime door een mens te worden bestuurd.

Lijnvolgers (LFR's) zijn ook autonome robotauto's die worden geleid door een of meer sensoren en een zwart of wit lijnpad. Ze vormen de basis van moderne zelfrijdende auto's.



Zoals elke autonome robot hebben lijnvolgers een eenheid voor signaalverwerking en besluitvorming, sensoren en actuatoren. Als je een beginner bent in robotica en het serieus wilt nemen, moet je hier beginnen. Laten we beginnen met het maken.

Ik heb twee infrarood sensoren en driewielaandrijving gebruikt om dit project te maken. Het minimumaantal sensoren dat kan worden gebruikt is één en maximaal acht zijn voldoende voor PID-gebaseerde lijnvolging.

Componenten vereist:

Arduino uno

Chassis

Twee accu-aangedreven (b.o.) Motoren en compatibele banden

Castor bal

Twee infrarood sensoren

Motor driver module

Stroomvoorziening

Arduino IDE-software

Laten we nu eens kijken naar onze componenten:

ARDUINO ONE : Stel je voor dat het de controlekamer van onze robot is. Nu zijn er heel veel ontwikkelborden die voor dit project zijn overwogen, maar Arduino UNO was gewoon geen partij voor anderen. Het is niet zo dat onze hoofdrolspeler superieur was in termen van zijn multidimensionale kenmerken.

Als dat het geval was geweest, zouden Raspberry Pi en Intel Edison het tussen de ogen hebben geslagen. De meest overtuigende argumenten die hebben geleid tot de selectie van Arduino UNO werden gevormd door de combinatie van functies, prijs, grootte en vereisten voor het project.

Enkele relevante redenen waren:

GROOTTE : Het is vrij klein in vergelijking met op Atmega16 of Atmega8 gebaseerde ontwikkelborden, verbruikt een beetje ruimte op het chassis, dus je krijgt een compacte en handige bot.

Dit is echt belangrijk in robotica-wedstrijden. Geloof me, je zou een hekel hebben aan rondzwerven met die grote lelijke bot, de hele dag van locatie wisselen.

Kleiner van formaat, sneller de robot en efficiënter draaien.

BESTE PROTOTYPING BOARD : Ongetwijfeld heeft Arduino UNO de beste combinatie van functies voor prototyping ​Zodra uw circuits op hun plaats zijn en uw project perfect werkt, kunt u het vervangen door iets kleiner en goedkoper, zoals Arduino Nano en Attiny85 ic.

Voor degenen die lijnvolger maken voor universiteitsprojecten, raad ik aan om aan het einde UNO te vervangen door Nano.

CHASSIS : Het is het frame dat alle componenten op hun plaats houdt. Er zijn een paar punten waarmee u rekening moet houden bij het kopen van een nieuw chassis,

Het moet lichtgewicht en sterk zijn.

Voor projecten is het beter als u er een op de markt koopt. Maar als u zich voorbereidt op een wedstrijd, raad ik u sterk aan uw eigen wedstrijd aan te passen, rekening houdend met de afmetingen en de vereisten van de wedstrijd.

Kies voor een kunststof of houten onderstel. Wanneer metalen frames in contact komen met Arduino, wordt een aantal pinnen kortgesloten. Dit is een belangrijke factor om op te focussen bij het zoeken naar chassis.

Houd je chassis zo laag mogelijk - dit geeft stabiliteit aan de bot.

MOTOREN : Gebruik lichtgewicht batterijgevoede (B.O.) d.c. motoren.

CASTOR BAL : Normale wielen zorgen voor translatiebeweging langs een enkele as, maar een zwenkwiel is ontworpen om in elke richting op het oppervlak te bewegen. Het geeft ons driewielaandrijving.

De reden om de voorkeur te geven aan driewielaandrijving boven 4 wielen is vanwege de relatief snellere draaibeweging. Het is je misschien opgevallen dat de fietsriksja's als reptielen door het verkeer dringen. Hetzelfde is het geval met onze robot.

SENSOREN : Het is een apparaat dat elke fysieke parameter van onze omgeving detecteert of meet en deze omzet in elektrische signalen. In dit geval is de gedetecteerde parameter infraroodstralen.

Sensoren zijn zeer fundamenteel voor elke robot. Als arduino het brein van onze bot is, kunnen sensoren net zo goed de rol van ogen spelen. Hier zijn een paar dingen over sensoren:

De sensoren moeten zo worden geplaatst dat de led (s) naar de grond zijn gericht.

Moet aan de voorkant van je bot worden geplaatst.

De minimale afstand tussen de twee moet groter zijn dan de breedte van de zwarte lijn.

MOTOR BESTUURDER : Motoraandrijvingen zijn buffercircuits die laagspanningssignalen opnemen om de motoren van stroom te voorzien die een hogere spanning nodig hebben.

In ons geval kan Arduino voldoende spanning leveren om de motoren aan te drijven, maar het kan niet voldoende stroom leveren. De 5v- en GND-pinnen van Arduino UNO hebben een stroomsterkte van 200mA, terwijl elke GPIO-pin een classificatie van 40 mA heeft. Dit is veel lager dan de motoren met start- en afslagstroom die we nodig hebben.

Er zijn twee motorstuurprogramma's die ik prefereer voor dit project: L298N en L293D. Beiden zijn even geschikt om dit project te maken.

Hoewel, L293D is relatief goedkoper maar heeft een lage stroomsterkte. Hun verbindingen zijn bijna hetzelfde. Omdat ik de verbindingen voor beide heb gegeven, is het helemaal aan jou hoe je je bot maakt.

STROOMVOORZIENING

Gebruik een 12 volt adapter of een batterij (niet meer dan 12 volt).

Plaatsing van componenten (van voorkant naar achterkant):

Sensoren aan het hoofd van je bot.

Zwenkwiel in het midden.

Motoren en banden op één lijn aan de achterkant.

Verbindingen:

SENSOREN naar ARDUINO

Verbind de sensorpin met de arduino-pin zoals weergegeven,

SensorpinArduino-pin
VCC (5v)5V
GND (G)GND
LINKER SENSOR UIT (DOEN)pin 6
RECHTER SENSOR UIT (DOEN)pin 7

Opmerking: Om te controleren of uw sensoren zijn ingeschakeld, richt u de camera van uw mobiele telefoon op de led van de IR-zender. U zult op het scherm een ​​led zien gloeien die niet met onze blote ogen kan worden gezien. Sommige moderne gsm-camera's hebben een infraroodfilter. Houd daar dus rekening mee.

MOTOR naar MOTOR BESTUURDER:

Elke motor heeft twee klemmen die op de motordriver moeten worden aangesloten. Probeer ze nooit rechtstreeks op arduino aan te sluiten. Kijk vanaf de achterkant van je bot, met motoren dichtbij je en sensoren weg, verbind ze als volgt:

MOTORL298NL293D
LINKER MOTORPIN 1 EN 2PIN 7 EN 8
RECHTER MOTORPIN 13 EN 14PIN 9 EN 10

MOTOR BESTUURDER naar ARDUINO UNO:

MOTOR BESTUURDER (L298N)ARDUINO ONE
SPELD 4WIJN
SPELD 5GND
SPELD 65V
PIN 8 en PIN 9PIN 3 en PIN 9
PIN 10 en PIN 11PIN 5 en PIN 10
PIN 7 en PIN 125V
MOTOR BESTUURDER (L293D)ARDUINO ONE
SPELD 3WIJN
SPELD 2GND
PIN 15V
PIN 5 EN PIN 6PIN 3 en PIN 9
PIN 11 EN PIN 12PIN 5 en PIN 10
PIN 4 EN PIN 55V

OPMERKING: pinnen 8 en 9 van l298n worden gebruikt om de motor te besturen die is aangesloten op 1 en 2. En, 10 en 11 besturingsmotor die is aangesloten op pinnen 13 en 14. Evenzo worden pinnen 5 en 6 van l293d gebruikt om de motor te besturen die is aangesloten op 7 en 8 en, 12 en 11 besturingsmotor aangesloten op pennen 9 en 10.

Hier zijn we jongens, tot het einde van het ontwerpgedeelte. We hebben nog de codering te doen, maar daarvoor zullen we de principes doornemen die het volgen van lijnen mogelijk maken.

Hoe een infraroodsensor werkt:

Infraroodsensoren (IR-sensoren) kunnen worden gebruikt om contrast in kleuren en de nabijheid van objecten te detecteren. Het principe achter de werking van de IR-sensor is vrij eenvoudig.

Zoals we kunnen zien, heeft het twee leds - IR-emitterende led en een fotodiode. Ze fungeren als zender-ontvangerpaar. Wanneer een obstakel voor de emitterstralen komt, worden deze teruggekaatst en onderschept door de ontvanger.

Dit genereert een digitaal signaal dat naar microcontrollers en actuatoren kan worden gestuurd om de nodige actie te ondernemen bij het tegenkomen van een obstakel.

Basisfysica vertelt ons dat een zwart lichaam alle elektromagnetische straling absorbeert die erop valt, terwijl een wit lichaam het weerkaatst. Dit principe wordt benut door een lijnvolger om onderscheid te maken tussen wit en zwart oppervlak.

Hoe een lijnvolgerrobot werkt:

LINE FOLLOWER LAY-OUT

In normale toestand beweegt de robot zodanig dat beide sensoren over wit zijn en de zwarte lijn tussen beide sensoren.

Het is geprogrammeerd om beide motoren zo te draaien dat de bot in voorwaartse richting beweegt.

Vanzelfsprekend komt na verloop van tijd een van de twee sensoren over de zwarte lijn.

Als de linkersensor over de lijn komt, worden de linkermotoren tot stilstand gebracht en als gevolg daarvan begint de bot naar links te draaien, tenzij de linkersensor weer op een wit oppervlak komt en de normale toestand wordt bereikt.

Evenzo, wanneer de rechtersensor over de zwarte lijn komt, worden de rechtermotoren gestopt en draait de bot nu naar rechts, tenzij de sensor terugkomt over een wit oppervlak. Dit draaimechanisme staat bekend als differentieel aandrijfmechanisme.

SCHAKELSCHEMA:

BEDRADING DETAILS:

PROGRAMMERING EN CONCEPTEN:

Als we klaar zijn met het circuitgedeelte, gaan we nu verder met het programmeergedeelte. In dit gedeelte zullen we het programma begrijpen dat onze robot bestuurt. Hier is de code: / *

Beschrijving van de gebruikte functies:

read_sensors (): Het neemt de metingen van beide sensoren en slaat deze op in de variabelen links en rechts.

move_forward (): Wanneer de arduino deze functie uitvoert, bewegen beide motoren in voorwaartse richting.

turn_left (): Linkermotor stopt. Bot draait naar links.

turn_right (): Rechtermotor stopt. Bot draait naar rechts.

halt (): Bot stopt.

print_readings (): Toont metingen van de sensoren op seriële monitor. Hiervoor moet u de opmerking 'Serial.begin (9600)' verwijderen in de ongeldige setup.

SENSOR AFLEZINGEN:

SENSOR OVER LIJNSENSOR AFLEZINGEN
LINKSRECHTSAF
LINKER SENSOR01
RECHTER SENSOR10
GEEN11
BEIDE00

SNELHEIDSCONTROLE:

Soms is de snelheid van de motoren zo hoog dat voordat Arduino de sensorsignalen interpreteert, de robot de lijn verliest. Kortom, bot volgt de lijn niet vanwege de hoge snelheid en blijft de lijn verliezen, ook al is het algoritme correct.

Om dergelijke omstandigheden te vermijden, verlagen we de snelheid van de bot met behulp van de PWM-techniek. In de bovenstaande code is er een variabele met de naam waarde.

Verlaag gewoon de numerieke waarde in de functie om de snelheid te verlagen. In Arduino UNO kunt u alleen pwm-waarden tussen 0 en 255 hebben.

analogWrite (pin, waarde)

0<= value <=255

Dit is het einde van mijn post online volger. Ik hoop dat het gedetailleerd genoeg is om al je brandende vragen te beantwoorden en als dat in de zeldzaamste realiteit niet is, dan hebben we altijd de commentaarsectie voor je beschikbaar. Geef commentaar op uw twijfels. Veel plezier met knutselen!




Een paar: Mobiele telefoongestuurde robotauto met behulp van DTMF-module Volgende: Wachtwoordgestuurde AC-hoofdschakelaar AAN / UIT