This shows you the differences between two versions of the page.
pm:prj2023:apredescu:trashbot [2023/05/01 14:23] flavius.usturoi [Hardware Design] |
pm:prj2023:apredescu:trashbot [2023/05/18 10:58] (current) flavius.usturoi [Jurnal] |
||
---|---|---|---|
Line 3: | Line 3: | ||
<note tip> | <note tip> | ||
- | Î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. | + | Î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. |
</note> | </note> | ||
===== Schemă bloc ===== | ===== Schemă bloc ===== | ||
Line 25: | Line 25: | ||
===== 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 38: | 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 54: | 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 60: | 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> | ||