Line Follower

Echipa

Liviu Chircu & Costea Mihail, 331CB

Descriere Generală a Proiectului

Robot 2WD ce urmărește o linie neagră trasată pe un fundal alb prin intermediul unei benzi de senzori IR cu output digital.

Componente Necesare

liviu_sasiu_1.jpgliviu_sasiu_2.jpgliviu_sasiu_3.jpg

mihai_senzori.jpg

  • Bară de senzori digitali
    • Se poate conecta pe oricare din cele 4 porturi ale microcontrollerului
    • Pinii respectivi trebuie marcați ca input, și trebuie activate rezistențele de pull-up
    • Cumpărată de pe sierra.ro - senzori QTR-8RC
    • Schema componentelor baretei:

mihai_schema_senzori.jpg

  • 1 condensator polarizat de 100μF, merg și cei de 25μF de pe plăcuță (daca v-au mai ramas)
  • 1 condensator de 100nF (ceramic)
  • 8 diode Schottky
  • 4 baterii de 1.5V (pentru alimentarea plăcuței și a driverului)
  • 1 baterie de 9V (pentru alimentarea motoarelor)
  • fire. Puteți folosi chiar și firele unui cablu UTP (1m ar trebui să ajungă).

mihai_driver.jpg

  • Driver pentru motoare, de pe ro.farnell.com - model L298N
    • Pinii IN1..IN4 de pe driver sunt conectati pe PORTC (pinii PC7..PC4) al microcontrollerului
    • Pinii OUT1..OUT4 de pe driver sunt conectati la motoare, iar impreuna cu IN1..IN4 reprezinta directia de deplasare (în cod se setează acest lucru folosind macrodefiniții de forma DIR_MOTOR1_MOTOR2, exemplu: DIR_FW_FW)
    • Pinii EN A si EN B de pe driver sunt conectati pe portul B, pinul OC0 (sau PB3), respectiv portul D, pinul OC2 (sau PD7) ai microcontrollerului si reprezinta viteza de deplasare
    • Am conectat pinul VSS al driverului la alimentarea de 6V, comună cu plăcuța.
    • Pinul VS (power supply pentru motoare) trebuie conectat la o sursă suficient de puternică, altfel motoarele vor trage tot curentul, iar plăcuța nu va funcționa corespunzător (ex: nu se încarcă programul… )
    • Trebuie ținut cont de efectul curentului de inducție generat atunci când roțile sunt blocate, sau când se opresc motoarele! Acesta poate arde driverul. Așadar, se pun 8 diode Schottky (noi le-am ales aî să țină mai mult de 2A) pe OUT1..OUT4
    • Masa este comună pentru tot ansamblul, simplificați pe cât posibil (cu cât mai puține fire, cu atât mai bine)

Interconectarea componentelor

Design traseu

  • Robotul funcționează corespunzător pe trasee cu linii de lățime maxim 3cm
  • Am improvizat un traseu folosind următoarele elemente de bază:

liviu_straight_line.jpgliviu_curved_line.jpg

Codul folosit

  • Cu cât linia este mai aproape de marginea baretei de senzori, cu atât viteza roții mai apropiate de linie este mai mică
  • În cazul în care mașina iese de pe “pistă”, aceasta se va orienta câtre ultima direcție în care a observat linia (stânga sau dreapta)
  • Codul este ușor de înțeles și este bine comentat
  • O arhivă cu codul folosit de noi în varianta finală: lchircu_mcostea_331cb.zip

Rezultate Obținute

liviu_final_3.jpgliviu_final_2.jpgliviu_final_1.jpg

  • Proiectul este funcțional, mașina urmărește în mod corespunzător dunga neagră.
  • Întrucât comanda pieselor ne-a întârziat foarte mult, nu am mai avut timp să implementăm o versiune îmbunătățită a algoritmului de deplasare (ex: control PID, sau mai multă atenție la ce curent trece / ar putea să treacă prin motoarele noastre.. ).

Concluzii

  • Realizarea proiectului a fost o experiență interesantă pentru noi, întrucât este primul proiect de acest tip pe care îl realizăm
  • Atunci când comandați componente de pe sierra.ro, faceți comanda prin Fan Courier, nu prin poștă! Pentru 8 lei în plus, economisiți până la 3 săptămâni de așteptare.
  • Puteți vedea un filmuleț cu bolidul albastru aici:

The Adobe Flash Plugin is needed to display this content.

Resurse / Legături externe

pm/prj2012/abostan/3.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0