PROIECTAREA SI PROGRAMAREA UNUI TEMPORIZATOR PENTRU AEROMODELE Absolvent Anca Andrei – Emilian Conducator stiintific, asist.univ.dr.ing.IORDACHESCU… [310680]

[anonimizat],CALCULATOARE SI INGINERIE ELECTRICA

PROGRAMUL DE STUDII RST

PROIECT DE DIPLOMA

PROIECTAREA SI PROGRAMAREA UNUI TEMPORIZATOR PENTRU AEROMODELE

Absolvent: [anonimizat],

asist.univ.dr.ing.[anonimizat] 2017

Capitolul 1

INTRODUCERE

Aeromodele (Scurt Istoric)

Omul a avut din totdeauna dorinta de a [anonimizat] a zbura, iar natura i-a pus la indemana un model perfect construit in acest scop: pasarea.

Acesta a observat-o, a studiat-o si apoi a [anonimizat]: aripa, ampenajul, identic sau cel putin apropiat de cel al pasarilor.

Despre primele incercari de zbor aflam din mitologia greaca.[anonimizat], pe nume Dedal, a fost inchis cu fiul sau Icar in labirintul pe care l-a construit, [anonimizat]. Pentru a [anonimizat] s-[anonimizat].

Printre oamenii de stiinta ai antichitatii despre care se stie ca s-[anonimizat] – care a construit cu peste 2000 de ani in urma un aparat de zbor care avea forma unui porumbel si care a reusit sa zboare: Aristotel – care a pus bazele multor disciplini ( [anonimizat], economie, zoologie, etc.) [anonimizat], iar coada dirijeaza zborul; Arhimede – care a descoperit legea fundamentala a hidraulici, lege care dupa 2000- de ani a stat la baza rezolvarii stiintifice a zborului cu balonul.

[anonimizat]- persoana care intruchipatipul de om de stiinta universal, a conceput o [anonimizat], curburi, forme asemanatoare cu ale unei pasari.

Romanii au avut o [anonimizat] 18 martie 1906, cand, pentru prima oara in lume, o masina create si condusa de om a reusit sa se desprinda de sol prin mijloace poprii de bord: Traian Vuia fiind primul roman care a realizat acest salt construind adevaratul act de nastere al zborului mechanic si al aviatiei. [anonimizat] 1910 a zburat primul avion din lume propulsat de un motor cu reactie.

[anonimizat], in cele din urma a [anonimizat].

Aeromodelismul, [anonimizat], el devenind un sport si capatand un caracter de propaganda abia dupa realizarea avionului.

Acesta este poarta de intrare a [anonimizat]. [anonimizat] o [anonimizat], o adevarata recreatie activa.

[anonimizat], [anonimizat], [anonimizat], fibră de sticlă sau fibră de carbon.

Declansatorul unui aeromodel

Aeromodelul este model de avion de dimensiuni reduse, fără motor, care poate zbura, la oricare distanță, fără pilot.

Planorul este un aparat de zbor fără motor, la care deplasarea se realizează datorită unor factori meteorologici (curenți de aer) sau de relief (zbor de pantă). O natura generală a unei aeronave, cuprinzând în special organele asupra cărora se exercită forțele aerodinamice.

Planorul este proiectat în așa fel încât el sa poată urca folosind o masă de aer ascendent, iar apoi să poată plana pe distanțe foarte lungi până la găsirea următoarei mase de aer ascendent. Acest mod de zbor stă la baza sportului numit planorism — cele mai multe planoare din ziua de azi fiind folosite în acest scop. A nu se confunda curenții de aer (verticali – ascendenți sau descendenți oriorizontali – vânt) cu masa de aer.

Planorul zboară în masa de aer, masă în care pot exista local curenți ascendenți (generați de diferențele de temperatură) sau mișcări ascendente ale aerului determinate de anumite forme ale reliefului expuse vântului ori de fronturile atmosferice).Față de masa de aer, planorul în zborul liber se află în coborâre permanentă, chiar dacă pătrunde într-un current ascendent. Dacă viteza ascensională a aerului este mai mare decât viteza de coborâre a planorului, acesta va urca față de sol cu o viteză egală cu diferența dintre viteza ascensională a aerului și vitezasa de coborâre. Într-un curent descendent, planorul se va apropia de sol cu o viteza rezultată din însumarea vitezei sale de coborâre cu viteza aerului descendent.

Toate aeromodelele contin aceleasi elemente principale, cum ar fi fuselajul, aripile, stabilizatorul sau suprafetele de comanda. Exista totusi o mare varietate de aeromodele ce difera prin performanta si caracteristici de zbor. Nu in ultimul rind la aceasta varietate contribuie si sistemele de radiocomanda care in variantele lor cele mai complexe permit aeromodelului un comportament in zbor similar aeronavelor reale.

Incarcatura unitara a unui planor trebuie tinuta la o valoare minima.Cei mai slabi curenti ascendenti pot fi exploatati cu un planor lent, avind o greutate minima.

Planoarele “universale” sunt populare. Aripile cu profile eficiente si materialele noi de constructie le ajuta sa evolueze atit la panta, in conditii de vint mediu cit si lansate de pe teren plat, in cautarea de curenti termici. Planoare agile de panta pot fi lansate in conditii de vant puternic si in mod curent sunt echipate cu eleroane, pentru zbor acrobatic.

Aeromodele pentru zbor liber (F-1).

Această clasă include modelele de planoare (categoriile F-1-A și F-1-E), aeromodelele cu fir de cauciuc (F-1-B) și cu motor (F-1-C), precum și aeromodelele de cameră de avioane și elicoptere (F-1-D).

Un model de planor (F-1-A), adică de aparat de zbor fără motor, capabil să planeze în curenți de aer ascendenți, se lansează ca și zmeul de hârtie. Când a atins o anumită înălțime, cablul cu care este legat se desprinde automat și modelul își continua zborul planat. De obicei asemenea modele sunt lansate de către două persoane cu ajutorul unui cablu de maxim 50m lungime: una tine modelul, iar cealaltă – capătul liber al cablului. La comanda "lansare" prima lansează modelul, iar cea de a doua manipulează cablul până când modelul se ridică la înălțimea necesară.

La aeromodelele cu fir de cauciuc (F-1-B), forța de tracțiune este asigurată de rotirea elicei, care esteacționată de un motor de cauciuc (o împletitură din fibre de cauciuc special, foarte elastic, răsucită).Propulsat de motorul de cauciuc, aeromodelul ia înălțime, după care planează, plutește în curenții ascendenți de aer și aterizează lin. Ele au următoarele caracteristici tehnice: aria suprafeței portante de 17-19 dm², masa de zbor, în afară de cea a motorului – cel puțin de 190g, sarcina specifică maxima pe suprafața portantă – 500H pe 1dm², masa motorului – cel mult 40g.

Zborul modelelor de planoare cu motor (F-1-C) este limitat de un dispozitiv special de tip cronometru (limba engleză: timer). Asemenea modele își iau startul cu motorul pornit. Peste cel mult 5 secunde cronometrul oprește motorul și modelul își continua zborul planând. Capacitatea cilindrică a motorului cu ardere internă nu trebuie să depășească valoarea de 2,5 cm³. Masa-limită a modelului se determină prin înmulțirea capacității cilindrice cu 300.

Competițiile cu aeromodele de cameră (F-1-D), cu motor de cauciuc, au loc numai în încăperi. Modele de acest fel sunt foarte ușoare (1-10 g) și au dimensiuni relative reduse (anvergura aripii până la 60 cm/600mm).

Toate categoriile de aeromodele cu zbor liber participă la competiții la proba de durată maximă de zbor. Durata de zbor a modelului construit de fiecare participant este limitată la 3 min. Locul întâi îl ocupă modelul care a acumulat cel mai mare număr de puncte (1 secundă corespunde unui punct) în 7 tururi.

1.3. Obiective urmarite

Obiectivul urmarit in aceasta lucrare este de a proiecta si programa un timer electronic pentru un aeromodel, de aceea am ales un adruino nano.

Adruino Nano este cea mai buna varianta la aeromodele, deoarece la acest sport trebuie sa fie un timer usor si foarte mic.

Timer-ul mecanic de la aeromodel este format dintr-un arc care antreneaza un grup de rotite foarte mici si este foarte rezistent. Diferenta intre un timer mecanic si cel electronic este: ca cel electronic este mult mai precis decat cel mecanic.

Fig. 1.1 Timer mecanic

Fig. 1.2. Grupul de rotitie dintr-un timer mecanic

Capitolul II

TEORIA LUCRARII

2.1. Timerele. Definitie. Tipuri

Timerul, dupa cum este si denumit, este un tip de ceas ce ajuta la masurarea perioadelor fixe de timp si care genereaza intreruperi la expirarea intervalului masurat. Un exemplu foarte bun pentru acest tip este o clepsidra, în care o cantitate fixă ​​de nisip se scurge printr-o deschidere îngustă dintr-o cameră în alta pentru a măsura un interval de timp.

Cele doua tipuri principale de timer sunt:

– Timere hardware

– Timere software

2.1.1. Timere hardware

Timerele mecanice sunt formate dintr-un cadran, un arc de otel si un set de rotite cu dinti pentru a masura timpul. Are o functionare similara ca a unui ceas cu alarma mecanica.

Temporizatoarele manuale sau mecanice sunt setate in mod obisnuit prin rotirea cadranului la intervalul de timp dorit. Rotirea cadranului stocheaza energia, data de arc, intr-o incapere pentru a rula mecanismul. Fiecare rotire a cadranului elibereaza o anumita energie pentru a avansa cu o valoare fixa, determinand suprafetei gradate sa se deplaseze in mod constant inapoi pana cand ajunge la punctul zero, cand un brat de parghie loveste un clopot.

Timerul pentru bucatarie mecanic a fost inventat in 1926 de Thomas Norman Hicks.

Timerele electromecanice bimetalice de scurta perioada de timp utilizeaza un mecanism termic, cu o lamela metalica realizata din benzi de doua metale (otel si bronz) cu rate diferite de expansiune termica intre ele. Un current electric care se propaga prin aceasta lamela provoaca incalzirea meltalelor, o parte se extinde mai putin decat cealalta si un contact electric la capatul lamelei se deplaseaza la un contact electric de comutare. Cea mai obisnuita utilizare a acestui tip sunt la semnalele luminoase a autovechiculelor si uneori si la instalatiile de craciun.

Un cronometru electromecanic utilizeaza un motor de curent alternatv sincron mic care intoarce o camă pe contatele de comutare. Motorul de current alternative este transformat intr-o rata precisa de current alternativ, pe care companiile de electricitate le regleaza cu atentie. Angrenajele actioneaza un arbore la viteza dorita si rotesc cama. Cea mai obisnuita aplicatie a acestui cronometru este acum la uscatoare si masinile de spalat vase. Acest tip de timer are de multe ori un ambreiaj de frecare intre procesul de viteza si camă, astfel incat camul poate fi rotit pentru a reseta timpul.

Timerele electromecanice continua sa existe in aceste aplicatii, deoarce contactele mecanice ale comutatoarelor sunt mai putin costisitoare decat dispozitivele semiconductoare necesare pentru a controla luminile puternice, motoarele si incalzitoarele. In trecut aceste temporizatoare electromecanice erau adesea combinate cu relee electrice pentru a crea regulatoare electro-mecanice.

Timerele electromecanice au atins un nivel inalt de dezvoltare in anii 1950 si 1960 datorita utilizarii lor extinse in sistemele aerospatiale si de arme. Pe masura ce elctronica digitala a progresat si a scazut pretul, temporizatoarele electronice au devenit mai avantajoase.

Timerele electronice sunt in esenta ceasuri cu quart cu electronic speciala si pot obtine o precizie mai mare decat ceasurile mecanice. Ele au component electronice digitale, dar pot avea si un afisaj analog sau digital. Circuitele integrate au facut logica digitala atat de ieftina incat un temporizator electronic este mai putin costisitor decat multe timere mecanice sau electromecanice.

Temporizatoarele sunt implementate ca un simplu sistem de calculator cu un singur chip, similar unui ceas si de obicei folosesc aceeasi tehnologie.

Multe cronometre sunt acum implementate in software, folosind mai degraba un controler logic programabil (PLC), decat o cutie plina cu piese electromecanice. Logica este de obicei conceputa ca si cum ar fi relee, folosind un limbaj de calcul special numita logica de scara.

Timerele digitale sunt utilizate in dispozitivele de siguranta, cum ar fi un timer de gaz.

2.1.2. Timere software

Aceste tipuri de timere nu sunt dispositive si nici parti ale dispozitivelor, acestea exista doar in linii de cod. Ei se bazeaza pe acuratetea unui oscilator de ceas, de obicei incorporate intr-un dispozitiv hardware care executa software.

In zilele noastre, atunci cand utilizatorii folosesc din ce in ce mai multe telefoane mobile, exista si aplciatii cu temporizatoar care imita vechiul sistem mechanic, dar care au si functii foarte sophisticate. Aceste aplicatii sunt de asemenea mai usor de utilizat zilnic, deoarece programul de astazi este doar o aplicatie software pe telefon sau pe tablet. Unele dintre aceste aplciatii sunt temporizatoare, cronometre, alarme.

Aceste aplicatii cu temporizatoar pot fi utilizate pentru urmarirea timpului de lucru sau pentru motivarea copiilor pentru a face sarcini.

Timerele mecanice nu necesita personalizarea pe care cele digitale o accepta, cum ar fi ajustarile volumului sonor pentru nevoile individuale. Cele mai multe aplicatii vor oferii si sunete de alarma selectabile.

Unele aplicatii de temporizatoare pot ajuta copii sa inteleaga conceptual de timp, sa-I ajute sa-si termine sarcinile la timp. Ele sunt folosite in special pentru copii cu nevoi special cum ar fi: ADHD, sindromul down.

Sistemele de calculator au de obicei cel putin un timer hardware. Acestea sunt de obicei, contoare digitale care fie cresc sau scad la o frecventa fixa, care este adesea configurabila si care intrerupe procesul cand ajunge la punctul zero. Un design alternative utilizeaza un contor cu o dimensiune sufficient de mare pentru a nu atinge limita de depasire inainte de sfarsitul duratei de viata a sistemului.

Timerele mai sofisticate pot avea o logica de a compara valoarea temporizatorului cu o valoare specifica, setata de software, care declanseaza o anumita actiune cand valoarea timerului se potriveste cu valoarea prestabilita. Aceasta poate fi folosită, de exemplu, pentru a măsura evenimentele sau pentru a genera forme de undă modulate pentru a controla viteza motoarelor.

O utilizare specială a timerelor hardware în sistemele informatice este ca temporizatori, care sunt proiectați să realizeze o resetare hardware a sistemului dacă software-ul eșuează.

2.2 Tehnologia Arduino

Arduino este o companie open-source care proiecteaza si produce atât plăcuțe de dezvoltare bazate pe microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe lângă aceste facilitati include și o comunitate mare care se ocupă cu creația și difuzarea de proiecte care au ca ideal crearea de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală.[1]

Proiectul este bazat pe estetica plăcilor cu microcontroler produse de cateva firme, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția utilizatorului pini digitali și analogici, de intrare si iesire (I/O), care pot fi asamblate cu o gamă largă de plăcuțe numite scuturi (shield-uri) sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru a încărca programe de pe orice calculator. Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, folosind un dialect de limbaje de programare ca C++ si C.

Arduino a început în 2003 ca o lucare a unui student al Institutului de Interacțiune a Designului din Ivrea, Italia, având ca scop oferirea unei soluții ieftine și simple pentru initiatori și profesioniști, creand dispozitive capabile să reacționeze cu mediul, utilizand senzori și sisteme de acționare. Cele mai frecvente exemple sunt dispozitivele pentru studentii începători precum: roboții simpli, leduri sau temporizatoare.

Din echipa primordiala Arduino au contribuit Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino și David Mellis, iar denumirea de "Arduino" provine de la un restaurant din Ivrea, locatia unde o parte din intemeietori obișnuiau să se adune.Studentul columbian Hernando Barragán a creat platforma de progres Wiring care a ajutat la o bază pentru Arduino.

Plăcuțele Arduino se comercializeaza sub formă preasamblată sau a unor kituri de montat acasă . Caracteristicile schemelor sunt disponibile pentru orice student, permițând oricui să construiasca plăcuțe Arduino. Adafruit Industries evalueaza in anul 2011 că peste 300.000 de machete oficiale Arduino au fost realizate[2], iar în anul 2013, 700.000 de plăcuțe legalizate erau în retinerea utilizatorilor.

2.2.1. Machete

Plăcuțele oficiale Arduino erau create de compania italiană Smart Projects. Companiile americane denumite SparkFun Electronics si Adafruit Industries au proiectat o parte dintre placutele cu brandul Arduino.[3] Pana in prezent au fost comercializate 16 versiuni de hardware Arduino.

Placa Arduino UNO face legatura la calculator printr-un cablu USB utilizind un cablu de tip USB A-B, avand dimensiunile de 2 metri sau de 4 metri si poate fi alimentat si de la o priza. O alimentare de la o prize este folositoare in situatia in care consumatorii conectati la macheta necesita un curent mai mare, iar placa daca nu necesita un curent suplimentar, ea se poate alimenta direct la un calculator prin cablu USB.

Specificatii :

Microcontroler: ATmega328

Tensiune de lucru: 5V

Tensiune de intrare (recomandat): 7-12V

Tensiune de intrare (limita): 6-20V

Pini digitali: 14 (6 PWM output)

Pini analogici: 6

Curent per pin I/O: 40 mA

Curent 3.3V: 50 mA

Memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader

SRAM: 2 KB (ATmega328)

EEPROM: 1 KB (ATmega328)

Clock Speed: 16 MHz

Lungime: 68.6 mm

Latime: 53.4 mm

Greutate: 25 g [4]

Fig. 2.2. Macheta Arduino UNO (Sursa: [5] )

Fig. 2.1. Schema pinilor machetei UNO (Sursa: [6] )

Cea mai noua platform de procesare este Arduino Leonardo, ea se bazeaza pe un microcontroller ATMega32U4. Fata de Arduino Uno, cel Leonardo are un microcontroller ATMega32U4 ce ii permite sa se conecteze la calculator direct prin USB, pe langa acest lucru, machete poate sa se comporte ca o tastatura sau mouse.

Specificatii :

Microcontroller: ATmega32u4

Tensiune de lucru: 5v

Tensiune de intrare: 7-12v

Pini I/O Digitali: 20

Porturi PWM: 7

Porturi Analogice: 12

Curent per Pin I/O: 40mAh

Memorie Flash: 32KB

SRAM: 2.5KB

EEPROM: 1KB

Viteza: 16 MHz

Lungime: 68.6 mm

Latime: 53.3 mm

Greutate: 20 g

Fig. 2.3. Macheta Arduino LEONARDO (Sursa: [7] )

Fig. 2.4. Schema pinilor machetei LEONARDO (Sursa: [8] )

Arduino DUE este compatibil la o tensiune de doar 3.3 V, de asemenea senzorii sau shield-urile care poate sad ea 5 V pe pini nu se utilizeaza.

Specificatii:

Procesor: AT91SAM3X8E

Tensiune de lucru: 3.3 V

Tensiune de alimentare : 7-12 V

Pini IO digitali: 54 (12 PWM)

Pini de intrare analogici: 12

Pini de iesire analogici: 2 (digital to analog converter)

Memorie: 512 KB disponibili

Viteză procesor: 84 MHz

Lungime: 101.52 mm

Latime: 53.3 mm

Greutate: 36 g

Fig. 2.5. Macheta Arduino DUE (Sursa: [9] )

Fig. 2.6. Schema pinilor machetei DUE (Sursa: [10] )

Arduino Mega, ca dimensiune este la fel ca Arduino Due, dar are mai multi pini digitali.

Specificatii:

Microcontroler: ATmega2560

Tensiune de lucru: 5V

Tensiune de intrare (recomandat): 7-12V

Tensiune de intrare (limite): 6-20V

Pini digitali: 54 (14 PWM output)

Pini analogici: 16

Curent de iesire: 40 mA

Curent de iesire 3.3V Pin: 50 mA

Flash Memory: 256 KB , 8 KB pentru bootloader

SRAM: 8 KB

EEPROM: 4 KB

Clock:16 MHz

Lungime: 101.52 mm

Latime: 53.3 mm

Greutate: 37 g

Fig. 2.7. Macheta Arduino MEGA (Sursa: [11] )

Fig. 2.8. Schema pinilor machetei MEGA (Sursa: [12] )

Platforma arduino nano este o variant la fel ca arduino UNO, cu dimensiuni reduse, cu un microcontroller Atmega328, si cu o interfata USB imbunatatita. Ea este compatibila din punct de vedere a codului si al formatului cu Duemilanove, cat si alte versiuni mai vechi de Arduino. De aici reiese ca toate librariile si modulele, vor functiona fara nici o problema pe Arduino Nano.

Specificatii:

Microcontroler ATmega328

Voltaj de operare 3.3V

Voltaj de intrare 7-10 V

14 pini de intrare/ieșire digitali (cu suport pentru PWM)

6 intrări analogice

Curent per pin 40 mA

Memorie Flash 32 KB

SRAM 2 KB

EEPROM 1 KB

Frecventa: 16 MHz

Lungime: 45 mm

Latime: 18mm

Greutate: 7 g

In urma cercetarilor am ales macheta Arduino Nano pentru un “Timer electronic pentru un aeromodel”, deoarece aceasta macheta este foarte usoara, are numai 7 grame si dimensiunile ei sunt foarte mici, ce rezulta un avantaj foarte mare comparative cu celelalte machete. [13]

Fig. 2.9. Macheta Arduino MEGA (Sursa: [14] )

Fig. 2.10. Schema pinilor machetei MEGA (Sursa: [15] )

2.2.2. Shielduri

Arduino și plăcuțele compatibile folosesc machete de extindere cu circuite imprimate ce se numesc shield-uri, ce fac legatura la pinii disponibili pe Arduino. Shield-urile au posibilitatea de a controla LED-uri, Motoare, Ethernet, GPS, LCD.

Exemple de Shild-uri Arduino:

Fig. 2.11. Shiled ce contine un breadboard(Sursa: [16] )

– Shield Adafruit ce salveaza informatii pe un card SD și cip ceas RTC.

Fig. 2.12. Shield Adafruit

– Shield HackARobot Fabric este creat pentru Arduino Nano, ce poate fi conectat motoare și senzori, giroscop , un GPS și alte machete cum ar fi: WiFi, Bluetooth, etc.

Fig. 2.13. Shield HackARobot Fabric (Sursa: [17] )

2.2.3. Programare

O sa va prezint cel mai simplu lucru de programat pe platform Arduino, un led ce licare la un interval de o secunda.

Pentru acest lucru vom utiliza un arduino nano, un led, o rezistenta de 10 ohm si un accumulator de 3.3 V.

Fig. 2.14. Schema unui LED conectat la un Arduino Nano

Fig. 2.15. Schema grafica unui LED conectat la un Arduino Nano

Se conecteaza prin USB la pc, se deschide software-ul IDE arduino, se acceseaza File > Examples > Basics > Blink, si se incarca programul pe placuta arduino nano prin butonul upload.

Fig. 2.16. Exemple de limbaj Arduino

In cel mai scurt timp, becul trebuie sa fie aprins o secunda si stins tot o secunda.

2.3. Tehnologia Xilinx

XILINX ISE (Integrated Software Enviroment) proiectează, dezvoltă și comercializează produse logice programabile, inclusiv circuite integrate (IC), instrumente de proiectare software, servicii de proiectare, care ofera o gama larga de aplicatii pentru proiectare utilizand circuite FPGA sau CPLD. Proiectarea se poate realiza utilizand atat descrierea schematica, cat si limbaje de descriere hardware (VHDL sau Verilog). [18]

2.3.1. FPGA

Un FPGA (Field-Programmable Gate Array) sunt circuite integrate care pot fi programate pentru a se comporta ca oricare alte circuite digitale. Spre deosebire de un procesor, care stochează și execută instrucțiuni, programarea unui FPGA înseamnă reconfigurarea hardware a acestuia pentru a realiza funcționalitatea dorită.

FPGA-urile sunt construite dintr-un număr mare de blocuri logice configurabile, identice, fiind conectate printr-o matrice de fire și switch-uri programabile

Numărul de celule dintr-un FPGA variază de la model la model, putând ajunge până la câteva sute de mii și chiar milioane. Cel mai bun exemplu este familia Virtex-7 de la Xilinx care conține peste 2 milioane de celule.

Field-programmable gate arrays (FPGAs) sau in romana Campuri programabile – sunt jetoane de siliciu, care se dovedesc a fi extrem de rapid la anumite operațiuni. 
Prevăzute pe siliciu ca orice alt cip, FPGA-uri sunt ambalate in blocuri logice configurabile împreună cu conexiuni si switch-uri, și o cantitate mică de memorie în formă de SRAM, EEPROM, pentru fiecare element programabil. În plus, FPGA-uri au, de asemenea, un hardware special care să reglementeze la nivel mondial de cicluri de ceas si poate fi echipat cu functii specific încorporate, cum ar fi nuclee de procesoare de semnal digitale (DSP).

FPGA-urile Xilinx au fost utilizate pentru experiment coliziune cu ioni mari la laboratorul european CERN de la granița franceză si elvețiană pentru a cartografia și a distanța traiectoriile a mii de particule subatomice. Xilinx sa angajat, de asemenea, într-un parteneriat cu direcția vehiculelor de cercetare a forțelor aeriene ale Statelor Unite pentru a dezvolta FPGA pentru a rezista efectelor dăunătoare ale radiațiilor în spațiu, care sunt de 1000 de ori mai puțin sensibile la radiația spațială decât echivalentul comercial, pentru desfășurarea în noi sateliți.

Xilinx FPGA poate rula un sistem obișnuit de integrare, cum ar fi Linux și poate implementa perifericele procesorului în logica programabilă.

2.3.2. Machete

Înainte de 2010, Xilinx a oferit două familii principale de FPGA: Seria Virtex de înaltă performanță și seria Spartan cu volum mare.

Seria de FPGA Virtex are caracteristici integrate care includ logica FIFO și ECC, blocurile DSP, controlerele PCI-Express, blocurile Ethernet MAC și transceiverele de mare viteză. În plus față de logica FPGA, seria Virtex include hardware-ul integrat de funcții fixe pentru funcții utilizate în mod obișnuit, cum ar fi multiplicatori, memorii, transceivere de serie și miezuri de microprocesor. Aceste capacități sunt utilizate în aplicații precum echipamente de infrastructură cu fir și fără fir, echipamente medicale avansate, de testare și măsurare și sisteme de apărare.

Fig. 2.17. FPGA Virtex-II Pro (Sursa: [19] )

Platforma de dezvoltare digitală a sistemelor Nexys 3 este echipată cu cele mai noi Spartan®-6 FPGA de la Xilinx®, 48 MB de memorie externă (inclusiv două memorii non-volatile cu schimbare de fază de la Micron®).

Fig. 2.18. Nexys 3 Spartan-6 FPGA (Sursa: [20] )

Placa de circuite Atlys este o platformă de dezvoltare digitală completă, gata de utilizat, bazată pe un Xilinx® Spartan®-6 LX45 FPGA. Colecția de periferice de ultimă generație, incluzând Gbit Ethernet, HDMI Video, memorie DDR2 de 128 MB, porturi audio și USB, fac din bordul Atlys o gazdă ideală pentru sisteme digitale complete, construite în jurul procesoarelor încorporate cum ar fi MicroBlaze ™ Xilinx. Atlys este pe deplin compatibil cu toate uneltele CAD Xilinx, inclusiv ChipScope ™, EDK și WebPACK ™ gratuity.

Fig. 2.19 Atlys Spartan-6 FPGA (Sursa: [21] )

Familia Spartan cuprinde o serie de circuite FPGA Xilinx de ultima generatie numite Spartan-IIE, ce permite dezvoltare aplicațiilor numerice de complexitate medie spre mare, cu costuri de dezvoltare și producție foarte mici.

Din acest motiv si eu am folosit FPGA-ul din seria Spartan pentru un timer electric, dar nu pot sa-l utilizez la un aeromodel, deoarece este o placuta foarte mare si grea.

Fig.2.20 Basys 2 Spartan-3E FPGA (Sursa: [22] )

2.3.3. Programare (folosirea softului Xilinx IDE)

Toate programele ce compun pachetul Xilinx ISE pot fi utilizate cu ajutorul programului numit 'Xilinx Project Navigator'. Acest IDE permite crearea unor proiecte noi, editarea si vizualizarea fisierelor de intrare, a celor generate drept iesire. Se pot creea diverse fluxuri de intrare-iesire si se pot configura FPGA-urile sau CPLD-urile.

Ecranul interfetei grafice Project Navigator este impartit in patru ferestre principale, dupa cum se vede si in Figura 2.21:

fereastra fisierelor sursa

fereastra editor HDL

fereastra proceselor

fereastra consolei

In fereastra fisierelor sursa se afiseaza toate fisierele sursa care au fost incluse in proiectul curent. Prin executia unui clic dublu pe numele unui fisier din aceasta fereastra se va deschide fisierul respectiv de catre modulul CAD corespunzator.

Fereastra proceselor indica toate procesele care sunt disponibile pentru un anumit tip de fisier sursa. Executia unui clic dublu pe numele unui proces va lansa in executie procesul respectiv.

Fereastra editorului HDL afiseaza continutul fisierului sursa selectat, continand descrierea unei componente digitale intr-un limbaj de descriere hardware. Continutul fisierului poate fi editat in aceasta fereastra.

In fereastra consolei se afiseaza toate mesajele care indica starea executiei unui proces, inclusiv mesajele de avertisment sau de eroare care sunt generate in urma executiei. Pe langa aceste ferestre principale, interfata 'Project Navigator' poate deschide si alte ferestre necesare pentru unele aplicatii.

Fig. 2.21 Project Navigator

Cu ajutorul IDE-ului 'Project Navigator' se pot crea fisiere proiect noi, pentru care se pot specifica urmatoarele proprietati:

numele si locatia proiectului;

tipul de FPGA sau CPLD (Spartan 2, Spartan 3, XC9500);

tipul de pachete (FG456, FG256, PQ208)

tipul de sursa aleasa (EDIF, XST, Synplify, Leonardo Spectrum)

Fig. 2.22. Fereastra 'New Project

Fereastra proceselor poate fi folosita pentru a modifica o serie de parametrii cum ar fi:

adaugarea sau modificarea constrangerilor

tipul de sinteza si parametri specifici

implementarea proiectului

generarea continutului de configurare si probarea acestuia

Fig. 2.23 Fereastra proceselor

Tab-ul “Generating Programming File” poate fi folosit pentru a edita o serie de parametri ai fiserului final pentru configurare FPGA sau CPLD cum ar fi:

crearea unui fisier binar de configurare

crearea unui fisier ASCII de configurare

activarea compresiei BitStream

configurarea unor parametri JTAG ( rata de configurare, pinii: M0, M1, M2, etc. )

Fig. 2.24 Generatorul programator

Capitolul III

COMPONENTE

3.1 Componente Arduino

Servomotorul SG90 este proiectat special pentru aplicații de mica putere, cum ar fi roboti sau jucării telecomandate. De exemplu, il poti folosi la o masinuta pentru a misca rotile din fata pentru a coti.

Specificatii:

greutate: 9 g

dimensiuni: 23×12.2×29 mm

viteza de operare fara incarcare este de 0.12 secunde/60 grade

cuplu: 1.6kg-cm (4.8V)

temperatura de operare: -30 pana la +60

tensiunea de alimentare: 3.5V ~ 6V

lungime cable: 25cm

Fig. 3.1. Servo-Motor

Butonul este un tip de comutator utilizat pentru controlul unor aparate sau numai a unor funcții ale acestora. Butoanele sunt de diferite forme și dimensiuni și se găsesc în tot felul de dispozitive, deși în principal în echipamentele electrice și electronice.

Mecanismul acestuia constă din butonul propriu-zis acționat prin pulsare, o lamină conductoare care stabilește contactele celor două terminale apăsând butonul propriu-zis, și un arc care face ca lamina să își recâștige poziția inițială dupa ce butonul nu mai este actionat.

Fig 3.2. Butoane, Switch-uri

Acumulatorul LiPo pe care il folosesc la arduino nano, este o baterie foarte mica, usoara si reincarcabila, ce ii ofera un plus forte, de aceea am si ales-o sa o utilizez in proiectul meu.

Fig. 3.3. Acumulator LiPo

3.2. Componente Xilinx

3.2.1. Portile logice

În domeniul electronicii, o poartă logică este un dispozitiv idealizat sau fizic care implementează o funcție booleană, adică efectuează o operație logică pe una sau mai multe intrări binare și produce o singură ieșire binară. În funcție de context, termenul se poate referi la o poartă logică ideală, una care are, de exemplu, are timp de creștere zero și un fan-out nelimitat, sau se poate referi la un dispozitiv fizic non-ideal,iar algebra care operează numai cu aceste două simboluri , este mult mai simplă decât algebra clasică, existând doar trei operatii de baza [23]:

Adunarea logică – cunoscută și ca operația SAU (OR) cu simbolul de operare "+".

Multiplicarea logică – cunoscută și ca operația ȘI (AND) cu simbolul de operare "⋅".

Inversiunea – cunoscută și ca operația NU (NOT) cu simbolul de operare " – ".

Combinații ale porților (ȘI-NU, SAU-NU, SAU exclusiv).

Aceste operații elementare pot fi realizate prin intermediul unor circuite electronice care operează doar cu cele două niveluri de tensiune, cu poarta logica bipolara (Logica CMOS) si poarta MOS.

Porțile logice elementare lucrează cu doar cu două variabile de intrare. Drept urmare ele au două intrări și o ieșire. Legătura dintre starea logică a ieșirii și toate combinațiile posibile ale nivelurilor logice ale intrărilor poate fi generalizate într-un tabel intitulat tabel de adevăr.

Tab. 3.1. Tabel cu porțile logice elementare (adapt ref. [24] )

3.2.1.1. Poarta logică SAU (disjuncție)

Dacă A și B sunt variabile independente de intrare, atunci expresia variabilei de ieșire y în cazul în care circuitul realizează adunarea logică este:

x = A + B

În această expresie simbolul "+" nu are semnificația tradițională a adunării algebrice clasice ci a operației logice SAU. Tabelul 3.2. este tabelul de adevăr al funcției SAU de două variabile.

Tab. 3.2. Tabelul de adevăr al funcției SAU de două variabile ( adaptare ref.[25] ).

Adunarea logică este similară cu adunarea algebrică excepție făcand situația în care A = B = 1. În acest caz, datorită faptului că nivelul logic al ieșirii nu poate fi 2, suma logică 1 + 1 va avea ca efect apariția nivelului logic 1 la ieșire. Expresia x = A + B se citește "x este egal cu A sau B". La fel se întâmplă lucrurile și dacă avem trei variabile de intrare A, B, C. Dacă A = B = C = 1, atunci:

x = 1 + 1 + 1 = 1

Prin urmare, se poate observa că în cazul adunării logice ieșirea ia nivelul logic 1 ori de câte ori cel puțin o intrare este la nivel logic 1.

Poarta SAU este o poartă logică digitală care implementează o disjuncție logică – se comportă conform tabelului de adevăr de mai sus. O ieșire de nivel înalt (1) rezultă dacă unul sau ambele intrări ale porții sunt cu nivel înalt de tensiune (1). Dacă nici o intrare nu este mare, rezultă o ieșire cu nivel jos (0). Altfel spus, funcția SAU găsește efectiv maximul între două cifre binare, la fel cum funcția complementară ȘI găsește minime. În figura 2, sunt prezente două din simbolurile folosite în prezent în schemele logice. Pentru circuitele integrate se utilizează în special cel de al 2 lea simbol[26].

Fig. 3.4. Simboluri utilizate pentru circuitul logic SAU (adaptare ref. [24] )

Poarta SAU este un circut logic care realizează adunarea logică cu două (sau mai multe intrări) și o singură ieșire, ieșirea circuitului fiind 0 logic când ambele intrări sunt 0 logic.

Fig. 3.5. Simbolul unei porți logice Sau cu două intrări ( adaptare ref. [25])

În fig. 3.5. este prezentat simbolul unei porți logice sau cu două intrări. Intrările A și B pot fi la nivelurile logice de tensiune corespunzătoare variabilelor binare 0 sau 1 iar ieșirea x ia nivelul logic de tensiune corespunzător adunării logice a variabilelor de intrare. Altfel spus, ieșirea porții logice SAU cu două intrări este la un nivel înalt de tensiune dacă fie intrarea A, fie intrarea B, fie ambele intrări sunt la nivel înalt de tensiune. Ieșirea va fi la un nivel coborât de tensiune numai dacă ambele intrări sunt la nivel coborât de tensiune. Ideea prezentată poate fi extinsă și asupra porților logice cu mai mult de două intrări.

3.2.1.2 Poarta ȘI (circuit de coincidență)

Dacă două variabile logice sunt combinate folosind multiplicarea logică ȘI, rezultatul x se poate exprima cu relația:

x = A ⋅ Β

În această expresie simbolul "⋅ "semnifică operația Booleană de multiplicare logică al cărei tabel de adevăr este prezentat mai jos.

Tab. 3.3. Tabelul de adevăr al funcției ȘI de două variabile (adaptare ref. [25])

Poarta ȘI este o poartă logică digitală de bază care implementează o conexiune logică – se comportă conform tabelului de adevăr de mai sus. O ieșire cu nivel înalt (1) rezultă numai dacă ambele intrări la poarta ȘI sunt cu nivel înalt de tensiune(1). Dacă nici una sau o singură intrare la poarta ȘI nu este de nivel înalt, rezultă o ieșire cu nivel scăzut (0). Într-un alt sens, funcția ȘI găsește efectiv minimul dintre două cifre binare, la fel cum funcția SAU găsește maximum între două cifre binare. Prin urmare, ieșirea este întotdeauna 0, cu excepția cazului în care toate intrările sunt 1, ieșirea circuitului este simbolul unei porti ȘI care este aratat in Fig. 3.6 [27].

Fig. 3.6. Simbolul unei porti logice ȘI cu două intrări (adaptare ref. [25] )

Pentru o poartă ȘI cu mai mult de două intrări se folosește același mod de operare specific. În cazul cel mai general se poate spune că:

Ieșirea unei porți ȘI va fi la nivel logic 1 cu condiția ca cele trei intrări să fie simultan la nivel logic 1.

Este important să acordăm atentie diferențelor dintre simbolurile pentru poarta ȘI și poarta SAU. De fiecare dată cȃnd vom intȃlnii simbolul porții ȘI într-o schemă cu circuite logice, acesta ne arată că ieșirea sa va situa la nivel înalt doar dacă toate intrările sunt la nivel înalt. Ori de câte ori vedeți simbolul porții SAU acesta vă spune că ieșirea sa va fi la nivel înalt dacă oricare dintre intrările lui este la nivel înalt.

Fig. 3.7. Nivel logic ( adaptare ref.[25] )

În fig.de mai sus putem vedea formele de undă de la intrările și ieșirea unei porți ȘI cu două intrări. Observăm că ieșirea se află la nivel logic 1, numai atunci când ambele intrări sunt la nivel logic 1. Să evidențiem faptul că la nivel logic 0 se alfă ieșirea ori de câte ori B = 0 și că forma de undă de la ieșire coincide cu cea de la intrarea A ori de câte ori B = 1. Aceasta ne precizează posibilitatea folosirii intrării B ca intrare de control, care decide când forma de undă de la intrarea A poate traversa poarta și când nu.

3.2.1.3 Poarta NU (inversor)

Spre deosebire de operațiile SAU și ȘI, poarta NU prezintă un loc important ȋntre circuitele logice acesta poate fi aplicată doar unei singure variabile de intrare. De exemplu, dacă variabila A este obiectul operației NU, atunci finitul acestei operații, x, poate fi scris sub forma:

=

Unde bara de deasupra lui A semnifică operația NU sau operația de negare (inversare). Relația se citește in următorul mod, "x este negatul lui A" sau "x reprezintă complementul lui A". Toate aceste fraze ne precizează faptul că valoarea logică a lui x = este inversul valorii logice a lui A.

Acest lucru este arătat în tabelul de adevăr al funcției NU.

Tab. 3.4. Tabel de adevăr al funcției NU ( adaptare ref. [25] )

Alte denumiri aplicate pentru operația NU sunt de inversiune sau complementare, acești termeni pot fi substituibili în text. Deși ca simbol folosim pentru operația de negare bara superioară, este important de cunoscut ca se mai acceptă un alt simbol pentru aceasta și il găsim sub forma următoare ( ' ):

’=

Cunoscut adesea și ca INVERSOR ,circuitul NU are simbolul logic prezentat în fig. 3.8. Permanent circuitul are doar o singură intrare, ieșirea nivelului logic este inversul nivelului logic al intrării. Deopotrivă, în graficul alăturat figurii este exemplificat efectul inversorului asupra unui semnal aplicat la intrarea sa.

Fig. 3.8. Simbolul și nivelul logic al porții NU ( adaptare ref. [25] )

3.2.1.4 Poarta ȘI – NU (NAND)

Un alt tip de poartă logică folosită frecvent în circuitele digitale este poarta ȘI-NU care efectuează operația ȘI succedată de operația NU. Aceasta este descrisă foarte ușor folosind noțiunile elementare de algebră Booleană. Simbolul porții ȘI-NU cu două intrări și echivalentul lui sunt prezentate în fig. 3.9., iar tabelul 3.4. ne arată regulile de operare ale porții ȘI-NU. Putem observa că singura diferență față de celelalte porți, este că aceasta se indică printr-un mic cerc așezat la ieșirea porții. Acest cerc semnifică operația de inversare.

Tab.3.4. Tabelul de adevar al funcției ȘI-NU ( adaptare ref. [25])

Fig.3.9. Simbolurile porților logice ȘI-NU

O valoare foarte importantă a acestui circuit logic este faptul că aproape toate funcțiile poate fi generalizate prin circuite ȘI-NU, se aplică acest lucru pentru o înțelegere mai bună a funcționării unui circuit ȘI-NU.

3.2.1.5 Poarta logică SAU-NU (NOR)

Poarta SAU-NU este un circut logic cu două sau mai multe intrări și o singură ieșire, ieșirea circuitului fiind 0 logic când ambele intrări sunt 1 logic.

Poarta SAU-NU efectuează operația SAU îsoțită de operația NU. Funcția logică SAU-NU este caracterizată printr-o propoziție compusă din mai multe variabile. Dacă variabilele folosite sunt false atunci funcția logică este adevărată. Aceasta se indică de asemenea printr-un cerculeț plasat la ieșirea porții.

Simbolul, expresia logică si tabelul de adevăr însușite porții SAU-NU cu două intrări sunt reprezentate în fig. 3.10. respectiv tabelul 3.5.

Tab. 3.5. Tabelul de adevăr al funcției SAU-NU (adaptare ref. [25])

Fig. 3.10. Simbolurile porților logice SAU-NU

3.2.2. Decodificatorul

În electronica digitală decodificatorul este un circuit combinațional cu n intrări și m ieșiri, care recunoaște un cod de intrare prin activarea doar unei singure linii de ieșire, specifică acestui cod. Numărul maxim al liniilor de ieșire (numărul de căi) coincide cu numărul de combinații ale variabilelor de intrare (m < 2n). Decodificatorul cu 2n căi se va scrie sub forma DCD n:2n.

Decodificatorul se utilizează într-o mare varietate de aplicații, ca de exemplu în demultiplexarea datelor, afișajele pe șapte segmente și în decodarea adreselor de memorie.

3.2.2.1. Decodificator de adresă cu intrări de validare

Decodificatorele de adresă sunt folosite în mare parte la adresarea memoriilor în sistemele cu microprocesor. Acest decodificator activează o singură linie de ieșire corespunzătoare codului de intrare. Activarea se constituie doar în momentul în care intrările de validare sunt activate (circuitul este selectat).

Decodificatorul cu 3 intrări de adresă și 23 = 8 ieșiri este prezentat în Figura 3.11., iar tabelul de adevăr este prezentat în Tabelul 3.6.

Fig. 3.11. Reprezentarea unui decodificator 3:8 (adaptare ref. [28])

Tab. 3.6. Tabelul de adevăr al decodificatorului 3:8 (adaptare ref. [28])

Ulterior se pot scrie ecuațiile de ieșire din tabelul de adevăr:

Fig. 3.12 Ecuatii de iesire

Se constată că ieșirile acestui decodificator exprimă de fapt mintermii pentru o funcție de 3 variabile.

Se observă schema logică a decodificatorului în fig. 3.13.

Fig. 3.13. Schema logică a decodificatorului de adresă 3:8 (adaptare ref. [28])

3.2.2.2. Decodificator din cod BCD în zecimal

Acest tip de decodificator activează una din cele 10 ieșiri specifice codului BCD de la intrare. Pe nivelul logic 0 este activă o ieșire . Decodificatorul este prezentat în figura 3.14.

Fig. 3.14. Reprezentarea decodificatorului din cod BCD în zecimal (adaptare ref. [28])

Valorile combinatiilor corespunzatoare între 10 și 15 ieșirile se pot forța la nivelul logic 1 Iar pentru că toate intrările sunt decodificate deci explicit, se pot identifica astfel combinațiile invalide de la intrare. Tabelul de adevăr este prezentat în tabelul 3.7.

Tab. 3.7. Tabelul de adevăr al decodificatorului din cod BCD în zecimal (adaptare ref. [28])

Ecuațiile ieșirilor se pot scrie astfel:

Fig. 3.15. Ecuatiile iesirilor

Se observă schema logică a decodificatorului care este prezentată în figura 3.16. Primul rând de inversoare complementează variabilele de intrare, iar cel de-al doilea determină ca semnalele D, C, B, A să fie încărcate cu o singură unitate de sarcină TTL.

Fig. 3.16. Schema logică a decodificatorului din cod BCD în zecimal (adaptare ref. [28])

În mod asemănător se poate efectua un decodificator care să nu identifice intrările combinațiilor invalide. În această situație se arată o importanță pentru diagramele Kamaugh în combinațiile interzise. La intrare ivirea a unei combinații interzise poate duce la activarea cocomintentă a mai multor ieșiri.

Atât circuitele uzuale combinaționale, cât și decodificatoarele, se pot generaliza prin porți, sau pe scară medie (MSI) sunt vacante sub formă de circuite integrate . Mai jos sunt prezentate tipuri de decodificatoare integrate:

7442, 7445, 74141, 74145: DCD 4:10 (convertor de cod) din BCD în zecimal

7443: DCD (convertor de cod) din codul exces 3 în zecimal

7446, 7448: DCD (convertor de cod) din BCD pentru afișajul cu 7 segmente

74154: DCD 4:16 [29]

3.2.3 . Afișajul pe șapte segmente

Un afișaj pe șapte segmente (SSD) sau un indicator de șapte segmente este o formă de dispozitiv electronic de afișare folosit pentru afișarea numerelor zecimale care este o alternativă la afișajele cu mai multe puncte matrice complexe.

Afișajele cu șapte segmente sunt utilizate pe scară largă în ceasuri digitale, contoare electronice, calculatoare de bază și alte dispozitive electronice care afișează informații numerice.[30]

Cele șapte elemente ale afișajului pot fi folosite în diferite combinații pentru a reprezenta cifrele arabe. Deseori cele șapte segmente sunt așezate într-un format oblic (înclinat), care ajută la citire. În cele mai multe aplicații, cele șapte segmente sunt de formă și dimensiune aproape uniformă (de obicei hexagoane alungite, dar și trapezoidele și dreptunghiurile pot fi de asemenea utilizate), iar segmentele verticale sunt mai lungi și mai ciudate intr-un final acestea sporesc lizibilitatea.

Numerele 6 și 9 pot fi reprezentate de două glife diferite pe cele șapte elemente ale afișajului, cu sau fără o "coadă" [31] [32].

Cele șapte segmente sunt așezate sub forma unui dreptunghi de două segmente verticale pe fiecare parte, cu un segment orizontal pe partea superioară, mijlocie și inferioară. În plus, al șaptelea segment bisectează dreptunghiul orizontal. Există, de asemenea, ecrane cu paisprezece segmente și afișaje cu șaisprezece segmente (pentru alfanumerice complete),totuși, acestea au fost în mare parte înlocuite cu afișaje dot matrice. Douăzeci și două de display-uri de segment sunt capabile să afișeze întregul set de caractere ASCII [33] ,acestea au fost disponibile pentru scurt timp la începutul anilor 1980, dar nu au fost populare.

Segmentele unui afișaj cu 7 segmente sunt menționate de literele de la A la G, unde punctul zecimal opțional (un "al optulea segment", denumit DP) este utilizat pentru afișarea numerelor non-întregi [28] [34].

Afișajele pe șapte segmente pot utiliza un afișaj cu cristale lichide (LCD), o diodă cu emisie luminată (LED) pentru fiecare segment sau alte tehnici de generare a luminii sau de control, cum ar fi descărcarea prin descărcare cu catod rece (Panaplex), fluorescență în vid, filamente incandescente (Numitron) și alții. Pentru totemurile de preț pentru benzină și alte semne mari, sunt încă utilizate în mod obișnuit ecrane cu balamale formate din segmente (sau "palete") reflectate electromagnetic. O alternativă la ecranul cu 7 segmente din anii 1950, prin anii 1970, a fost tubul nixie cu catod rece, tub neon. Începând din 1970, RCA a vândut un dispozitiv de afișare cunoscut sub numele de Numitron care folosea filamente incandescente aranjate într-un afișaj cu șapte segmente [35].

Într-un simplu pachet LED, în mod tipic toți catodii (terminalele negative) sau toți anozii (terminalele pozitive) ale LED-urilor segmentului sunt conectate și scoase pe un pin comun, acest lucru este denumit un dispozitiv "catod comun" sau "anod comun" [28]. Prin urmare, un pachet cu 7 segmente plus zecimale va necesita doar nouă pini, deși produsele comerciale conțin în mod obișnuit mai mulți pini și / sau spații în care ar putea merge pini, pentru a se potrivi socketurilor IC standard. Sunt disponibile și afișaje integrate, cu cifre unice sau multiple.

Un singur octet poate codifica starea completă a unui afișaj cu 7 segmente. Cele mai populare codificări de biți sunt gfedcba și abcdefg, în care fiecare literă reprezintă un anumit segment pe ecran. În reprezentarea gfedcba, o valoare de octet de 0x06 ar (într-un circuit anodic comun) transforma segmentele "c" și "b", care ar afișa un "1".

3.2.4. Numărătorul

Un numărător este un dispozitiv logic secvențial digital care va trece printr-o anumită stare predefinită (de exemplu numărarea în sus sau în jos) pe baza aplicării impulsurilor de intrare. Acestea sunt utilizate în aproape toate calculatoarele și sistemele electronice digitale[14].

În electronică, numărătoarele pot fi implementate destul de ușor utilizând circuite de tip registru, și sunt clasificate astfel:

După sensul de implementare a impulsurilor de tact

asincrone

sincrone

După modul

Zecimale sau decadice m = 10

Modulo p ≠ 2n

Binare m = 2n

După modul de numărare

– directe

– inverse

– reversibile

3.2.4.1 Numărătoare asincrone

Având în vedere numărătoarelor asincrone, bistabilele nu modifică concomintent sub reacția unui semnal de tact comun, dar ieșirea unui bistabil va definii îlocuirea unui alt bistabil. Se va lua în calcul efectuarea a unui binar numărător de 4 biți. Se va realiza un tabel pentru acesta cu urmarea crescătoare a 4 biți a numerelor binare , unde ieșirile celor 4 bistabile sunt alcătuite. Starea numărătorului este corelată cu fiecare cuvânt de ieșire (Tabel 3.8). Impulsul de tact contribuie la schimbarea stării numărătorului, se constată că la ieșirea bistabilului fiecare impuls de tact va modifica bitul de ordin inferior Q0 . Bistabilul bitului Q1 modifică când se produce tranziții de la 1 la 0 a ieșirii Q0. Bistabilul bitului Q2 înlocuie atunci când Q1 trece din 1 în 0, iar pentru cel de al 3 bit Q3 schimbă atunci când Q2 trece din 1 în 0.

Tab. 3.8. Tabelul pentru numărătorul binar de 4 biți de succesiune a stărilor (adaptare ref. [36])

La fiecare impuls de tact se trece într-o starea complementară, iar acesta lucru este dat de proprietatea bistabilului JK cu intrările J = K = 1 , rolul acestei proprietăți contribuie la constituirea numărătorului unde bitului de rang inferior Q0 I se va va aplica impulsurile de tact a bistabilului . Se observă că la fiecare modificare din 1 în 0 a acestui bistabil produsul final este un front negativ , iar acesta va fi întrebuințat pentru comanda către asociatul bistabilului fiind bitului următor, Q1. Produsul final este circuitul din Figura 3.17.

Fig. 3.17. Schema logică a numărătorului binar asincron de 4 biți, cu numărare în sens direct (adaptare ref.[37]).

Un exemplu concret ,este acela unde numărătorul există în starea 3 (Q3Q2Q1Q0 = 0011), iar datorită apariției impulsului de tact bistabilul Q0 variază din 1 în 0, fapt ce stabilește modificarea bistabilului Q1 din 1 în 0, o altă modificare este provocată de ieșirea a bistabilului Q2, unde acesta va varia din 1 în 0. Având în vedere că bistabilele variază pe frontul negativ, asociatul Q3 al bistabilului va rămâne constant. Ieșirile vor fi deci Q3Q2Q1Q0 = 0100

Fig. 3.18. Diagrama de timp a numărătorului binar de 4 biți (adaptare ref.[37])

În unele programe se necesită folosirea anumitor numărătoare ,pentru ca acestea să poată număra și în sens invers, la fiecare impuls de tact al numărătorului acesta își va reduce cu câte o unitate conținutul. În acest scop anterioara figură a numărătorului se poate comuta pentru a realiza un numărător invers, numai dacă se va folosi ieșirile Q ale fiecărui bistabil,însă semnalul următor al bistabilului de tact nu se mai colectează de la ieșirea Q a bistabilui anterior ci de la ieșirea nQ (Figura 3.19).

Fig. 3.19. Schema logică a numărătorului binar asincron de 4 biți, cu numărare în sens invers (adaptare ref.[36]).

Când Q variază din 0 în 1, nQ comută din 1 în 0 și efecutează înlocuirea bistabilului următor, dar în cazul când Q trece din 1 în 0, nQ variază din 0 în 1 (bistabilul nu se comută). Aceste lucruri poate fi controlate în tabelul 3.9.

Tab. 3.9. Funcționarea a numărătorului binar asincron invers (adaptare ref. [37])

Fig. 3.20. Numărător binar asincron invers – diagrame de semnal (adaptare ref. [37])

3.2.4.2. Numărătoare sincrone

Un numărător sincron binar are valori de la 0 la 2N-1, unde N este numărul de biți / bistabili din numărător . Fiecare bistabil este folosit pentru a reprezenta un bit. Bistabilul din poziția cea mai joasă este completat / comutat cu fiecare impuls de tact și un bistabil în orice altă poziție este completat pe următorul impuls de tact, cu condiția ca toți biții din pozițiile de ordin inferior să fie egali cu 1.

Pentru a implementa un numărător sincron, avem nevoie de un bistabil și o poartă AND pentru fiecare bit, cu excepția primului și ultimului bit. Schema de mai jos arată implementarea unui numărător sincron direct pe 4 biți.

Fig. 3.21. Numărător sincron direct- metoda serială (adaptare ref.[37])

Din diagrama de mai sus, putem observa că, deși numărătorul este sincron și se presupune că se schimbă simultan, avem o întârziere de propagare prin porțile ȘI care se adaugă pentru a da o întârziere generală de propagare care este proporțională cu numărul de biți ai numărătorului. Pentru a depăși această problemă, putem alimenta ieșirile de la bistabili direct la o poarta cu mai multe intrări ȘI după cum urmează [38]:

Fig. 3.22. Numărător sincron direct – metoda paralel (adaptare ref.[37])

Fig. 3.23. Numărător binar sincron direct – diagrame de semnal (adaptare ref. [37])

3.2.4.3. Numărător sincron reversibil

Prezentarea funcționării

Fig.3.24. Numărător binar sincron reversibil (adaptare ref. [37])

Fig. 3.25. Numărător binar sincron reversibil- diagrame de semnal (adaptare ref. [16])

Capitolul IV

PROGRAMAREA DISPOZITIVELOR

4.1. Programarea Arduino

Pentru realizarea unui Timer electronic am folosit urmatoare le piese:

O machete Arduino Nano V3,

Un intrerupator,

Un buton,

Un acumulator (3.7V)

Un Servo-Motor

De asemenea avem si urmatoarea schema:

Fig. 4.1. Schema unui timer electronic

Instalarea aplicatiei:

Se descarca ultima versiune ArduinoIDE, de pe site-ullor official: https://www.arduino.cc/en/Main/Software , dupa care dezarhivam fisierul in locatia dorita.

Configurare:

Dupa ce sa instalat aplicatia ArduinoIDE se cofigureaza altfel: Tools > Board > Arduino Nano.

Fig. 4.2. Selectarea placutei Arduino Nano

Dupa ce am ales Arduino Nano, intram in meniul Tools => Port se selecteaza portul COM folosit de catre placa de dezvoltare:

Fig. 4.3. Selectarea Portului USB

Dupa realizarea pasului cu alegerea portului USB, se v-a deschide o fereastra pentru scrierea si editarea programului:

Fig 4.4. Limbajul de programare

Fig. 4.5. Continuarea limbajului de programare

In continuare vom verifica daca programul este scris corect, sau sunt greseli la scrierea codului de programare:

Fig. 4.6 Verificarea limbajului de programare

In aceasta zona neagra vor aparea eventualele greselile de compilare.

Si ultimul pas este de a urca (upload) programul pe placuta de dezvoltare Arduino Nano V3:

Fig. 4.7. Upload limbajului de programare pe Arduino

Descrierea limbajului de programare:

1. #include <Servo.h>

2. Servo myservo;

3. int buttonpin=5; // declararea variabilei (butonul) pentru pin-ul 5

4.

5. void setup() // ruleaza o singura odata, la pornirea placii, si declaratia pinilor

6. {

7. myservo.attach(9); //declararea servo-motor la pinul 9

8. pinMode(5,INPUT); //declararea butonului la pinul 5

9. myservo.write(90); //declararea pozitiei servo-ului la un unghi de 90 grade

10. Serial.begin(9600);

11. }

12. void loop() // functia principala ce ruleaza la nesfarsit

13. {

14. int starebuton=digitalRead(5); //citirea starii valorii butonului

15. Serial.println(starebuton);

16. Serial.println("STARE:");

17. if(starebuton==1){ //starea butonului ON

18. Serial.println("STAREA 1");

19. button();

20.

21. }

22. }

23.

24. void button(){ // functia secundara ce ruleaza la nesfarsit

25.

26. for(;;){

27. int starebuton=digitalRead(5);

28. Serial.println("STAREA 0");

29. if(starebuton==0){ //starea butonului OFF

30. Serial.println("STAREA zero");

31. delay(2000); // delay este pauza de 2 secunde intre procese

32. myservo.write(110); // pozitia servo-ului la 110 grade

33. delay(10000); // delay este pauza de 1 minut intre procese

34. myservo.write(140); // pozitia servo-ului la 140 grade

35.

36. break;

37. }

38. }

39.

40. }

In codul de mai sus au fost definite trei functii, setup() liniile 5-11, loop() liniile 12-22 si button() liniile 24-40. Functiile setup() si loop() trebuie sa fie prezente in orice cod; daca nu folositi nici o functie , atunci trebuiesc scrise si lasate goale.

Pentru a monitoriza valorile variabilelor, modul de executie a fiecarei ramuri in parte,

conectam placuta printr-un cablu USB la calculator si incarcam aplicatia pe macheta arduino.

Dupa finalizarea incarcarii programului, pornim monitorul serial: Tools > Serial monitor.

Fig. 4.8. Monitorizarea valorilor variabile

4.2. Programarea FPGA

4.2.1 Programarea afisajului

Bibliografie:

[1] Jaeger, Microelectronic Circuit Design, McGraw-Hill 1997, ISBN 0-07-032482-4, pp. 226-233

[2] https://biblioteca.regielive.ro/proiecte/calculatoare/studiul-portilor-logice-240433.html

[3] http://www.phys.ubbcluj.ro/~anghels/teaching/Electronics/capitole%20electronica%20pdf/Porti%20logice.pdf

[4]  "OR Gate". Hyperphysics.phy-astr.gsu.edu. Retrieved 2012-09-24.

[5]  Mano, M. Morris and Charles R. Kime. Logic and Computer Design Fundamentals, Third Edition. Prentice Hall, 2004. p. 73.

[6] Liviu Kreindler,Răducu Giuclea ,, Bazele microprocesoarelor’’ editura. Matrix,București 1997

[7] https://en.wikipedia.org/wiki/Seven-segment_display

[8] Nührmann, Dieter (1981). Written at Achim, Bremen, Germany. Werkbuch Elektronik (in German) (3 ed.). Munich, Germany: Franzis-Verlag GmbH. p. 695. ISBN 3-7723-6543-4

[9] "DL-3422 4-digit 22-segment alphanumeric Intelligent Display™ preliminary data sheet" Internet Archive. Litronix 1982 Optoelectronics Catalog. p. 82. Retrieved 2016-09-03.

[10] "Seven Segment Displays". Retrieved 2012-11-14

[11] Elektrotechnik Tabellen Kommunikationselektronik (3rd ed.). Braunschweig, Germany: Westermann Verlag. 1999. p. 110. ISBN 3142250379.

[12]https://biblioteca.regielive.ro/proiecte/electronica/scheme-bloc-circuite-electronice automatica-205892.html

[13] "Advert for RCA NUMITRON Display Devices". Electronic Design. Hayden. 22 (12): 163. 1974-06-07.

[14] New Jersey Institute of Technology. ECE394 – Digital Systems Laboratory. Experiment 7: Counters.
[http://web.njit.edu/~gilhc/ECE394/ECE394-VII.htm]. (14/03/2013)

[15] http://users.utcluj.ro/~baruch/book_ac/AC-Numaratoare.pdf

[16] http://ep.etc.tuiasi.ro/files/CID/numaratoare.pdf

[17] https://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cwl3/report.html

Similar Posts