Differences

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

Link to this comparison view

pm:prj2024:aungureanu:delia_ioana.craciun [2024/05/24 11:18]
delia_ioana.craciun [Hardware Design]
pm:prj2024:aungureanu:delia_ioana.craciun [2024/05/27 10:16] (current)
delia_ioana.craciun [Hardware Design]
Line 22: Line 22:
   * 2 motoare 3-6V DC cu roti   * 2 motoare 3-6V DC cu roti
   * Regulator de tensiune LM2596   * Regulator de tensiune LM2596
-  * Rezistente\+  * Rezistente
   * Ecran OLED   * Ecran OLED
 </​note>​ </​note>​
-{{:​pm:​prj2024:​aungureanu:​schematic3.png?800|}}+{{:​pm:​prj2024:​aungureanu:​schema_electronica_fnala_delia.png?800|}} 
 +<note tip> 
 +Aspecte relevante despre conexiunile hardware: 
 +  * La motordriver:​ Pinii EnA si EnB activeaza/​dezactiveaza motoarele.Pinii IN1,IN2(pt M1) si IN3,IN4(pt M2) permit placutei Arduino sa seteze directia de rotatie a motoarelor, informatie transmisa mai departe catre motoare prin iesirile OUT1,​OUT2,​OUT3,​OUT4. 
 +  * La servomotor: Pinul 5 al Arduino se conecteaza la pinul PWM de la servomotor.Lungimea semnalului cand este pe HIGH este o informatie cruciala,​deoarece ii spune servomotorului cat trebuie sa se roteasca. 
 +  * La modulul bluetooth: Acesta trebuie alimentat la un voltaj constant de 5V, de aceea am folosit un regulator de tensiune care are ca input 6V si ii transforma in 5V.De asemenea, pinii RX si TX ai modulului blutooth suporta doar 3,3V.Cum TX al HC-05 transmite semnale de 3,3V , ramane sa punem un divizor de tensiune doar la pinul RX al modulului bluetooth, pentru ca nu cumva placuta Arduino sa transmita semnale cu un voltaj mai mare si sa deterioreze componenta. 
 +  * La senzorul ultrasonic pinul Trig este conectat la pinul digital 12 al Arduino.Acest pin este utilizat pentru a trimite un impuls de 10 microsecunde pentru a initia masurarea distantei.Pinul Echo e legat la pinul digital 13 al Arduino.Acest pin primeste semnalul de la senzor care este utilizat pentru a calcula durata calatoriei undei sonore si,​implicit,​distanta. 
 +  * Ecranul OLED comunica cu Arduino prin protocolul I2C astfel: foloseste SDA(serial data) pentru transmiterea datelor si SCL(Serial Clock) pentru semnalul de ceas care sincronizeaza transmisia datelor. 
 +</​note>​
 <note tip> <note tip>
 Aici puneţi tot ce ţine de hardware design: Aici puneţi tot ce ţine de hardware design:
Line 36: Line 44:
 ===== Software Design ===== ===== Software Design =====
 Descriere: Descriere:
- ​Robotul asteapta sa fie pornit dupa conectarea modului bluetooth la telefon, printr-o aplicatie care ii transmite ca poate porni.Dupa aceea, robotul isi incepe procesul autonom de a merge si a ocoli obstacolele,​ cu ajutorul senzorului de distanta si a servo motorului care ii permite senzorului de distanta sa analizeze imprejurimile.+ ​Robotul asteapta sa fie pornit dupa conectarea modului bluetooth la telefon, printr-o aplicatie care ii transmite ca poate porni.Dupa aceea, robotul isi incepe procesul autonom de a merge si a ocoli obstacolele,​ cu ajutorul senzorului de distanta si a servo motorului care ii permite senzorului de distanta sa analizeze imprejurimile.Robotelul poate fi oprit oricand din aplicatie. 
 + 
 + 
 + Din punctul de vedere al laboratoarelor,​ au fost atinse 4 concepte din acestea.Primul ar fi UART, folosit in comunicarea cu modulul Bluetooth.Al doilea ar tine de intreruperi,​ deoarece modulul Bluetooth poate functiona si astfel daca este conectat la pinii 0 si 1 (RX,TX) ai placutei Arduino.In plus,​senzorul ultrasonic l-am facut sa functioneze pe baza intreruperilor,​ existand o functie de intrerupere care este apelata atunci cand se schimba starea pinului echo (de la LOW la HIGH sau de la HIGH la LOW).Si un al treilea concept folosit este cel de comunicare seriala cu I2C, deoarece am adaugat si un ecran OLED.De asemenea, servomotorul foloseste semnale de tip PWM pentru pozitionarea lui, folosind pinul 5 al Arduino-ului ca pin de control. 
  
 Biblioteci folosite: Biblioteci folosite:
   * '​Servo.h'​.Am folosit aceasta bilioteca pentru controlul precis al servo-motorului,​deoarece miscarea acestuia la unghiuri specifice permite senzorului ultrasonic sa gaseasca mai multe date despre obstacole.   * '​Servo.h'​.Am folosit aceasta bilioteca pentru controlul precis al servo-motorului,​deoarece miscarea acestuia la unghiuri specifice permite senzorului ultrasonic sa gaseasca mai multe date despre obstacole.
   * '​SoftwareSerial.h'​.Am folosit aceasta biblioteca pentru a crea interfata seriala suplimentara pentru modulul Bluetooth HC-05, astfel putand folosi pini digitali.   * '​SoftwareSerial.h'​.Am folosit aceasta biblioteca pentru a crea interfata seriala suplimentara pentru modulul Bluetooth HC-05, astfel putand folosi pini digitali.
 +  * '​Wire.h'​ permite comunicarea I2C intre diferite dispozitive electronice,​ facilitand schimbul de date intre Arduino si ecranul meu OLED.
 +  * '​Adafruit_GFX.h'​ ofera functionalitati de desenare si manipulare grafica, permitand afisare de forme,text si imagini pe ecrane grafice, iar in cazul meu eu afisez un text.
 +  * '​Adafruit_SSD1306.h'​ este spcifica pentru controlul ecranelor OLED bazate pe controlerul SSD1306, furnizand functionalitati pentru initializare,​ desenare si afisarea informatiilor pe aceste ecrane.
 Mediu de dezvoltare: Arduino IDE Mediu de dezvoltare: Arduino IDE
  
 Link video: Link video:
  
-https://​youtube.com/​shorts/​ZvYVPEI_7ec?​feature=share+https://​youtube.com/​shorts/​Wpih2Vrniqk
  
 <note tip> <note tip>
Line 58: Line 73:
  
 <note tip> <note tip>
-Rezultatul este cel dorit.Robotelul reuseste sa mentina conexiunea bluetooth cu aplicatia de pe telefon, fiind disponibila comunicarea.Robotelul porneste din aplicatie, iar dupa reuseste sa evite singur obstacolele care ii sunt in cale si se plimba autonom.+Rezultatul este cel dorit.Robotelul reuseste sa mentina conexiunea bluetooth cu aplicatia de pe telefon, fiind disponibila comunicarea.Robotelul porneste din aplicatie, iar dupa reuseste sa evite singur obstacolele care ii sunt in cale si se plimba autonom.De asemenea, robotelul se opreste in momentul in care doresc si transmit acest lucru din aplicatie.Ecranul atasat circuitului afiseaza mesajul dorit.
 </​note>​ </​note>​
  
Line 70: Line 85:
  
 ===== Download ===== ===== Download =====
 +Cod proiect: 
 +{{:​pm:​prj2024:​aungureanu:​craciun_delia_ioana_333cc.zip|}}
 <note warning> <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ă ;-). 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ă ;-).
Line 93: Line 109:
   * https://​forum.arduino.cc/​t/​fixed-hc-05-now-connecting-to-motorshield/​439660/​6   * https://​forum.arduino.cc/​t/​fixed-hc-05-now-connecting-to-motorshield/​439660/​6
   * https://​www.specdecoder.com/​news/​how-to-solve-arduino-hc-05-bluetooth-module-auto-disconnect-problem-esp32-arduino-uno-arduino-mega   * https://​www.specdecoder.com/​news/​how-to-solve-arduino-hc-05-bluetooth-module-auto-disconnect-problem-esp32-arduino-uno-arduino-mega
 +  * https://​randomnerdtutorials.com/​guide-for-oled-display-with-arduino/​
 </​note>​ </​note>​
 <​note>​ <​note>​
pm/prj2024/aungureanu/delia_ioana.craciun.1716538704.txt.gz · Last modified: 2024/05/24 11:18 by delia_ioana.craciun
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