This shows you the differences between two versions of the page.
pm:prj2024:fstancu:nicoleta_nina.basoc [2024/05/18 15:27] nicoleta_nina.basoc |
pm:prj2024:fstancu:nicoleta_nina.basoc [2024/05/27 09:01] (current) nicoleta_nina.basoc |
||
---|---|---|---|
Line 3: | Line 3: | ||
- | Proiectul constă în creearea/asamblarea unei mașini cu 4 roți care poate merge liber în spașiu și evită obstacolele dacă le întâlnește. Totodată, acesta semnalează cu ajutorul a 3 leduri direcția ce urmează sa o ia pentru a evita coliziunea cu obiectele. | + | Proiectul constă în creearea/asamblarea unei mașini cu 4 roți care poate merge liber în spatiu și evită obstacolele dacă le întâlnește. Totodată, acesta semnalează cu ajutorul a 1 led direcția ce urmează sa o ia pentru a evita coliziunea cu obiectele. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Ideea din spatele acestui proiect este de a folosi o placuță Arduino UNO cu un ATMEGA 328P pentru a pune în funcțiune o mașină. Folosind senzorul ultrasonor aceasta va detecta dacă există obstacole în fața ei și cu ajutorul unui servo motor va vira stânga sau dreapta (probabil aceasta decizie va fi luată random). De asemeana motoarele rotilor vor fi ghidate de un motor driver. Mașinuța va fi alimentată de baterii și va folosi un modul de coborâre de tensiune în funcție de ce input/output de curent am nevoie. Direcția de virare va fi semnalată de aprinderea unuia din ledurile corespunzatoare pentru stânga sau dreapta. | + | Ideea din spatele acestui proiect este de a folosi o placuță Arduino UNO cu un ATMEGA 328P pentru a pune în funcțiune o mașină. Folosind senzorul ultrasonor aceasta va detecta dacă există obstacole în fața ei . De asemeana motoarele rotilor vor fi ghidate de un motor driver. Mașinuța va fi alimentată de baterii și va folosi un modul de coborâre de tensiune în funcție de ce input/output de curent am nevoie. Apropierea de obstacole va fi semnalata de ledul care va pulsa. |
{{:pm:prj2024:fstancu:image_2024-05-05_000008175.png?400|}} | {{:pm:prj2024:fstancu:image_2024-05-05_000008175.png?400|}} | ||
Line 26: | Line 26: | ||
* In aceasta schema am reprezentat conectarea pinilor si interactiunea modulelor. | * In aceasta schema am reprezentat conectarea pinilor si interactiunea modulelor. | ||
* La Arduino Uno - pin 5-10 - sunt folosite pentru controlul bridge-ului, cu ajutorul carora voi trimite semnale pentru a efectua miscari stanga/dreapta, inainte, inapoi. Am 4 motoare, sunt conectate la bridge in asa fel incat cele 2 motoare din stanga si dreapta sa se invarta in aceeasi directie. Pinul A2-A3 - le folosesc pentru comunicarea cu senzorul ultrasonic. Pinul de GND si VCC al senzorului sunt conectate la 5V output si GND al Arduino. | * La Arduino Uno - pin 5-10 - sunt folosite pentru controlul bridge-ului, cu ajutorul carora voi trimite semnale pentru a efectua miscari stanga/dreapta, inainte, inapoi. Am 4 motoare, sunt conectate la bridge in asa fel incat cele 2 motoare din stanga si dreapta sa se invarta in aceeasi directie. Pinul A2-A3 - le folosesc pentru comunicarea cu senzorul ultrasonic. Pinul de GND si VCC al senzorului sunt conectate la 5V output si GND al Arduino. | ||
- | * Modulul de coborare tensiune - inputul de + este conectat printr-un switch la +-ul alimentarii, totodata il conectez la bridge pentru a alimenta motoarele la pinul care suporta mai mult de 5V, inputul de - este conectat la GND al aliemntarii. Outputul este conectat la Vin al Arduino si GND la GND pt Arduino dar si GND bridge. | + | * Modulul de coborare tensiune - inputul de "+" este conectat printr-un switch la "+" alimentarii, totodata il conectez la bridge pentru a alimenta motoarele la pinul care suporta mai mult de 5V, inputul de "-" este conectat la GND al aliemntarii. Outputul este conectat la Vin al Arduino si GND la GND pt Arduino dar si GND bridge. |
- | * Ledul are catodul conectat la GND general, iar anodul este conectat intr-o rezistenta de 330 ohmi la pinul 3 (pentru a putea folosi pwm). | + | * Ledul are catodul conectat la GND general, iar anodul este conectat intr-o rezistenta de 330 ohm la pinul 3 (pentru a putea folosi pwm). |
* Alimentarea (baterii) are un output de 6V. Putem adauga baterii atat cat suporta modulul de coborare tensiune avand in vedere si suportul maxim pentru bridge. | * Alimentarea (baterii) are un output de 6V. Putem adauga baterii atat cat suporta modulul de coborare tensiune avand in vedere si suportul maxim pentru bridge. | ||
*{{:pm:prj2024:fstancu:circuit_pm_final.png?700|}} | *{{:pm:prj2024:fstancu:circuit_pm_final.png?700|}} | ||
Line 36: | Line 36: | ||
- | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * mediu de dezvoltare - Arduino IDE |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
* algoritmi şi structuri pe care plănuiţi să le implementaţi | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | + | * --> state machine cu stari de genul merge-inainte , merge- inapoi, roteste-dreapta, roteste-stanga |
- | </note> | + | * verifica daca in stanga sau in dreapta are distanta mai mare pentru a merge inainte si se duce in directia respectiva |
+ | * se bazeaza pe inputul dat la pinii pentru motoare (high/low) | ||
+ | * led- implementare pwm pentru a pulsa cand efectueaza unele manevre | ||
+ | * am implementat o intrerupere pentru a face ledul sa pulseze | ||
+ | * folosesc uart pentru comunicarea cu pinii | ||
+ | https://github.com/basocnicoletanina/PM-masinuta-roomba-fara-aspirare | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | In primul rand am intampinat dificultati la nivel de alimentare - idee initiala a fost sa folosesc 4 baterii alkaline , ceea ce aparent nu a fost o idee buna aka suficient si nu am putut face rost de baterii Li-ion , deci am venit cu rezolutia de a uni inca doua baterii in serie , iar modulul de coborare de tensiune nu regla tensiunea (probabil era stricat sau l-am stricat eu incercand sa o reglez), deci nu l-am mai integrat in circuit. Plus la acest lucru primul senzor era stricat deci a trebuit sa folosesc un altul care nu imi da valori eronate, dar overall l-am facut sa lucreze | ||
+ | Respectiv actual schema arata cam asa: | ||
+ | {{:pm:prj2024:fstancu:circuit_pm_final_1.png?700|}} | ||
+ | Robotelul aratand asa : | ||
- | <note tip> | + | {{:pm:prj2024:fstancu:bumblebee.jpg?500|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi-a placut sa lucrez la proiect dat fiind faptul ca m-am invatat sa lipesc si am inteles mai bien cum se integreaza hardware niste componente. Totodata chiar si codul a fost unul ceva mai challenging decat m-am asteptat dar mi-a placut sa ma joc cu el , si cred ca cel mai important lucru e ca mi-a starnit curiozitatea pentru astfel de idei. | ||
===== Download ===== | ===== Download ===== | ||
Line 60: | Line 65: | ||
</note> | </note> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://docs.arduino.cc/hardware/uno-rev3/ |
- | </note> | + | https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ |
<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> | ||