FollowMe Robot

Grupa: 335CC

Nume: Frunză Ștefania

E-mail: stefania.frunza@stud.acs.upb.ro

Introducere

Proiectul are ca scop crearea unui robot care detectează un obiect în jurul lui și apoi începe să îl urmărească . Robotul va avea posibilitatea să își întoarcă privirea (un senzor de distanță ultrasonic rotit de un servomotor) în stânga sau în dreapta, pentru a identifica prezența unui obiect, având o rază de acoperire cât mai mare. Ideea realizării acestui proiect a venit în timp ce mă uitam pe produsele din magazinele cu componente pentru placa Arduino. Mi-au atras atenția niște roboți gata făcuți, care arătau oarecum uman cu senzorul de distanță ultrasonic pus în loc de ochi, și apoi m-am gândit că aș dori să realizez ceva similar. Consider că acest proiect este util, deoarece poate fi folosit atât pe post de jucărie, cât și în cazul mașinilor autonome, care păstrează o distanță optimă.

Descriere generală

Robotul va folosi un servomotor pentru a roti senzorul ultrasonic de distanță. Atunci când robotul detectează că un obiect s-a apropiat la mai puțin de 25 cm de el, servomotorul se oprește (revenind în poziția de mijloc) și se aprinde un led care anunță că de acum robotul pornește în urmărirea obiectului. Robotul păstrează o distanță de maxim 50 cm față de obiectul urmărit. Atunci când se obiectul se depărtează, intră în funcțiune motoarele care dau putere roților, făcând robotul să se deplaseze.

  • Schema Bloc:

Hardware Design

  • Lista de Componente:
  • Arduino UNO
  • 2 x Roata roboti
  • 2 x Motor DC 3V-6V cu reductor 1:48
  • Breadboard
  • Senzor de Distanță Ultrasonic HC-SR04
  • LED roșu
  • 1 x roata mobilă
  • Fire mamă-tată
  • Fire tată-tată
  • L298N Motor Driver
  • Servomotor
  • Carcasă baterii
  • 4 x baterii AA

Componentele au fost comandate de pe Ardushop, OptimusDigital și Cleste.

  • Schema Electrică:

  • Hardware:

Software Design

Partea de Software Design a fost realizată în mediul de dezvoltare Arduino IDE. Testarea a fost făcută direct pe hardware, lucrând în paralel la ambele dezvoltări.

Biblioteci utilizate:

  • Servo.h (pentru servomotor)
  • NewPing.h (pentru senzorul de distanță ultrasonic)

Pe lângă folosirea structurii ”#define” pentru asocierea pinului cu componenta, am folosit-o și pentru a reține niște constante, cum ar fi:

  • MAX_DISTANCE - este folosit la constructorul obiectului de tipul NewPing (distanța maximă pe care o poate citi senzorul de distanță)
  • DETECT_DISTANCE - reține distanța minimă care trebuie să fie între obiect și senzor pentru ca obiectul să fie detectat
  • KEEP_DISTANCE - reține distanța maximă pe care o menține robotul față de obiectul urmărit

Dacă distanța citită de senzor este mai mare decât MAX_DISTANCE, atunci vom inițializa distanța cu MAX_DISTANCE (pentru că altfel el o va considera 0). În variabila found reținem dacă obiectul a fost identificat. Astfel, avem două scenarii:

  • Nici un obiect nu a fost găsit încă, așa că servomotorul continuă să se rotească.
  • Obiectul a fost găsit. Se aprinde led-ul, servomotorul revine la poziția de mijloc și apoi calculez (în funcție de unghiul la care s-a oprit servomotorul) care este timpul necesar întoarcerii robotului spre obiect. Formula a fost aflată empiric. Apoi, comparând cu KEEP_DISTANCE, activez motoarele sau le opresc.

Rezultate Obţinute

Link-ul către prezentarea video a proiectului:

Concluzii

A fost un proiect care mi-a adus destul de multe provocări. Modelul pe care îl găsisem pentru proiectul meu avea nevoie de niște piese pe care nu le-am găsit în stoc nicăieri și a trebuit să mă reorientez. Totuși, soluția cu driver-ul L298N mi-a plăcut și pentru că a fost nevoie să folosesc pistolul de lipit. Cel mai mult la acest proiect mi-a plăcut partea practică, încercând mereu să găsesc soluții ca să fie toate componentele în echilibru. Cel mai important lucru pe care cred că l-am învățat a fost cum să folosesc un senzor și cum să transform logica din mintea mea în ceva concret, palpabil. Cu siguranță, pentru mine nu a fost decât începutul folosirii plăcuței Arduino. Proiectul acesta mi-a stârnit curiozitatea și mi-a dat idei, plănuind pe viitor să folosesc plăcuța Arduino și la alte proiecte personale.

Download

  • Arhiva cu sursa:

fmr.zip

  • README:

readme_followmerobot.docx

Bibliografie și Resurse

pm/prj2021/dbrigalda/followme-robot.txt · Last modified: 2021/06/02 02:28 by stefania.frunza
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