Elementul central al proiectului este floarea pe care o folosesc. Aceasta se roteste in functie de intensitatea maxima a luminii.
Am ales acest proiect deoarece iubesc foarte mult natura si mediul inconjurator si imi place foarte mult sa am grija de plantele mele
si sa le ofer tot ce au nevoie. Astfel, ele vor putea beneficia mereu de lumina care este necesara dezvoltarii lor armonioase, rotindu-se in functie de intensitatea de care au nevoie.
Prin alegerea acestei teme, cu siguranta imi voi putea valorifica cunostintele dobandite in cadrul laboratoarelor intr-un mod placut si util.
Pentru relizarea acestui proiect folosesc un motor stepper care face posibil ca planta sa se roteasca, cat si un senzor magnetic prin care detectez cand s-a facut o rotatie completa. De asemenea, pentru detectia intensitatii luminii folosesc si senzori de lumina cu fotorezistente. Pentru atasarea si sustinerea corecta a ghiveciului cu planta, ma ajut de un cuplaj, cu ajutorul caruia prind axul motor de tava rotativa pe care se va afla floarea pe care o folosesc.
Pentru a putea roti floarea in functie de intensitatea luminii folosesc doi senzori de lumina, unul care se afla pe partea dreapta si unul care se afla pe partea stanga. Ghiveciul cu floarea se va roti in functie de care dintre cei doi senzori primeste lumina. In momentul in care se va ajunge la o rotatie completa, senzorul magnetic va detecta acest lucru si se va opri pentru cateva secunde.
Diagrama bloc corespunzatoare proiectului:
Pentru a realiza acest proiect vom avea nevoie de:
Pe langa aceste componente a fost nevoie si sa realizez suportul pentru motorul stepper pentru ca acesta sa stea fix(suport pe care l-am realizat din lemn) si am folosit suruburi pentru a prinde motorul de suport. Am mai folosit, de asemenea, suruburi pentru a prinde ghiveciul realizat de mine de cuplaj si a sta fix pentru realizarea proiectului.
Schema cablaj:
In final, proiectul arata in felul urmator:
Codul de implementare este:
#include <Stepper.h> const int stepsPerRevolution = 200; // initialize the stepper library on pins 9 through 12: Stepper myStepperRight(stepsPerRevolution, 9, 11, 10, 12); Stepper myStepperLeft(stepsPerRevolution, 9, 10, 11, 12); int time = 0; int sensorState = 0; int lightRight = 0; int lightLeft = 0; void setup() { //----------------SENZORII DE LUMINA---------- pinMode(8, INPUT); pinMode(7, INPUT); //----------------SEZNSORUL MAGNETIC---------- pinMode(2, INPUT_PULLUP); Serial.begin(9600); } // 1 cand sunt departate // 0 cand sunt apropiate void loop() { //---------------SEZNORII DE LUMINA----------- lightLeft = digitalRead(8); lightRight = digitalRead(7); //---------------SENZORUL MAGNETIC------------ sensorState = digitalRead(2); if (sensorState == 0 && time < 400) { delay(25); } time++; if (time > 400 && time < 800) { sensorState = 1; } if (time > 800) { time = 0; } //conditie a motorului in functie de fiecare senzor de lumina //senzorul stang sau cel drept if (lightLeft == LOW && sensorState) { int motorSpeed = map(280, 0, 1023, 0, 100); myStepperLeft.setSpeed(motorSpeed); // step 1/100 of a revolution: myStepperLeft.step(stepsPerRevolution / 100); } if (lightRight == LOW && sensorState) { int motorSpeed = map(400, 0, 1023, 0, 100); myStepperRight.setSpeed(motorSpeed); // step 1/100 of a revolution: myStepperRight.step(stepsPerRevolution / 100); sensorState = digitalRead(2); } }
Functionalitatea proiectului poate fi vazuta aici: Proiect PM Florina Constandache.
La final a fost implementat tot ceea ce mi-am propus.
Proiectul a fost implementat pe etape, astfel incat sa ma asigur ca fiecare componenta functioneaza corect. Facand asta, procesul de debugging a fost destul de simplu de realizat. Mi-a placut faptul ca am avut de realizat un proiect de acest fel, in care sa putem folosi si partea hardware, pentru ca nu am facut niciodata ceva asemanator si a fost ceva foarte interesant pentru mine.
Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/arduinosmartflower
Link documentatie: https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/arduinosmartflower?do=export_pdf
Arhiva cod: Arhiva proiect
25 Aprilie → alegere tema proiect
6 Mai → discutie pe baza pieselor
7 Mai → comandarea pieselor
10 Mai → sosirea pieselor
13 Mai - 22 Mai → realizarea proiectului(prima data am facut suportul pentru stepper, apoi partea hardware si la final am combinat partea hardware cu cea software)