Paul Manta - Leerycar

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Leerycar este o mașinuță autonomă care se plimbă prin cameră și se ferește de obstacole. Încă de la început am vrut să fac o mașină și inițial aveam intenția să fac una care să fie controlată printr-o telecomandă cu fir (pentru că fără fir costa prea mult :P ) dar am realizat că pentru așa ceva nu aș avea nevoie de microcontroller, așa că am avut de ales între line-follower și proiectul acesta.

 Proiectul terminat

Descriere generală

Foarte în mare, modul de funcționare al proiectului este următorul. Microcontrollerul trimite semnale către driverul de motoare, care semnale îi zic dacă să se învârtă roțile și sensul în care ar trebui să se învârtă. Pe lângă aceasta, există și un senzor de proximitate care trimite un semnal atunci când în față se află un obstacol; microcontrollerul, atunci când va primi acest semnal, va vira mașina pentru a evita obstacolul.

 Schemă bloc

Software Design

Software-ul mașinii este foarte simplu și a putut fi scris în mai puțin de 100 de linii de cod. Întregul comportament este controlat prin întreruperi:

  • O întrerupere externă, cauzată de senzorul de proximitate. Când senzorul detectează un obstacol este creată o întrerupere care va seta o variabila booleană globală. Această variabila va indica starea senzorului (daca există sau nu obstacole în față).
  • Încă o întrupere de ceas care controleaza roțile. Cu cât întreruperile de ceas sunt mai frecvente, cu atât mașina se mișcă mai repede. Se ia în considerare și starea senzorului (prin variabila globală menționată anterior), pentru a determina dacă mașina trebuie să vireze sau să meargă în față.

Direcția în care se mișcă mașina este controlată astfel:

  • Dacă trebuie să se miște în fața (adică dacă nu sunt obstacole), ambele roți se invârt în față (d'oh!).
  • Dacă trebuie să vireze, una dintre roți se va învârte în sens invers (iar cealaltă se va învârti în continuare în față). Exista și opțiunea de a opri una din roți, dar am ales să-i schimb sensul pentru ca virajul să fie făcut în loc (aproximativ…).

Download

Aici sunt două proiecte (pentru Atmel Studio) pe care le-am făcut. Unul este cel pe care am vrut să-l folosesc iar altul este cel pe care l-am folosit de fapt. Motivul pentru care a fost nevoie de o schimbare e pentru că am ars microcontrollerul in ultima zi și nu am reușit să fac rost de același model. :D

pm/prj2014/ideaconu/paulmanta.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