Obstacle Mapper

Introducere

Proiectul presupune construirea unei mașinuțe teleghidate, ce poate fi controlată cu ajutorul unui smartphone, prin Bluetooth. Mașinuța poate transmite înapoi distanța pană la obstacolele din jurul acesteia.

Descriere generală

Mașinuța va avea două moduri de funcționare (ambele necesitând conexiunea cu un smartphone): manual si obstacle mapping.

În modul manual, mașinuța va putea fi controlată direct. În plus, aceasta va detecta situația când e condusă într-un obstacol și va frâna.

În modul obstacle mapping, mașinuța se va deplasa singură într-o anumită zonă și, cu ajutorul informației de la senzorii de distanță și de la encodere-le aflate la roți, va fi generată o hartă cu obstacolele întâlinite.

Pe langă aceste funcționalități de bază, poate voi reuși să implementez si alte functionalități precum: folosirea altor senzori pentru a descrie mai detaliat zona (generarea unei hărți a luminii ambientale, a temperaturii, etc), utilizarea unui buzzer ce va produce sunete în funcție de proximitatea față de obstacole si altele.

Informații hardware

Listă de piese:

  • Placă de bază PM 2019 (cu microcontroller Atmega324PA)
  • Kit robot cu 4 roți (incluzând șasiu, 4 motorașe și roți și suport pentru baterii)
  • Modul Bluetooth HC-05
  • 1x Senzor ultrasonic de distanță HC-SR04
  • 2x Modul driver L298N
  • 4x Modul senzor fotoelectric LM393
  • [Opțional] LED-uri, modul buzzer, diverși senzori
  • [Diverse] Fire, rezistențe, etc

Schema electrica

Software design

Codul este relativ simplu. Timerele 0 si 2 sunt folosite pentru PWM la cele doua drivere de motoare. Timerul 1 este folosit pentru transmiterea informatiilor pe blootooth, dar si pentru masurarea timpului trecut de la emiterea pana la receptia undelor ultrasonice pentru senzorii de distanta.

Codul pentru android este ceva mai complicat. Acesta strange informatiile de la senzori pentru a putea afla pozitia masinutei relativ la pozitia de start, dar si informatii despre obstacolele din jur. Exista si un pilot automat destul de basic.

teo_cod.zip

Rezultate obtinue

Masinuta se controleaza foarte bine iar informatiile de la senzorii montati pe encodere au o acuratete buna. Din pacate, cu toate ca am montat 5 senzori de distanta am ales sa folosesc unul singur deoarece acestia interferau intre ei. Totodata, senzorii de distanta folositi dau rezultate bune doar atunci cand obiectul de care se apropie masinuta este perpendicular pe directia de deplasare a masinutei. Cu toate acestea, am incercat sa folosesc informatiile limitate pentru a creea oarecum o harta a obstacolelor si al traseului masinutei, dar si un pilot automat ce face stanga la intalnirea unui obstacol.

A fost destul de interesant sa lucrez la acest proiect :)

Bibliografie

pm/prj2019/apredescu/map-maker.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