Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:apredescu:maze_solver [2023/05/04 12:01]
andrei.bulica created
pm:prj2023:apredescu:maze_solver [2023/05/30 08:04] (current)
andrei.bulica
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +Proiectul presupune realizarea unui robot care rezolva un labirint fara avea informatii despre acesta. Robotul are la baza o placa Arduino ​care controleaza 2 motoare in functie de senzorii de proximitate si ultima miscare efectuata. In plus, user-ul poate interveni cu o sursa de lumina pentru ​dirija robotul pe traseul dorit, evitand in acelasi timp peretii labirintului. 
-Prezentarea pe scurt a proiectului vostru: + 
-  * ce face +Proiectul este inspirat din cunoscutul joc “Ajuta soarecele sa gaseasca cascavalul” si are ca scop prezentarea unei variante ​de rezolvare a unui labirint indiferent de dimensiunea/​dificultatea acestuia. 
-  * care este scopul lui + 
-  * care a fost ideea de la care aţi pornit +
-  ​* ​de ce credeţi că este util pentru alţii şi pentru voi +
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +Masinuta are atasati in partea frontala 3 senzori ​de proximitate HC-SR04 pentru ​determina obstacolele si 2 fotorezistente ​care stabilesc directia sursei de lumina.
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită ​de o descriere ​acestora precum şi a modului în care interacţionează.+
  
-Exemplu ​de schemă blochttp://www.robs-projects.com/​mp3proj/​newplayer.html +  
-</​note>​+ 
 +Principiul ​de functionare a masinutei este urmatorul: 
 + 
 +· In cazul in care senzorii ultrasonici din lateralul masinii detecteaza peretii, atunci aceasta inainteaza 
 + 
 +· In cazul in care toti senzorii ultrasonici detecteaza peretii, atunci masina executa manevra de intoarcere deoarece acest se afla la un capat de drum 
 + 
 +· In cazul in care niciun senzor ultrasonic NU detecteaza peretii, atunci masina va efectua un viraj la dreapta, deoarece se afla intr-o intersectie 
 + 
 +Utilizatorul are posibilitatea de a interveni in rezolvarea labirintului prin folosirea unei surse de lumina (exlanterna) care sa directioneze masina pe ruta dorita
 + 
 + 
 +{{:​pm:​prj2023:​apredescu:​pm_proiect_maze_solver.png?​800|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +Lista de piese
-Aici puneţi tot ce ţine de hardware design+ 
-  listă de piese + 
-  scheme ​electrice ​(se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +   * Arduino UNO ATMEGA328P 
-  * diagrame de semnal ​ + 
-  * rezultatele simulării +   * Senzori Ultrasonici HC-SR04 
-</​note>​+ 
 +   ​* Fotorezistente 
 + 
 +   * 2 motoare ​electrice 
 + 
 +   ​* Rezistente 
 + 
 +   ​* Baterie  
 + 
 +   * Un buton 
 + 
 +   * Led-uri 
 + 
 +   ​* Buton 
 + 
 +Schema Electrica: 
 + 
 + 
 + 
 +Design-ul circuitului:​ 
 + 
 + 
 + 
 +{{:​pm:​prj2023:​apredescu:​maze_solver_design.png?700|}} 
 + 
 + 
 +{{:​pm:​prj2023:​apredescu:​maze_solver_schema_electrica.png?​700|}} 
  
 ===== Software Design ===== ===== Software Design =====
 +
 +Proiectul este realizat utilizand mediul de dezvoltare Arduino IDE.
 +
 +Descrierea codului aplicaţiei:​
 +
 +void setup() - se configureaza intreruperile hardware si citirea analogica impreuna cu calibrarea senzorilor de lumina:
 + ​ISR(INT0_vect):​ intrerupere generata la apasarea butonului PD2 pentru finalizarea procesului de calibrare a senzorilor de lumina.
 +setupADC() - configureaza citirea analogica de pe pinii PA0 si PA1 pentru fotorezistente.
 +Cat timp robotul de afla in modul de calibrare, se calculeaza minimul si maximul indicati de senzorii de lumina.
 +
 +
 +void loop() - se verifica nivelul de luminozitate,​ iar in cazul in care se depaseste un prag, vitezele motoarelor se vor seta direct proportional cu valorile citite de la senzori, urmarind astfel sursa de lumina. In acelasi timp, se calculeaza distanta indicata de fiecare senzor de proximitate (getDistLeft(),​ getDistMid(),​ getDistRight()) si in functie de acestia, robotul va evita orice obstacol. Pentru rezolvarea labirintului,​ robotul va vira mereu la dreapta atunci cand este posibil.
  
  
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +{{:​pm:​prj2023:​apredescu:​maze_solver_robot.jpeg?​400|}}
 +
 +{{:​pm:​prj2023:​apredescu:​maze_solver_view_robot_maze.jpeg?​400|}}
 +
 +{{:​pm:​prj2023:​apredescu:​maze_solver_viewup.jpeg?​400|}}
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Acest proiect a reprezentat o oportunitate pentru a pune in aplicare cunostintele dobandite la laboratoare. Modul de abordare pentru a imbina partea hardware cu cea software si de a le folosi la o capacitate cat mai mare, m-a ajutat sa realizez cat de importanta este proiectarea atenta a proiectului inainte de implementare. 
 +Pentru o solutie mai eficienta in rezolvarea labirintului ar fi fost necesar un sasiu mai mic/mai usor de manevrat in viraje.
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +===== Download ===== 
-</​note>​+ 
 +{{:pm:prj2023:apredescu:pm_maze_solver.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +   * 04.05 - Scriereaa documentatiei 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului+   * 21.05 - Adaugare Hardware design 
-</​note>​+   * 28.05 - Adaugare Software design 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2023/apredescu/maze_solver.1683190875.txt.gz · Last modified: 2023/05/04 12:01 by andrei.bulica
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