Differences

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

Link to this comparison view

pm:prj2022:cstan:120 [2022/05/26 14:09]
ionel.patrascu3101 [Schema Electrica]
pm:prj2022:cstan:120 [2022/05/26 15:48] (current)
ionel.patrascu3101 [Download]
Line 57: Line 57:
 Potențiometrul este similar cu cel reostat, cu diferența că cel reostat disipează mai multă putere și este utilizat în circuitele de curent mai mare. Potențiometrul este similar cu cel reostat, cu diferența că cel reostat disipează mai multă putere și este utilizat în circuitele de curent mai mare.
  
 +
 +
 +----
 ** Componente aditionale ** ** Componente aditionale **
   * Breadboard   * Breadboard
Line 69: Line 72:
 ===== Software Design ===== ===== Software Design =====
  
 +Pentru etapa de dezvoltare software, am folosit Arduino IDE singura librărie 3rd-party folosită a fost libraria NeoPixel de la Adafruit. Am folosit aceasta librarie pentru un control mai facil al benzii cu led-uri.
 +
 +Codul este organizat sub forma unui FSM (Finite-state machine) cu 4 stări pe baza schemei de mai jos. Implementarea este făcută folosind case în loop. Trecerea dintr-o stare în alta, se face folosind un sistem de întreruperi configurat sa comute starea (n.r. la starea următoare) în momentul în care butonul Mode este apăsat.
 +
 +Programul pornește din starea 0. Pentru a se face trecerea din starea curenta în starea următoare, este necesară apăsarea butonului Mode. În cadrul schemei, aceste legături sunt marcate cu albastru. ​
 +
 +Atâta timp cât nu este perturbat extern, programul va continua sa execute starea în care se afla la acel moment(legăturile negre).
 +{{ :​pm:​prj2022:​cstan:​patrascu_ione:​fsm-code.png?​nolink&​400 |}}
 +
 +Din punct de vedere software, sunt foarte putine lucruri non-standard(în afara de analogRead, analogWrite,​ etc) implementate. Printre acestea putem numără:
 +  * Folosire funcției ''​map''​ pentru a face "​traducerea"​ din valorile reale date de potentiometru (0-1024) în valori potrivite pentru banda led(0-255). Un exemplu ar fi bucata următoare, extrasa din funcția mmap1: ''​byte map1=map(sensorvalue,​ 0, 1023, 255, 0);''​
 +
 +
 +  * Folosirea functiei ''​attachInterrupt''​ pentru configurarea sistemului de întreruperi:​ ''​attachInterrupt(digitalPinToInterrupt(BUTTON_PIN),​ myISR, FALLING);''​
 +
 +
 +  * Folosirea functiilor din librăria ''​Adafruit_NeoPixel.h''​ pentru controlul benzii de led-uri: ''​pixels.setPixelColor(i,​ pixels.Color(redColor,​greenColor,​blueColor));''​
  
-<note tip> 
-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>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Am reușit o implementare completa a proiectului ​pe care mi l-am propus și am reușit să-i implementez toate funcționalitățile.
-Care au fost rezultatele obţinute în urma realizării ​proiectului ​vostru. +
-</​note>​+
  
 +După o analiza mai atenta, am observat ca ar fi nevoie de debouncing pe button, consider acest aspect pentru următoarea versiune de implementare.
 +
 +Mai jos câteva imagini cu produsul final, împreună cu "​suportul de transport"​. 8-)
 +
 +
 +
 +==== Galerie Foto ====
 +
 +
 +{{ :​pm:​prj2022:​cstan:​patrascu_ione:​poza1.jpeg?​nolink&​600 |}}
 +
 +{{ :​pm:​prj2022:​cstan:​patrascu_ione:​poza2.jpeg?​nolink&​600 |}}
 +
 +{{ :​pm:​prj2022:​cstan:​patrascu_ione:​poza3.jpeg?​nolink&​600 |}}
 +
 +{{ :​pm:​prj2022:​cstan:​patrascu_ione:​poza4.jpeg?​nolink&​600 |}}
 +
 +[[https://​youtu.be/​-8YAICOLD_E| Video YouTube]]
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Cred ca unele dintre cele mai importante concluzii ar fi: 
 +  * Nu arde singurul driver (FIXME) pe care îl ai cu o seara înainte de prezentare ca va fi o noapte lunga. 
 +  * Piesele hardware sunt ceva mai greu de obținut (comparat cu timpul pentru implementarea software).
  
-<note warning>​ +Acesta a fost primul meu proiect ​de acest gen șpot spune ca a fost interesant și mi-a plăcut foarte mult.
-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 şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-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**. +Cea mai buna parte a fost faptul ca am îmbinat software cu hardware și o finalitate(in real life).
-</​note>​+
  
-===== Jurnal =====+Pe langa asta, am aprofundat materia predata la laborator, ceea ce-mi aduce un plus. LOL 
  
-<note tip> +===== Download ===== 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. + 
-</​note>​+{{:​pm:​prj2022:​cstan:​pm_patrascu_ionel_331ac.zip|}}
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
 +==== Resurse Hardware ====
 +  * [[https://​www.emag.ro/​placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-si-ch340-plusivo-46fo/​pd/​DT94JBMBM/​|Placa de dezvoltare compatibila cu Arduino UNO (ATmega328p si CH340) Plusivo]] ​
 +  * [[https://​www.optimusdigital.ro/​ro/​altele/​1194-microfon-electret-cu-amplificator-max9814-cu-auto-gain-control.html|Microfon Electret cu Amplificator MAX9814 cu Auto Gain Control]] ​
 +  * [[https://​www.optimusdigital.ro/​ro/​componente-electronice-potentiometre/​1885-potentiometru-mono-50k.html?​search_query=potentiometru&​results=170|Potentiometru Mono 50k]]
 +  * [[https://​ardushop.ro/​ro/​electronica/​331-banda-leduri-rgb-neopixels-ws2812b.html#/​125-leduri_metru-60|Leduri RGB la banda (Neopixels) WS2812B]] ** * ** 
 +
 +==== Resurse Software ====
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2022|Laboratorul 2: Întreruperi,​ Timere]]
 +  * [[https://​riptutorial.com/​arduino/​example/​9856/​interrupt-on-button-press|Interrupt on Button Press]]
 +  * [[https://​www.reddit.com/​r/​arduino/​comments/​8kcuhn/​comment/​dz73jjw/?​utm_source=reddit&​utm_medium=web2x&​context=3|Neopixel Breathe function code help]]
 +  * [[https://​electropeak.com/​learn/​interfacing-max9814-electret-microphone-amplifier-module-with-arduino/​|Interfacing MAX9814 Electret Microphone Amplifier Module with Arduino]]
 +  * [[https://​forum.arduino.cc/​t/​using-map-function-with-a-potentiometer/​592722/​3|Using Map function with a potentiometer]]
 +
 +** * **Resursa comuna
pm/prj2022/cstan/120.1653563391.txt.gz · Last modified: 2022/05/26 14:09 by ionel.patrascu3101
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