- Material som krävs:
- Begrepp för linjeföljare
- Kretsschema och förklaring:
- Programmering av PIC Microcontroller:
- PIC Line Follower i aktion:
En Line Follower Robot är en enkel men fascinerande robot för de flesta studenter / hobbyister att bygga. I denna handledning lär vi oss hur en Line Follower-robot fungerar och hur vi kan bygga en med PIC Microcontroller PIC16F877A. PIC16F877A är en 40-stifts multipurpose MCU från Microchip, vi har använt denna IC i vår kompletta PIC-handledningsserie. Om du är ny kan du ta en titt på dessa PIC-självstudier för att lära dig grunderna för denna IC och hur du laddar upp program till mikrokontrollern. Eftersom vi redan har täckt denna information i våra handledning kommer vi att hoppa över dem i förklaringen nedan.
Om du är intresserad av robotik bör du vara mycket bekant med namnet “ Line Follower Robot ”. Denna robot kan följa en linje, bara genom att använda ett par sensorer och motorer. Denna robot ger dig utrymme för oändlig utveckling och robotar som Kiva (Amazon-lagerrobot) är ett exempel på detta. Du kan också kolla in våra andra Line Follower-robotar:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot med Arduino
- Line Follower Robot med Raspberry Pi
Material som krävs:
- PIC16F877A
- IR-sensor (2Nos)
- DC växelmotor (2Nos)
- L293D Motor Driver
- Chaises (Du kan också bygga dina egna med kartonger)
- Kraftbank (alla tillgängliga strömkällor)
Begrepp för linjeföljare
Line Follower Robot kan spåra en linje med hjälp av en IR-sensor. Denna sensor har en IR-sändare och en IR-mottagare. IR-sändaren (IR-lysdioden) sänder ljuset och mottagaren (fotodiod) väntar på att det sända ljuset återvänder. Ett IR-ljus kommer bara tillbaka om det reflekteras av en yta. Medan alla ytor inte reflekterar ett IR-ljus, bara vit kan färgytan reflektera dem helt och svart färgyta kommer att iaktta dem helt som visas i figuren nedan. Läs mer om IR-sensormodul här.
Nu ska vi använda två IR-sensorer för att kontrollera om roboten följer linjen och två motorer för att korrigera roboten om den rör sig ut ur banan. Dessa motorer kräver hög ström och bör vara dubbelriktade; därför använder vi en motorförare-modul som L293D. Vi behöver också en mikrokontroller som PIC för att instruera motorerna baserat på värdena från IR-sensorn. Ett förenklat blockschema av detsamma visas nedan.
Dessa två IR-sensorer kommer att placeras en på vardera sidan av linjen. Om ingen av sensorerna upptäcker en svart linje, instruerar de PIC-mikrokontroller motorerna att gå framåt som visas nedan
Om den vänstra sensorn kommer på svart linje instruerar mikrokontrollen roboten att svänga åt vänster genom att vrida höger hjul ensam.
Om höger sensor kommer på svart linje instruerar mikrokontrollen roboten att svänga åt höger genom att vrida det vänstra hjulet ensamt.
Om båda sensorerna kommer på svart linje stannar roboten.
På detta sätt kommer roboten att kunna följa linjen utan att komma utanför banan. Låt oss nu se hur kretsen och koden ser ut.
Kretsschema och förklaring:
Det fullständiga kretsschemat för denna PIC-baserade Line Follower Robot visas nedan
Kretsen använder två IR-sensorer och ett par DC-växelmotorer tillsammans med en motorförare-modul som visas ovan. Motor driver-modulen som används i detta projekt är L293D, vi behöver en motor driver eftersom utgångsstiftet på PIC Microcontroller inte kan skaffa tillräckligt med ström för att motorerna ska kunna köra. Denna modul drivs direkt från strömkällan (5V) som visas i kretsen. Modulen har fyra stift (två för varje motor) som är anslutna till PIC för att styra motorns riktning. Vi har också två IR-sensorer som fungerar som en ingång till PIC-mikrokontrollern. Dessa sensorer kommer att gå höga (1) om de är över en vit yta och kommer att bli låga (0) när de är över en svart yta. De fullständiga stiftanslutningarna illustreras i tabellen nedan.
S. nr |
Ansluten från |
Anslutna till |
1 |
IR-sensor Utelämnad stift |
RD2 (stift 21) |
2 |
IR-sensor Rakt ut stift |
RD3 (stift 22) |
4 |
Motor 1 kanal A-stift |
RC4 (stift 23) |
5 |
Motor 1 kanal B-stift |
RC5 (stift 25) |
6 |
Motor 2-kanal A-stift |
RC6 (stift 26) |
7 |
Motor 2-kanal B-stift |
RC7 (stift 27) |
I själva hårdvaran har jag använt en kraftbank som ger en uteffekt på + 5V direkt via USB-porten; därför har jag kringgått 7805 spänningsregulator och drivit PIC, sensorer och motorer med samma. Du kan göra samma sak genom att använda ett 12V batteri tillsammans med en regulator som visas i kretsen.
Programmering av PIC Microcontroller:
När du är klar med din hårdvara är det dags att börja programmera. Det fullständiga programmet för detta PIC Line Follower Robot Project ges i slutet av denna sida. Men de viktiga bitarna förklaras nedan.
Initiera I / O-stiften med följande rader. De två IR-sensorns stift fungerar som ingång och de fyra motorns stift fungerar som utgångsstift.
TRISD2 = 1; TRISD3 = 1; // Bad IR-sensorns stiften deklareras som ingång TRISC4 = 0; TRISC5 = 0; // Motor 1-stiften deklarerade som utgång TRISC6 = 0; TRISC7 = 0; // Motor 2 stift deklareras som utgång
Nu måste vi läsa status för både IR-sensorn och styra motorn därefter. Till exempel om båda sensorerna är höga (kommer inte under svart linje) flyttar vi båda motorerna framåt som visas i programmet nedan.
if (RD2 == 1 && RD3 == 1) // Båda sensorerna inte över balcklinjen {RC4 = 0; RC5 = 1; // Motor 1 framåt RC6 = 1; RC7 = 0; // Motor 2 framåt}
Om den vänstra sensorn kommer över den svarta linjen svänger vi höger genom att hålla motorn 1 stilla och vrida motorn 2 framåt. Denna typ av svarvning kallas differentiell svarvning.
annars om (RD2 == 0 && RD3 == 1) // Vänster sensor är över svart linje {RC4 = 1; RC5 = 1; // Motor 1 stopp RC6 = 1; RC7 = 0; // Motor 2 framåt}
På samma sätt, om den högra sensorn kommer över den svarta linjen, görs botten för att ta en vänster sväng genom att hålla den andra motorn stilla och vrida den första motorn ensam framåt, som visas nedan.
annars om (RD2 == 1 && RD3 == 0) // Höger sensor är över svart linje {RC4 = 0; RC5 = 1; // Motor 1 framåt RC6 = 1; RC7 = 1; // Motor 2-stopp}
Slutligen om båda sensorerna kommer under en svart linje är det dags att stoppa bot. Detta kan göras genom att göra alla stiften på båda motorerna höga. Koden för att göra detsamma visas nedan
annars // Båda sensorn över svart linje {RC4 = 1; RC5 = 1; // Motor 1 stopp RC6 = 1; RC7 = 1; // Motor 2-stopp}
Det är det programmet är klart och kan laddas upp till PIC med vilken programmerare som helst som PicKit.
PIC Line Follower i aktion:
När hårdvaran och koden är klar är det dags för lite åtgärd. Som sagt tidigare har jag använt en Powerbank för att driva botten, så allt jag behöver göra är att helt enkelt ansluta powerbanken till botten som har hårdvaran konfigurerad och koden redan laddad upp.
PIC Perf-kortet skapades för vår PIC-handledningsserie, där vi lärde oss hur man använder PIC-mikrokontroller. Du kanske vill gå tillbaka till dessa PIC Microcontroller-handledning med MPLABX och XC8 om du inte vet hur man bränner ett program med Pickit 3, eftersom jag hoppar över all denna grundläggande information.
Nu startar du helt enkelt botten över en svart linje och du bör titta på den efter raden.
Du kan stöta på vissa svårigheter i början i så fall läs vidare. Om hjulen roterar motsatt byter du helt enkelt polariteten hos motorn, vars hjul roterar i motsatt riktning. Om botten avviker från linjen, byt IR-sensorn och allt ska vara bra.
Den fullständiga bearbetningen av botten finns i videon nedan. Hoppas du gillar projektet och gillade att bygga något liknande. Om du har problem med att få detta att fungera kan du skicka dem i kommentarsektionen nedan för att få det löst eller använda vårt forum för att diskutera tekniskt innehåll.