În cele ce urmează vă voi prezenta câteva lucruri care m-au ajutat la realizarea proiectului. [308763]

INTRODUCERE

Lucrarea de față își propune realizarea unui seif. [anonimizat] C/C++.

[anonimizat]. [anonimizat], dar nu se în cadrează în standarde pentru a primi această denumire. Cel mai aproape de seif, s-[anonimizat].

În cele ce urmează vă voi prezenta câteva lucruri care m-au ajutat la realizarea proiectului.

[anonimizat], deoarece partea hardware și cea software este realizată cu Arduino. [anonimizat].

[anonimizat], vă voi prezenta tehnologiile utilizate pentru realizarea proiectului. [anonimizat], [anonimizat]. [anonimizat] a nu mai complica lucrurile încercând să găsesc un alt program compatibil cu plăcuța Uno R3.

[anonimizat], vă voi prezenta pașii urmați pentru realizarea seifului. În prima parte a capitolului voi detalia conexiunile hardware atât conexiunile fizice cât și schema electrică. În ce-a de-a doua parte a capitolului vă voi prezenta și explica cele mai importante părți din cod precum și instalarea programului Arduino IDE.

[anonimizat], unde vă voi împărtăși ideile finale și cum s-a ajuns până în acest punct.

Capitolul I – Generalități

I.1. Arduino

Arduino este o [anonimizat], câr și partea de software destinată funcționării și programării acestora. [1]

Produsele sale sunt licențiate de GNU Lesser General Public Licence (LGPL) sau GNU General Public Licence (GPL) care permit fabricarea plăcilor Arduino și distribuirea software de către oricine. [anonimizat]-yourself (DIY). [2]

Designul plăcilor Arduino folosesc o varietate de microprocesoare și controlere. Plăcile sunt echipate cu seturi de pini de intrare/ieșire digitali și analogi (I/O) care pot fi interfațați cu diferite plăci de expansiune sau plăci de panou (scuturi) sau alte circuite. [anonimizat] (USB) [anonimizat] (PC). Microcontrolerele pot fi programate utilizând limbaje de programare precum C și C++ . [anonimizat], Arduino pune la dispoziția utilizatorilor un mediu de dezvoltare integrat (IDE) bazat pe proiectul limbajului de procesare. [2]

Modelele de referință hardware sunt distribuite sub licență Creative Commons (CC) [anonimizat] 2.5 [anonimizat]. [2]

[anonimizat], dezvoltatorii au solicitat ca numele Arduino sa fie exclusiv al produsului oficial și să nu fie utilizat pentru lucrări derivate fără permisiune. [2]

Majoritatea plăcilor Arduino constau într-un microcontroler AVR Atmel pe 8 biți (ATmega8, ATmega168, ATmega328, ATmega1280, ATmega2560), cu calități diferite de memorii flash, pini și caracteristici. [2]

I.2. Limbajul de programare C și C++

C este un limbaj de programare standardizat. Este implementat pentru majoritatea platformelor de calcul existente azi, și este cel mai popular limbaj de programare pentru scrierea de software de sistem. Este apreciat pentru eficiența codului obiect generat de compilatoarele C, și pentru portabilitatea sa.[3]

A fost dezvoltat la începutul anilor 1970 de Ken Thompson și Dennis Ritchie, care aveau nevoie de un limbaj simplu și portabil pentru scrierea nucleului sistemului de operare UNIX. [3]

Sintaxa limbajului C a stat la baza multor limbaje create ulterior populare și azi: C++, Java, JavaScript, C#, D. [3]

C este un limbaj de programare relativ minimalist ce operează în strânsă legătură cu hardware-ul, fiind cel mai apropiat de limbajul de asamblare față de majoritatea celorlalte limbaje de programare. [3]

Tipuri de date

C are un sistem de tipuri de date similar cu cel al descendenților ALGOL, spre exemplu Pascal, dar totuși cu anumite diferențe. Cuprinde tipuri de date cum ar fi întregi de diferite dimensiuni, cu sau fără semn, numere cu virgulă mobilă, enumerări, structuri de date și uniuni.[3]

C utilizează foarte mult pointerii, un tip de referință foarte simplu, care păstrează adresa unui obiect din memorie. Aceasta poate fi manipulată cu ajutorul aritmeticii pointerilor. În momentul compilării un pointer este un tip de dată complex, care reprezintă atât adresa de memorie cât și tipul de dată. Acest lucru permite expresiilor ce utilizează pointeri să fie evaluate după tipul de dată. Pointerii au mai multe utilizări în C; spre exemplu, șirurile de caractere sunt adesea reprezentate printr-un pointer la un vector de caractere. Alocarea dinamică a memoriei este realizată tot cu ajutorul pointerilor. [3]

C evaluează numele tablourilor ca și pointeri: o adresă și un tip de dată. De asemenea, C oferă posibilitatea de lucru cu tablouri multidimensionale. [3]

Alocarea memoriei

Una din cele mai importante funcții ale unui limbaj de programare este ca acesta să furnizeze metode de management a memoriei și a obiectelor stocate în memorie. C furnizează trei metode distincte de alocare a memoriei pentru obiecte: [3]

Alocarea statică a memoriei: adresele și dimensiunile obiectelor ce fac uz de alocarea statică a memoriei sunt fixate în momentul compilării și pot fi plasate într-o zonă de dimensiune fixă ce corespunde unei secțiuni din cadrul fișierului linkedidat final. Acest tip de memorie se numește statică deoarece locația și dimensiunea lor nu variază pe durata execuției programului. [3]

Alocarea automată a memoriei: obiectele temporare sunt stocate în cadrul stivă asociat funcției apelate, iar spațiul alocat este automat eliberat și reutilizat după ce s-a părăsit blocul în care acestea au fost declarate. [3]

Alocarea dinamică a memoriei: blocuri de memorie de orice dimensiune pot fi alocate într-o zonă de memorie numită heap prin intermediul funcțiilor malloc(), calloc() și realloc(). Aceste blocuri de memorie pot fi reutilizate după ce zona de memorie a fost eliberată prin apelul funcției free().[3]

Nu toate variabilele sunt alocate automat. Următoarele tipuri de variabile sunt alocate static: [3]

Toate variabilele globale, indiferent dacă au fost sau nu declarate ca statice[3]

Variabilele locale declarate explicit ca fiind statice[3]

Variabilele alocate static au alocată locația lor de memorie și inițializată înainte ca funcția main să fie executată și nu sunt dealocate până la finalul funcției main. Variabilele alocate static nu sunt reinițializate la fiecare apel al funcției în cadrul cărora au fost declarate. [3]

C și C++

Limbajul de programare C++ a fost inițial derivat din C. cu toate acestea, nu orice program scris în C este valid în C++. Cea mai amplă revizie a limbajului C, C99, a creat un număr suplimentar de conflicte. Diferențele fac să fie greu de scris programe și biblioteci care să fie compilate și să ruleze corect în calitate de cod C sau C++.[3]

Bjarme Stroustrup, creatorul limbajului C++, a sugerat reducerea incompatibilităților pentru a maximiza interoperabilitatea dintre cele două limbaje de programare. [3]

Cele mai importante diferențe sunt: [3]

Inline – funcțiile inline apar în secțiunea de declarare a variabilelor globale în C++, iar în C acestea apar în așa zisele „fișiere statice”. [3]

Cuvântul cheie bool are în C99 propriul său header,<stdbool.h>. În variantele anterioare de C tipul de date bollean nu era definit, în schimb erau folosite o serie de metode pentru a simula cest tip de date. [3]

Constantele caracter au dimensiunea unui int în C și char în C++. Cu alte cuvinte, în C, sizeof(‘a’) == sizeof(int); în C++, sizeof(‘a’) == sizeof(char). [3]

Cuvinte cheie suplimentare au fost introduse în C++, deci acestea nu a putea fi folosite ca identificatori așa cum ar putea fi folosite în C (spre exemplu: code>try, catch, template, new, delete, etc.). [3]

În C++ compilatorul creează automat o „etichetă” pentru orice structură (struct), uniune (union) sau enumerație (enum), astfel încât struct S {}; în C++ este echivalentul cu typedef struct S {} S; în C. [3]

C++ este un limbaj de programare general, compilat. Este un limbaj multi-paradigmă, cu verificarea statică a tipului variabilelor ce suportă programarea procentuală, abstractizare a datelor, programare orientată pe obiecte. În anii 1990 C++ a devenit unul din cele mai populare limbaje de programare comerciale, rămânând astfel până azi. [4]

Bjarme Stroustrup de la Bell LAbs a dezvoltat C++ ( inițial denumit C cu clase) în anii 1980, ca o serie de îmbunătățiri ale limbajului C. Acestea au început cu adăugarea noțiunii de clase, apoi cu funcții virtuale, suprascrierea operatorilor, moștenire multiplă, șabloane și excepții. Limbajul de programare C++ a fost standardizat în 1988 ca și ISO 14882:1998, versiunea curentă fiind din 2017, ISO 14882:2017. [4]

I.3 Seif

Seiful (numit și cutie de siguranță, cutie puternică sau cofru) este o cutie sigură care poate fi blocată manual sau digital. Este utilizat pentru securitatea bunurilor de valoare împotriva furtului și/sau a avarierilor produse de incendiu. Un seif este de obicei un cuboid sau cilindru gol, cu o parte detașabilă sau cu balamale pentru a forma o ușă. Corpul și ușa pot fi turnate din metal (spre exemplu oțel) sau din plastic, turnate prin suflare. Poziția siguranței seifului, constituie o deosebire importantă între tipurile acestora. Ea poate fi fixată pe un perete/structură sau poate fi deplasată. O versiune mai puțin sigură este de obicei denumită casetă.[5]

Pentru ca o cutie să fie considerată seif trebuie sa conțină câțiva, dacă nu chiar toți parametrii următori:

Rezistență antiefracție

Rezistență la foc

Rezistență la mediu (spre exemplu apă sau praf)

Tipul de blocare (spre exemplu: combinație, cheie, blocare electronică)

Locație (spre exemplu: seif de perete, podea)

Seifuri inteligente, ca parte a unui automat de manipulare al sistemului numerar[5]

Chiar dacă un seif conține toate specificațiile mai sus precizate, acestea pot fi accesate și fără cheia sau combinația de acces. Această acțiune poartă denumirea de crack-safe. [5]

Un seif de deturnare, sau un seif ascuns, este un seif realizat dintr-un obiect obișnuit, adesea lăsat la vedere, cum ar fi: o carte, o lumânare sau chiar un dop de priză pe perete. [5]

Echipamentul de protecție a înregistrărilor rezistent la foc este format din dispozitive care încorporează corpuri izolate, uși, sertare sau capace sau dispozitive cu mai multe sertare care nu sunt clasificate, care conțin containere individuale formate din unul sau mai mute compartimente interioare pentru depozitarea înregistrărilor. Aceste dispozitive sunt destinate să ofere protecție unuia sau mai multor tipuri de înregistrări, după cum se dovedește prin clasificarea sau calificările de clasă atribuite; Clasa 350 pentru hârtie, clasa 150 pentru microfilm și clasa 125 pentru suporturi magnetice și hard disk-uri. [5]

În plus, aceste carcase pot fi evaluate pentru rezistența lor la impact, în cazul în care în condiții de siguranță cad un număr de picioare până la un nivel mai scăzut sau dacă resturile cad pe ea în timpul unui incendiu. [5]

Seifurile rezistente la spargere sunt apreciate în ceea ce privește rezistența lor la tipul de instrumente care vor fi utilizate în atacul lor și, de asemenea, la durata atacului. [5]

De asemenea, seifurile pot conține hardware care dispune automat numerar sau validează facturile ca parte a unui sistem automat de manipulare a numerarului. [5]

Putem cataloga seifurile în funcție de amplasare și utilizarea lor:

Seif rezistent la foc

Seif de perete

Seif pentru bijuterii[5]

Certificări UL pentru seifuri

Certificările de testare a seifurilor sunt realizate de laboratoarele Underwriters (UL – USA) fiind cunoscute drept cele mai riguroase și mai respectate din lume. Acestea sunt corelate doar cu certificările B.T.U/VDMA (Germania), J.I.S (Japonia) și CSTB(Franța). [5]

Standarde europene de siguranță

În funcție de utilizare, Comitetul European pentru Standardizare a publicat diferite standarde europene pentru seifuri. Testarea și certificarea în conformitate cu aceste standarde ar trebui realizate de un organism de certificare acreditat, de exemplu, organismul european de certificare. [5]

EN 1143-1 este principalul standard de testare pentru seifuri, seifuri ATM, pentru uși de camere puternice și camere puternice. Pentru seifuri, acesta are unsprezece grade de rezistență (0, I, II, …, până la X). De la un grad la altul, securitatea crește cu aproximativ 50%. Testarea se bazează pe o alegere liberă a instrumentelor și metodelor de atac. Testarea necesită acces parțial (gaură de mână) și încercări complete de acces, pe toate părțile produsului. Securitatea este calculată folosind evaluările instrumentelor și timpul de atac. Rezultatul este exprimat în unități de rezistență (RU). [5]

EN 14450 este un standard de testare pentru dulapuri și cutii sigure. Standardul acoperă produsele destinate scopurilor în care rezistența de securitate necesară este mai mică decât cea din EN 1143-1.[5]

Pentru seifurile rezistente la foc au fost publicate EN 1047-1 (standard de rezistență la foc similar cu standardul de rezistență la foc al UL) și EN 15659 (pentru unitățile de stocare la foc).[5]

Capitolul II – Tehnologii folosite

II.1. Tehnologii hardware

II.1.1 Arduino UNO R3

Arduino Uno este o placă microcontroler bazată pe Atmega328. Este compusă din 14 pini de intrare/ieșire digitali (6 pini pot fi utilizați ca ieșiri PWM), 6 intrări analogice, un oscilator cristal de 16 MHz, o conexiune USB, o priză de alimentare, un antet ICSP și un buton de resetare. Pentru a începe utilizarea putem folosi un calculator, printr-o conexiune USB, un adaptor AC-DC sau o baterie pentru alimentare. [6]

Arduino Uno diferă de toate plăcile precedente, prin faptul că nu folosește cipul de driver FTDI USB-serial. În schimb este dotat cu Atmega16U2 (Atmega8U2 până la versiunea R2) programat ca un convertor USB-serial. [6]

Cea de-a doua revizie a plăcii Uno are un rezistor care trage linia 8U2 HWB la sol, ceea ce facilitează introducerea în modul DFU. [6]

A treia revizie introduce noi caracteristici: sunt adăugați pinii SDA și SCL care sunt aproape de pinul AREF și alți doi pini noi plasați lângă pinul RESET, IOREF care permite scuturilor să se adapteze la tensiunea furnizată de placă; circuitul RESET este mai puternic iar Atmega 16U2 este înlocuită de 8U2. [6]

Specificații Uno R3 Atmega328p: [7]

Microcontroller: Atmega328p

USB Chip: CH340G

Tensiune de funcționare: 5V

Tensiune de intrare (recomandat): 7-9V

Tensiune de intrare (limite absolute): 6-12V

Pini digitali I/O: 14 (din care 6 funcționează ca ieșire PWM)

Pini de intrare analogici: 6

Curent continuu pentru pini I/O: 40 mA

Curent continuu pentru pini 3.3V: 50 mA

Memorie flash: 32 KB (Atmega328) din care 0,5 KB sunt utilizați de bootloader

SRAM: 2 KB (Atmega328)

EEPROM: 1 KB (Atmega328)

Viteza ceasului: 16 MHz [7]

Figura: 2.1.1.1 – Arhitectura plăcuței Arduino Uno R3

Descrierea pinilor plăcuței: [8]

Plăcuța Arduino Uno R3 are 14 pini digitali de intrare/ieșire în partea de sus. Acești pini funcționează la o tensiune de 5 volți și por fi controlați de una din funcțiile pinMode(), digitalWrite() sau digitalRead(). [8]

Fiecare pin poate primi sau trimite o intensitate de maxim 40 mA și au o rezistență internă între 20-50 kOhmi (default deconectată). În afară de semnalul standard de intrare/ieșire (I/O), unii dintre pini având și funcții specializate. [8]

0 (serial) RX – este un pin serial, utilizat în special pentru recepționarea (intrare – RX) datelor seriale asincrone. Protocolul asincron este o metodă foarte răspândită în electronică pentru a trimite și recepționa date între dispozitive. Acest protocol este implementat în dispozitiv denumit UART (Universal Asynchronous Receiver/Transmitter) [8]

1 (serial) TX – este un pin serial, utilizat pentru trimiterea datelor asincrone (ieșire – TX). TTL – transistor transistor logic[8]

2 (External Interrupts) – întrerupere externă. Acest pin poate fi configurat pentru a realiza o întrerupere la o valoare mică, un font crescător sau descrescător, sau o schimbare în valori[8]

3 (External Interrupts + PWM) – întrerupere externă. Este asemeni pinului 2. Are marcat simbolul ~ acest lucru însemnând că poate fi folosit pentru PWM (pulse with modulation). Toți pinii marcați cu acel simbol pot fi utilizați pentru PWM[8]

4 (I/O) – este un pin standard de intrare/ieșire[8]

5 (PWM) – furnizează controlul de ieșire pe 8 biți pentru controlul PWM[8]

6 (PWM) [8]

7 (I/O) – este un pin standard de intrare/ieșire [8]

8 (I/O) – este un pin standard de intrare/ieșire [8]

9 (PWM) [8]

10 (PWM + SPI) – acest pin suportă comunicarea prin interfață serială (Serial Peripheral Interface). SPI-ul are patru semnale logice specifice, iar acest pin le folosește pentru SS – Slave Select (active low; output din master). Pinii SPI-ului pot fi controlați utilizând librăria SPI[8]

11 (PWM + SPI) – acest pin suportă comunicarea prin interfață serială și utilizează SPI pentru MOSI/SIMO – Master Output/Slave Input (output din slave) [8]

12 (SPI) – acest pin suportă comunicarea prin interfață serială și utilizează SPI pentru MISO/SOMI – Master Input/Slave Output (output din slave) [8]

13 (LED + SPI) – acest pin suportă comunicarea prin interfață serială și utilizează SPI pentru SCK/SCLK – Ceas serial (output din master). De asemenea, pe placă este încorporat un LED care este conectat la acest pin. În momentul în care pinul este setat pe valoarea HIGH este pornit, iar când are valoarea LOW este oprit[8]

14 (GND) – împământare. La acest pin se conectează negativul[8]

15 (AREF) – Analog REFerence pin – utilizat pentru tensiunea de referință pentru intrările analogice. Se poate controla folosind funcția analogReference()[8]

16 (SDA) – comunicare I2S[8]

17 (SCL) – comunicare I2S [8]

În partea de jos, plăcuța are o serie de șase pini utilizați pentru semnalul analogic, numerotați de la A0 la A5. [8]

Fiecare pin poate oferi o rezoluție de 10 biți (maxim 1024 de valori diferite). Standard valoarea pinilor se măsoare de la 0 la 5 volți, cu toate acestea, limita superioară se poate schimba utilizând pinul 15 AREF și funcția analogReference(). Asemeni pinilor digitali, și pinii analogi beneficiază de funcții suplimentare. [8]

A0 – pin standard analog [8]

A1 – pin standard analog [8]

A2 – pin standard analog [8]

A3 – pin standard analog [8]

A4 (SDA) – acest pin suportă comunicarea prin două fire (I2C (I-two-C) sau TWI (Two wire interface)) și este utilizat pentru SDA (Serial Data) la TWI [8]

A5 (SCL) – este asemeni pinului A4, doar că acest pin este utilizat pentru SCL (Serial Clock) la TWI. Pentru a putea controla TWI putem utiliza librăria Wire [8]

Pe aceeași parte cu pini analogi există și o secțiune de pini numită POWER. Aceștia sunt (începând de lângă pinul A0): [8]

VIN – intrarea pentru tensiune din sursă externă (input Voltage) [8]

GND – negativul pentru tensiune din sursă externă (ground Voltage) [8]

GND – negativ. Se utilizează pentru piesele și componentele montate la Arduino ca masă/împământare/negativ [8]

5V – ieșire pentru piesele și componentele montate la Arduino. Scoate exact 5V dacă placa este alimentată cu o tensiune corectă (între 7 și 12 volți) [8]

3,3V – ieșire pentru piesele și senzorii care se alimentează la această tensiune. Tensiunea de ieșire este 3,3 volți și maxim 50 mA [8]

RESET – se poate seta acest pin pe LOW pentru a reseta controlerul Arduino – ului. În mod normal este utilizat de shield-urile care au un buton de reset și care anulează în mod normal butonul de reset de pe plăcuța Arduino [8]

5VREF – este utilizat de unele shield-uri ca referință pentru a se comuta automat la tensiunea furnizată de plăcuța Arduino (5 volți sau 3,3 volți) (Input/Output Reference Voltage) [8]

PIN – neconectat, este rezervat utilizării ulterioare [8]

Comunicarea cu calculatorul poate fi realizată utilizând portul USB (por serial standard COMx) sau prin pinii 0 și 1 (RX și TX) aceștia facilitând comunicarea serială UART TTL (5V) utilizând librăria SoftwareSerial. [8]

În partea dreaptă, plăcuța mai are o serie de pini notați ICSP(In-Circuit Serial Programming), după cum se poate observa și în imaginea de mai sus. Acești pini pot fi utilizați pentru reprogramarea microcontrolerului sau ca pini de expansiune cu alte microcontrolere compatibile. Sunt conectați standard și se poate utiliza un cablu de șase fire (MOSI, MISO, SCK, VCC, GND și pinul RESET) [8]

II.1.2. Display LCD

Modulul LCD 2004 afișează 2 linii a câte 16 caractere. Acesta poate fi utilizat cu ușurință și în condiții de iluminare joasă deoarece are lumină de fundal. Lumina de fundal trebuie protejată de un potențiometru de 2k. pentru a reduce numărul pinilor folosiți la legarea LCD-ului la controler putem utiliza modului I2C. [9]

Specificații:

Tensiune de alimentare: 5V

Curent: 2 mA

Tensiune de alimentare backlight: 4.2 V

Curent lumină de fundal: 250 mA (MAX) [9]

Conexiuni:

Pin 1: Vss;

Pin 2: Vdd;

Pin 3: Vo – contrast LCD (între Vss și Vdd V);

Pin 4: RS;

Pin 5: R/W;

Pin 6: E – enable;

Pin 7 – 14: DB0 – DB7;

Pin 15: V+ backlight;

Pin 16: V- backlight; [9]

Figura: 2.1.3.1 – Pinii display-ului LCD [10]

II.1.3. Modul I2C

Modulul I2C (Inter-Integrated Circuit) reprezintă un adaptor care se montează direct pe ecranul LCD. Display-ul trebuie să fie de tip 1602 sau 2004 și bazat pe controller-ul HD44780.[11]

Comunicația I2C reprezintă un avantaj deoarece avem nevoie doar de două fire pentru a comunica cu plăcuța de dezvoltare Arduino sau cu un alt microcontroller. Cele două fire sunt necesare pentru clock și date. [11]

Modulul conține potențiometru pentru a regla contrastul și este compatibil și cu ecranele ce au iluminare de fundal. [11]

Caracteristici tehnice:

Adrese I2C: 0x20~0x27 (adresa inițială este 0x20, dar se poate schimba)

Alimentare: 5V

Contrastul și luminozitatea poate fi setată din potențiometre

Compatibil cu LCD 1602 sau LCD 2004

Dimensiuni 41.6 mm x 19.2 mm[12]

Figura: 2.1.3.1 – Modulul I2C [12]

II.1.3. Baterie 9V

Bateria de 9V alimentează întreg circuitul. Având în vedere că avem destul de multe piese conectate, aceasta se consumă mult mai rapid.

II.1.4. Tastatură matricială 4×4

Tastatură cu 16 butoane (cifre de la 0 la 9 și 6 caractere speciale). Modulul este echipat cu cablu de tip mamă cu lungimea de 5 cm. Tastele sunt conectate matricial. [13]

Specificații:

Număr de butoane: 16;

Cifre de la 0 la 9;

Caractere speciale: ”A”, ”B”, ”C”, ”D”, ”* ”, ”#”;

Tensiunea maximă: 24 V curent continuu;

Curent maxim: 30 mA;

8 pini de ieșire;

Temperatură optimă de funcționare: 0° C – 50° C;

Dimensiune pad: 6.9 cm x 7.6 cm;

Dimensiune cablu: 2.0 cm x 8.8 cm; [13]

Figura: 2.1.3.1 – Conexiunile tastaturi matriciale 4×4 [13]

II.1.5. Servomotor SG90

Controlul servomotorului se realizează cu ajutorul unui semnal de tip PWM. Pe o placă de dezvoltare Arduino, pini care pot genera acest tip de semnal sunt: 3, 5, 7, 9, 10, 11, A0 – A5. [14]

Acest mini servomotor este proiectat în special pentru aplicații de mică putere. [14] Cu toate acestea a putut fi utilizat și pentru proiectul prezentat.

Specificații:

Tensiune de alimentare: 4.8V;

Consum redus de curent;

Viteza de funcționare: 0.12 s/60°;

Cuplu în blocare la 4.8V: 1.8 kgf*cm;

Frecvență PWM: 50Hz;

Temperatură de funcționare: -30° C – +60° C;

Dimensiuni: 21.5 x 11.8 x 22.7 mm. [14]

Figura: 2.1.4.1 – Schema de conectare a servomotorului [14]

II.2. Tehnologii software

II.2.1. Arduino IDE

Arduino IDE (integrated development environment) este un mediu de dezvoltare integrat. Este o aplicație de tipul multi platform pentru Windows, macOS și Linux, scrisă în limbajul de programare Java. Este utilizat pentru a scrie și a încărca programe pe plăcile compatibile Arduino, dar și alte panouri de dezvoltare de la terți, cu ajutorul unor nuclee. [15]

Codul sursă pentru IDE este lansat sub licența publică generală GNU, versiunea 2. Arduino IDE acceptă limbajele C și C++ folosind reguli speciale de structurare a codurilor. Arduino IDE 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 a buclei principale a programului, care sunt compilate și conectate cu un program main() într-un program executabil ciclic executabil cu toolchain GNU, inclus în distribuția IDE. [15]

Arduino IDE utilizează programul avrdude pentru a converti codul executabil într-un fișier text în codificare hexadecimală care este încărcat pe placa Arduino de către un program de încărcare din firmware-ul plăci. [15]

Figura: 2.2.1.1 – Interfața Arduino IDE

Capitolul III – Implementarea Mystery Box-ului

III.1. Implementarea hardware

Implementarea hardware, a presupus realizarea schemei circuitului, adică a legăturilor dintre placa Arduino Uno R3, a tastaturii matriciale, a servomotorului și a LCD-ului împreună cu modulul I2C reprezentate în figura 3.1.1.

Figura: 3.1.1. – Schema electrică a seifului

Pentru a minimiza numărul de pini utilizați în conexiunea dintre LCD și plăcuța Arduino Uno R3 am atașat LCD-ului modului I2C. Acesta reduce numărul de pini utilizați de LCD de la 12 pini la 4, ceea ce constituie un avantaj luând în considerare că pentru buna funcționare a componentelor acestea trebuie conectate doar la anumiți pini ai plăcuței Arduino Uno R3.

Cei 12 pini ai LCD-ului sunt conectați la modul I2C, minimizând astfel numărul de pini ocupați de LCD pe plăcuța Arduino Uno R3. Modulul I2C este conectat la plăcuță astfel: SDA este conectat la A4 (pin analog) – deoarece acest pin suportă comunicare prin două fire, pinul A4 fiind un pin serial de date, SCL este conectat la A5 (pin analog) – acest pin suportă aceeași comunicare ca cea a pinului A4, dar acesta este un pin Serial Clock , VCC la 5V iar GND la GND (împământare).

Figura: 3.1.2. – Conexiunea LCD-ului

Rândurile tastaturii matriciale au fost conectate la pini D2, D3, D4 și D5 iar coloanele tastaturii la pinii D8, D9, D10 și D11. Deoarece tastatura transmite un semnal de ieșire către placă, aceasta trebuia conectată la pini destinați semnalelor de intrare.

Figura: 3.1.3. – Conexiunea tastaturii

Plăcuța Arduino Uno R3 are nevoie de alimentare proprie pentru a putea pune în funcțiune celelalte componente. Această alimentare se realizează în două moduri, fie de la o baterie cu un voltaj cuprins între 7 și 12 volți, fie de la un calculator. Oricare dintre metode am alege-o este bună, dar de calculator avem nevoie în ambele cazuri pentru a reuși să încărcăm programul pe placă. În cazul meu, eu am utilizat pentru alimentare o baterie de 9V. Aceasta emite curent suficient pentru alimentarea întregului circuit electric.

Servomototrul SG90 a fost conectat la alimentarea de 5V, la împământare și la pinul analog A0. Am ales să utilizez pinul A0 deoarece este un pin PWM(pulse with modulation). Servomotorul este configurat pentru a avea doar două poziții, închis și deschis, setate la diferite unghiuri. Pozițiile servomotorului sunt prezentate în figura 3.1.4 și 3.1.5.

Figura: 3.1.4. – Servomotorul în poziția închis

Figura: 3.1.5. – Servomotorul în poziția deschis

Figura: 3.1.6. – Varianta finală a Mystery Box-ului

Varianta finală a Mystery Box-ului este prezentată în figura 3.1.6. Cutia care susține circuitul este un tablou electric. Am ales să utilizez un tablou electric pe post de cutie deoarece este proiectat să reziste vremii. Având garnitură pe margine apa nu se poate infiltra în el. Are o cheie specială, ceea ce îmi convine deoarece nu se poate copia atât de ușor o astfel de cheie. Inițial am vrut să renunț la partea de cheie, dar am ales să o păstrez în cazul în care se defectează ceva la circuitul electric, sau se descarcă bateria.

III.2. Implementarea software

III.2.1. Instalarea programului Arduino IDE

Plăcuța Arduino Uno R3 poate rula pe mai multe sisteme de operare, Windows, Linux și Mac OS X. Utilizând sistemul de operare Windows, programul se poate instala din aplicația Microsoft store– magazinul de aplicații oferit de Microsoft Windows – prezentată în figura 3.2.1.1.

Figura: 3.2.1.1. – Microsoft Store

La fiecare deschidere a programului el afișează două funcții esențiale rulării unui program în Arduino IDE. În figura 3.2.2 sunt prezentate cele două funcții void setup( ) și void loop( ).

Figura: 3.2.2. – Funcțiile principale – afișate la fiecare deschidere a programului

Codul înscris în funcția void setup() va rula o singură dată la începutul programului, în timp ce codul scris în funcția void loop() se va repeta până în momentul opririi alimentării cu energie. În funcția void setup() inițializăm pini, iar în funcția void loop() introducem codul de care vom avea nevoie să se repete de mai multe ori.

III.2.2. Adăugarea librăriilor în programul Arduino IDE

Ca orice alt program și Arduino IDE are instalate librăriile cele mai uzuale. Dacă avem nevoie de librării suplimentare acestea se pot obține în două moduri.

Primul mod pentru a obține librării suplimentare este accesarea „Tools” din bara de meniu, urmând mai apoi să alegem a patra opțiune „Manage Libraries…”. Alegând această opțiune ni se va deschide „Library Manager”; în această fereastră putem să căutam librăriile de care avem nevoie, având o listă vastă de unde alege. În figura 3.2.2.1 este prezentată bara de meniu, de unde alegem a patra opțiune „Tools” urmând ca mai apoi să accesăm „Manage Libraries…”. În figura 3.2.2.2 este prezentat „Library Manager”.

Figura: 3.2.2.1. – Meniul programului Arduino IDE

Figura: 3.2.2.2. – Managerul librăriilor Arduino

Al doilea mod în care putem adăuga librării noi în programul Arduino IDE este descărcarea lor de pe site-ul „arduinolibraries.info”, figura 3.2.2.3

Figura: 3.2.2.3 – Managerul librăriilor Arduino

După descărcarea librăriei necesare aceasta trebuie adăugată în programul Arduino IDE. Adăugarea unei librării noi din sursă externă, alta în afară de cele căutate în „Library Manager”, se realizează accesând „Sketch” din bara de meniu. Din meniul „Sketch” alegem a șasea opțiune „Include Library”; alegând această opțiune ni se va deschide o nouă fereastră de unde alegem a doua opțiune „Add .ZIP Library”; figura 3.2.2.4. Alegând această opțiune ni se va deschide o nouă fereastră, figura 3.2.2.5. În această fereastră va trebui să căutăm dosarul în care avem salvată librăria sub formă de .ZIP, figura 3.2.2.6. Dosarele noilor librării se vor instala automat în dosarul „Arduino” sub dosarul „libraries”.

Figura: 3.2.2.4. – Adăugarea noilor librării

Figura: 3.2.2.5. – Fereastra de căutare a dosarului

Figura: 3.2.2.6. – Dosarul unde trebuie salvate fișierele zip

Pentru acest proiect am fost nevoită să îmi instalez două librării, „LiquidCrystal I2C-1.1.2” și „Keypad.h”, pentru a putea realiza conexiunile între plăcuța Arduino Uno R3, LCD și modulul I2C și tastatură. Pentru instalarea acestor două librării am utilizat al doilea mod din cele două prezentate mai sus, și anume descărcarea lor de pe site-ul „arduinolibraries.info.”.

Pentru funcționarea display-ului LCD împreună cu modulul I2C sunt necesare două librării; acestea fiind: „Wire.h” și „LiquidCrystal_I2C.h”. Librăria „Wire.h” o aveam preinstalată în program, dar librăria „LiquidCrystal_I2C.h” am fost nevoită să o descarc și instalez. Am descărcat versiunea cea mai actuală a acestei librării, aceasta fiind „LiquidCrystal I2C-1.1.2” în format zip de pe site-ul arduinolibraries.info.

Pentru o funcționare adecvată și tastatura (keypad-ul) a avut nevoie de instalarea unei librării. Această librărie fiind „Keypad.h”. Pentru instalarea acestei librării am utilizat același site, arduinolibraries.info, de unde am descărcat și instalat cea mai nouă versiune a librăriei; aceasta fiind „Keypad-3.1.1”.zip .

După cum spuneam și mai sus, fiecare piesă are nevoie de librăria sa, ultima dar nu cea din urmă este librăria pentru servomotorul SG90; aceasta fiind „Servo.h”.

III.2.3. Configurația LCD-ului

Figura: 3.2.3.1. – Configurarea LCD-ului

Pentru configurarea inițială a LCD-ului avem nevoie de cele două librării Wire.h și LiquidCrystal_I2C.h . Biblioteca Wire.h permite comunicarea cu dispozitivul I2C. Inițializăm clasa LiquidCrystal_I2C și specificăm adresa și dimensiunile, în cazul de față acestea fiind 0x27, 20,4.

III.2.4. Inițializarea variabilelor

Figura: 3.2.4.1. – Inițializarea variabilelor

Primele două int-uri servesc la setarea unghiului servomotorului; int mot_min = 10 setează unghiul minim, iar int mot_max = 119 setează unghiul maxim. Prin char Str[16] inițializăm cele 16 taste ale tastaturii.

III.2.5. Configurarea tastaturii

Figura: 3.2.5.1. – Configurarea tastaturii

Cu ajutorul const byte ROWS = 4 și const byte COLS = 4 setăm numărul de linii și coloane. Char hexaKeys [ROWS][COLS] definește butoanele tastaturii. Prin byte rowPins[ROWS] = {5, 4, 3, 2} și byte colPins[COLS] = {11, 10, 9, 8} setăm pinii la care am conectat tastatura la plăcuța Arduino Uno R3. Cu Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS) inițializăm o instanță a clasei NewKeypad.

III.2.6. Funcția void setup()

În funcția void setup() setăm servomotorul și inițializăm LCD-ul.

Figura: 3.2.6.1. – Atașarea și setarea servomotorului

Prin funcția myservo.attach(A0) setăm pinul la care este conectat servomotorul. Prin funcția myservo.write(mot_min) setăm servomotorul în poziția închis pentru început.

Figura: 3.2.6.2. – Inițializarea LCD-ului și afișarea primului text

Funcția lcd.init() inițializează LCD-ul, iar funcția lcd.backlight() pornește lumina de fundal. Funcțiile lcd.print (" CODUL PIN") și lcd.print(" **** ") afișează un șir de caractere și totodată primul text afișat pe LCD. Prin funcția lcd.setCursor(0,1) setăm cursorul pe 0 deoarece 0 simbolizează coloana iar 1 simbolizează rândul.

III.2.7. Citirea butoanelor apăsate

Citirea tastelor solicitate se realizează prin funcția char customKey = customKeypad.getKey(). Această funcție este una importantă deoarece fără ea nu am putea inițializa tastele solicitate.

Figura: 3.2.7.1. – Funcția de citire a tastelor

Funcția din figura 3.2.7.2 citește și afișează tasta solicitată împreună cu primul text afișat pe LCD, Codul pin.

Figura: 3.2.7.2. – Funcția de verificare a tastelor

III.2.8. Setarea codului pin

Figura: 3.2.8.1. – Funcția de setare a codului pin și verificarea acestuia

Setarea codului pin se realizează prin funcția IF. În momentul de față codul pin este 3007. Pentru a verifica dacă codul pin este corect vom apăsa tasta A. Dacă codul pin este corect introdus corect pe display-ul LCD se va fișa mesajul "BUNA" "USA SE DECHIDE". În momentul în care se afișează acest mesaj servomotorul acționează asupra încuietorii schimbând poziția acesteia pe deschis.

Pentru verificarea codurilor pin greșite utilizăm funcția ELSE. Dacă codul pin introdus este greșit se va afișa mesajul "PIN GRESIT" "INCEARCA IAR", servomotorul rămânând în poziția închis.

III.2.9. Setarea tastei de blocare

Figura: 3.2.9.1. – Funcția de setare a tastei de blocare

Tasta B este setată pentru a muta servomotorul de pe poziția deschis pe poziția închis fără a utiliza codul pin. Apăsând tasta B aceasta închide automat Mystery Box-ul, pe urmă afișând din nou mesajul CODUL PIN. Acest procedeu se poate repeta la infinit.

Procesul prin care deschidem Mystery Box-ul este simplu. Introducem codul pin, apăsăm tasta A pentru a verifica dacă codul pin este corect sau nu. Dacă codul introdus este corect ușa se va deschide, iar dacă codul este greșit se va afișa mesajul "PIN GRESIT", "INCEARCA IAR", urmând să poți introduce din nou codul. Pentru a închide Mystery Box-ul apăsăm tasta B.

Concluzii

În urma implementării acestui proiect am realizat că nu este atât de ușor să realizezi un seif pe cât s-ar crede. Pe parcursul acestui proiect am întâmpinat unele dificultăți, atât pe partea de dezvoltare software cât și pe partea de dezvoltare hardware.

Pentru a putea realiza partea hardware pe plăcuța pe care o aveam deja, Arduino Uno R3, am fost nevoită să achiziționez un modul I2C pentru a minimiza numărul de pini utilizați de LCD deoarece dacă aș fi utilizat LCD-ul fără acest modul pini acestuia s-ar fi suprapus fie cu pinii tastaturii fie cu pinii servomotorului, iar acest lucru ar fi fost o problemă. Servomotorul are nevoie să fie conectat neapărat la unul din pinii care transmite semnal PWM pentru a putea funcționa.

Pe partea de software am întâmpinat probleme în realizarea codului final, deoarece să realizezi codul pentru fiecare piesă în parte este destul de simplu, există o mulțime de tutoriale, dar pentru a pune codurile realizate separat împreună, deja situația se complică. Pentru servomotor am fost nevoită să găsesc unghiul exact pentru a deschide și închide corect Mystery Box-ul. Afișajul LCD-ului a trebuit și acesta calculat din punct de vedere estetic. Da este simplu să scrii și să afișezi un text pe LCD, dar trebuie să te și gândești cum îl poziționezi. Pentru a putea verifica dacă tastatura este funcțională aceasta trebuie conectată cu LCD-ul, deoarece chiar dacă tu apeși tastele nu ai de unde știi dacă funcționează dacă nu vezi acest lucru. Dacă ar fi să cataloghez piese după dificultatea de a lucra cu ele, cred că tastatura ar lua locul 1, pentru că a fost nevoie de multe încercări ca aceasta să funcționeze în parametrii normali.

Ca dezvoltări viitoare, aș vrea să încerc să realizez o aplicație cu ajutorul căreia s-ar putea debloca Mystery Box-ul. Pentru a putea realiza acest lucru aș fi nevoită să creez o aplicație în Android Studio și să conectez un modul bluetooth. Din documentațiile mele pe acest subiect aș putea spune că aș avea dificultăți cu crearea aplicației, deoarece modulul bluetooth este simplu de conectat la plăcuță, dar din nou, și pentru acest modul ar trebui să i se implementeze un cod în codul original.

BIBLIOGRAFIE

[1] https://ro.wikipedia.org/wiki/Arduino Consultat la 09.08.2019

[2] https://en.wikipedia.org/wiki/Arduino Consultat la 10.08.2019

[3] Doina Logofătu: Bazele programării în C. Aplicații, Editura Polirom, Iași, 2006

[4] Doina Logofătu: Algorimi fundamentali în C++. Aplicații, Ed. 1, Editura Polirom, Iași, 2007

[5] https://en.wikipedia.org/wiki/Safe Consultat la 10.08.2019

[6] https://www.geeetech.com/wiki/index.php/Arduino_Uno Consultat la 09.08.2019

[7]https://ardushop.ro/ro/home/29-placa-de-dezvoltare-uno-r3.html?search_query=uno+r3&results=43 Consultat la 17.08.2019

[8]http://roboromania.ro/2016/11/15/descrierea-pinilor-la-placa-arduino-uno-r3/ Consultat la 11.02.2020

[9]https://ardushop.ro/ro/home/214-display-1602-cu-adaptor-i2c.html?search_query=i2c&results=34 Consultat la 17.08.2019

[10]https://howtomechatronics.com/tutorials/arduino/lcd-tutorial/ Consultat la 17.08.2019

[11] https://ardushop.ro/ro/home/98-modul-i2c.html Consultat la 17.08.2019

[12]http://roboromania.ro/produs/iinterfata-arduino-iici2ctwispi-pentru-lcd/ Consultat la 05.02.2020

[13] https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4×4-cu-conector-pin-de-tip-mama.html?search_query=tastatura&results=51 Consultat la 24.08.2019

[14]https://www.optimusdigital.ro/ro/motoare-servomotoare/26-micro-servomotor-sg90.html?gclid=Cj0KCQjwwIPrBRCJARIsAFlVT8_9E-fejfRZSBdwWTCFcJ8IjC61Wsa8ts3pPqBaYlHQpw-wo5v5EQkaArTuEALw_wcB Consultat la 24.08.2019

[15] https://en.wikipedia.org/wiki/Arduino_IDE Consultat la 24.08.2019

[15]https://www.theengineeringprojects.com/2018/10/introduction-to-arduino-ide.html Consultat la 26.08.2019 – figura 2.2.1.1

[16] https://ardushop.ro/ro/home/98-modul-i2c.html Consultat la 29.08.2019

Figura 3.1.1 – schema electrică a circuitului – piesele care alcătuiesc circuitul electric au fost importate de pe site-urile de la punctele 17, 18, 19 și 20. Legăturile fiind făcute de mine

[17]http://www.hilltop-cottage.info/blogs/adam/tinycad-library-for-arduino/ img lcd schema electrica

[18] http://www.circuitstoday.com/interfacing-lcd-to-arduino img lcd schema electrica

[19]https://www.pinterest.de/pin/AdmZcVPNoHmUB0jrKIrXyUSBFxK_oc47s1fHNeJcvHl0kPbKdnyVByg/ uno R3 schema electrica

[20]https://teknogenius.blogspot.com/2014/10/interfacing-hex-keypad-to-arduino.html img keypad schema electrica

Similar Posts

  • Moldoveanu Anda -Georgiana [605662]

    UNIVERSITATEA DIN BUCUREȘTI FACULTATEA DE BIOLOGIE SPECIALIZAREA BIOCHIMIE LUCRARE DE LICENȚĂ Conducătorul lucrării de licență: Conf. Dr. Dițu Lia -Mara Absolvent: [anonimizat] 2018 UNIVERSITATEA DIN BUCUREȘTI FACULTATEA DE BIOLOGIE SPECIALIZAREA BIOCHIMIE EFECTELE SUCURILOR DIN COMERȚ ASUPRA MICROBIOTEI TRACTULUI DIGESTIV Conducătorul lucrării de licență: Conf. Dr. Dițu Lia -Mara Absolvent: [anonimizat] 2018 1 CUPRINS INTRODUCERE ……………………………..

  • 1 SUPORT CURS INSTITUȚII ȘI DEZVOLTARE ECONOMICĂ PARTEA I 1. Integrarea instituțiilor în analiza economică 1.1 Rolul instituțiilor în societate… [627981]

    1 SUPORT CURS INSTITUȚII ȘI DEZVOLTARE ECONOMICĂ PARTEA I 1. Integrarea instituțiilor în analiza economică 1.1 Rolul instituțiilor în societate Literatura de specialitate nu oferă un punct de vedere unanim recunoscut pentru definirea instituțiilor. Pentru Douglass North, instituțiile reprezintă „regula jocului sau, mai convențional, constrângerile create de oameni pentru a da formă interacțiunii umane”1. În…

  • Trăind într -o lume a vitezei ce presupune schimbarea rapidă a locaților pentru îndeplinirea anumitor [624547]

    Trăind într -o lume a vitezei ce presupune schimbarea rapidă a locaților pentru îndeplinirea anumitor sarcini, obiective sau scopuri și deplasarea prin diferite căi și mijloace de transport ce vin în ajutorul oamenilor, am elaborat prezenta lucrare de lice nță pentru a putea observa evoluția acestui segment prin diferite evenimente ce au avut loc cât…

  • INTRODUCERE ………………… ………………………………………… ………………… …….. …………………3 I…. [609455]

    UNIVERSITATEA SPIRU HARET FACULTATEA DE ȘTIINȚE JURIDICE, ECONOMICE ȘI ADMINISTRATIVE BRAȘOV PROGRAM DE STUDII – DREPT LUCRARE DE LICENȚĂ Coordonator: Lector univ. dr. ȘTEFU IOAN Absolvent: [anonimizat] 2017 UNIVERSITATEA SPIRU HARET FACULTATEA DE ȘTIINȚE JURIDICE, ECONOMICE ȘI ADMINISTRATIVE BRAȘOV PROGRAM DE STUDII – DREPT ASPECTE CRIMINOLOGICE PRIVIND DELINCVENȚA JUVENILĂ Coordonator: Lector univ. dr. ȘTEFU IOAN…

  • Program Master: Managementul Integrat al Capitalului Natural [613270]

    0 Universitatea din Bucuești Facultatea de Biologie Program Master: Managementul Integrat al Capitalului Natural Lucrare de disertație Absolvent: [anonimizat]: Conf. Dr. Virgil Alexandru Iordache Co-coordonat or științific: CS1 Dr. Aurora Neagoe 2020 1 Universitatea din Bucuești Facultatea de Biologie Program Master: Managementul Integrat al Capitalului Natural Proiectarea cercetării pentru investigarea rolului trăsăturilor funcționale ale plantelor…

  • Badita Ana Maria Gabriela 851i [615870]

    FacultateadeArhitecturășiUrbanism“IonMincu” EMOȚIADINPOSTINDUSTRIAL, ORAȘULDINSTICLADEBERE BucureștiulșiFabricadebereBragadiru FacultateadeArhitecturădeInterior Numelestudent: [anonimizat]:BădițăAna-MariaGabriela Profesororulîndrumător:Conf.Dr.Arh.CodinaDușoiu 2019/2020 ARGUMENT Înultimiianipetrecuțiînfacultate,fascinațiameapentrusustenabilitate,reciclareși“zerowastelife’’a crescutconsiderabil.Întimpceînviațadezicuzi,mișcarea“zerowaste’’presupuneacălafinalnumai rămânenimicdereciclat,înceeacepriveștearhitecturalucurilesuntdiferite. Laînceput,nuamvăzutconversiadreptoformăde“reciclare”aspațiuluicicapeoaltăformăsubcare găsescarhitectura.Peparcursulanilor,amtrecutcuvedereademulteoriacesttermen.Conversiaera pestetotînjur,casevechiinterbeliceaveauacumîninimalorcafenelecochete,miciexpozițiisaupoate librarii.Recunosccăamfostgreudeimpresionatdeoarecemisepăreafiresccaomulsăseadaptezeșisă adaptezeoricespațiuîiapareaîncale.Eradelasineînțelesacestlucrudeoareceastaafăcutînîntreaga saviață. Pentruadescopericuadevăratconversiaafostnecesarsămăîndăgostesc..Afostdragostelaprima vedere,apoilaadoua-a,laatrei-apânăcefoculinimiimi-apornitșipicioareleșiîntr-odimineațărece,ne- amîntâlnit.Cutoatecăm-amîndrăgositdintr-opoză,vedereaGazometrelordinViennaînfațamea,nuse comparăcuniciunadinacesteexperiențe.Parcănicioexplicație,fotografiesaufilmulețnuteputeafacesă apreciezișisăsimțispațiul.Amrealizatatunciamploareapecareopoateluaconversiașiamînceputsă cautarhitecturaînlocurimaipuținconvenționale. Rândperândm-amîndrăgostitdepescării,fabricidepâine,uzine,mori,turnurideapășicamtotceare funcțiaclădiriidreptnume.Amprivitatâteaexempleșidefiecaredatărămâneamsurprinsăcumspațiula fostmodelat,rescrisșilarândulsăucumaremodelatșirescrisnudoarviațasocialădinloculrespecivdar șifiecareomînparte.Adaptarealaspațiușimodelareaacestuiasuntlucrurifireștidarcaresunttrecutecu vedereaîntr-unspațiuconvenționalșicinstiteîntr-unulneconvențional. DeFabricadebereBragadiru(Rahova)m-amîndăgostitdincuriozitate.Nuampututînțelegecumun ansambluatatdemareșiimpunătoreraignoratdetrecători,bachiarșideîntreagaviață.Timpulnuiartăpe nimeni,însătimpulparesăsefiopritacolo.Nimeninustăpelocsuficientdemultlângăfabricapentrua vedeatrecereatimpuluiîncâtsăpoatăsusținăcontrariul.Astfel,admirândansambluldeladistanță,am consideratcămerităoșansălaonouăviață. Motivațiameapentrualegereaacestuisubiectafostodatăfascinațiapentrufabricădarșidorințadeafi “unaltfeldearhitect”.Construimpentruoamenidardemulteoriuitămcăloculestedoarîmprumutatdin naturășicătrebuiesăîifacemcinste.Conversiafaceacestlucru,aducelaviațăunlocșiînacelașitimp aducelaviațăcomunitateadinjurulaceluilocodatăcuistorialoculuirespectiv. CUPRINSUL Capitolul1-Introducereînlumeaconversieiuneifabricii……………………………………………………………………………..2 1.1Definireatermenilordelucru…………………………………………………………………………………………………………….2 1.1.1Conversiafuncțională,reabilitarearhitecturală………………………………………………………………………2 1.1.2Monument,patrimoniuindustrial……………………………………………………………………………………………3 1.1.3Industrializare…………………………………………………………………………………………………………………………3 1.1.4Dezindustrializare…………………………………………………………………………………………………………………..3 1.1.5Fabrică…………………………………………………………………………………………………………………………………..3 1.1.6Procesdefabricație,producție………………………………………………………………………………………………3 1.1.7Contex(urban)……………………………………………………………………………………………………………………..3 1.2Metodedecercetare………………………………………………………………………………………………………………………..4 1.2.1Fișadeanalizăamonumentului…………………………………………………………………………………………….4 1.2.2Analizapesit………………………………………………………………………………………………………………………….4 Capitolul2-PunereaîncontextulindustrializăriișiadezindustraializăriidinBucurești………………………………..5 2.1IndustrializareaînBucurești……………………………………………………………………………………………………………5 2.2PostindustrializareașidezindustrializareadinBucurești…………………………………………………………………7…