This shows you the differences between two versions of the page.
pm:prj2021:alazar:smartlightcontrol [2021/05/30 13:35] alexandra.balan0907 [Hardware Design] |
pm:prj2021:alazar:smartlightcontrol [2021/05/31 13:27] (current) alexandra.balan0907 [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/SmartLightControl]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/SmartLightControl]] | ||
====== Smart Light Control ====== | ====== Smart Light Control ====== | ||
- | === Autor : Balan Alexandra-Andreea === | + | **Autor:** Balan Alexandra-Andreea |
- | === Grupa : 331CB === | + | |
+ | **Grupa:** 331CB | ||
===== Introducere ===== | ===== Introducere ===== | ||
Smart Light Control este un proiect care constă în aprinderea sau stingerea unor LED-uri de diferite culori prin comandă vocală. | Smart Light Control este un proiect care constă în aprinderea sau stingerea unor LED-uri de diferite culori prin comandă vocală. | ||
Line 29: | Line 30: | ||
* 1 x LED albastru | * 1 x LED albastru | ||
* 1 x LED alb | * 1 x LED alb | ||
+ | |||
+ | **Schemă** | ||
+ | |||
+ | {{:pm:prj2021:alazar:schema_smart_light_control_balan.png?300|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | TODO | + | **Etapele implementării** |
+ | - Pentru a afișarea mesajelor pe ecranul LCD și selectarea liniei de scriere pe acesta am inclus biblioteca LiquidCrystal.h | ||
+ | - Am selectat pinii necesari pentru conectarea ecranului: | ||
+ | * GND: VSS, V0, RW, K | ||
+ | * 5V: VDD | ||
+ | * 12: RS | ||
+ | * 11: E | ||
+ | * 5: D4 | ||
+ | * 4: D5 | ||
+ | * 3: D6 | ||
+ | * 2: D7 | ||
+ | * 3.3V: A | ||
+ | - Am selectat pinii pentru conectarea LED-urilor: | ||
+ | * RED: 13 | ||
+ | * GREEN: 10 | ||
+ | * YELLOW: 9 | ||
+ | * BLUE: 8 | ||
+ | * WHITE: 7 | ||
+ | - Am definit string-ul voice în care voi pune comanda vocală primită | ||
+ | - Funcții: | ||
+ | * //RedOn()//, //GreenOn()//, //YellowOn()//, //BlueOn()//, //WhiteOn()// = funcții care aprind LED-ul specificat | ||
+ | * //RedOff()//, //GreenOff()//, //YellowOff()//, //BlueOff()//, //WhiteOff()// = funcții care sting LED-ul specificat | ||
+ | * //allon()//, //alloff()// = funcții care aprind/sting toate LED-urile | ||
+ | - în funcția **setup()** se vor seta următoarele: | ||
+ | * pinii specifici culorilor (RED, GREEN, YELLOW, BLUE, WHITE) vor fi setați ca OUTPUT | ||
+ | * ecranul LCD va afișa mesajul //Buna! Ce LED sa aprind/sting?// | ||
+ | - **loop()** | ||
+ | * se va citi comanda vocală trimisă de la aplicația Android la plăcuța Arduino in string-ul //voice// | ||
+ | * dacă comanda trimisă este validă (lungimea acesteia este mai mare decât 0) atunci se va verifica comanda: | ||
+ | * dacă se primește comanda //aprinde tot// sau //toate// atunci se vor aprinde toate LED-urile. De asemenea, pe ecranul LCD se va afișa mesajul //Am aprins toate LED-urile//. | ||
+ | * dacă se primește comanda //închide// sau //închide tot// atunci se vor stinge toate LED-urile. De asemenea, pe ecranul LCD se va afișa mesajul //Am stins toate LED-urile//. | ||
+ | * dacă se primește comanda //roșu// sau //aprinde roșu// atunci se va aprinde LED-ul roșu. De asemenea, pe ecranul LCD se va afișa mesajul //LED roșu aprins//. | ||
+ | * dacă se primește comanda //închide roșu// atunci se va stinge LED-ul roșu. De asemenea, pe ecranul LCD se va afișa mesajul //LED roșu stins//. | ||
+ | * dacă se primește comanda //verde// sau //aprinde verde// atunci se va aprinde LED-ul verde. De asemenea, pe ecranul LCD se va afișa mesajul //LED verde aprins//. | ||
+ | * dacă se primește comanda //închide verde// atunci se va stinge LED-ul verde. De asemenea, pe ecranul LCD se va afișa mesajul //LED verde stins//. | ||
+ | * dacă se primește comanda //galben// sau //aprinde galben// atunci se va aprinde LED-ul galben. De asemenea, pe ecranul LCD se va afișa mesajul //LED galben aprins//. | ||
+ | * dacă se primește comanda //închide galben// atunci se va stinge LED-ul galben. De asemenea, pe ecranul LCD se va afișa mesajul //LED galben stins//. | ||
+ | * dacă se primește comanda //albastru// sau //aprinde albastru// atunci se va aprinde LED-ul albastru. De asemenea, pe ecranul LCD se va afișa mesajul //LED albastru aprins//. | ||
+ | * dacă se primește comanda //închide albastru// atunci se va stinge LED-ul albastru. De asemenea, pe ecranul LCD se va afișa mesajul //LED albastru stins//. | ||
+ | * dacă se primește comanda //alb// sau //aprinde alb// atunci se va aprinde LED-ul alb. De asemenea, pe ecranul LCD se va afișa mesajul //LED alb aprins//. | ||
+ | * dacă se primește comanda //închide alb// atunci se va stinge LED-ul alb. De asemenea, pe ecranul LCD se va afișa mesajul //LED alb stins//. | ||
+ | * După ce s-a efectuat funcția corespunzătoare comenzii string-ul //voice// se va goli pentru a fi pregătit pentru următoarele comenzi. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | TODO | + | Starea inițială |
+ | |||
+ | {{:pm:prj2021:alazar:smart_light_control.jpg?300|}} | ||
+ | |||
+ | {{:pm:prj2021:alazar:prezentare_generala2.jpg?300|}} | ||
+ | |||
+ | Comanda //aprinde roșu// | ||
+ | |||
+ | {{:pm:prj2021:alazar:led_rosu_aprins.jpg?300|}} | ||
+ | |||
+ | Comanda //aprinde galben// | ||
+ | |||
+ | {{:pm:prj2021:alazar:led_galben_aprins.jpg?300|}} | ||
+ | |||
+ | Comanda //aprinde alb// | ||
+ | |||
+ | {{:pm:prj2021:alazar:led_alb_aprins.jpg?300|}} | ||
+ | |||
+ | Comanda //închide galben// | ||
+ | |||
+ | {{:pm:prj2021:alazar:led_galben_stins.jpg?300|}} | ||
+ | |||
+ | Comanda //aprinde tot// | ||
+ | |||
+ | {{:pm:prj2021:alazar:toate_ledurile_aprins_1.jpg?300|}} | ||
+ | |||
+ | {{:pm:prj2021:alazar:toate_ledurile_aprinse_2.jpg?300|}} | ||
+ | |||
+ | Comanda //închide tot// | ||
+ | |||
+ | {{:pm:prj2021:alazar:toate_ledurile_stinse.jpg?300|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | TODO | + | Proiectul a fost foarte interesant de făcut. Cel mai mult mi-a plăcut că am reușit să conectez plăcuța Arduino la telefon, primind astfel comenzi din afara sferei codului. |
===== Download ===== | ===== Download ===== | ||
- | TODO | + | Video demonstrativ: [[https://photos.app.goo.gl/JSDZgeokhP5GciBq8]] |
+ | |||
+ | Cod sursă: {{:pm:prj2021:alazar:smart_light_control.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | TODO | + | //25.04.2021// Alegerea proiectului |
+ | |||
+ | //24.05.2021// Achiziționarea tuturor pieselor necesare implementării proiectului | ||
+ | |||
+ | //26.05.2021// Conectarea modulului Bluetooth la aplicația Android | ||
+ | |||
+ | //27.05.2021// Afișarea primul mesaj pe ecranul LCD | ||
+ | |||
+ | //29.05.2021// Finalizarea proiectului | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <html><a class="myPDF" href="?do=export_pdf">Balan_Alexandra_PDF</a></html> | + | * Itembiblioteca LiquidCrystal.h [[https://www.arduino.cc/en/Reference/LiquidCrystal]] |
+ | |||
+ | * <html><a class="myPDF" href="?do=export_pdf">Balan_Alexandra_PDF</a></html> | ||