This shows you the differences between two versions of the page.
|
pm:prj2023:apredescu:trashbot [2023/05/01 13:11] flavius.usturoi created |
pm:prj2023:apredescu:trashbot [2023/05/18 10:58] (current) flavius.usturoi [Jurnal] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| <note tip> | <note tip> | ||
| - | Prezentarea pe scurt a proiectului vostru: | + | În cadrul acestui proiect voi realiza un trashbot inteligent ce iși va deschide capacul în momentul în care detectează un obiect în apropierea sa, detectarea realizându-se cu ajutorul unui **senzor ultrasonic HC-SR04**. Un **servomotor SG90** va fi responsabil de deschiderea capacului, dar și de închiderea acestuia, atunci când îndepartăm obiectul sau după scurgerea unui anumit delay. Astfel, vom fi scutiți de modalitatea neigienică de a atinge mereu coșul când dorim să aruncăm un obiect la gunoi. |
| - | * ce face | + | |
| - | * 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> | </note> | ||
| - | ===== Descriere generală ===== | + | ===== Schemă bloc ===== |
| + | {{:pm:prj2023:apredescu:block_diagram.png?700|}} | ||
| - | <note tip> | ||
| - | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | ||
| - | |||
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
| - | </note> | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| <note tip> | <note tip> | ||
| - | Aici puneţi tot ce ţine de hardware design: | + | Pentru realizarea proiectului sunt necesare următoarele componente: |
| - | * listă de piese | + | * Arduino UNO R3 |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * Servomotor SG90 |
| - | * diagrame de semnal | + | * Senzor ultrasonic HC-SR04 |
| - | * rezultatele simulării | + | * Breadboard |
| + | * Baterie 9V | ||
| + | * Conector baterie 9V | ||
| + | * Fire jumper M to M | ||
| + | * Fire jumper M to F | ||
| + | {{:pm:prj2023:apredescu:hardware_design_trashbot.jpg?600|}} | ||
| </note> | </note> | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| - | |||
| <note tip> | <note tip> | ||
| - | Descrierea codului aplicaţiei (firmware): | + | Codul ce va fi încărcat pe plăcuța Arduino este următorul: |
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | <code> |
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | #include <servo.h> |
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
| - | * (etapa 3) surse şi funcţii implementate | + | const int trigPin = 6; |
| + | const int echoPin = 5; | ||
| + | const int servoPin = 3; | ||
| + | const int MAX_DISTANCE = 50; | ||
| + | const int MIN_DISTANCE = 0; | ||
| + | |||
| + | Servo servo; | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | pinMode(trigPin, OUTPUT); | ||
| + | pinMode(echoPin, INPUT); | ||
| + | servo.attach(servoPin); | ||
| + | } | ||
| + | void loop() | ||
| + | { | ||
| + | int duration, distance; | ||
| + | |||
| + | digitalWrite(trigPin, HIGH); | ||
| + | delay(1); | ||
| + | digitalWrite(trigPin, LOW); | ||
| + | |||
| + | // Measure the pulse input in echo pin | ||
| + | duration = pulseIn(echoPin, HIGH); | ||
| + | |||
| + | // Distance is half the duration divided by 29.1 | ||
| + | distance = duration / 2 / 29.1; | ||
| + | |||
| + | // if distance less than 0.5 meter and more than 0 (0 or less means over range) | ||
| + | if (distance >= MIN_DISTANCE && distance <= MAX_DISTANCE) { | ||
| + | servo.write(50); | ||
| + | delay(3000); | ||
| + | } else { | ||
| + | servo.write(160); | ||
| + | } | ||
| + | |||
| + | delay(60); | ||
| + | } | ||
| + | </code> | ||
| </note> | </note> | ||
| Line 41: | Line 75: | ||
| <note tip> | <note tip> | ||
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | {{:pm:prj2023:apredescu:20230506_125814_1.gif?300|}} |
| </note> | </note> | ||
| - | ===== Concluzii ===== | ||
| ===== Download ===== | ===== Download ===== | ||
| - | + | <note> | |
| - | <note warning> | + | Arhiva proiectului poate fi descărcată aici: |
| - | 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ă ;-). | + | {{:pm:prj2023:apredescu:trashbot.zip|}} |
| - | + | ||
| - | 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**. | + | |
| </note> | </note> | ||
| Line 57: | Line 88: | ||
| <note tip> | <note tip> | ||
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 18.05.2023: Finalizare proiect |
| + | * 01.05.2023: Completare documentație | ||
| + | * 27.04.2023: Stabilire temă proiect | ||
| </note> | </note> | ||
| Line 63: | Line 96: | ||
| <note> | <note> | ||
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * **Servo SG90**: http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf |
| + | * **Senzor HC-SR04**: https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf | ||
| </note> | </note> | ||
| <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||