This shows you the differences between two versions of the page.
pm:prj2024:azamfir:george.angheloiu [2024/05/26 02:43] george.angheloiu [Rezultate Obţinute] |
pm:prj2024:azamfir:george.angheloiu [2024/05/27 16:34] (current) george.angheloiu [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Cannon ====== | ====== Cannon ====== | ||
===== Introducere ===== | ===== Introducere ===== | ||
+ | |||
+ | <note> | ||
+ | Autor: George-Bogdan Angheloiu | ||
+ | |||
+ | Grupa: 334CB | ||
+ | </note> | ||
Proiectul constă într-un tun rotit de două servomotoare, care folosește video preluat de la o cameră pentru a ținti. Acest video este trimis către un display montat. Lansarea proiectilului este realizată tot cu ajutorul unui servomotor. | Proiectul constă într-un tun rotit de două servomotoare, care folosește video preluat de la o cameră pentru a ținti. Acest video este trimis către un display montat. Lansarea proiectilului este realizată tot cu ajutorul unui servomotor. | ||
Line 30: | Line 36: | ||
* rezultatele simulării | * rezultatele simulării | ||
</note> | </note> | ||
- | Listă componente: | + | Listă componente pentru proiectul original: |
* 1x Arduino UNO R3 | * 1x Arduino UNO R3 | ||
* 3x Servomotor SG90 | * 3x Servomotor SG90 | ||
* 3x push buttons | * 3x push buttons | ||
+ | * 1x level shifter | ||
* 1x Modul Camera OV7670 | * 1x Modul Camera OV7670 | ||
* 1x Modul LCD de 2.8" cu SPI și Controller ILI9341 | * 1x Modul LCD de 2.8" cu SPI și Controller ILI9341 | ||
Line 41: | Line 48: | ||
* 1x rezistență 3KΩ | * 1x rezistență 3KΩ | ||
* 2x rezistențe 10KΩ | * 2x rezistențe 10KΩ | ||
+ | * fire tată-tată și mamă-mamă | ||
+ | |||
+ | Listă componente suplimentare: | ||
+ | * 6x rezistență 1KΩ | ||
+ | * 6x rezistență 2KΩ | ||
Schema electrică: | Schema electrică: | ||
+ | |||
{{:pm:prj2024:azamfir:image_2024-05-17_192930603.png?700|}} | {{:pm:prj2024:azamfir:image_2024-05-17_192930603.png?700|}} | ||
+ | |||
+ | Modificări aduse la schema electrică: | ||
+ | * Am folosit rezistențe suplimentare în locul level shifter-ului care nu mai mergea cum trebuia | ||
+ | * Anumiți pini au fost schimbați și anumite legături adăugate din cauza problemelor cu display-ul și camera | ||
+ | |||
+ | {{:pm:prj2024:azamfir:whatsapp_image_2024-05-27_at_03.40.57.jpeg?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediu de dezvoltare: Visual Studio Code + PlatformIO | ||
+ | Librării folosite: | ||
+ | * Arduino | ||
+ | * Adafruit ILI9341 | ||
+ | * [[https://circuitdigest.com/microcontroller-projects/how-to-use-ov7670-camera-module-with-arduino|Modul cameră OV7670 cu Arduino]] | ||
- | <note tip> | + | Ideal, aș fi folosit proiectul LiveOV7670 la care aș fi adus modificări pentru a acționa servomotoarele. Din păcate, acest proiect nici măcar nu a compilat, asemenea majorității librăriilor pe care am încercat să le folosesc. |
- | 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> | + | |
- | Mediu de dezvoltare: Visual Studio Code + PlatformIO | + | Adafruit ILI9341 a fost folosit pentru interacțiunea cu display-ul. Am folosit librăria Arduino pentru funcționalitățile plăcuței folosite (Arduino Uno). |
+ | |||
+ | Pentru inițializarea camerei, am folosit următoarele comenzi: | ||
+ | <code cpp> | ||
+ | arduinoUnoInut(); | ||
+ | camInit(); | ||
+ | setResolution(); | ||
+ | setColor(); | ||
+ | writeReg(0x11, 13); | ||
+ | </code> | ||
- | Librării folosite: | + | Pentru a captura imagini și a le trimite către display am apelat în loop: |
+ | <code cpp> | ||
+ | captureImgTft(tft, 320, 240); | ||
+ | </code> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Am obținut un dispozitiv care realizează conexiunea dintre cameră și display, după multe teste și schimbări pe care le-am realizat. După trei schimbări de display, ultimul dintre ele a funcționat în aproximativ 50% din încercări. Camera a suferit aceleași schimbări aleatoare: funcționa la început, iar apoi selectiv: se trimiteau pixeli, însă foarte încet și valorile erau eronate de multe ori. | ||
+ | Până la urmă, am reușit să leg display-ul de cameră pentru câteva teste. Acum, această conexiune nu mai functionează dintr-un motiv necunoscut: nu am modificat nimic, nici pe hardware, nici pe software timp de mai puțin de 24 de ore, iar circuitul care funcționa parțial înainte nu mai merge acum. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
Line 141: | Line 172: | ||
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*. | 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> | ||
+ | {{:pm:prj2024:azamfir:cannon.zip|}} | ||
+ | |||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 153: | Line 186: | ||
**21-25 mai:** am întâmpinat probleme cu componentele, pe care am încercat să le rezolv din hardware și software | **21-25 mai:** am întâmpinat probleme cu componentele, pe care am încercat să le rezolv din hardware și software | ||
+ | |||
+ | **26-27 mai:** testare + update proiect actual | ||
**Probleme întâmpinate:** | **Probleme întâmpinate:** | ||
+ | * o parte din firele din pachetul nou-nouț s-au stricat | ||
+ | * am avut 3 display-uri diferite pe care le-am încercat pe rând, fiindcă niciunul dintre ele nu funcționa în mod constant (uneori da, uneori nu); doar le conectam la alimentare și nu se aprindeau întotdeauna | ||
+ | * nu am găsit suficiente resurse pentru a conecta camera de monitor; am avut o singură referință pe care am urmat-o și care nu a funcționat | ||
+ | * probleme de upload a codului pe plăcuța Arduino Uno atunci când sunt conectate componente; pentru testare deconectam 3v3 sau 5v de la Arduino Uno | ||
</note> | </note> | ||
Line 160: | Line 199: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*. | ||
- | </note> | ||
Resurse Software: | Resurse Software: | ||
+ | * https://circuitdigest.com/microcontroller-projects/how-to-use-ov7670-camera-module-with-arduino | ||
+ | * https://registry.platformio.org/libraries/adafruit/Adafruit%20OV7670 | ||
+ | * https://registry.platformio.org/libraries/arduino-libraries/Arduino_OV767X | ||
+ | * https://registry.platformio.org/libraries/arducam/arducam_dvp | ||
+ | * https://www.hackster.io/techmirtz/visual-capturing-with-ov7670-on-arduino-069ebb | ||
+ | * https://www.youtube.com/watch?v=R94WZH8XAvM&t=4s | ||
Resurse Hardware: | Resurse Hardware: | ||
* Tutoriale de soldare și legare a componentelor hardware | * Tutoriale de soldare și legare a componentelor hardware | ||
* Datasheets ale componentelor hardware | * Datasheets ale componentelor hardware | ||
+ | * https://www.youtube.com/watch?v=R94WZH8XAvM&t=4s | ||
<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> |