Differences

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

Link to this comparison view

pm:prj2023:amocanu:coselectric [2023/05/28 20:51]
david.mihalcenco
pm:prj2023:amocanu:coselectric [2023/05/28 21:06] (current)
david.mihalcenco
Line 37: Line 37:
     - Breadboard     - Breadboard
     - Ecran LCD I2C     - Ecran LCD I2C
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
 </​note>​ </​note>​
  
Line 47: Line 44:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR) +  * mediu de dezvoltare: Arduino IDEPYTHON 
-  * librării şi surse 3rd-party ​(e.gProcyon AVRlib) +  * librării şi surse 3rd-party ​: servo.h, LiquidCrystal_I2C,​ pyserial 
-  * algoritmi şstructuri pe care plănuiţsă le implementaţ+  * Surse: 
-  ​* ​(etapa 3surse şi funcţii implementate+ 
 +Servo.h: Aceasta este o bibliotecă pentru controlul servo-motoarelor. 
 + 
 +LiquidCrystal_I2C.h:​ Aceasta este o bibliotecă pentru controlul afișajului LCD I2C. 
 + 
 +Funcții implementate:​ 
 + 
 +measureDistance():​ Această funcție măsoară distanța utilizând senzorul ultrasunete. Ea configurează pini pentru emițătorul șreceptorul ultrasunetelor,​ măsoară durata semnalului de întoarcere șcalculează distanța în funcție de durată. 
 + 
 +setup(): Această funcție este apelată o singură dată la pornirea sistemului. Ea inițializează comunicarea serială, atașează servo-motorul la pinul specificat, configurează pini pentru senzorul ultrasunete șafișajul LCD, închide capacul coșului de gunoi și inițializează LCD-ul. 
 + 
 +loop(): Această funcție se execută într-un ciclu continuu. Ea verifică disponibilitatea datelor seriale primite, măsoară distanța utilizând temporizatorul sau fără temporizator în funcție de regimul selectat, deschide sau închide servo-motorul în funcție de distanța măsurată știmpul specificat, afișează mesaje pe afișajul LCD în funcție de distanța măsurată și întârzie pentru o perioadă de timp specificată.
 </​note>​ </​note>​
  
Line 61: Line 69:
  
 ===== Concluzii ===== ===== Concluzii =====
 +Aparatul utilizează un senzor ultrasunete pentru a măsura distanța până la obiectele din fața lui și un servo-motor pentru a deschide și închide capacul coșului de gunoi.
 +
 +În funcție de valoarea distanței măsurate de senzorul ultrasunete,​ se iau decizii referitoare la deschiderea sau închiderea capacului coșului de gunoi:
 +
 +Dacă sistemul este în regimul "​1"​ (isFirst = 1), atunci se măsoară distanța la intervale regulate folosind un temporizator. Dacă distanța măsurată este mai mică de 10 cm, servo-motorul este atașat și deschide capacul treptat pe parcursul unei perioade de timp specificate de servoOpenTime (3000 milisecunde în acest caz). Dacă timpul de deschidere a expirat sau distanța măsurată este mai mare sau egală cu 10 cm, servo-motorul este dezasociat și capacul rămâne închis.
 +
 +Dacă sistemul nu este în regimul "​1"​ (isFirst = 0), atunci distanța este măsurată fără a utiliza temporizatorul. Dacă distanța măsurată este mai mică de 10 cm și nu există un temporizator în desfășurare (need_timer = false), servo-motorul este atașat și deschide capacul imediat. De asemenea, temporizatorul este pornit (need_timer = true) pentru a se asigura că servo-motorul nu rămâne deschis pentru o perioadă prea lungă de timp. Capacul rămâne deschis până când temporizatorul expiră și apoi servo-motorul este dezasociat.
 +
 +De asemenea, codul utilizează o librărie LiquidCrystal_I2C pentru a afișa mesaje pe un afișaj LCD I2C. În funcție de distanța măsurată de senzorul ultrasunete,​ mesajul "Sunt Plin" sau "Sunt Gol" este afișat pe afișaj.
 +
 +În concluzie, acest cod combină utilizarea unui senzor ultrasunete,​ unui servo-motor și unui afișaj LCD I2C pentru a crea un sistem automat de coș de gunoi care deschide și închide capacul în funcție de distanța față de obiectele din fața sa și afișează un mesaj corespunzător pe afișajul LCD.
  
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +Arhiva ​{{:pm:prj2023:amocanu:cosul_de_gunoi.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 73: Line 90:
  
 <note tip> <note tip>
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+→ Am primit piesele (1 mai 2023) 
 + 
 +→ Am realizat cablajul (10 mai 2023) 
 + 
 +→ Scriu cod pentru dispozitiv (24 mai 2023) 
 + 
 +→ Asamblez tot in cosul de gunoi (25-28 mai 2023) 
 </​note>​ </​note>​
  
pm/prj2023/amocanu/coselectric.1685296285.txt.gz · Last modified: 2023/05/28 20:51 by david.mihalcenco
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