FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [308439]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” [anonimizat]. Titus SLAVICI
ABSOLVENT: [anonimizat]
2019
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” [anonimizat]. Titus SLAVICI
ABSOLVENT: [anonimizat]
2019
Cuprins
UNIVERSITATEA DIN ORADEA
FACULTATEA de Inginerie Electrică și Tehnologia Informației
DEPARTAMENTUL Calculatoare și tehnologia informației
TEMA _________________
Proiectul de Finalizare a studiilor a student: [anonimizat]________________________
1). Tema proiectului de finalizare a studiilor: _______________________________________________________________________________________________________________________________________________________________________________________________________
2). Termenul pentru predarea proiectului de diplomă__________________________________
3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor _______________________________________________________________________________________________________________________________________________________________________________
4). Conținutul proiectului de finalizare a studiilor : ______________________________ ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
5). Material grafic: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________
6). Locul de documentare pentru elaborarea proiectului de diplomă:
______________________________________________________________________________________________________________________________________________________
7). Data emiterii temei: ___________________________________________________
Coordonator științific
Conf. Dr. Ing. Titus SLAVICI
REFERAT
PRIVIND PROIECTUL DE DIPLOMĂ
A
ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : ……………………………………….
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Tehnologia informației
PROMOȚIA 2019
Titlul proiectului …………………………………………………………………..
…..…………………………………………………………………………………………………
Structura proiectului ………………………………………………………………..
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………
Aprecieri asupra conținutului proiectului de DIPLOMĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Aprecieri asupra proiectului (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului întocmit, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării proiectului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Redactarea proiectului respectă ………………………………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2019 și propun acordarea notei ………………
Oradea,
Data Coordonator științific
Introducere
Tema acestei lucrări a fost alesă din dorința de a explora mai mult legătura dintre artă și știință, cum două ramuri diametral opuse lucrează împreună și obțin rezultate inedite.
În această lucrare au fost studiate noțiuniile de reflexie a luminii și programarea unei plăcuțe de dezvoltare Arduino. Rezultatul obținut este o scenă de lumini. Aceasta are la bază o oglindă infintă și o bandă de leduri adresabile programate să reacționeze la sunet, muzică.
În prima parte a lucrării este prezentată atât oglinda și evoluția ei în timp , cât și legea reflexiei și modificările ei în funcție de tipul oglinzii.
În a doua parte a lucrării este prezentată platforma Arduino, evoluția plăcuței de dezvoltare și soft-ul IDE folosit în programarea acesteia.
Studiul de caz a fost realizat prin îmbinarea celor două părți în scopul obținerii unui montaj inedit. Astfel, având la bază legea reflexiei, am analizat comportamentul a două suprafețe cu procentaje diferite de reflexie a luminii puse față în față la diferite distanțe una de cealaltă.
A doua parte a studiului a constat în realizarea unui montaj prin care plăcuța de dezvoltare preia datele oferite de un senzor de sunet și redă acea informatie prin aprinderea unor leduri RGB la intensități și culori diferite.
Rezultatul final a fost o scenă de lumini care reacționeză la sunete și muzică. Aceasta poate avea mai multe întrebuințări în functie de obiectul în care este încorporată.
Dacă o încorporăm într-o ramă tip tablou poate fi folosită în diverse cluburi, mall-uri, galerii de artă, iar dacă o încorporăm într-o piesă de mobilier (ex. o masă), ar putea fi folosită în localuri, restaurante, săli de jocuri și de ce nu, într-un living mai excentric.
Oglinda
Definiție. Legea reflexiei
Orice suprafață lustruită care reflectă o rază de lumină în conformitate cu legea reflexiei, poate fi considerată o oglindă.
Oglinda tipică este defapt o foaie de sticlă care este acoperită pe spate cu aluminiu sau argint astfel producand imagini.
Când lumina cade pe un corp, o parte din ea poate fi reflectată, alta absorbită, iar cealaltă parte transmisă prin corp. Pentru ca o suprafață netedă să acționeze ca o oglindă, ea trebuie să reflecte cât mai multă lumină posibilă și trebuie să transmită și să absoarbă cât mai puțin posibil. Pentru a reflecta razele luminoase fără a le împrăștia sau a le difuza, suprafața unei oglinzi trebuie să fie perfect netedă sau neregularitățile ei trebuie să fie mai mici decât lungimea de undă a luminii reflectate.Legea reflexiei descrie unghiul luminii reflectate: unghiul luminii incidente este același cu unghiul luminii reflectate. [7]
Astfel ea decurge din difracția unei unde plane cu o lungime de undă mică pe o suprafață limită plată: astfel în momentul în care dimensiunea suprafeței limită este mult mai mare decât lungimea de undă, electronii pe suprafața limită îi vedem oscilând exact în fază numai dintr-o direcție – direcția speculară. Dacă o oglindă devine foarte mică în comparație cu lungimea de undă, legea reflexiei nu mai rămâne valabilă, iar comportamentul luminii este mai complicat.
1.2. Oglinda în istorie
În timp ce prima oglindă era, fără îndoială, un corp de apă, prima care a fost facută de mâna omului datează de aproximativ 6200 înaintea erei noastre, găsită la situl Çatal Hüyük din Turcia modernă. În alte trei mii de ani, Egipteni și Sumerienii au creat oglinzi metalice – primul a fost cuprul, apoi bronz, aur și argint.
Între timp, în emisfera vestică, Olmecs, Moche și alte culturi foloseau oglinzi realizate din antracit, slat, pirită și obsidian.
Vechii romani au pionierat în a face oglinzi de sticlă prin suflare în borcane de sticlă și acoperind interiorul lor cu plumb topit, apoi rupându-le în afară rezultând oglinzi convexe de calitate slabă. În Evul Mediu, această artă a fost aproape uitată, dar a devenit din nou populară, în special în nordul Europei.
De la înființarea sa, în Evul Mediu ca o brescă italiană secretă, urmată mai apoi de spionajul industrial francez din secolul al XVII-lea, care a deținut monopolul, industria oglinzii de sticla a crescut la proporții uriașe. Odată cu evoluția acestei industrii, au apărut atât procese tehnologice mai ieftine de prelucrare cât și metode moderne de aplicare a materialului reflectorizant astfel încât oglinda a devenit un obiect obișnuit ce se regăsește în orice gospodărie.
Astfel putem afirma ca oglinzile au apărut încă din cele mai vechi timpuri ale civilizației noastre și acum ne indrumă în continuare spre viitor. Istoria oglinzilor acoperă un teritoriu vast, de la creația universului (probabil alături de alte universe în oglindă alternativă) și până la primul telescopul spațial si anume Hubble care încă ne oferă informații prețioase. [1]
1.3. Fizica oglinzii. Tipuri de oglinzi.
Pentru a înțelege oglinzile, mai întâi trebuie să înțelegem lumina.
Când lumina atinge o suprafață la un unghi mic, ca pe un lac la apusul soarelui, aceasta se rotește la același unghi mic și lovește ochii din plin, astfel observăm o mare diferență față de oblicitatea ce o are atunci când soarele stă deasupra capului. De aceea, strălucirea soarelui seara și dimineața este mult mai intensă decât în restul zilei.
Lumina în sine este invizibilă până când ricoșează din ceva și ne lovește ochii. De exemplu, un fascicul de lumină care călătorește prin spațiu nu poate fi văzut din lateral până când nu intră în ceva care îl împrăștie, cum ar fi un nor de hidrogen sau un satelit. Această împrăștiere este cunoscută sub numele de reflexie difuză și astfel ochii noștri interpretează ceea ce se întâmplă atunci când lumina atinge o suprafață neuniformă.
Oglinzile nu împrăștie lumina în acest fel. Cu o suprafață netedă, lumina reflectă fără a deranja imaginea care intră. Aceasta se numește reflecție speculară. Acest concept ridică o întrebare interesantă: dacă oglinzile păstrează imaginile care le-au lovit, de ce se transformă din stânga în dreapta și invers? De ce nu în sus și în jos? Adevărul este că o oglindă nu se inversează într-adevăr la stânga și la dreapta, ci mai degrabă în față și în spate, ca o imprimantă sau o ștampilă. Imaginați-vă că scrieți ceva pe o foaie de hârtie în stilou închis și apoi îl țineți într-o oglindă. Se vede înapoi, dar seamănă la fel ca și cum a-ți fi ținut la o lampă hârtia și ați privit-o din spate. Imaginea dumneavoastră în oglindă este o imprimare ușoară a dumneavoastră, nu o reflectare, din perspectiva oglinzii.
Când o oglindă reflectă lumina, ea formează o imagine. O imagine este o copie a unui obiect care este format prin reflexie sau refracție. Oglinzile pot avea suprafețe plane sau curbate. Forma suprafeței unei oglinzi determină tipul imaginii pe care o formează. De exemplu, unele oglinzi formează imagini reale, iar alte oglinzi formează imagini virtuale.
O imagine reală se formează în fața unei oglinzi unde razele de lumină reflectate se întâlnesc de fapt aceasta fiind o imagine adevărată care poate fi proiectată pe ecran.
O imagine virtuală pare a fi pe cealaltă parte a oglinzii. Desigur, razele reflectate nu trec de fapt prin oglinda spre cealaltă parte, deci o imagine virtuală nu există cu adevărat. [9]
Oglinda plană
Acesta este cel mai obișnuit tip de oglindă. Are o suprafață plană reflectorizantă și formează numai imagini virtuale. Imaginea formată dintr-o oglindă plană este, de asemenea, în partea dreaptă și păstrează dimensiunea originală. Dar ceva este diferit în ceea ce privește imaginea, comparativ cu obiectul real din fața oglinzii. Stânga și dreapta sunt inversate. Din punct de vedere matematic, o oglindă plană poate fi considerată a fi limita oricărei oglinzi curbe convexe sau concave, deoarece atât raza cât și lungimea focală devin infinite.
Figura 1.2 Oglinda plană [15]
Oglindă concavă
Oglinzile curbate pot fi concave sau convexe. O oglindă concavă are formă asemănătoare cu interiorul unui bol. Acest tip de oglindă formează imagini reale sau virtuale, în funcție de locul în care obiectul este plasat în raport cu punctul focal.
Punctul focal este punctul din fața oglinzii unde se întâlnesc razele reflectate. Puteți vedea cum oglinzile concave formează imaginile în figura nr. 1.3 si figura nr. 1.4. Oglinzile conice sunt utilizate în spatele farurilor auto. Ele focalizează lumina și o fac mai luminoasă. Oglinzile conice sunt de asemenea folosite în construcția telescoapelor.
Dacă obiectul este mai departe de oglindă decât punctul focal, atunci imaginea este reală, cu capul în jos și redusă în dimensiune.
Figura 1.3 Obiect aflat dupa punctul focal[15]
Dacă obiectul este mai departe de oglindă decât punctul focal, atunci imaginea este reală, cu capul în jos și redusă în dimensiune.
Figura 1.4 Obiect aflat intre punctul focal și oglindă [15]
Dacă obiectul este mai aproape de oglindă decât punctul focal, atunci imaginea este virtuală, cu partea dreaptă în sus și cu dimensiunea mărită.
Oglinda convexă
Un alt tip de oglindă curbată, este oglinda convexă, care are forma asemeni exteriorului unui bol. Datorită formei sale, ea poate aduna și reflecta lumina dintr-o arie mai largă. După cum puteți vedea în figura nr. 1.5, o oglindă convexă formează numai imagini virtuale care sunt în partea dreaptă și mai mici decât obiectul real.[12]
Figura 1.5 Diagramă oglindă convexă [15]
1.4. Conceptul de oglindă infinită. Principiul de funcționare.
Până acuma am studiat despre oglindă, originile ei, legi ce stau la bază si diferitele tipuri de oglinzi.
În continuare am ales să prezint ce se întamplă în momentul în care luam aceste legi ale relfexiei luminii și le punem față în față folosind două tipuri diferite de oglinzi.
De la inventarea tehnologiilor moderne de reflexie(oglinzi), s-a depus un efort mare în inventarea nu doar a materialelor noi de construcție care să permită amplasarea unor suprafețe reglexive în noi tipuri de medii și produse, dar și noi modalități prin care oglinzile pot fi folosite pentru artă, și scopuri estetice. Unul dintre cele mai faimoase și mai ușor de găsit exemple de astfel de oglinzi sunt oglinzile infinit care sunt folosite ca decorațiuni, obiecte de artă în muzee sau expoziții de artă, obiecte de divertisment, părți de mobilier sau decorațiuni interioare sau uneori în cele mai luminoase locuri cum ar fi mall-uri, shopping center-e, frizeri, saloane de înfrumusețare, spații publice și lifturi.
Oglinda infinit lucrează pe principiul plasării a două suprafețe tip oglindă, astfel încât lumina să fie reflectată dintr-un plan în celălalt în permanență lăsând impresia că este prinsă între ele la infinit. Aceste oglinzi de infinit, de obicei, vin în formele de bază. [11]
Primul tip (figura nr. 1.6) este setul mare de oglinzi clasice care sunt setate să se confrunte unul cu celălalt, permițând utilizatorilor să intre în acea parte a spațiului în care reflectarea lor va fi afișată în ambele oglinzi, iar reflexia lor de la o oglindă la alta va crea un aspect foarte interesant și anume, efectul reflexiilor infinite care se micsorează înapoi la punctul infinit îndepărtat din mijlocul oglinzilor. Cel mai frecvent, oglinzile infinite de tip "tavan spre perete" pot fi găsite în saloanele de îmbrăcăminte sau în centrele de distracții.
Figura 1.6 Oglindă infinită formată din două suprafețe cu reflexie 100% [16]
Cel de-al doilea tip (figura nr. 1.7) este oglinda infinită autonomă, care funcționează pe principiul de a transmite lumina între două suprafețe paralele ținute îndeaproape – unul dintre planuri fiind o oglindă obișnuită, iar celălalt plan o oglindă parțială (reflectă lumina, dar permite si trecerea ei prin sticla). Cu toate acestea, deoarece oglinda unidirecțională permite doar "ieșirea" luminii din spațiul dintre oglinzi, trebuie să fie plasată o iluminare interioară în spațiul întunecat dintre ele.
Pentru a face acest tip de oglindă infinită atrăgătoare, marginile periferice dintre cele două suprafețe(sau uneori chiar matrice complexă plasată direct pe întreaga suprafață a oglinzii) sunt decorate cu anumite puncte de lumină statice sau dinamice(LED-uri, becuri sau alte surse de lumină). [4]
Cu o lumină prezentă între cele două planuri, oglinda cu sens unidirecțional poate lăsa apoi o gamă de imagini înapoi în afara structurii oglinzii interne, oferind utilizatorilor iluzia foarte realistă a adâncimii, cu lumini care "intră" adânc în interiorul întunericului din oglinda secundară. Unele modele rare de oglinzi infinite pot avea o orientare non-paralelă a suprafeței oglinzilor, ceea ce creează efectul tunelului vizual înclinat care este curbat într-o direcție. Chiar mai rar, suprafața oglinzii infinite ar putea fi făcută automatizată, creând efectul tunelului învârtit.
Figura 1.7 Oglindă infinită formată din două suprafețe cu procente diferite de reflexie
Distanța dintre două suprafețe de oglindă paralele poate avea un efect semnificativ asupra aspectului profunzimii pe care utilizatorul o va percepe.
De exemplu, la o distanța de 2 cm între oglinzi și sursa de lumină, adică având distanța de 1 cm față de fiecare dintre cele doua suprafețe, creează iluzia următoarelor distanțe vizibile atunci când este privită din exterior – 1cm, 4cm, 7cm, 11cm, 15cm, iar fiecare reflecție urmărește o distanță de 4 centimetri față de suprafata oglinzii exterioare. [10]
2. Arduino
2.1. Ce este Arduino?
Arduino este o platformă cu microcontroler care poate fi folosită pentru dezvoltarea de aplicații interactive. Practic, informația este preluată de la elementele de intrare (senzori și comutatoare), se procesează în interiorul microcontrolerului platformei și este transmisă către elementele de ieșire: leduri, motoare, actuatoare, etc.
Exista mai multe variante de placi de dezvoltare Arduino, cum ar fi: Mega, Diecimila, Duemilanove, Mini, Nano și chiar Bluetooth Arduino, cele mai noi produse fiind Arduino Uno și Arduino Mega 2560.
Figura 2.1 Placi de dezvoltare Arduino [14]
Pentru a face o idee despre ceea ce se poate face cu Arduino, iată câteva exemple de proiecte care se pot realiza cu Arduino:
OpenEnergyMonitor, sistem bazat pe Arduino care monitorizează energia electrică consumată în casă;
Arduino + senzor temperatură + senzor umiditate + senzor presiune atmosferică + placă de rețea Ethernet care transmite datele de mediu pe Google Docs, la fiecare 10 secunde;
mână robotică, bazată pe o mânușă cu senzori de îndoire si servomotoare;
robot autonom care ocolește obstacole;
robot controlat prin Bluetooth folosind telefonul mobil sau laptop-ul;
dispozitiv pentru pictat ouă („the EggBot”);
acces bazat pe cartele RFID + notificari prin Twitter
O platformă Arduino este compusă dintr-un microcontroler Atmel AVR de 8, 16 sau 32 biți în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560 precum și componente complementare care facilitează programarea și încorporarea în alte circuite. Pentru programare se utilizează software-ul Arduino IDE (Integrated Development Environment) care suportă limbajele de programare C și C++ folosind reguli speciale de organizare a codului.
Spre deosebire de majoritatea plăcilor de circuite programabile anterioare, Arduino nu are nevoie de o bucată separată de hardware (numită programator) pentru a încărca un nou cod pe placă – puteți pur și simplu utiliza un cablu USB. În plus, ID-ul Arduino utilizează o versiune simplificată a C++, facilitând învățarea programării. [2]
2.2. Evoluția platformei
În 2005, bazându-se pe munca lui Hernando Barragán (creatorul platformei Wiring), Massimo Banzi și David Cuartielles au creat Arduino, un dispozitiv programabil ușor de utilizat pentru proiecte interactive de design de artă, la Institutul de Design Interacțiune Ivrea din Ivrea, Italia. David Mellis a dezvoltat software-ul Arduino, care se baza pe platforma Wiring. În scurt timp, Gianluca Martino și Tom Igoe s-au alăturat proiectului, iar cei cinci sunt în prezent cunoscuți ca fondatorii inițiali ai platformei Arduino. Ei doreau un dispozitiv simplu, ușor de conectat la diverse lucruri (cum ar fi relee, motoare și senzori) și ușor de programat.
De asemenea, a trebuit să fie ieftin, deoarece studenții și artiștii nu sunt cunoscuți pentru că au o mulțime de bani în numerar. Ei au selectat familia AVR de la Atmel de microcontroler pe 8 biți (MCU sau μC) și au proiectat o placă de circuit autonomă cu conexiuni ușor de folosit, au scris firmware-ul bootloader-ului pentru microcontroler și l-au ambalat într-o dezvoltare integrată simplă (IDE) care folosea programe denumite "schițe". Rezultatul a fost Arduino.
De atunci, Arduino a crescut în mai multe direcții diferite, unele versiuni fiind mai mici decât cele originale, iar unele devenind mai mari. Fiecare are o nișă specifică pe care să o umple. Elementul comun printre ele este biblioteca ARduino AVR-GCC runtime care este livrată cu mediul de dezvoltare Arduino și firmware-ul de bootloader de la bord care este preîncărcat pe microcontrolerul fiecărui board Arduino.
Familia Arduino utilizează procesoare dezvoltate de Atmel Corporation din San Jose, California. Majoritatea modelelor Arduino utilizează seria de microcontrolere AVR pe 8 biți, cu excepția primului procesorul ARM Cortex-M3 pe 32 de biți.
Deși un board Arduino este, după cum afirmă echipa Arduino, doar o bază de dezvoltare Atmel AVR de bază, mediul software Arduino îl diferențiază. [5]
Având în vedere evoluția tehnologică în timp, putem spune că în ziua de azi platforma Arduino acoperă o gama foarte mare de aplicații.
Monitorizări în timp real:
Stație meteo automată;
Detector de lumină;
Urmărirea soarelui pentru panouri solare;
Monitorizarea radiației de fundal;
Detector automat de sălbăticie;
Sistem de securitate casnic sau de afaceri.
Controlul la scară mică
Roboți mici;
Rachete model;
Model de aeronavă;
Quadrotor UAVs;
CNC simplă pentru mașini-unelte mici.
Automatizare la scară mică
Sera automată;
Acvariu automat;
Robot de transfer de probe de laborator;
Cameră termică precisă;
Sistem de testare electronic automatizat.
Artă de performanță
Controlul iluminării dinamice;
Controlul dinamic al sunetului;
Structuri cinematice;
Lucrări de artă receptive la public.
2.3. Arduino UNO
Platforma Arduino Uno este o placa de dezvoltare bazată pe microcontrolerul ATmega328P, având 6 intrări analogice, 14 de intrări digitale/pini de ieșire (din care 6 pot fi utilizate ca ieșiri PWM), un oscilator cu quart de 20 MHz, o conexiune USB, o mufa de alimentare, și un buton de resetare.
Figura 2.2 Placă de dezvoltare Arduino UNO – schema explicativă
Uno diferă de toate plăcile precedente prin faptul că nu utilizează chip-ul FTDI USB-to-serial.
În schimb, acesta oferă Atmega16U2 (Atmega8U2 până la versiunea R2) programată ca USB-to-serial convertor.
Revizia 2 a plăcii Uno are un rezistor care trage linia HWB 8U2 la sol, făcând mai ușor să pună în modul DFU.
Revizia 3 a tabloului are următoarele caracteristici noi:
1.0 pinout: au fost adăugați pinii SDA și SCL care sunt aproape de pinul AREF și alte două ieșiri noi amplasate în apropierea pinului RESET, IOREF care permite ecranelor să se adapteze la tensiunea furnizată de la bord. În viitor, scuturile vor fi compatibile atât cu placa care utilizează AVR, care funcționează cu 5V și cu Arduino Due care funcționează cu 3.3V.
Circuit RESET mai puternic.
Atmega 16U2 înlocuiește 8U2.
Comunicarea – Arduino Uno are o serie de facilități pentru a comunica cu un computer, un alt Arduino sau alte microcontrolere. ATmega328 oferă comunicație serială UART TTL (5V), care este disponibilă pe pinii digitali 0 (RX) și 1 (TX).
Un ATmega16U2 de pe placa canalizează această comunicare prin USB și apare ca un port virtual pentru software-ul de pe computer. "16U2 firmware-ul folosește driverele standard USB COM și nu este nevoie de driver extern. Cu toate acestea, pe Windows, este necesar un fișier .inf. Software-ul Arduino include un monitor serial care permite transmiterea de date textuale simple înspre si dispre Arduino.
LED-urile RX și TX de pe placă vor clipi când există date transmise prin cip USB-to-serial și conexiune USB la computer (dar nu pentru comunicare serială pe pinii 0 și 1). [14]
2.4. Mediul de dezvoltare
Mediul de dezvoltare integrat Arduino (IDE) este o aplicație cross-platform (pentru Windows, MacOS, Linux) care este scrisă în limbaj de programare Java. Acesta a provenit din IDE pentru procesarea și cablarea limbilor și include un editor de coduri cu funcții precum tăierea și lipirea textului, căutarea și înlocuirea textului, indentarea automată și evidențierea sintaxelor și oferă mecanisme simple cu un singur clic pentru a compila și a încărca programe într-o placă Arduino. De asemenea, conține o zonă de mesaje, o consolă de text, o bară de instrumente cu butoane pentru funcții comune și o ierarhie a meniurilor de operare. Codul sursă pentru IDE este lansat sub GNU General Public License, versiunea 2.
IDE-ul Arduino suportă limbajele C și C ++ folosind reguli speciale de structurare a codurilor. IDE-ul furnizează o bibliotecă software din proiectul Wiring, care oferă multe proceduri comune de intrare și ieșire. Codul scris de utilizator necesită doar două funcții de bază, pentru pornirea schiței și buclă principală de program, care sunt compilate și legate cu un secvență principal de programare () într-un program executiv ciclic executabil cu unelte GNU, de asemenea inclus în distribuția IDE. ID-ul Arduino utilizează programul avrdude pentru a converti codul executabil într-un fișier text în codificare hexazecimală care este încărcat în placa Arduino printr-un program de încărcare din firmware-ul plăcii.
Sketch este un program scris cu IDE Arduino.
Schițele sau sketch-urile sunt salvate pe computerul de dezvoltare ca fișiere text cu extensia .ino. Arduino Software (IDE) pre-1.0 salva shițele folosind extensia .pde.
Un program minimal Arduino C / C ++ constă doar din două funcții:
setup (): Această funcție se numește o dată când o schiță începe după pornire sau resetare. Se utilizează pentru a inițializa variabilele, modurile de intrare și ieșire cu pini și alte biblioteci necesare.
buclă (): După ce funcția de configurare () se termină, funcția buclă () este executată în mod repetat în programul principal. Controlează placa până când placa este oprită sau resetată.
Figura 2.3 Sketch software [17]
Astfel putem spune că Arduino este mult mai mult decât un simplu microcontroler. Cu un IDE expansiv și o gamă largă de configurații hardware, Arduino este într-adevăr o platformă diversă. Varietatea bibliotecilor sale și design-ul intuitiv îl fac favorit atât pentru utilizatorii noi, cât și pentru cei cu experiență. Există mii de resurse comunitare care vă ajută să începeți atât cu hardware-ul, cât și cu software-ul. [6]
3. Studiul de caz
3.1. Structura proiectului și materiale necesare
Pentru acest proiect am ales o structură clasică dreptunghiulară și am parcurs următoarele etape:
Realizarea corpului care urmează să găzduiască atât elementele optice cât și cele electrice;
Realizarea schemei electrice și a ansamblului;
Realizarea programului care urmează să fie încărcat pe placa de dezvoltare.
Pentru construcția acestei scene de lumini avem nevoie de următoarele materiale:
Structură realizată dintr-un cadru de lemn;
Oglindă cu reflexie 100%;
Sticlă reflexivă care să permită trecerea luminii într-un singur sens;
Bandă de leduri adresabile (Neopixel, model WS2812B);
Placă de dezvoltare Arduino (Arduino UNO);
Senzor de sunet;
Rezistor de 470Ω;
Jumper tată-mamă și tată-tată;
Breadboard;
Sursă externă de tensiune.
Figura 3.1 Materiale necesare
3.2. Structura de bază
Pentru structura de bază am folosit un ansamblu dreptunghiular din lemn, fiind mult mai maleabil și ușor de modificat dacă sunt modificări pe parcurs.
Am realizat un desen tehnic pentru a stabili dimensiuniile la care execut ansamblul (figura nr.3.2).
Figura 3.2 Desen cu cote pentru structura de bază
În următoarele etape am obținut materia primă și am prelucrat-o conform desenelor.
Cotele din interior au fost realizate la aceleași dimensiuni ca și oglinda și sticla reflexiva pentru a asigura fixarea.
Printr-un proces de șlefuire am îndepartat un strat subțire de lemn cât a fost necesar pentru a poziționa și fixa cele două oglinzi în interiorul structurii și de asemenea pentru a evita jocul acestora în timpul manipulării.
Cadrul de lemn a fost găurit în partea de jos pentru a permite ieșirea firelor de alimentare și de date a ledurilor (figura nr. 3.3).
Pentru fixarea oglinzii am folosit și o peliculă de adeziv pe partea din spate, astfel eliminând riscul de a se mișca sau desprinde de baza structurii (figura nr. 3.4).
Banda de leduri adresabilă a fost poziționată pe mijlocul cadrului de lemn. Pentru a maximiza efectul optic dorit și a obține o simetrie, este necesar ca sursa de lumină aflată în interiorul structurii să fie la distanțe egale de amblele suprafețe.
În cazul de față am ales o distanță de aproximativ 10mm în ambele sensuri (figura nr. 3.5).
Înainte de a pune sticla reflexivă, interiorul cadrului ce nu este acoperit de banda de leduri, se vopseste cu o culoare închisă, de preferabil negru pentru a sporii efectul de adâncime.
Montarea capacului de stică reflexivă se montează conform figurii 3.6.
Sticla folosită permite trecerea luminii în totalitate doar într-un singur sens, din exterior spre interior. Astfel se obține efectul de oglindă infinită.
Lumina produsă de banda de leduri lovește suprafața cu procent ridicat de reflexie a capacului, o mică parte din aceasta trece prin suprafața de sticlă, iar restul este întoarsă înapoi spre oglindă.
Luând în considerare miciile pierderi ce au loc de fiecare dată când lumina lovește sticla reflexivă, acest proces se repetă până ce lumina ledurilor își pierde în intregime intensitatea și nu mai poate fi percepută de ochiul uman.
3.3 Structură secundară
Această structură din lemn a fost realizată pentru a susține și a masca partea electrică a scenei de lumini. De asemenea are rol de susținere fiind poziționată la baza ansamblului.
Pentru structura secundară am făcut atât măsurători la cadrul principal pentru a avea cotele necesare, cât și la componente și ansamblul electric pentru cotele interioare. Este nevoie de un calcul precis pentru a oferi stabilitate ramei din lemn și a permite modificarea circuitului electric din interior dacă este cazul.
Desenul tehnic pentru structura secundară se poate observa în figura nr. 3.7
Pentru a permite eventuale modificări ulterioare la montajul practic, cutia secundară este prevăzută cu un capac prins într-un sistem de balamale, care ne lasă să lucrăm direct în interior.
Pereții laterali, sunt secționați în zona plăcuței de dezvoltare după forma porturilor pentru a facilita accesul la o conexiune simplă și rapidă fără să mai deschidem capacul.
Deasemenea in zona unde este poziționat microfonul sunt prezente găuri pentru a nu îngreuna captarea sunetului.
În figura nr. 3.9 se poate observa montajul practic inserat în cutia de protecție.
Structura secundară este montată în partea din spate jos a cadrului principal ce găzduiește sistemul de oglinzi și de leduri. Dimensiunea ei fiind calculată la 1.5 din dimensiunea cadrului, astfel împiedicând răsturnarea (figura nr. 3.10).
3.4 Asamblarea electrică, schemă
În figura 3.11 se poate observa banda de leduri adresabile utilizată, mai exact modelul WS2812B.
Fiecare circuit este compus din patru bucăți de siliciu: trei leduri de culori diferite (RGB) și un circuit de control și limitare a curentului (figura nr. 3.12).
Pe o bandă, alimentările sunt legate în paralel, dar circuitele de control în serie.
Are o tensiune de alimentare de 5V și un consum individual de 0.3W, astfel pentru fiecare led e nevoie de un curent de 60mA (20mA pe fiecare din cele 3 culori).
Pentru a reduce zgomotul, legăm între pinul de date al benzii și pinul de date al placuței de dezvoltare o rezistență de 470Ω (figura nr. 3.13). De asemenea pentru a ne asigura că banda de leduri primește curentul de care are nevoie, vom folosi și o sursă externă de tensiune legată la circuit ca în figura nr. 3.9.
Asamblarea senzorului de sunet figura nr. 3.14.
Senzorul are două ieșiri astfel este posibilă citirea lui fie pe cale analogică, fie digitală. Acesta funcționează la o tensiune de 3.3V – 5V.
Conectarea sa la Arduino se face conform schemei din figura nr. 3.15.
Odată ce este pornit, se poate observa că ambele leduri sunt pornite, atât cel de pornire, cât și cel de detectie al sunetului.
Pentru a regla senzorul, se folosește potențiometrul de pe el și se întoarce în sens opus acelor de ceasornic până ce ledul de detecție al sunetului se stinge. În acest moment, acel led ar trebui sa se aprindă doar la detectarea unui sunet.
Relația dintre senzorul de sunet, banda de leduri și placuța de dezvoltare se va face folosind un breadboard și o serie de jumperi.
Breadboard-ul este una dintre piesele cele mai fundamentale atunci când se construiesc circuitele (figura nr. 3.16).
Acestea sunt unități excelente pentru realizarea circuitelor temporare și a prototipurilor deoarece sunt panouri electrice de lipit fără sudură.
Când se încearcă să se dea seama cum funcționează o componentă și se reia în mod constant lucrurile, nu necesită conectare de fiecare dată, deci putem spune că o utilizare obișnuită a breadboard-ului este testarea de piese noi, cum ar fi circuitele integrate (IC-urile).
Un alt element important al breadboard-ului este racordul de putere (figura nr. 3.17) adică șinele de putere care se deplasează vertical de-a lungul laturilor.
Când se construiește un circuit, de multe ori se întâmplă să fie nevoie de putere în multe locuri diferite. Șinele de alimentare oferă acces ușor la putere oriunde este nevoie în circuit.
Aceste șine de putere sunt benzi metalice care sunt identice cu cele care rulează pe orizontală, cu excepția faptului că, de obicei, toate sunt conectate.
Circuitele se pot complica repede și tot ce este nevoie este un picior deplasat dintr-o componentă pentru genera defectul întregului circuit sau chiar să nu funcționează deloc.
Majoritatea breadboard-uri au numere și litere marcate pe diferite rânduri și coloane. Acestea nu servesc alt scop decât să ajute la ghidare atunci când se construiește circuitul.
Astfel breadboard-ul este esențial pentru conectarea senzorului de sunet și a benzii de leduri la plăcuța de dezvoltare.
La adăugarea mai multor elemente în circuit pentru a le avea mai aerisite, se pot folosi ambele racorduri. Pentru asta este nevoie de un transfer de (+), (-) care se realizează cu ajutorul unei perechi de jumperi ca în figura nr. 3.18
Realizarea schemei finale după ce legăm toate componentele de care avem nevoie (figura 3.19).
Sursă externă +5V și 10A (ideală pentru banda de leduri) conectată direct la bandă și la breadboard pentru a asigura alimentarea celorlalte componente;
Banda de leduri WS2812B, unde pinul de control se conectează la pinul digital 6 de la Arduino. Pe traseu folosim o rezistență de 470ohm pentru reducere zgomot;
Senzorul de sunet KY-038, pinul de ieșire analogică conectat la pinul A0 de la Arduino;
Plăcuța de dezvoltare este legată la alimentare.
3.5. Realizarea fizică a circuitului:
Pasul 1 – Stabilirea legăturii între senzorul de sunet și Arduino (figura nr. 3.20)
În realizarea circuitului fizic, am folosit breadboard-ul pentru a asigura conexiunea dintre cele două scheme de montaj (a senzorului și a benzii de leduri), din moment ce ambele se alimentează la 5V și au nevoie de legătură la masă.
În figura nr. 3.20 am folosit un singur pin de date între senzorul de sunet și Arduino, astfel încât citirea este una analogică, iar valorilor primite de la sezor vin pe pinul analogic A0 al placuței de dezvoltare.
Pinul de ieșire digitală al senzorului ar urma să fie conectat la pinul D12 de la Arduino, dar am decis ca să nu îl folosesc, astfel codul sursă va citii doar analog.
Pasul 2 – Introducerea circuitului de leduri în ansamblul existent (figura nr. 3.21)
În această etapă, am adăugat și banda de leduri în circuit, comunicarea cu Arduino fiind posibilă prin pinul digial 6. Pentru o comunicare cu mai puțin zgomot, am adăugat un rezistor de 470Ω pe breadboard intre pinul 6 si pinul de control al benzii WS8212B.
Pasul 3 – adăugarea unei surse externe de tensiune circuitului (figura nr. 3.22)
În ultima etapă a ansamblului, am adăugat o sursă externă de tensiune pentru a echilibra consumul de putere datorat ledurilor.
Pentru a calcula necesarul de putere a benzii de leduri folosite este nevoie să știm numărul exact de leduri.
Astfel folosind cotele interne ale desenului, putem afla perimetrul cadrului din lemn.
2L + 2l = (2 × 270) + (2 × 390) = 1320 mm
Densitatea de leduri pe WS2812B folosită este de 60 leduri la 1000mm
1000 mm ÷ 60 Led = 16.66 mm/Led
1320 mm ÷ 16.66 mm/Led = 79.23 Led
Pentru cadrul nostru sunt necesare 79 de Leduri, prin urmare, puterea necesară este de:
79 × 60mA = 4740 mA (4,7 Amperi)
Sursa de tensiune externă trebuie să genereze suficienți amperi astfel încât să asigure acel echilibru de consum pentru leduri.
Astfel am decis să folosesc un sistem de acumulatori NiMH. Sistemul NiMH are o capacitate mare de stocare a energiei. Procesul de fabricație și folosirea au un impact mic asupra mediului, acumulatorii nu conțin plumb sau mercur.
4 acumulatori HiMH AA R6 – 1,2V si 2500mA = 4,8V si 10000mA (extra suficient).
3.6. Realizare cod Arduino
#include <FastLED.h>
/** Configurare de bază **/
//Numărul de Leduri pentru aceasta configurație
#define NUM_LEDS 79
//Pinul care controlează ledurile
#define LED_PIN 6
//Pinul care citește valorile primite de senzor
#define ANALOG_READ 0
// Valoarea mică confirmată a microfonului și valoarea maximă
#define MIC_LOW 0.0
#define MIC_HIGH 737.0
/** Alte macro-uri */
// Câte valori anterioare ale senzorului influențează media operațională?
#define AVGLEN 15
// Câte valori anterioare ale senzorului decid dacă suntem pe un vârf / HIGH (ex. Într-o melodie)
#define LONG_SECTOR 5
// Mnemonice
#define HIGH 3
#define NORMAL 2
// Cât timp păstrăm sunetul "mediu actual", înainte de a reporni măsurarea
#define MSECS 2000
#define CYCLES MSECS / DELAY
/* Uneori citirile sunt greșite sau ciudate. Cât de mult este permisă o citire
să se abată de la media pentru a nu fi aruncată? **/
#define DEV_THRESH 0.8
// Arduino întârziere buclă
#define DELAY 1
float fscale( float originalMin, float originalMax, float newBegin, float newEnd, float inputValue, float curve);
void insert(int val, int *avgs, int len);
int compute_average(int *avgs, int len);
void visualize_music();
// Câte LED-uri trebuie să afișăm
int curshow = NUM_LEDS;
/* Nu este încă folosit încă. Gândit să fie capabil să treacă între modul de sunet reactiv
și pulsarea generală a gradientului / culoarea statică */
int mode = 0;
// Se afișează culori diferite pe baza modului.
int songmode = NORMAL;
// Măsurarea sonoră medie a ultimelor CICLURI
unsigned long song_avg;
// Suma iterațiilor de la resetarea melodiei song_avg
int iter = 0;
// Viteza LED-urilor se estompează negru dacă nu se reliefează
float fade_scale = 1.2;
// Tastatură led
CRGB leds[NUM_LEDS];
/* Media scurtă a sunetului folosit pentru a "normaliza" valorile de intrare.
Utilizăm media scurtă în loc să folosim direct intrarea senzorului */
int avgs[AVGLEN] = {-1};
//Media mai lungă a sunetului
int long_avg[LONG_SECTOR] = {-1};
// Ținem evidența cât de des și cât de mult timp am atins un anumit mod
struct time_keeping {
unsigned long times_start;
short times;
};
// Cât de mult să creștem sau să reducem fiecare culoare în fiecare ciclu
struct color {
int r;
int g;
int b;
};
struct time_keeping high;
struct color Color;
void setup() {
Serial.begin(9600);
// Setam toate luminile pentru a ne asigura că toate funcționează conform așteptărilor
FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
for (int i = 0; i < NUM_LEDS; i++)
leds[i] = CRGB(0, 0, 255);
FastLED.show();
delay(1000);
// bootstrap media cu unele valori scăzute
for (int i = 0; i < AVGLEN; i++) {
insert(250, avgs, AVGLEN);
}
//Valori inițiale
high.times = 0;
high.times_start = millis();
Color.r = 0;
Color.g = 0;
Color.b = 1;
}
/* Cu aceasta putem schimba modul dacă vrem să punem în aplicare un de ex. o
lampă, cu pulsații generale. Poate dacă sunetul este scăzut pentru un timp? */
void loop() {
switch(mode) {
case 0:
visualize_music();
break;
default:
break;
}
delay(DELAY); // întârzierea între citirile pentru stabilitate
}
/**Funcție pentru a verifica dacă lampa trebuie să intre într-un mod HIGH,
sau se revine la NORMAL dacă e deja în HIGH. Dacă senzorii raportează valori
care sunt mai mari decât 1,1 ori valorile medii, iar acest lucru sa întâmplat de
mai mult de 30 de ori în ultimele milisecunde, va intra în modul HIGH.
De facut!: Posibil nu este foarte bine scris, eliminam valorile hardcoded și îl facem mult mai
reutilizabil și configurabil. */
void check_high(int avg) {
if (avg > (song_avg/iter * 1.1)) {
if (high.times != 0) {
if (millis() – high.times_start > 200.0) {
high.times = 0;
songmode = NORMAL;
} else {
high.times_start = millis();
high.times++;
}
} else {
high.times++;
high.times_start = millis();
}
}
if (high.times > 30 && millis() – high.times_start < 50.0)
songmode = HIGH;
else if (millis() – high.times_start > 200) {
high.times = 0;
songmode = NORMAL;
}
}
// Funcția principală pentru vizualizarea sunetelor din lampă
void visualize_music() {
int sensor_value, mapped, avg, longavg;
// Valoarea reală a senzorului
sensor_value = analogRead(ANALOG_READ);
// Dacă este 0, eliminam imediat. Probabil nu este corect și salvam CPU.
if (sensor_value == 0)
return;
// Eliminam citirile care se abat prea mult de nivelul trecut.
mapped = (float)fscale(MIC_LOW, MIC_HIGH, MIC_LOW, (float)MIC_HIGH, (float)sensor_value, 2.0);
avg = compute_average(avgs, AVGLEN);
if (((avg – mapped) > avg*DEV_THRESH)) //|| ((avg – mapped) < -avg*DEV_THRESH))
return;
//Inseram noi valori medii
insert(mapped, avgs, AVGLEN);
insert(avg, long_avg, LONG_SECTOR);
// Calculam valoarea senzorului "media piesei"
song_avg += avg;
iter++;
if (iter > CYCLES) {
song_avg = song_avg / iter;
iter = 1;
}
longavg = compute_average(long_avg, LONG_SECTOR);
// Verificam dacă intrăm în modul HIGH
check_high(longavg);
if (songmode == HIGH) {
fade_scale = 3;
Color.r = 8;
Color.g = 1;
Color.b = -2;
}
else if (songmode == NORMAL) {
fade_scale = 3;
Color.r = -1;
Color.b = 6;
Color.g = -2;
}
// Decide câte dintre LED-uri vor fi aprinse
curshow = fscale(MIC_LOW, MIC_HIGH, 0.0, (float)NUM_LEDS, (float)avg, -1);
/* Setam led-urile diferit. Controlam pentru valori prea mari și prea scăzute.
Un lucru interesant de încercat: Nu luam în considerare depășirea într-o singură direcție,
astfel apar câteva efecte de lumină interesante! */
for (int i = 0; i < NUM_LEDS; i++)
// Led-urile pe care vrem să le arătăm
if (i < curshow) {
if (leds[i].r + Color.r > 255)
leds[i].r = 255;
else if (leds[i].r + Color.r < 0)
leds[i].r = 0;
else
leds[i].r = leds[i].r + Color.r;
if (leds[i].g + Color.g > 255)
leds[i].g = 255;
else if (leds[i].g + Color.g < 0)
leds[i].g = 0;
else
leds[i].g = leds[i].g + Color.g;
if (leds[i].b + Color.b > 255)
leds[i].b = 255;
else if (leds[i].b + Color.b < 0)
leds[i].b = 0;
else
leds[i].b = leds[i].b + Color.b;
// Toate celelalte LED-uri încep să drumul spre scăderea intensității până iși pierd toată intensitatea
} else {
leds[i] = CRGB(leds[i].r/fade_scale, leds[i].g/fade_scale, leds[i].b/fade_scale);
}
FastLED.show();
}
// Calculam media unei matrice int, având în vedere indicatorul de pornire și lungimea
int compute_average(int *avgs, int len) {
int sum = 0;
for (int i = 0; i < len; i++)
sum += avgs[i];
return (int)(sum / len);
}
// Introducem o valoare într-o matrice și o deplasam în jos
// prima valoare dacă matricea este deja plină
void insert(int val, int *avgs, int len) {
for (int i = 0; i < len; i++) {
if (avgs[i] == -1) {
avgs[i] = val;
return;
}
}
for (int i = 1; i < len; i++) {
avgs[i – 1] = avgs[i];
}
avgs[len – 1] = val;
}
// Funcție importată de pe site-ul web arduino.
// Practic harta, dar cu o curbă pe scară (poate fi neuniformă).
float fscale( float originalMin, float originalMax, float newBegin, float
newEnd, float inputValue, float curve){
float OriginalRange = 0;
float NewRange = 0;
float zeroRefCurVal = 0;
float normalizedCurVal = 0;
float rangedValue = 0;
boolean invFlag = 0;
// parametrul curbei de stare
// limită
if (curve > 10) curve = 10;
if (curve < -10) curve = -10;
curve = (curve * -.1) ; // – invert and scale – this seems more intuitive – postive numbers give more weight to high end on output
curve = pow(10, curve); // convert linear scale into lograthimic exponent for other pow function
// Verificam valori de intrare în afara intervalului
if (inputValue < originalMin) {
inputValue = originalMin;
}
if (inputValue > originalMax) {
inputValue = originalMax;
}
// Zero Refference the values
OriginalRange = originalMax – originalMin;
if (newEnd > newBegin){
NewRange = newEnd – newBegin;
}
else
{
NewRange = newBegin – newEnd;
invFlag = 1;
}
zeroRefCurVal = inputValue – originalMin;
normalizedCurVal = zeroRefCurVal / OriginalRange; // normalize to 0 – 1 float
// Verificam pentru originalMin > originalMax – matematic pentru toate celelalte cazuri, adică numărul negativ să pară că funcționeză bine
if (originalMin > originalMax ) {
return 0;
}
if (invFlag == 0){
rangedValue = (pow(normalizedCurVal, curve) * NewRange) + newBegin;
}
else // invert the ranges
{
rangedValue = newBegin – (pow(normalizedCurVal, curve) * NewRange);
}
return rangedValue;
}
Concluzii:
Aș vrea să încep șirul de concluzii cu două citate care, cred că își găsesc locul la acest final de studiu de caz și care m-au împins spre această temă.
“Știința pură, abstractă, nemediată de un anumit relativism artistic poate deveni sterilă și autistă”.
“La baza preciziei ștințifice stă un gram de artă, în abstracțiunea inginerească cea mai fină se strecoară mereu o doză mai mare sau mai mică de imaginar, seriozitatea absolută se învecinează, salvator, cu umorul suculent”.
Altfel spus, această temă a solicitat atât cunoștiințele în domeniul ingineriei, cât și imaginația și creativitatea facând acest studiu de caz mai interesant și provocator.
Pe parcursul lucrării m-am folosit de cunoștiințe în domeniul mecanicii, realizând desenul tehnic cu ajutorul căruia am realizat structura de bază și am încorporat această idee de scenă de lumini. De asemenea și cunoștiințe în domeniul electronicii, realizând schemele electrice și montajul practic care urmează să pună în aplicare idea și nu în ultimul rând cunoștiințe în domeniul programării realizând codul sursă care a dat viață proiectului.
Acest proiect a reprezentat o provocare deoarece au fost necesare multe teste pe parcursul fiecărei etape pentru a obține rezultatele dorite și a putea avansa la următoarea etapă.
Observații făcute pe parcursul testărilor:
În funcție de indicele de reflexie al capacului din sticlă și a distanței dintre suprafețe se modifică efectul de adâncime al scenei.
Datorită consumului benzii de leduri, dacă alimentarea se face doar din Arduino fără intervenția unei surse de tensiune cu amperaj ridicat, plăcuța de dezvoltare intră în avarie și blocheză ledurile la o intensitate luminoasă scăzută, funcționând intermitent.
Este un proiect foarte interesant, care poate fi implementat și încorporat inclusiv în obiectele ce se găsesc în casă.
Dat faptul că folosim Arduino, se poate oricând încărca un alt program care ar putea modifica jocurile de lumini, astfel rezultă posibilități nelimitate de modificare sau îmbunatățire după placul fiecăruia dintre noi.
Bibliografie:
[1] Anderson, Miranda. The Book of the Mirror: An Interdisciplinary Collection exploring the Cultural Story of the Mirror; Cambridge Scholars Publishing (2007), Newcastle upon Tyne, NE6 2XX, UK
[2] Blum, Jeremy, Exploring Arduino: Tools and Techniques for Engineering Wizardry, Wiley; 1 edition (July 16, 2013)
[3] CUȚITARU, Codrin Liviu. Artă și știință, Aparut in Dilema veche, nr. 756, 16-22 august 2018, https://dilemaveche.ro/sectiune/tilc-show/articol/arta-si-stiinta
[4] GALLAGHER FLINN, How Mirrors Work
Infinity Mirror – Types of Infinity Mirrors, http://www.mirrorhistory.com/mirror-facts/infinity-mirror/
[5] J. M. Hughes. Arduino: A Technical Reference, O'Reilly Media, Inc. May 2016 Gravenstein Highway North, Sebastopol, CA 95472
[6] Karvinen, Kimmo și Karvinen, Tero. Getting Started with Sensors: Measure the World with Electronics, Arduino, and Raspberry Pi, Maker Media, Inc; 1 edition (August 24, 2014)
[7] Sfetcu, Nicolae, Legea reflexiei https://www.setthings.com/ro/legea-reflexiei/
[8] The Editors of Encyclopaedia Britannica – Mirror, (March 30, 2009)
http://www.britannica.com/EBchecked/topic/385037/mirror
[9] Waldman, Gary. Introduction to Light: The Physics of Light, Vision, and Color, Dover Publications; Revised edition (June 14, 2002), Mineola, New York
[10] Yoshitake, Mika și Dumbadze, Alexander. Infinity Mirrors – PRESTEL PUBLISHING February 16, 2017 Washington, DC.
[11] https://en.wikipedia.org/wiki/Infinity_mirror
[12] https://science.howstuffworks.com/innovation/everyday-innovations/mirror2.htm
[13] A brief introduction and guide using Arduino. Septembrie 2011. Jacobs School of Engineering. http://www.maelabs.ucsd.edu/mae156alib/control/PID-Control-Ardunio.pdf
[14] https://www.farnell.com/datasheets/1682209.pdf
[15] Benjamin, Crowell. Book 5 in the Light and Matter series of introductory physics textbooks www.lightandmatter.com
[16] https://www.quora.com/How-many-images-will-be-formed-if-we-place-two-plane- mirrors-in-front-of-each-other
[17] https://learn.adafruit.com/ladyadas-learn-arduino-lesson-number-1/upload-your-first-sketch
DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR
Titlul proiectului _________________________________________________ ________________________________________________________________________________________________________________________________
Autorul proiectului _____________________________________________
Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea _______________I.E.T.I._________________________ din cadrul Universității din Oradea, sesiunea________iulie_________a anului universitar __2019___________.
Prin prezenta, subsemnatul (nume, prenume, CNP)___________________________________________________________________________________________________________________________________________________________,
declar pe proprie răspundere că aceast proiect a fost scris de către mine, fără nici un ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz publicate de alți autori.
Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.
Oradea,
Data Semnătura
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: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [308439] (ID: 308439)
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.
