Crazy Robot

Rus Alexei, 334CA

Introducere

Proiectul consta in realizarea unui robotel, actionat de 4 motorase care ocoleste obstacolele pe care le intalneste in calea sa. Robotelul a fost antrenat pentru concursul de sumo, dar momentan a renuntat la violenta si face atletism.

Descriere generală

Pentru a realiza acest proiect am avut nevoie de urmatoarele componente:

  1. Placuta de test
  2. Placuta de extensie cu driverele pentru motoare
  3. 2 Senzori de distanta Sharp
  4. Alimentare, baterie 12 volti
  5. Componente mecanice (roti, caroserie, s.a.)

Hardware Design

Schema de principiu este urmatoarea

{{:pm:prj2011:rtataroiu:schema_de_principiu.png|

Motoarele sunt puse in functiune cu ajutorul driverelor, care primesc semnal de comanda PWM si cu ajutorul alimentarii directe de la baterie, pun in funtiune rotile. Ambele roti de pe fiecare parte actioneaza sincron si au cate un driver dedicat. Fiind sincrone, se putea face si cu un singur circuit L298N, dar din considerente de siguranta si dat fiind faptul ca puterea consumata de doua motoare este apropiata de puterea suportata de un driver, am hotarat sa pun 2 astfel de circuite.

Schema electrica:

{{:pm:prj2011:rtataroiu:schema_electrica2-crazy.png|}}

Robotelul este complet autonom si dupa pornirea de la buton merge inainte pana da de un obstacol, pe care il ocoleste fie pe partea dreapta, fie pe partea stanga, in functie de pozitia robotului fata de obstacol.

In fiecare moment de timp, pe baza unei medii de citiri de la ADC a celor doi senzori (am folosit media pe ultimele 20 de citiri pentru a elimina miscarile bruste cauzate de zgomote sau erori de conversie), se ia o decizie si robotelul trece in una din cele trei stari posibile:

  • 1. Starea GO_FORWARD, in care acesta merge inainte
  • 2. Starea STEP_RIGHT, in care robotelul ocoleste obstacolul pe partea dreapta
  • 3. Starea STEP_LEFT, in care robotelul ocoleste obstacolul pe partea stanga

Lista piese

  • placuta de test
  • 2 x driver L298N
  • 2 x senzor de distanta Sharp 80cm
  • 4 x motoare 10.000rpm, cu reductor de 1:50
  • 1 baterie 12 volti, 2 Ah, Imax = 6 A

Software Design

  • mediu de dezvoltare : AVRStudio 4.17
  • aplicatie programare : AvrUsbBoot
  • limbaj de programare : C

Programul contine o etapa de initializare a ADC-ului, a timerelor si a motoareleor.

In rutina principala, exista o bucla infinita care la fiecare pas citeste datele primite de la ADC de la cei doi senzori. In functie de aceasta robotelul ia o decizie si anume sa mearga inainte, la dreapta sau la stanga. Au fost folosite macro-definitii pentru simplitatea utilizarii si reciclarii a codului.

Rezultate Obţinute

  • Aspectul exterior

  • In stadiu proiectare :

Concluzii

Avand pedegree sportiv, robotelul poate fi pus sa faca diverse treburi, in dotarie standard intrand 5 senzori de distanta Sharp (2 in fata de 80 de centimetri, 2 in laterale si unul in spate de 40 de centimetri), precum si cu 4 senzori de culoare indreptate in jos ce sunt capabile sa detecteze o linie (care poate fi o margine de ring ce trebuie evitata sau o linie ce terbuie urmarita). Cu mici modificari la montaj se pot actiona independent toate cele 4 roti, insa practic, aceasta nu aduce nici un avantaj.

Download

Arhiva cu fişierul obţinut în urma compilarii proiectului (.hex), sursa programului (.c) si makefile se poate downloada aici

Bibliografie/Resurse

pm/prj2011/rtataroiu/crazyrobot.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