Controlul Automatizat al Mediului Pentru Acvarii Si Terarii
Rezumat
Lucrarea constă în realizarea și implementarea unui dispozitiv automat de îngrijire a viețuitoarelor din acvarii și terarii.
Părțile componente ale dispozitivului sunt micro-computer Raspberry Pi B+, ecran touchscreen PiTFT 480×320 3.5" TFT, motor pas cu pas unipolar cu 5 fire, senzor de temperatură, dispozitiv de lumină.
Pentru realizarea fizică a dispozitivului este necesară utilizarea mai multor domenii precum: mecanică, electronică și informatică. Pentru proiectarea dispozitivului au fost folosite metode moderne: modelare 3D și element finit folosind Catia V5.
Abstract
This project consists in the development and implementation of an automatic care device for aquariums and terrariums creatures.
The component parts of the device are a micro-computer Raspberry Pi B+, touchscreen display PiTFT 480×320 3.5" TFT, a unipolar stepper motor with 5-wire, temperature sensor and the lighting device.
To manufacture this device is necessary to combine more domains like: mechanics, electronics and computer science. For the mechanichal design of the device there were used modern methods: 3D design with Catia V5 and structural analysis with the same software.
Cuprins
1. Introducere 6
1.1. Motivație 6
1.2. Obiective 7
2. Stadiul Actual 8
2.1. Introducere 8
2.2. Electronică digitală 8
2.2.1. Microcontrolere 8
2.2.2. Kituri de dezvoltare rapidă 10
2.2.2.1. Introducere 10
2.2.2.2. Arduino 10
2.2.2.3. Raspberry Pi 11
2.2.3. Terminale de afișare 13
2.2.3.1. Afișoare LCD de uz general 13
2.2.3.2. Ecran PiTFT 480×320 3.5" TFT+Touchscreen 15
2.2.4. Senzori 15
2.2.5. Motorul Pas cu Pas 16
2.2.5.1. Descriere generală 16
2.2.5.2. Motoare pas cu pas cu reluctanță variabilă 18
2.2.5.3. Motoare pas cu pas cu magnet permanent 18
2.2.5.4. Motoare pas cu pas hibride 19
2.3. Proiectare mecanică 21
2.4. Inginerie software. Limbaje de modelare și de programare 23
3. Arhitectura proiectului 29
3.1. Introducere 29
3.1.1. Modulul electronic 29
3.1.2. Interfața grafică 30
3.1.2.1. Meniul pentru controlul temperaturii și luminii 31
3.1.2.2. Funcția de alimentare cu hrană 32
3.1.2.3. Funcția de schimbare al apei 33
3.1.2.4. Informații și setări 34
3.2. Ansamblul mecanic 35
4. Structura proiectului 36
4.1. Introducere 36
4.2. Modulul electronic 36
4.2.1. Raspberry Pi B+ 36
4.2.2. Senzor de temperatură 38
4.2.3. Dispozitiv de lumina 40
4.2.4. Motor pas cu pas unipolar cu 5 fire 40
4.3. Programul de comanda 41
4.4. Ansamblul mecanic 41
5. Rezultate obtinute 45
6. Concluzii și intenții 46
7. Referințe bibliografice 47
8. Anexa 1. Dimensiunile mecanice ale Raspberry Pi B+ 48
9. Anexa 2.Diagramă bloc DS18B20 49
10. Anexa 3. Schemă electrică completă Raspberry Pi B+ 50
11. Anexa 4. Schemă electrică 51
12. Anexa 5. Cod sursa program microcontroller 52
Introducere
În ziua de astăzi din ce în ce mai multă lume este preocupată de întreținerea unui acvariu, dar desigur acest lucru este mai interesant dacă totul poate fi automatizat doar prin simpla apăsare a unui buton sau prin comanda la distanță.
Acest lucru este posibil prin programarea unui microcontroller, iar mai apoi datele să fie preluate prin intermediul unor senzori. Citirea automată a datelor elimină eroarea umană în privința corectitudinii datelor și crește viteza de culegere a informațiilor.
Proiectul de față este compus din panoul de comandă creat cu ajutorul micro-computerului Raspberry Pi B+ și a displayului touchscreen PiTFT 480×320 3.5" TFT.
Caracteristica unică a acestui dispozitiv este faptul că alimentarea cu hrană se realizează cu ajutorul unui motor pas cu pas. Acesta este programat ca la un anumit interval de timp să se desplaseze un număr de pași pentru ca hrana să poată fi eliberată prin intermediul cupei.
Senzorul de temperatură indică temperatura favorabilă, aceasta putând fi modificată în funcție de mediu la fel și luminozitatea din interiorul acvariului sau terariului.
Dispozitivul devine și mai util dacă permite comanda la distanță, ușor adaptabilă diferitelor situații. Acest fapt se datorează conectivității wireless. Prin accesarea unei interfețe de comandă, utilizatorul poate seta diferiți parametri.
Motivație
Pentru majoritatea dintre noi deținerea unui acvariu sau terariu este o plăcere, dar și o responsabilitate. Dorim să îngrijim viețuitoarele cu multă grijă și atenție. Acest fapt presupune îngrijirea mediului în care acestea trăiesc, iar hrănirea să fie făcută în mod corespunzător.
Am ales această temă pentru lucrarea de licență deoarece modul automat pentru care trebuie realizat condițiile de trai ale viețuitoarelor din acvarii și terarii ating cele mai multe domenii ale ingineriei, specifice informaticii industriale.
Am putut combina cu ușurință partea mecanică cu cea informatică și de asemenea electronică.
Un alt motiv pentru alegerea acestei teme este varietatea de cunoștiințe necesare abordării unui asemenea proiect: cunoștiințe despre programare și proiectare, mecanică și electronică dar și provocările aduse de realizarea propriu zisă a unui astfel de dispozitiv.
Obiective
Obiectivul principal al acestui proiect presupune proiectarea și implementarea unui dispozitiv pentru controlul automatizat al mediului pentru acvarii și terarii.
Obiective secundare:
Cercetarea stadiului actual în domeniile vizate de teza: electronică, mecanică, informatică;
Proiectarea schemei electrice a dispozitivului;
Proiectarea și realizarea mecanică utilizând sisteme moderne CAD;
Realizarea programului care va rula pe platformă;
Proiectarea și implementarea intefeței grafice;
Stadiul Actual
Acest capitol face o prezentare a celor mai importante aspecte din domeniile vizate de teză, acestea fiind: microcontrolere, senzori, motoare pas cu pas și limbajul de programare folosit, Python.
Introducere
O soluție care duce la reducerea numărului de componente electronice este folosirea unui microcontroller sau a unui micro-computer. Prin definiție un microcontroller este un microcircuit ce incorporeaza o memorie și o unitate centrală (CPU) împreună cu resurse care-i permit interacțiunea cu mediul exterior. Pentru proiectarea pieselor mecanice, ingineria mecanică a început cu desenarea schițelor pe hârtie apoi a evoluat cu modelarea 3D. În ziua de astăzi inginerii și arhitecții se folosesc de softuri speciale cum ar fi: Catia, Solidworks, Solidedge, Autodesk Inventor, AutoCAD, pentru a realiza atât modelarea 3D a pieselor cât și a subansamblelor și ansamblelor.
Electronică digitală
Microcontrolere
Un controller, poate fi definit ca fiind o structură electronică destinată controlului unui proces sau a unei interacțiuni caracteristice cu mediul exterior, dar care nu necesită intervenția operatorului uman. Primele controlere foloseau atât componente electronice discrete cât și componente electromecanice. Din cauza faptului că au fost realizate pe baza logicii cablate și a electronici analogice complexe, controlerele aveau dimensiuni mari, fiabilitate scăzută și un consum energetic mare. Acest fapt a dus la apariția microprocesoarelor, reducându-se astfel dimensiunile, costurile de achiziționare și o îmbunătățire a fiabilității.
Putem defini astfel un microcontroler ca fiind un microcircuit ce incorporeaza o memorie și o unitate centrală (CPU) împreună cu resurse care-i permit interacțiunea cu mediul exterior.
Schema simplificată a unui microcontroller
Avantajul pe care îl constituie utilizarea unui microcontroler este faptul că se reduce numărul componentelor electronice precum și costul dezvoltării și proiectării unui produs. Pentru că utilizarea lor este de foarte multe ori sinonimă cu ideea de control, microcontrolerele sunt utilizate masiv în robotică și mecatronică. Printre multele domenii unde utilizarea lor este practic un standard industrial se pot menționa: în industria de automobile (controlul aprinderii/motorului, climatizare, diagnoză, sisteme de alarmă, etc.), în așa zisa electronică de consum (sisteme audio, televizoare, camere video și videocasetofoane, telefonie mobilă, GPS-uri, jocuri electronice, etc.), în aparatura electrocasnică (mașini de spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediului și climatizare (sere, locuințe, hale industriale), în industria aerospațială, în mijloacele moderne de măsurare – instrumentație (aparate de măsură, senzori și traductoare inteligente), la realizarea de periferice pentru calculatoare, în medicină.
În momentul achiziționării unui microcontroler (sau a unei familii de microcontrolere) folosit pentru dezvoltarea unei aplicații de tip “embedded system” trebuie luate in considerare anumite aspecte:
Costurile aplicatiei: producție mică/medie sau de masă;
Caracteristicile fizice: viteza de prelucrare, memoria necesară, resursele necesare;
Conectivitatea: porturi seriale asincrone, tipuri de magistrale seriale sincrone;
Tipul de dezvoltare al aplicației: limbajul de programare ales;
Kituri de dezvoltare rapidă
Introducere
Pentru a obține o cotă cât mai mare din piață, producătorii principali din domeniu pun la dispoziția utilizatorilor kituri de dezvoltare rapidă (prototipare rapidă).
MPLab IDE este un program software care rulează pe un PC pentru a dezvolta aplicații pentru microcontrollerele Microchip și de semnal digital. Este numit IDE (Integrated Development Environment) deoarece acesta oferă un singur mediu integrat pentru a dezvolta codul pentru microcontrollerele embedded.
Microchip oferă soluții pentru întreaga gamă de microcontrollere de 8, 16, 32 biți. Au o arhitectură puternică, tehnologii de memorie flexibile, o documentație tehnică completă fapt pentru care sunt distribuite la nivel mondial.
În acest moment microcontrolerul Arduino este furnizat cu IDE și de asemenea cu biblioteci ce au fost proiectate pentru ușurința de utilizare și pentru a asigura suportul celor care nu au bazele unui programator. Dupa instalarea microcontrolerului se pot realiza în primă fază aplicații cu LED-uri care clipesc și de asemenea se poate citi cu ușurință senzori de temperatură.
Pe de altă parte Raspberry Pi nu este integrat cu un IDE oficial, dar ca și limbaj de programare se poate folosi Python. Datorită faptului că bibliotecile există, permite mult mai mult decât ceea ce se poate face cu ajutorul Arduino IDE. Limbajele care mai pot fi utilizate sunt C/C++ sau orice alt limbaj, existând chiar și biblioteci care încearcă să recreeze sistemul Arduino. Software-ul Arduino este creat într-un limbaj similar cu C++, care mai apoi este compilat pe PC-ul pe care rulează IDE și apoi descărcat prin USB.
Momentan Raspberry Pi rulează Linux, și pentru dezvoltare se pot atașa un monitor, tastatură și mouse. Datorită sistemului de operare Linux, Raspberry Pi beneficiază de un mediu de dezvoltare mult mai puternic și mai flexibil.
Arduino
Atmel Corporation este lider mondial în producția microcontrolelor fapt pentru care furnizează industria electronică cu soluții de sisteme complete concentrate pe industrie, consumator, securitate, comunicații și automotive. Producția lor cuprinde microcontrolere (8 biți AVR, 32 biți AVR, bazate pe AMR și derivate intel 8051), dispozitive de radio frecvență, memorii EEPROM și memorii flash.
Arduino (Figura 2.) poate fi definit ca fiind un kit de dezvoltare cu microcontroller Atmel. Referitor la partea hardware, constă dintr-un open-source hardware bord proiectat în jurul unor 8-bit Atmel AVR microcontroler sau 32-bit Atmel AVR. În acest moment, microcontrolerele Arduino dispun de:
Interfață USB;
6 pini de intrare analogice;
Ace de 14 I/O digitale;
Arduino Uno. Vedere generală
Deși Arduino poate fi programat cu aplicatii-C, C++, nu se pot rula o scară de "sistem de operare", completă, Raspberry Pi pe de altă parte, este un micro-computer.
Raspberry Pi
Raspberry Pi poate fi definit ca fiind un SBC (Single-Board Computer), produs în UK de către fundația Raspberry Pi, având dimensiunea unui card de credit și a fost conceput cu scopul de a promova învățarea noțiunilor de bază din domeniul informaticii în școli. Prima generație Raspberry Pi este modelul Raspberry Pi 1 (Figura 3.), dar acesta a fost înlocuit cu Raspberry Pi 2 modelul B (Figura 4.) apărut în Februarie 2015. Comparativ cu Raspberry Pi 1 acesta dispune de:
900 MHz quad-core ARM Cortex-A7 CPU;
1GB RAM;
La fel ca și Pi 1, modelul B are de asemenea:
4 porturi USB;
40 de pini GPIO;
Port HDMI;
Port Ethernet;
Camera CSI;
Display DSI;
Micro SD card slot;
Raspberry Pi 2 are o forma identică cu precedenta Pi 1 și de asemenea au compatibilitate completă între ele.
Raspberry Pi 1
Raspberry Pi 2 modelul B
Puncte tari și puncte slabe:
Raspberry Pi este cea mai populara platformă pentru proiecte electronice;
Este ideal pentru lucrul cu prototipuri;
Permite comunicarea cu un computer cu ajutorul portului USB și oferă acces la toate caracteristicile;
Deoarece Raspberry Pi este un mini calculator, acesta necesită un sistem de operare;
Stocarea este asigurată de un card micro-SD în timp ce Ethernet-ul permite crearea de rețele;
Micro-computerul Raspberry Pi B+ este o versiune îmbunătățită a modelului Raspberry Pi B. Îmbunătățirea constă în partea hardware care a fost reordonată într-un aspect mai logic.
Diferența dintre modelul Raspberry Pi B și Raspberry Pi B+ (Figura 5.) este aceea că Raspberry Pi B+ are o serie de noi caracteristici:
Conectivitate sporită
Îmbunătățirea consumului de energie;
Îmbunătățirea IO;
Mai mic și mai ușor;
Comparație între Raspberry Pi B și Raspberry Pi B+
Terminale de afișare
Afișoare LCD de uz general
LCD-urile (eng. Liquid Crystal Display) sunt terminale de afișare care folosesc “cristale lichide” ce modifică opacitatea folosind un curent electric de comandă de frecvență mare.
Aceste afișoare (eng. display) pot fi folosite cu ușurință în foarte multe scheme electronice care au incorporat un microcontroller sau microprocesor.
Afișor LCD 16 coloane x 2 rânduri
Interfața de comunicare este una paralelă de 8 biți, dar care poate fi configurată să folosească doar 4. În acest caz, cei 8 biți necesari transmiterii unui cod sunt trimiși în două mesaje de câte 4 biți.
Pe lângă cei 8 biți de date se mai folosesc și alți pini de comandă și control contform tabelului 1:
Conexiunile unui display LCD general
Ecran PiTFT 480×320 3.5" TFT+Touchscreen
PiTFT 480×320 3.5" TFT+Touchscreen (Figura 7.) este un mic display touchscreen care are o compatibilitate foarte bună cu Raspberry Pi. Este proiectat pentru a se potrivi foarte bine cu modelul A și modelul B, dar de asemenea funcționează foarte bine cu modelul B+. Avantajul acestui display este faptul că este complet asamblat și poate fi atașat la Raspberry Pi. Caracteristici:
SPI (serial peripheral interface)
Compatibilitate Pi A, B, B Plus;
Rezoluție 480X320 pixeli;
16 biti de culoare;
De decupat fundalul negru.
Senzori
În dicționarele din anii '70 nu se gasește noțiunea de „senzor”. Acesta a apărut odată cu dezvoltarea microelectronicii, împreună cu alte noțiuni de mare impact, cum ar fi cele de „microprocesor”, „microcontroller”, „transputer”, „actuator” etc., adăugând o noțiune nouă unei terminologii tehnice având o anumită redundanță. Cele mai multe elemente tehnice sunt încadrate în noțiunea de „traductor” acesta fiind un dispozitiv care convertește efecte fizice în semnale electrice, ce pot fi prelucrate de instrumente de măsurat sau calculatoare. În unele domenii, în special în sfera dispozitivelor electro-optice, se utilizează termenul de detector (detector în infraroșu, fotodetector etc.).
Un senzor (Figura 8.) poate fi definit ca fiind un dispozitiv tehnic care reacționează calitativ sau cantitativ prin propriile mărimi măsurabile, la anumite proprietăți fizice sau chimice ale mediului din preajma lui. Ca și parte componentă a unui sistem tehnic, senzorul poate măsura: umiditatea, temperatura, presiunea, accelerația, forța, radiațiile, intensitatea sonoră, luminozitatea, etc. Cuvântul senzor provine din latină sensus = simț.
Senzorul măsoară o cantitate fizică (masa, presiune, temperatura, umiditate, etc) și o transformă într-un semnal care poate fi citit de către un observator printr-un instrument sau poate fi prelucrat. Există două tipuri de senzori:
activ: consumator de energie, de exemplu radar (măsurarea distanțelor prin emitere de radiații electromagnetice)
pasiv: de exemplu fotorezistența cu care se poate măsura intensitatea luminii incidente.
Funcționalitate senzor
Motorul Pas cu Pas
Descriere generală
Motorul electric pas cu pas este un convertor electromagnetic care realizează conversia impulsurilor de comandă aplicate fazelor motorului într-o mișcare de rotație ce constă din deplasări unghiulare discrete, de mărime egală și care reprezintă pașii motorului.
Pentru ca motorul sa aibă o funcționare corectă, numărul pașilor efectuați trebuie să corespundă cu numărul impulsurilor de comandă aplicate înfășurărilor motorului.
După felul în care sunt conectate înfășurările, motoarele pas cu pas, pot fi bipolare sau unipolare.
În cazul motoarelor pas cu pas care au comandă bipolară cele două bobine sunt permanent alimentate, cuplul ce se obține are valoarea optimă.
În cazul motoarelor pas cu pas care au comandă unipolară una dintre cele două bobine este alimentată, cuplul este mai mic dar comanda este mai simplă.
O regulă de bază a motoarelor este cea a numărului de fire, astfel: cu 4 fire poate fi conectat doar bipolar, iar cu 5 fire unipolar. Motorul pas cu pas care poate fi conectat atât bipolar cât si unipolar este cel cu 6 sau 8 fire așa cum reiese din figura 9.
Conectare motor pas cu pas.
Pentru că sunt mai ușor de folosit decât celelalte tipuri de motoare (motoarele de curent continuu sau motoarele de curent alternativ asincrone și sincrone) motoarele pas cu pas au anumite avantaje:
în momentul în care bobinele sunt alimentate motorul are moment maxim în poziția oprit;
poziționare precisă, cu o eroare de 3-5% la un pas, care nu se cumulează de la un pas la altul;
contine o gamă foarte largă de viteze de rotație;
se pot obține viteze foarte mici cu sarcina legată direct pe axul motorului;
fiabilitate excelentă deoarece nu există perii de contact la motor;
durata de funcționare depinde de rulment;
dar există și unele dezavantaje:
la viteze foarte mari controlul este destul de greu;
în cazul unui control deficitar poate apărea rezonanța;
O clasificare reprezentativă a motoarelor pas cu pas ar fi clasificarea lor în :
motoare pas cu pas cu reluctanță variabilă;
motoare pas cu pas cu magnet permanent;
motoare pas cu pas hibride.
Motoare pas cu pas cu reluctanță variabilă
Acest tip de motor este cunoscut de foarte mult timp. În figura 10 (preluată din ) este prezentată o secțiune printr-un motor pas cu pas cu reluctanță variabilă. Ca și elemente, motorul este alcătuit dintr-un rotor și un stator, fiecare cu număr diferit de dinți. Diferența dintre un motor pas cu pas cu reluctanță variabilă și un motor cu magnet permanent este aceea că motorul cu magnet se poate învârti mult mai ușor, în momentul rotirii rotorului cu mâna. Rotorul este construit din fier moale nemagnetizat cu dinți și sanțuri. Statorul motorului este alcătuit dintr-un miez magnetic construit din lamele din oțel.
Motor pas cu pas cu reluctanță variabilă
Motoare pas cu pas cu magnet permanent
În ceea ce privește principiul de funcționare al motorului pas cu pas cu magnet permanent este simplu și constă în reacția dintre rotorul din magnet permanent și un câmp magnetic creat de stator. În figura 11 (preluată din ) este prezentat statorul motorului cu bobinele și polii acestuia precum și statorul din magnet permanent.
Motor cu magnet permanent. a) rotorul b) statorul
În funcție de modul de conectare al bobinelor, motoarele pas cu pas cu magnet permanent pot fi de mai multe tipuri:
motoare pas cu pas cu magnet permanent unipolare;
motoare pas cu pas cu magnet permanent bipolare;
motoare pas cu pas cu magnet permanent multifază (sunt mai rar întâlnite).
Motoarelor pas cu pas cu magnet permanent sunt cel mai des întâlnite.
Motoare pas cu pas hibride
Motoarele pas cu pas sunt cele mai des utilizate și răspândite tipuri de motoare. La început au fost create ca motoare sincrone cu magnet permanent de viteză mică. Ele sunt o combinație dintre un motor cu reluctanță variabilă și un motor cu magnet permanent, de unde și denumirea de motoare hibride.
Motorul hibrid, asa după cum este perzentat în este alcătuit dintr-un rotor format din doi poli separați de un magnet permanent axial, cu dintele opus deplasat față de dintele corespunzător cu o distanță egală cu jumătate din înălțimea unui dinte pentru a permite o rezoluție mai mare la pășire, figura 12 (preluată din ).
Motor hibrid
Cererea tot mai mare de motoare pas cu pas cu performanțe remarcabile și un zgomot redus a dus la apariția a două tipuri de motoare hibride:
motoarele hibride cu 2 (4) faze – folosit în aplicații obișnuite;
motoarele hibride cu 5 faze – folosite în aplicații speciale deoarece oferă următoarele avantaje față de alte tipuri de motoare: rezoluție mare, zgomot mic în timpul funcționării, moment de reținere mic.
Deși toate aceste avantaje fac din el un motor foarte performant, acest lucru atrage după sine și un cost semnificativ mai mare al driver-elor. Deci în alegerea unui motor pas cu pas, de orice tip ar fi el, trebuie să se țină cont în primul rând de cerințele aplicației în care va fi folosit și în al doilea rând, de prețul motorului.
Secțiuni transversale prin motoare hibride cu 2, 3 și 5 faze
Pentru motoarelor pas cu pas hibride un număr de faze mai mare însemna un cost mai mare. Pentru a scădea numărul de faze ale motorului s-a implementat tehnologia de conducere sinusoidală în 3 faze. Odată cu implementarea acestei tehnologii s-a redus costul de producție, rezoluția motorului (numărul de pași/rotație) fiind determinată de numărul de perechi de poli în rotor. Momentan cel mai răspândit tip de motor pas cu pas hibrid este cel cu 3 faze. Odată cu progresul tehnologiei de conducere un motor cu 3 faze poate egala, din punct de vedere al performanțelor, un motor cu 5 faze.
Proiectare mecanică
Proiectarea mecanică a evoluat de la desenele cu creionul și hârtia până la modelarea 3D a pieselor și ansamblelor, astăzi putând fi posibile proiecte pe care inginerii de altă data doar și le imaginau.
Modelarea componentelor mecanice se realizează prin proiectare asistată de calculator sau CAD (Computer Aided Design). Realizarea unei piese 3D începe de obicei cu o schiță 2D care trebuie cotată si constrânsă în funcție de cerințe. Una din aplicațiile care stau la baza realizării acestor piese este Solidworks care în prezent este folosit de peste 2 milioane de ingineri și designeri la diferite companii. Un adevărat competitor al acestui software este Catia (Computer Aided Three Dimensional Interactive Apllication), scrisă în limbajul de programare C++, devine baza suitei software Dassault Systemes.
Catia (Computer Aided Three Dimensional Interactive Application) – figura 14 – este un program de proiectare asistată de calculator, tridimensional, interactiv și parametrizat.
Realizarea programului a început după 1970 și inițial a fost conceput pentru dezvoltarea avioanelor de luptă cu reacție. În ziua de azi, este folosit în toate industriile existente datorită facilităților de vârf oferite: modelarea parametrică, modelarea de suprafețe, modelarea de ansambluri.
Programul are o interfață grafică prietenoasă cu utilizatorul, ușor de personalizat, lucru benefic în sortarea varietații mari de comenzi disponibile fiecărei sesiuni de lucru.
Interfața programului Catia
SolidWorks este un program de proiectare mecanică destinat modelării de piese, realizării și a desenelor tehnice de producție. Interfața performantă a programului SolidWorks asigură maximizarea productivității. Nivelul acestui program este unul mediu constituindu-se într-o variantă populară a programului Catia.
Un model SolidWorks este constituit din piese (parts), ansambluri (assemblies) și desene de execuție.
De obicei se începe cu o schiță plană din care se trece la o formă primară 3D căreia i se adaugă sau i se scad diferite entități (features). Se poate începe și cu o suprafață sau geometrie solidă importată.
Relația dintre piese, ansambluri și desene este dată de faptul că orice modificare adusă uneia este oglindită și în celelalte. Cel mai folosit caz este atunci când o modificare adusă unei piese este automat actualizată atât in ansamblul căreia îi aparține, cât și în desenele de piesă sau/și de ansamblu. Este de asemenea posibilă modificarea, prin cote, a unui desen (dacă piesa nu este complet definită în mediul part) rezultând o actualizare atât a piesei cât și a ansamblului.
Interfața programului este obișnuită pentru aplicațiile de Windows. Bara de butoane de sus permite accesul la comenzile cele mai des folosite, apelabile altfel și din meniurile de sus. Bara de butoane din stânga este proprie mediului de lucru (piesă, table, sudură, ansambluri, desene de execuție, etc.).
Interfața programului SolidWorks
Inginerie software. Limbaje de modelare și de programare
Ingineria software (engl. software engineering) este un domeniu ce implică proiectarea, crearea și întreținerea de software aplicând tehnologii și practici din informatică, inginerie, managementul proiectelor, proiectarea interfețelor și a altor domenii.
Modelul standard de referință pentru dezvoltarea programelor de calculator este Modelul Waterfall. Acest model conține șase etape în realizarea programelor pe calculator:
a. Obținerea cerințelor – se scrie un caiet de sarcini
b. Designul (vezi proiectare de program) – se proiectează architectura de software
c. Programarea efectivă
d. Verificarea – dacă programul/biblioteca este conform cu caietul de sarcini
e. Testarea – dacă funcționează stabil
f. Întreținerea
Modelul Cascadă (engl. Waterfall), care mai este încă folosit în Statele Unite pentru proiectele destinate statului, are avantajul că fiecare fază a programării se poate gestiona separat. Astfel se poate plăti separat pentru îndeplinirea fiecărei din aceste etape. Un dezavantaj este faptul că dacă pe parcursul dezvoltării proiectului apar noi cerințe, acestea sunt greu de adăugat în etapa de design.
Un model mai bun este modelul iterativ de dezvoltare a programelor de calculator. În modelul iterativ proiectul este împărțit în iterații, fiecare durând între 2-3 luni. O iterație conține toate etapele modelului Waterfall, însă aceste etape sunt limitate la scopul iterației.
Un avantaj al modelului iterativ este faptul că tehnologia este testată mai rapid. De asemenea modificările cerințelor pot fi adăugate mai ușor.
Modelul Cascadă
Un limbaj standard pentru descrierea de modele și specificații pentru software este Unified Modeling Language (UML). UML a fost dezvoltat pentru programele orientate pe obiect, al căror fundament este structurarea programelor pe clasele și instanțele acestora.
UML oferă o gamă largă de diagrame pentru modelarea diferitelor situații în cadrul unui proiect de dezvoltare software. Astfel diagramele UML pot fi:
Diagrame de activitate folosite pentru reprezentarea desfășurării unei activități în rularea programului;
Diagramă de activitate
Diagrame de componente folosite în cadrul dezvoltării unei arhitecturi de sistem;
Diagrame de clase folosite pentru reprezentarea vizuală a claselor și a interdependențelor și a relațiilor de multiplicitate dintre ele;
Diagramă de clase
Diagrame use-case sunt utilizate în special în discuțiile dintre firma dezvoltatoare de software și clienți sau utilizatori;
Diagramă use-case
Pentru a putea comunica unui calculator metoda de rezolvare a unei probleme se utilizează un limbaj de programare. Limbajul de programare pune la dispoziția utilizatorului o sintaxă care conține datele cu care lucrează programul care se dorește a fi realizat și instrucțiunile ce trebuiesc executate pentru a rezolva respectiva problemă. C este un limbaj de programare dezvoltat de Ken Thompson și Dennis Ritchie în anul 1970. A fost creat cu scopul de a scrie nucleul sistemului de operare UNIX. Ca orice alt limbaj de programare, limbajul C are propriul său alfabet și propriile sale simboluri. Scopul principal pentru care a fost creat acest limbaj de programare a fost acela de a scrie programele mari mai ușor și cu mai puține erori. Un exemplu de program apărut în cartea lui Brian Kernighan și Dennis Ritchie devine program introductiv pentru majoritatea limbajelor de programare. În urma rulării programului acesta v-a afișa mesajul „Hello, World!”.
Program introductiv C
În ceea ce privește sintaxa, acesta stă la baza limbajelor de programare C++, Python, Java, Java Script, etc. Astfel în anul 1990, Bjarne Stroustrup pune bazele dezvoltării limbajului de programare C++, acesta devenind unul dintre cele mai utilizate programe chiar și în ziua de astăzi. Programul introductiv se îmbunătățește prin modificarea structurii.
Program introductiv C++
Python este un limbaj de programare creat în anul 1989 de catre programatorul olandez Guido Van Rossum. Acesta este folosit de către companii precum Google și Yahoo pentru programarea aplicațiilor web. În ziua de astăzi se lucrează la îmbunătățirea limbajului de programare, implementarea de bază a acestuia fiind CPython, scrisă în C. Odată cu dezvoltarea lui, acesta ajunge să fie folosit de către programatori specializați și chiar și la predarea limbajului în unele medii universitare. Din aceleași motive, multe sisteme bazate pe Unix, inclusiv Linux, BSD și Mac OS X includ din start interpretatorul CPython.Spre deosebire de limbajul de programare C, sintaxa codului în Python este mult mai clară, simplificată și apropiată de limbajul natural.
Program introductiv Python
În ceea ce privește partea software acest limbaj se încadrează în limbajele de tip orientat-obiect. Un avantaj al acestui limbaj de programare este acela că există o multitudine de biblioteci standard de metode ce permit lucrul cu fișiere, arhive, fișiere XML.
În anul 2000, Python se dezvoltă foarte mult ceea ce permite rularea aplicațiilor la o viteză mult mai mare. Modulele (bibliotecile) Python pot fi de asemenea scrise în C, compilate și importate în Python pentru a mări viteza de procesare.
Arhitectura proiectului
Capitolul este împărțit în subcapitole ce descriu elementele componente ale dispozitivului și interfața cu utilizatorul.
Se prezintă interfața cu utilizatorul și cum modul de utilizare.
Pentru claritate se prezintă modulele principale împreună cu elementele componente: micro-computerul Raspberry Pi B+, eranul touchscreen, senzorul de temperatură, dispozitivul de lumină și motorul pas cu pas unipolar folosit.
Introducere
Proiectul prezentat în această lucrare comunică cu utilizatorul prin intermediul unei intefețe grafice prezentată cu ajutorul display-ului PiTFT. Acest display este conectat la micro-computerul Raspberry Pi B+.
În continuarea acestui subcapitol sunt prezentate din punct de vedere arhitectural, modulul electronic, interfața cu utilizatorul și ansamblul mecanic.
Modulul electronic
Modulul electronic cuprinde următoarele componente:
Micro-computerul Raspberry PI B+, în jurul căruia sunt construite toate funcțiile acestui proiect;
Ecranul PiTFT care include și touch-screen-ul rezistiv folosit ca interfață unică cu utlizatorul;
Driverul pentru motorul pas cu pas folosit pentru alimentarea cu hrană;
Senzorul de temperatură;
Modulul electronic de comandă a luminii;
Black Box dispozitiv
Interfața grafică
Interfața conține un meniu format din șase butoane fiecare având o funcție diferită. În cele ce urmează, sunt prezentate funcțiile principale ale dispozitivului realizat.
Interfața grafică. Vedere generală
Meniul pentru controlul temperaturii și luminii
Pentru a putea seta temperatura respectiv lumina, utilizatorul trebuie sa acceseze butoanele corespunzătoare
Butonul „Light” permite reglarea luminozității, iar butonul „Temperature” a temperaturii din interiorul acvariului. După terminarea reglajelor se apasă butonul „Ok”.
Controlul temperaturii și luminii
Lumina din interiorul acvariului sau terariului este posibilă datorită sistemului de lumină care poate fi setată prin apăsarea minusului sau plusului.
Intefața corespunzătoare butonului „Light”
Temperatura indicată pe display este cea citită de senzorul DS18B20. Pentru a seta o anumită temperatură va trebui sa incrementam sau decrementam valoarea temperaturii dorite prin apăsarea minusului sau plusului din dreptul valorii.
Interfața corespunzătoare butonului „Temperature”
Funcția de alimentare cu hrană
Prin acționarea butonului „Food” este afișată o interfață în care utilizatorul poate alege intervalul de hrănire. Pentru a reveni la meniul principal se apasă „X” care se găsește în colțul din dreapa sus a eranului.
Buton pentru alimentare cu hrană
La acționarea butonului „Food” va fi afișată urmatoarea interfață:
Interfața corespunzătoare butonului „Food”
Funcția de schimbare al apei
Stabilirea intervalului de schimbare a apei este posibilă prin apăsarea butonului „Watter”. Aceasta funcție anunță utilizatorul prin intermediul unei alarme.
Buton pentru schimbarea apei
La acționarea butonului „Watter” va fi afișată urmatoarea interfață:
Interfața corespunzătoare butonului „Watter”
Informații și setări
Displayul este compus din două butoane utile pentru orice utilizator respectiv butonul „Help” care conține informații referitoare la utilizarea dispozitivului și butonul „Settings” util în setarea anumitor comenzi.
Butoane pentru informații și setări
Așa cum este prezentat în figura 28, la acționarea butonului „Settings” utilizatorul are posibilitatea de a regla data, ora, intervalul de timp pentru care display-ul să intre în modul „standbuy” și tonul de alertă.
Intefața corespunzătoare butonului „Settings”
La acționarea butonului „Help” vor fi afișate următoarele informații:
Interfața corespunzătoare butonului „Help”
Ansamblul mecanic
De scris #D la carcasa
Structura proiectului
Capitolul de față prezintă detalii constructive din punct de vedere electronic, mecanic si software. Astfel, sunt prezentate schema electrică, secțiuni de program (doar cele importante, codul complet fiind prezentat în anexă) și ansamblul mecanic (folosind proiectare asistată în Catia).
Introducere
Programul a fost scris în limbajul de programare Python, iar ca și modul al acestui limbaj de programare, am folosit PyGame conceput pentru a crea jocuri.
Acesta include biblioteci de sunet și grafică pe calculator care pot fi utilizate cu limbajul de programare Python. Biblioteca Simple Directmedia Layer (SDL) permite dezvoltarea în timp real a jocurilor pe calculator.Acesta face scrierea, compilarea și încarcarea codului pe platforma de dezvoltare mai ușoară.
Dispozitivul a fost proiectat în Catia V5. Din meniul de Mechanical Design am folosit următoarele module: Part Design pentru modelarea fiecărei piese în parte, Assembly Design pentru ansamblarea componentelor și modulul Drafting pentru realizarea desenelor de execuție.
Modulul electronic
Raspberry Pi B+
Am ales să folosesc modelul Raspberry Pi B+ deoarece este un micro-computer utilizat în realizarea unui proiect. Programul scris în limbajul de programare Python a fost implementat cu ușurință pe micro-computer. Fiind dispus cu porturi USB atașarea unei tastaturi ușurează modul de lucru.
Fixarea eranului touchscreen a fost posibilă datorită pinilor micro-computerului Raspberry Pi (Figura 30. )
Denumire pini Raspberry Pi B+
Schemă electrică Raspberry Pi B+
Senzor de temperatură
Pentru măsurarea temperaturii am ales senzorul digital DS18B20 care oferă între 9 și 12 biți pentru măsurarea temperaturii în grade Celsius și o funcție de alarmă nonvolatilă care poate fi programată de către utilizator pentru punctele superioare și inferioare de declanșare.
DS18B20 comunică printr-o magistrală care prin definiție necesită o singură linie de date pentru a comunica cu microprocesorul central.
Conține un interval de temperatură operațional între -55°C; +125°C și are o acuritate de până la ±0.5°C pentru intervalul -10°C ; +85°C. Totodată senzorul DS18B20 este capabil de a folosi energia direct din linia de date fără a fi nevoie de o sursă de energie suplimentară.
Fiecare senzor DS18B20 are un cod serial unic de 64 biți care le permite mai multor senzori DS18B20 sa funcționeze pe aceași magistrală printr-un singur fir.
Senzor de temperatură digital DS18B20
Exemplu de conectare a mai multor senzori DS18B20
Dispozitiv de lumina
Pentru controlul luminii am folosit un neon ultra slim t4/6w/g5 pe care l-am modificat, incluzând in același corp si un releu, pentru a putea fi comandat de către Raspberry PI.
Caracteristici:
Dimensiuni: 270x19x43mm;
Corp: policarbonat;
Lampă: 1x6W;
Switch: on/off – legat în paralel cu contactele de putere ale releului.
Neon ultra slim t4/6w/g5
Motor pas cu pas unipolar cu 5 fire
Pentru acest proiect de diplomă motorul folosit este unipolar cu 5 fire. Motorul conține 2 bobine identice. Ambele bobine conțin cate un racord central (un fir ce iese din bobină), iar pentru a putea face identificarea separată a bobinelor trebuie atinse firele terminale. Racordul central poate fi identificat prin măsurarea rezistenței cu un ohm-metru, care poate măsura rezistențe mai mici de 10 ohm.
Motor pas cu pas cu 5 fire
În momentul în care curentul străbate o bobină, aceasta produce un câmp magnetic care atrage rotorul magnet ce este conectat pe axul motorului. Funcția principală a motorului pas cu pas este de a influența rotorul prin inversarea direcției curentului care trece prin bobine secvențial.
Pentru a realiza inversarea curentului, motorul se folosește de racordul central legat la plusul sursei, iar unul din cele două terminale este dus la masă pentru a putea face curentul să se miște într-o direcție. La masă se găsește și celălalt terminal pentru a putea fi realizată inversarea curentului.
Cu toate că doar jumătate din bobine au energie, curentul poate circula în ambele direcți. Terminalele nu se duc la aceeași masă deoarece bobinele ar avea energie și s-ar pierde din putere.
Schemă electrică motor pas cu pas unipolar – de inlocuit cu cea din poza de pe tel!
Programul de comanda
Bucati din cod – explicate. Modulele mai mimportante.
Restul codului in anexa!
Ansamblul mecanic
Utilizând programul de proiectare Catia am putut realiza atât părțile componente ale dispozitivului cât și întreg ansamblul 3D.
Modelare 3D Micro-computer Raspberry Pi B+
Părțile componente ale micro-computerului
Părțile componente ale micro-computerului
Modelare 3D senzor de temperatură DS18B20
Modelare 3D dispozitiv de lumină
Modelare 3D dispozitiv de lumină
Rezultate obtinute
Am implementat un program care funcționeaza și am creat o interfață cu utilizatorul simplă și intuitivă.
În ciuda anumitor problemelor întâmpinate aplicațiile de control al temperaturii, luminozității, schimbarea apei și alimentarea cu hrană funcționează, dar mai important este faptul că toate aplicațiile funcționează bine împreună.
Am creat o interfață intuitivă și destul de prietenoasă cu utilizatorul.
În final am obținut un dispozitiv cu dimensiuni rezonabile, în care s-au implementat aplicațiile alese cu succes.
Concluzii și intenții
(Se pot pune si separat 6.1. Concluzii si 6.2. Intentii)
Tot ceea ce v-ati propus sa realizati in Cap1 ati reusit sa implementati.
Daca nu – De ce? Pentru ca altii sa nu repete greselile mele!
NIMIC NU SE PIERDE!
Anexa 1. Dimensiunile mecanice ale Raspberry Pi B+
Anexa 2.Diagramă bloc DS18B20
Anexa 3. Schemă electrică completă Raspberry Pi B+
Anexa 4. Schemă electrică
Anexa 5. Cod sursa program microcontroller
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Controlul Automatizat al Mediului Pentru Acvarii Si Terarii (ID: 112845)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
