15.07.2013

Arduino+LabView = SIA(Sistem de Irigare Automatizat)

Salut! In acest articol am sa va prezint un proiect realizat de mine,un sistem de irigare automat utilizand LabVIEW versiunea student si interfata LIFA(LabView Interface for Arduino).Pentru implementarea practica,vom utiliza o placa Arduino cu ajutorul careia vom citi tensiunile senzorilor de temperatura,lumina si umiditate.Tensiunile vor fi convertite in unitati de masura specifice.Pentru a verifica daca programul functioneaza,la iesire vom conecta un led.
Pentru a comanda o electrovalva sau un motor ac spre exemplu este necesar un modul extern,acest subiect va fi tratat in articolul viitor.
Modul de functionare a programului:
   Programul se seteaza la o ora si data dorita la care se doreste pornirea/oprirea.
   In cazul in care temperatura,lumina sau umiditatea ajunge la o valoare limita impusa de utilizator programul se va opri.Aceste limite pot fi introduse in butoanele de control TMP OFF LIMIT/LIGHT OFF LIMIT/HUM OFF LIMIT.
   De asemenea programul poate fi pus in stare de pauza prin apasarea butonului PAUSE/START.
   Tensiunile de pe senzori pot fi citite de pe panoul frontal la indicatoarele VOLTAGE TMP/LIGHT/HUM.Temperatura poate fi citita in grade Celsius de pe indicatorul de tip termometru TMP,iar umiditatea se exprima in umditate relativa RH%.Intensitatea luminii se citeste de pe indicatorul LIGHT pe o scara de la 1 la 10.
   Selectia intrarilor senzorilor se face din butoanele de control alegand pinii intrarea din meniu.
BOM:
1.Senzor de umiditate (SYH-2RS)
2. Senzor de temperatura (LM35)
3.Fotorezistor
4.Rezistente (2x500, 1X100, 1x1k,1x5k)
5.Arduino UNO
6.Fire si 1 led

Schemele utilizate

1.Schema pentru masurarea umiditatii

2.Schema pentru masurarea luminii

3.Schema pentru masurarea temperaturii


   Pentru schema 1 si 2 tensiunea se calculeaza prin divizare.

   Pentru calculul temperaturii se utilizeaza formula :
grad C = (Vout[mV])/10
   AN0,AN1,AN2 reprezinta intratile placii arduino.

4.Schema bloc a sistemului

5.Programul in Labview


Modul de functionare a schemei

1.Blocul de achizitionare a datei si orei in timp real

fig.1
   In figura 1 este reprezentat blocul de achizitionare a datei si orei in timp real.In figura a este reprezentat schema in diagrama bloc,aceasta afiseaza o valoare numerica a orei in formatul pe care il specificati.In figura b este afisat timpul in panoul frontal.
   %X-comanda utilizata pentru achizitionarea orei de la PC
   %m/%d/%Y-comanda utilizata pentru formatarea datei:luna/zi/an.

2.Blocul pentru setarea orei si datei


fig.2
   Figura 2 a si b reprezinta modul de setare a orei si a datei la care se doreste pornirea,respectiv oprirea programului.
    Blocul a1 achizitioneaza timpul si ora de la pc prin blocul a2(Get Date/Time in seconds).Acesta este comparat cu o limita superioara(a3) sau inferioara(a4) impusa de utilizator(vezi fig c),daca datele x se afla in valoarea limitelor inferioare la iesire(?) valoarea va fi TRUE.In momentul in care x se afla in limita superioara valoarea la iesire va fi FALSE.Blocul a5 efectueaza operatia de SI logic intre valoarea de la iesire(?) si a6 care este un buton de tip toggle utilizat pentru pauza(PAUSE).
   Iesirea din blocul a5 este legata la o structura de tip(SC) CASE,daca conditia impusa da ora si data este adevarata programul va rula,in caz contrar programul va fi oprit.
   In imaginea este prezentata rularea programului in conditia TRUE respectiv FALSE(fig.3 si fig.4).
fig.3
fig.4

3.Blocul pentru achizitionarea si conversie a temperaturii

   Blocul a1 este utilizat pentru achizitia tensiunii(vezi fig5.c) de la senzorul de temperatura prin convertorul analog-numeric al placii de achizitie,ulterior valoarea numerica este transformata in grade celsius utilizand FORMULA(a3) si afisata pe termometrul virtual(fig.5 b/a4).
a2 este utilizat pentru configurarea portului de intrare a placii de achizitie.Senzorul de temperatura este conectat la intrarea Analog In 0 pe placa de achizitie.
fig.5

4.Blocul pentru achizitionare si conversie a intensitatii luminoase

   Blocul a1 este utilizat pentru achizitia tensiunii(vezi fig6.b) de la senzorul de lumina prin convertorul analog-numeric al placii de achizitie,ulterior valoarea numerica este reprezentat pe o scara de la 0 la 10 prin inmultirea tensiunii citite cu 10. (vezi fig 6.c);10 reprezentand intensitatea luminoasa maxima,intensitatea este reprezentata pe termometrul virtual(fig. 6c/a3).A2 este utilizat pentru configurarea portului de intrare al placii de achizitie.Senzorul de lumina este conectat la intrarea Analog PIN In 1 pe placa de achizitie.
fig.6

5.Blocul pentru achizitionarea si conversia umiditatii

   Blocul a1 este utilizat pentru achizitia tensiunii(vezi fig7.c) de la senzorul de umiditate prin convertorul analog-numeric al placii de achizitie,ulterior valoarea numerica este reprezentat pe o scara de la 0 la 100 prin inmultirea tensiunii citite cu 100. (vezi fig7.b);Umiditatea este reprezentata pe termometrul virtual(fig7.b/a3) si este exprimata in procent.A4 este utilizat pentru configurarea portului de intrare al placii de achizitie.Senzorul de lumina este conectat la intrarea Analog PIN In 2 pe placa de achizitie.
fig.7

6.Blocul conditionat de senzori

fig.8

   Dupa citirea datelor de la senzorii de temeperatura,lumina respectiv umiditate,sunt preluate valorile a,b,c.Acestea sunt comparate cu o valoare introdusa de utilizator TMP OFF LIMIT(limita maxima a temperaturii),LIGHT OFF LIMIT(limita maxima a intensitatii luminoase),RH% LIMIT(limita maxima a umiditatii relative).
   Valorile rezultate in urma comparatiilor sunt conectate la o poarta compusa OR,daca una dintre valorile rezultatelor in urma comparatiilor este adevarata se va indeplini conditia TRUE,la iesirea digitala 3 a placii de achizitie tensiunea va fi 0 volti(ledul nu se aprinde). 
   In cazul in care conditia este falsa,adica valorile a,b,c sunt mai mici decat valorile impuse de utilizator,la poarta compusa OR iesirea va fi FALSE,se va indeplini condita FALSE iar ledul se va aprinde.
fig.9

7.Blocul pentru reprezentarea graficului lumina-tensiune

fig.10
   Blocul este utilizat pentru reprezentarea intensitatii luminii(a) in functie de tensiunea citita de la senzor(b).Se utilizeaza functia Insert into Array(d) pentru a crea multimea.In punctele e si f se insereaza multimea prin registrii de deplsare iar in punctele a si b se insereaza elementul,randul,coloana din multimea inserata in e,f.Iesirea multimii se converteste in date dinamice utilizand Convert to Dynamic Data (c),iar datele sunt utilizate pentru crearea grafului prin functia BUILD XY GRAPH.

8.Buclele de rulare si functia lor

   Intreg programul ruleaza intr-o bucla WHILE.Programul ruleaza fara oprire pana la actionarea butonului STOP din panoul frontal.
   Structurile de tip CASE sunt necesare deoarece ne dorim sa conditionam pornirea/oprirea programului in functie de timp,sau de valorile citite de la senzori.
   Structura FLAT SEQUENCE se utilizeaza deoarece se doreste ca citirile de la senzori sa se execute secvential,una dupa cealalta cu un interval de 1000ms,in cazul in care nu se utilizeaza un interval de temporizare si o structura secventiala in fluxul de date,apar erori iar valorile afisate pe indicatoarele din panoul frontal apar variatii care fac citirea imposibil.
fig.11

Panoul Frontal in Labview

fig.12

Modul de conectare a senzorilor pe placa de test


fig.13

PIC


16.06.2013

Realizarea PCB-urilor prin transfeul imaginii utilizand hartie foto si imprimanta laser sau xerox

In acest articol voi descrie la modul general principalele metode de realizarea a PCB-urilor.
1. Utilizarea placilor VEROBOARD sau BREADBOARD:aceasta metoda se preteaza pentru obtinerea unui prototip.Este o metoda rapida pentru realizarea testarilor inainte de obtinerea cablajului final.


2. Gravarea cu CNC prin FREZARE sau LASER:aceasta metoda este cea mai rapida(in special gravarea cu laser) si ecologica din motivul ca nu se utilizeaza substante daunatoare mediului inconjurator.Din punct de vedere financiar aceasta metoda este o investitie costisitoare,in special instalatia laser.




3.Desenarea manuala a traseelor utilizand un marker waterproof:cea mai ieftina metoda.Se obtin rezultate satisfacatoare la montajele de dimeniuni mici.Ca si aspect trebuie sa fi un artist in adevaratul sens al cuvantului si sa ai rabdare pentru a obtine rezultate.


4.Transferul imaginii din reprezentarea pe calculator(CAD) pe semifabricatul PCB.
Prin procesul de fotolitografie se pot indeparta zone selective ale pelicului de cupru de pe semifabricat prin expunerea la radiatii UV si procese chimice.Se utilizeaza fotorezistul,acesta isi schimba solubilitatea la expunerea radiatiilor UV.Materialele sunt costisitoare,dar se obtin cele mai bune rezultate in special pentru cablajele cu distanta mica dintre trasee,sau cele cu densitate mare de populare.
               
Voi continua articolul cu descrierea metodei de fabricare prin transferul imaginii utilizand hartie  foto si o imprimanta laser.In cazul in care nu dispuneti de o imprimanta laser,puteti face o copie xerox dupa imagine.
Important este sa se foloseasca TONER pentru printat,nu cerneala,deoarece principalul ingredient al tonerului este un polymer sau plastic in compozitie de  60% si oxid de fier 40%,ceea ce determina ca in urma presarii cu fieul de calcat incins tonerul de pe hartie sa se imprime pe placa de cupru.
BOM:
-imprimanta laser
-hartie foto
-clorura ferica ( se gaseste la magazinele de piese electronice  )
-placa de cupru simplu/dublu strat dupa preferinte
-alcool etilic/acetona/alcool sanitary/nitrodiluant (utilizat pentru degresarea placii de cupru )
-hartie abraziva de granulatie mica (smirghel)
-fier de calcat
-mini bormasina
-burghie de 0.5 mm , 0.7mm , 1mm in functie de preferinte.

Pasii de realizare:
1.Semifabricatul de cupru este acoperit cu un strat de lac protector impotriva oxidarii.Pentru indepartarea lacului se va utiliza hartia abraziva,se poate incepe cu o hartie de granulatie mare dupa care se utilizeaza hartia fina.
2.Se degreseaza placa cu alcool sau acetona.Intre timp puteti incalzi fierul de calcat,temperatura necesara transferului este intre 180 si 200 de grade Celsius.Daca temperatura este mai mare sau tineti prea mult fierul de calcat,plasticul se poate topi mai mult decat e necesar si pot aparea defecte sau scurtcircuituri.
3.Se aplica hartia cu partea imprimata pe PCB,dupa aceea se preseaza fierul de calcat pana cand hartia se ingalbeneste.Daca utilizati hartie foto exista posibilitatea ca aceasta sa se lipeasca de fierul de calcat,de aceea este indicat sa puneti o alta hartie peste “sandwich-ul” mentionat mai sus.
4.Hartia foto se va lipi de pcb , de aceea se va introduce sandwichul in apa calduta pana cand hartia se va desprinde usor de pe pcb si se continua cu indepartarea surplusului de hartie care ramane pe PCB.
5.Urmeaza partea mai usoara , in care se va indeparta surplusul de cupru de pe PCB utilizand CLORURA FERICA.Clorura se poate incalzi sub jetul fierbinte de apa,sau puteti introduce sticla intr-un vas cu apa calda.Nu trebuie sa fie fierbinte apa in jur de 40 grade Celsius!
Clorura se va turna intr-un recipient de PLASTIC sau STICLA,IN NICI UN CAZ METAL!!!pot aparea reactii chimice daunatoare!Se introduce PCB-ul in recipient, acesta se poate agita usor pentru a obtine rezultate mai rapide.Timpul de corodare este proportional cu marimea PCB-ului.
6.Dupa corodare se curata PCB-ul de toner.Se utilizeaza acetona sau nitrodiluant.
7.PCB-ul se gaureste cu mini bormasina.

Personal am realizat cablaje cu aceasta metoda si am obtinut rezultate foarte bune pentru PCB-uri simplu strat dar si pentru PCB-uri cu doua straturi.
In cazul in care doriti sa realizati PCB-uri cu doua straturi este esential ca in etapa de proiectare a PCB-ului sa va realizati in colturi gauri de fixare pentru a asigura suprapunerea exacta a stratului superior si inferior.De adaugat este faptul ca una dintre imagini,indiferent care,trebuie sa fie printata in oglinda pe hartie in cazul in care proiectarea straturilor se realizeaza de la stanga spre dreapta.Imaginea in oglinda se poate realiza fie din programul in care se realizeaza proiectarea fie la printare daca dispuneti de imprimanta laser.Legatura dintre layerul superior si inferior se realizeaza cu sunturi.
                Indiferent daca realizati un PCB simplu strat sau dublu strat,flow-ul este acelasi prezentat mai sus.Am sa revin cu un tutorial video pentru aceasta metoda.
In viitorul apropiat voi prezenta si metoda de fabricare PCB utilizand fotorezist.


Spor la treaba !