Comunicatii Wireless Si Antene Directionale
Cuprins
1. Introducere. Structura Documentului
2. Comunicații wireless si antene direcționale
2.1 Comunicații wireless prezentare teoretică
2.2 Sisteme de antene direcționale
2. 3 Tipuri de antene direcționale
2.3.1 Antena Parabolica
2.3.2 Antena Yagi
2.3.3 Antena de tipul “Cutie”
3. Proiectarea sistemului
3.1 Placa de dezvoltare Raspberry PI
3.1.1 Arhitectura hardware Raspberry Pi
3.1.2 Metode de programare a Raspberry Pi
3.1.3 Placă de dezvoltare Gertboard
3.2 Sisteme de operare unix ce rulează pe arhitectura ARM
4. Implementarea sistemului
4.1 Schema alimentare motor
4.2 Schema comandă relee
4.3 Schema citire traductor de poziție
4.4 Schema conexiune pini pe placa Gertboard
4.5 Prezentare sistem mecanic de mentinere a turației
4.6 Proiectarea și implementarea aplicației de control a antenei
5. Instrumente utilizate pentru dezvoltarea aplicației
5.1 Raspbian
5.2 Wifi Config
6. Concluzii
6.1 Realizări
6.2 Dezvoltări ulterioare
Lista Abrevierilor
Bibliografie
1. INTRODUCERE
O data cu aparitia tot mai multor dispositive disponibile utilizatorilor a aparut problema adunarii a tot mai multe cable in jurul calculatoarelor si birourilor. O solutie pentru această problema este folosirea conexiunilor wireless pentru diferite perficerice (mouse, tastatura, imprimante wireless) cat si pentru conexiunea la internet a utilizatorului.
O solutie de conectare fara fir este eficianta doar la o anumita distanta de baza (router wireless sau receptor pentru periferice). Pentru a extinde raza de actiune a solutiilor de conectare prin wireless la internet se pot folosi diferite metode.
Una din aceste metode este folosirea unor “repeatere”. Dispozitive care preiau conexiunea si o retransmit de la utilizator la router si invers. Dezavantajul major al acestor dispozitive este acela ca viteza de transfer este redusa cu pana la 50% fata de o conexiune directa la router.
O alta solutie de a extinde acoperirea retelelor wireless o reprezintă folosirea antenelor direcționale. Acestea concentreaza toata puterea de emisie/receptie a dispozitivului pe o anumita direcție nemicsorand banda de transmisie a datelor. Dezavantajul acestei metode de marire a razei retelei wireless este acela ca accesul la retea este concentrat pe directia in care este indreptata antena.
Antenele direcționale sunt de 2 tipuri:
– antene direcționale pasive . o data orientate isi mentin pozitia
– antene direcționale active isi modifica orientarea in funcție de comandă primita de la calculator.
Pentru a corecta problema lipsei de semnal wireless prezenta lucrare descrie creearea si utilizarea unei antene direcționale de wireless active controlata de un calculator. In cazul de fata calculatorul este reprezentat de un Raspberry Pi dar aceeasi solutie se poate adapta pentru folosirea de calculatoare de birou/ servere etc.
STRUCTURA DOCUMENTULUI
Primul capitol prezintă noțiuni introductive vizând problema dată, motivația temei și obiectivele urmărite.
Capitolul 2. Prezintă sistemele de comunicare wireless cat si metodele de producere si receptionare a semnalului radio. De asemenea sunt prezentate tipurile de antene pentru receptia direcționala a semalului radio si aplicatiile potrivite pentru acestea
Capitolul 3. In acest capitol sunt prezentate pe scurt elementele hardware ale sistemului electronic de control al antenei wireless.
Capitolul 4 este destinat prezentării detaliilor de proiectare și de implementare ale sistemului hardware cat si al aplicației ce controleaza miscarea si conectarea la providerii de internet
Capitolul 5 aici este prezentat sistemul de operare ce rulează pe placă de dezvoltare Raspberry Pi impreuna cu aplicatiile pentru conectarea la wireless si securizarea conexiunii catre access point.
Capitolul 6 Prezintă concluzii si optiuni pentru dezvoltarea ulterioara a sistemului fizic cat si al sistemului software
2. Comunicații wireless si antene direcționale
Temă lucrarii de licență constă in dezvoltarea unui sistem hardware si software pentru a facilita conexiunea la internet a dispozitivului de comandă. Pentru a realiza această temă a fost utilizată o platformă de control bazată pe o placă de dezvoltare Raspberry Pi.
Partea software a proiectului a fost realizata folosind limbajul de programare Python ce rulează pe sistemul de operare Debian al Raspberry Pi.
2.1 Comunicații wireless prezentare teoretică
Comunicațiile wireless sunt realizate folosind unde radio de diferite frecvențe in funcție de aplicatia la care sunt folosite.
Spectrul radio este împarțit dupa frecvență (Hz):
Fig. 1 – Spectrul de frecvențe radio
Inainte de dezvoltarea acestui tip de comunicații oamenii foloseau sisteme simple si “primitive” de comunicații(semnale cu fum, sunetul unor tobe etc). In anul 1865 fizicianul scoțian James Clerk Maxwell a elaborat teoria conform căreia o perturbație electrica sau magnetică se poate creea in spațiu liber (vid sau aer) si această o sa se deplaseze prin acest mediu ca o undă electro-magnetică. Teoria lui Maxwell spune ca acest tip de perturbație electro-magnetică se poate creea prin producerea de vibratii electrice intr-un conductor.
Această teorie a fost confirmată si de lucrarile cercetatorului neamț Heinrich Hertz. Acesta a dezvoltat o serie de experimente pentru a demonstra teoriile lui Maxwell.
In anul 1901 cercetatorul Guglielmo Marconi a folosit datele obținute din teoriile lui Maxwell si experimentele lui Hertz pentru a creea primul sistem de radio-telegraf.
Datorită beneficiilor oferite de noul sistem de radio telegraf acesta a fost dezvoltat rapid pentru ca în anul 1919 Marconi să realizeze prima stație radio transatlantica.
Toate semnalele radio pot fi interpretare precum o undă sinusoidă ce pleaca de la emițător.
Fig 2. Modul de deplasare al undelor EM
Pentru a transmite date printr-un semnal radio acest semnal este modulat.
Modularea semnalului radio reprezintă procesul prin care acestuia îi este modificat un parametru al semnalului purtător (semnal de frecvență inaltă) pentru a putea purta informația ce trebuie transmisă. Semnalul ce conține informație este semnalul modulat.
Această transformare a semnalului se face de dispozitive hardware care suprapun semnalul util , ce conține informație, peste semnalul de inaltă frecvență .
Modulația este de mai multe feluri.
Modulație cu purtător sinusoidal:
-Modulație de aplitudine AM
-Modulație de frecvență FM
-Modulație de faza PM
Fig 3.Modularea semnalului si relația intre semnalul modulator si semnalul final Modulare dupa Aplitudine
Fig 4. Imaginea prezintă un model de Modulație de Frecvență.
Semnal Modulat dupa frecvență
Modulație cu purtător în impulsuri(folosita în special in telefonie ):
-Modulația Impulsurilor în Amplitudine. PAM
-Modulația Impulsurilor în Cod. PCM
-Modulația Impulsurilor în Timp. PTM
-Modulația Impulsurilor în Lățime. PWM
-Modulația Impulsurilor în Poziție. PPM
Fig. 5. Tiputi de Modulație PAM/PCM/PTM/PWM/PPM
2.2 Sisteme de antene direcționale
În acest capitol sunt prezentate sistemele de radio cu antene direcționale dezvoltate pana in prezent împreuna cu tipurile de antene direcționale disponibile utilizatorilor precum și motivul alegerii temei.
O antena direcționala este acea antena care emite sau recepționează un semnal mai puternic pe o anumita direcție in care este îndreptata. Antenele direcționale sunt folosite pentru a bloca semnalele parazite din celelalte direcții sau pentru a focaliza zona de detecție a semnalului.
Tema prezentei lucrări este aceea de a dezvolta un sistem de orientare si poziționare a unei antene wireless pentru a facilita conectarea dispozitivului de control al antenei la o sursa de semnal wireless mai puternică dintr-o lista de semnale disponibile, și implicit asigurarea unei conexiuni mai bune de internet.
Sistemele de antene direcționale nu se folosesc doar pentru conexiune la internet. Acestea sunt utilizate pentru a facilita conexiunea sistemelor militare, a echipelor de știri care emit din zone izolate ale globului, sau in televiziunea digitala pentru a receptiona semnalele de la satelitul pozitionat pe direcția de orientare a antenei.
In sistemele militare antenele direcționale sunt folosite pentru detectoare radar, acestea orienteaza unda de detecție pe o singura direcție astfel măresc sensibilitatea si rata de detecție.
De asemenea este folosite in sisteme de comunicație catre și de la sateliți atat in sisteme militare cat si in sisteme civile.
Fig. 6 Modul de funcționare al unui detector radar cu antena direcționala.
Antenele direcționale sunt un instrument indispensabil in cercetarea spațiului. Acestea sunt construite de dimensiuni ridicate pentru a mari puterea sau grupate in numar mare pentru a funcționa ca un singur detector. Astronomii si fizicienii le folosesc pentru a studia miscarea corpurilor cerești sau pentru a demonstra diferite teoreme ce au legatura cu spațiul.
Fig. 7. Observatorul spațial Arecibo din Puerto Rico
“Antena principala a observatorului are un diametru de 305m, si este contruita intr-o depresiune. Această conține cea mai mare antena direcționala curba de pe Pamant. Antena conferă Observatorului Arecibo ce-a mai mare capacitate de colectare a undelor electro-magnetice” .
Un alt tip de observator este acela care foloseste un număr mare de antene direcționale de dimensiune mica (15 m ) interconectate pentru a funcționa precum o antenă gigantica. Un astfel de observator este in dezvoltare in Africa de sud si Australia in cadrul proiectului “Square Kilometer Dish” (Antena de un Kilometru patrat, aceasta va fi formată din cateva mii de antene de 15 m identice ce vor lucra precum o singura antena).
Fig. 8. Schița observatorului cu antena de un Kilometru Patrat ce urmeaza a fi construit.
2.3 Tipuri de antene direcționale
In funcție de aplicația pentru care este folosită construcția antenei poate fi de mai multe feluri.
– Antena Parabolica
– Antena Yagi
– Antena “Cutie”
2.3.1Antena parabolica
Folosită in telecomunicații și sisteme radar (militar sau civil) acest tip de antena are receptorul plasat in urma unui reflector de semnal parabolic. Reflectorul parabolic concentrează semnalul in punctul unde este receptorul propriu-zis.
Se disting 4 tipuri de antene parabolice:
Fig. 9. Tipuri de antene parabolice si modul acestora de a capta semnalul.
Antenele parabolice sunt cele mai folosite antene direcționale.
2.3.2 Antena YAGI
Acest tip de antenă se mai numeste si antenă YAGI-UDA dupa numele inventatorilor japonezi. Este utilizată in special in domeniul undelor scurte pana in banda SHF. Utilizată in sisteme radar , sisteme de televiziune (analog) , pentru detectia chipurilor cu emițător folosite pentru stabilirea poziției animalelor, si transmisie de date Wifi.
Antena Yagi este formată din trei elemente:
– Dipol
– Reflector
– Directoare
Dipolul si reflectorul sunt prinse de o bară sau tub conductor. Cu cât numarul de directoare si reflectoare este crescut cu atat câstigul antenei este mai mare. Dar in acelasi timp banda de frecvențe a antenei este scazuta.
Dipolul este elementul activ al antenei.
Fig. 10 Antena Yagi
2.3.3 Antena “CUTIE”
Acest tip de antena a fost dezvoltata de utilizator pentru a mari puterea semalului de wireless si pentru a oferi o grad de direcționalitate antenei.
Realizată dintr-o cutie de metal ce conține doar un element receptor din sarma de cupru pur si elemente pentru a o face rezistenta la intemperii fara a bloca din semnal.
Acest tip de antenă poate fi considerat o antena parabolica modificată in care reflectorul parabolic este inlocuit cu un cilindru de metal ce izolează complet receptorul mai puțin pe direcția in care se va face detectia
Este in general de mici dimensiuni folosite pentru a extinde puterea semalului de wireless in casă sau oriunde este necesară o exitindere a razei de actectoare
Dipolul si reflectorul sunt prinse de o bară sau tub conductor. Cu cât numarul de directoare si reflectoare este crescut cu atat câstigul antenei este mai mare. Dar in acelasi timp banda de frecvențe a antenei este scazuta.
Dipolul este elementul activ al antenei.
Fig. 10 Antena Yagi
2.3.3 Antena “CUTIE”
Acest tip de antena a fost dezvoltata de utilizator pentru a mari puterea semalului de wireless si pentru a oferi o grad de direcționalitate antenei.
Realizată dintr-o cutie de metal ce conține doar un element receptor din sarma de cupru pur si elemente pentru a o face rezistenta la intemperii fara a bloca din semnal.
Acest tip de antenă poate fi considerat o antena parabolica modificată in care reflectorul parabolic este inlocuit cu un cilindru de metal ce izolează complet receptorul mai puțin pe direcția in care se va face detectia
Este in general de mici dimensiuni folosite pentru a extinde puterea semalului de wireless in casă sau oriunde este necesară o exitindere a razei de actiune. Se poate folosi pentru a extinde raza de actiune a telefoanelor mobile (daca acestea au port pentru antena exterioara integrat, in general util pentru modele mai vechi de telefoane)
Fig. 11 Schema principiala Antena Cutie
Pentru a mari si mai mult puterea semnalului uneori cele doua tipuri de antene Yagi si Cutie sunt combinate obtinându-se astfel un hibrid.
Combinarea celor doua tipuri de antene focalizează si mai mult unghiul de detecție.
3. Proiectarea sistemului
3.1 Placa de dezvoltare Raspberry Pi
Raspberry Pi este un calculator de marime redusă ce rulează un sistem de operare Linux. Acestă platformă hardware a fost dezvoltata pentru a incuraja tinerii , in special copii, sa invete programare si sa își dezvolte propriile proiecte.
Raspberry Pi se poate folosi și pentru proiecte ce au nevoie de o putere de calcul mai mare decat cea oferita de un microcontroler clasic dar sunt restrictionate din punct de vedere energetic.
Sistemul de operare al Raspberry Pi este o varianta modificata de Linux. Sunt disponibile variantele : “Raspbian” (bazat pe Debian), “Pidora” (bazat pe Fedora), ”Raspbmc”(dezvoltat pentru a folosi Raspberry Pi ca un Media Center conectat la un HDTV). De semenea este disponibil si RISCOS ce nu este bazat pe o distributie de Linux.
3.1.1 Arhitectura hardware Raspberry Pi
Raspberry Pi este disponibilă in două configuratii hardware, Revizia A si Revizia B.
Revizia A : Acest model de Raspberry Pi este unul de bază. Este recomandăt folosirea sa pentru sisteme embeded deoarece consumă mai puțina energie (aproximativ 300mA ~1,5W) si îi lipsesc unele elemente de conectică față de Revizia B.
Fig. 12 Placă de dezvoltare Raspberry Pi Rev A.
Specificații tehnice Raspberry Pi Model A :
-Broadcom BCM2835 ce integrează un CPU ARM v6 si un GPU Broadcom VideoCore IV ambele optimizate pentru eficiența energetica
– SDRAM 256Mb
– Un port USB oferit de procesor
– Un port pentru ieșire Video Compozit
– Un port pentru ieșire audio analog. Conector de 3.5mm
– Un port HDMI
– Un port pentru card SD (ce ține loc de Hard-Disk)
– Un port de alimentare micro usb
– 26 pini pentru conexiunea placilor de extensie sau accesul la diferite magistrale. Acestia sunt numiti pini GPIO (General Purpose Input/Output- Intrari / Ieșiri controlate de software-ul ce rulează pe Raspberry Pi)
– conexiune pentru panglica unei camere foto
Raspberry Pi Revizia B
Fig. 13 Placa de dezvoltare Raspberry Pi Rev B
Aceasta este o versiune mai puternica dar de aceleasi dimensiuni ca modelul A. Folosește aceeași placă de circuite doar ca sunt adaugate unele lucruri in plus. Diferențe hardware intre modelul A si modelul B :
– capacitatea memoriei RAM extinsa la 512Mb
– este folosit un hub usb intern pentru 3 porturi usb. 2 dintre aceste porturi au conector usb iar pe al 3-lea port este conectat un convertor usb-ethernet pentru conexiunea la internet
– prezenta unui port Ethernet 10/100
Placa de dezvoltare Raspberry Pi prezintă 26 de pini de acces general pentru extensia capabilitatii acesteia. Pe acești pini se pot conecta diferite placi de extensie cât si diferite acesorii.Se pot conecta direct fire conductoare care se mearga de la placă către periferic.
Fig. 14 Schemă pini Gpio
Funcțiile pinilor trecuți cu verde in schema se pot modifica in funcție de nevoile utilizatorului prin software-ul ce rulează pe Raspberry Pi. Sau se pot folosi pentru diferite magistrale (I2C , UART,SPI)
Viteza interfeței SPI a Raspberry Pi este dictată de viteza de transfer suportată de dispozitivele legate la Pi si poate varia intre 30.5 KHz si 125MHz . Dezavantajul folosirii vitezei maxime este acela că procesorul placii trebuie să lucreze foarte mult pentru a menține magistrala activa astfel alte aplicații vor fi incetinite sau chiar nu vor rula eficient.
Raspberry Pi are doua interfețe SPI ce pot avea rolul de master.
Magistralele SPI pot citi datele atât pe rising edge cat si pe falling edge.
Fig. 15 Schema funcționala pini GPIO
3.1.2 Procesorul BROADCOM BCM2835 ARM
Procesorul face parte din clasa procesoarelor System on a Chip. Acestea contin toate elementele necesare intr-o singura pastilă
Acest procesor stă la baza plăcii de dezvoltare Raspberry Pi. Pastila procesorului conține pe nivele atât UCP cât și procesorul video și memoria RAM. Procesorul lucrează în mod normal la o frecvență de 700MHz iar procesorul video lucrează la 250MHz. Aceste frecvențe pot fi ridicate pentru o performantă superioară dar este necesar un radiator cu ventilator pentru a putea face față temperaturilor mai ridicate. Limita maxima este de 1000MHz UCP , 500MHz procesorul video si 600MHz pentru memoria RAM ( de la 400MHz in mod normal). Ridicarea frecvențelor de lucru necesită și o modificare a tensiunii de alimentare a microprocesorului. Acest lucru este realizat dintr-o setare software care comandă sursa de alimentare internă a plăcii. Aceasta apoi transforma cei 5V de la intrare in voltajul necesar procesorului pentru a funcționa.
Fără a fi modificate frecvențele de lucru procesorul are acelasi nivel de performantă precum un Intel Pentium II. Procesorul video al Raspberry Pi este echivalent cu cel al unui xBox din 2001 putând reda continut video 1080p prin portul HDMI.
Pentru conectarea la un diplay placa folosește un port HDMI (Rev 1.3 si 1.4). Rezoluțiile monitorului trebuie sa fie cuprinse intre 640×350 si 1920×1200.
Pentru a folosi placa Raspberry Pi este necesară o alimentare externă de 5V conectată la portul micro-usb. Portul este doar pentru alimentare si nu poate fi folosit pentru conectarea la dispozitive externe. De semenea alimentarea se poate face si prin pinii GPIO (pinul 2 si 4) atâta timp cat se respectă limita de 5v necesară placii.
Componente interne ale procesorului :
• Timere
• Controler de Întreruperi
• GPIO
• USB
• PCM / I2S
• DMA(Direct Memory Acces) controller
• I2C master
• I2C / SPI slave
• SPI0, SPI1, SPI2
• PWM
• UART0, UART1
3.1.3 Metode de programare a Raspberry Pi
Platforma hardware cât si cea software a Raspberry Pi este foarte flexibila.
Ruleaza in mod nativ o distribuție de Linux, aceasta ofera utilizatorilor toata flexibilitatea de care au nevoie cât si acces la toate programele si modulele ce au fost scrise pentru Debian Linux. Au fost portate pentru a fi utilizate in programarea placuței urmatoarele limbaje de programare :
– Scratch (vine in mod nativ o data cu distributia de Linux Raspbian.A fost dezvoltat de “Lifelong Kindergarden Group” de la MIT. Aceștia si-au prospus sa dezvolte un limbaj de programare pentru a ajuta copii sa invețe concepte matematice) ;
– Python –este unul din principalele metode de programare a Raspberry Pi. Acesta vine in disribuția de Raspbian originală a plăcii. Acest limbaj de programare a fost dezvoltat de programatorul olandez Guido Van Rossum;
JQuery – este cea mai populară bibliotecă a JavaScript. Aceasta rulează pe orice browser si face programarea HTML mult mai simplă.
Java – codul de program scris in limbajul Java poate rula pe orice sistem de operare,Windows sau Linux. Java a fost primul limbaj de programare care a oferit acest avantaj programatorilor.
Limbajul C –dezvoltat de Dennis Ritchie este unul din cele mai populare limbaje de programare din lume.
Limbajul C++ -Dezvoltat penru a extinde capacitațile limbajului clasic C
Limbajul Perl – inainte de apariția limbajului Perl internetul era doar o colecție de pagini statice. Flexibilitatea si adaptabilitatea acestuia au ajutat la dezvoltarea internetului. Fara acesta site-uri de comert virtual precum Amazon sau eBay nu ar fi existat
Erlang – acest limbaj de programare este folosit pentru sisteme in care funcționarea defectuasă a unui calculator ar fi un dezastru. Erlang creeaza programe ce rulează pe mai multe calculatoare in același timp. Astfel dacă unul din calculatoare nu funcționează corect celelalte calculatoare preiau sarcinile acestuia menținând procesul care il comandă in parametrii normali. Este folosit pentru sisteme precum cel de comandă a unei centrale nucleare, sau centrul de control de trafic aerian.
Raspberry Pi poate fi programat si in limbaj de asamblare folosind RISC OS. (un sistem non Linux de operare pentru Raspberry Pi.)
3.1.4 Placa de dezvoltare Gertboard
Gertboard este o placă de extensie pentru Raspberry Pi creeată de Gert van Loo (unul din primii menbrii voluntari ai Raspberry Pi Foundation).
Placa Gertboard conține o varietate de componente ,menite a extinde capacitațile si funcționalitatea Raspberry Pi.
Componentele plăcii Gertboard :
Fig. 16 Placa de extensie Gertboard.
– 12 porturi de intrare/ieșire;
– 3 butoane;
– 6 ieșiri open collector (50V 0.5A);
– controler de motor 18V,2A (in funcție de ediția plăcii și de disponibiltate exista posibilitatea folosirii mai multor tipuri de chip pentru controlerul de motor );
– Chip Mictocontroller ATmega (pe plăci pot fi folosite microcontrolerele Atmega48A/PA,88A/PA,168A/PA sau 328/P cu 28 de pini in funcție de disponibilitatea acestora in momentul asamblarii plăcii);
– Convertor Numeric – Analog 2 canale pe 8, 10 sau 12 biți;
– Convertor Analog Numeric 2 canale 10 biți;
– 12 leduri ;
Placa se conectează la Raspberry Pi prin pinii GPIO
Fig. 17 Mod conectare a plăcilor Gertboard și Raspberry Pi
Alimentarea plăcii se face la 5V sau 3.3V din Raspberry Pi. Exista pini de unde se pot lua alimentări prin intermediul firelor pentru alte dispozitive ce ruleaza la 5V sau 3.3 V din pinii deja disponibili sau se lipi alți pini în locurile special marcate pentru acest lucru.
Fig. 18 Localizarea pinilor de aplimentare pe placă Gertboard
In momentul conectarii plăcii la Raspberry Pi aceasta “distribuie” pinii GPIO ai Raspberry catre un șir de cleme numerotat Gp0 – Gp25 ce corespund celor 26 pini GPIO. Conectarea elementelor plăcii este facută dupa necesitați prin folosirea cablurilor. Cele 6 zone ale plăcii Gertboard sunt izolate intre ele din punct de vedere electric pentru a nu se influența in funcționalitate. Astfel pentru folosirea convertorului analog numeric se conecteaza pinii Gp 8 , Gp 9 , Gp10 , Gp11 la pinii CsnA , MISO,MOSI,SCLK ce sunt cablați prin placă la pinii cu aceleași denumiri de pe convertorul analog numeric. Pinii GPIO pot fi alocați dinamic astfel nu doar grupul de patru poate fi folosit ci oricare 4 (mai putin pinii de alimentare a placii Gertboard) .
Pentru folosirea Driver-ului open collector se conecteaza de la 1 la 6 (in funcție de cate ieșiri sunt necesare) din pinii GPIO la pinii numerotati RLY1–RLY6
3.2 Sisteme de operare UNIX ce ruleaza
pe arhitectura ARM
Arhitectura microporcesoarelor ARM (Advanced Risc Machines) a fost introdusa in anul 1985 si este bazată pe un set restrâns de instrucțiuni (procesoare RISC-Reduced Instruction Set Computing). Această metoda de a proiecta procesoare prezintă avantajul ca acestea necesita un numar mult mai mic de tranzistori față de procesoarele bazate pe arhitectura CISC(Complex Instruction Set Computing) x86 intânlită in majoritatea calculatoarelor. De asemenea procesoarele ARM au avantajul de a consuma mai putină energie și de a genera mai puțina caldură in timpul utilizarii.
Avantajele arhitecturii ARM au dus la folosirea acestora in telefoane, laptopuri de mici dimensiuni, tablete sau in sisteme de calcul “embeded”. Creearea procesoarelor ARM cu mai multe nuclee a permis folosirea acestora și pentru servere low cost. Ce pot fi instalate într-un spațiu restrâns și pot deservi un număr mare de utilizatori.
Datorită direfențelor de arhitectura a procesorului, și sistemul de operare care este rulat necesită modificari și recompilare pentru a putea fi folosit pe această arhitectură.
Primul sistem de operare ce rula pe arhitectura ARM a fost numit “Arthur” care mai apoi a evoluat in actualul RISC OS.
Pe arhitectura ARM rulează o gamă largă de sisteme de operare de tip “embeded” pentru aplicații ce necesită operare în timp real și care nu necesita un sistem complex. Cateva exemple ce acest tip de SO sunt : Linux(unele distributii) , Symbian, Nucleus RTOS (folosit in general in aplicatii industriale)
In ultimii ani dezvoltarea sistemelor de operare pentru arhitectura ARM a avut o crestere accelerată o dată cu aparitia sistemelor “Android “, “Bada” , “Windows Phone” , “Blackberry OS”. Acestea profita de puterea de calcul generoasa a noilor procesoare pentru a adauga noi funcții dispozitivelor de tip tableta sau Smartphone .
Pentru servere bazate pe ARM sunt disponibile sistemele “OpenSolaris” , “BSD (NetBSD,FreeBSD) “, si diferite distributii de Linux precum Ubuntu sau Chrome OS.
Datorită consumului redus si gamei mare de aplicații la care sunt folosite pana acum au fost construite 50 de miliarde de procesoare ARM dintre care 10 miliarde numai in 2013
Pentru Raspberry Pi avem disponibile o serie de sisteme de operare bazate fie pe Linux fie pe RISC OS.
Sistemele de operare ce ruleaza pe arhitectura ARM au aceeși structură ca si cele ce ruleaza pe procesoare normale.
Fig. 19 Structura și arhitectura nucleului UNIX
Diferența este reprezentata de alte module de control scrise special pentru arhitectura ARM
4. Proiectarea si implementarea sistemului hardware și a aplicației de control
4.1 Proiectarea Și Construirea Sistemului Fizic
Soluția aleasa pentru implementarea antenei direcționale este atasarea unui motor electric care va pune in miscare antena si sistemul de detecție a poziției antenei. Pentru a detecta pozitia antenei se va folosi un potentiomentru analog ce are rolul de traductor de poziție cu 1024 de pozitii pe cerc. Controlul motorului este realizat prin relee. un releu pentru on/off si unul pentru direcție. Alimentarea sistemului este realizata prin doua baterii de 1,5 V pentru motor iar pentru relee a fost folosit un alimentator extern de 15V.
4.1.1 Schema alimentare motor
Fig. 20 Schemă relee
Motorul se alimenteaza din releul de schimbare a sensului (releu de tip DPDT ) acesta schimba sensul curentului de alimentare al motorului pentru ca antena sa se invarta in stanga si dreapta.
Pentru funcția de on/off este folosit primul releu care apoi trimite curent catre cel de-al doilea releu (un releu simplu comandat de Gertboard).
4.1.2 Schema de comandă a releelor.Prezentare
driver opencollector
Releele sunt comandate prin placa de dezvoltare Gertboard. Aceasta primește comandă de la Raspberry Pi și deschide ieșirea open collector corespunzatoare pentru sens sau pentru on/off.
Driverul open collector folosit pentru Gertboard este TOSHIBA ULN2803A acesta ofera 6 porturi de ieșire ce pot comanda relee, leduri, etc. Acesta este folosit in general pentru a porni sau opri dispozitive ce au alimentare externă.
Funcția de baza a unui driver open collector este aceea de a conecta pin-ul de Ground al circuitului extern la Ground-ul sursei, in acest fel trece curent prin circuit și este activat elementul ce trebuie comandat de Gertboard.
Chipul ULN2803A accepta o tensiune de pana la 50V și un curent de pana la 500mA pentru fiecare din cele 6 ieșiri disponibile. Pentru fiecare port exista o dioda de protecție.
Fig. 21 Schemă ieșire driver open collector
Exemplu de conexiune a unei ieșiri opencollector
Fig. 22 Schemă conexiuni driver opencollector
Pinul GP4 este conectat la pinul RLY1 , această conexiune reprezintă comanda ieșirii 1 a driverului open collector.
Circuitul comandat este reprezentat de 2 LED-uri și o rezistența (pentru a reduce tensiunea la valoarea necesară pentru led-uri). Borna pozitivă a sursei este conectată la pinul RPWR (există un pin RPWR pentru fiecare dintre cele 6 ieșiri) iar cea negativă este conectată la pinul comun GND (există doar 1 pin GND pentru toate cele 6 ieșiri). Borna negativă a circitului este conectată la Pinul RLY1 al placii Gertboard iar cea pozitivă direct la borna pozitivă a sursei. activarea circuitului este realizată prin conectarea pinului GND cu cel RLY1 de catre driverul open collector.
Pentru temă aleasă relele vor fi comandate de Raspberry Pi conform schemei :
Fig.23 Schemă alimentare motor
Releele sunt alimentate la tensiunea de 15V dintr-o sursa exterioară placii. Acționarea acestora este realizata in momentul in care driverul opencollector primeste comanda de deschidere a porților Q1 si Q2 prin pinii Gp23 si Gp24 ai placii Gertboard.
Releul On/Off este de tip SPST (Single Pole Single Throw) Electromagnetic
Releul de sens este DPDT (Double Pole Double Throw) tot electromagnetic, ambele relee sunt prinse in soclu.
Fig. 24 Releele de comandă a motorului
Schema citire traductor de poziție.
Prezentare convertor A-N
Pentru a realiza conectarea la traductorul de poziție utilizat pentru a stabili orientarea antenei a fost folosit convertorul analog numeric găsit pe placa de dezvoltare Gertboard.
Convertorul A/N și N/A este un cip MCP3002 realizat de firma Microchip. Acesta este un convertor pe 2 canale atât analog-numeric cât și numeric-analog. Pentru realizarea conexiunii către Raspberry Pi este folosită interfața SPI.
SPI (Serial Peripherial Interface) este o interfață serială de date folosită pentru conectarea perifericelor(slave) la un device master. Interfața oferă posibilitatea folosirii mai multor dispozitive în același timp însă doar unul dintre ele poate avea funcția permanentă de master. Interfața operează în modul “full duplex” și necesită 4 fire pentru a realiza conexiunea.
SCLK
MOSI
MISO
CS (CSnA pentru A/N si CSnB pentru N/A in cazul placii Gertboard)
Fig. 25 Schema conexiuni driver opencollector
Pentru convertorul Analog – Numeric frecvența de lucru a interfeței SPI este de 3MHz
Senzorul de poziție conectat la convertorul analog numeric este reprezentat de un encoder rotativ care are la bază un potențiometru multitură. În momentul în care acesta ajunge la capătul de tură, revine la valoarea de 0.
Cu ajutorul convertorului analog numeric valoarea plajei de rezistență a encoderului este împărțită în 1024 de pozițtii pe cerc (interval de la 0 la 1023).
Schema conexiune encoder și convertor analog – numeric:
Fig. 26 Schema conexiuni convertor Analog – Numeric
4.1.4 Schema conexiune pini pe placa gertboard
Schema generală de conexiune a elementelor pe placa Gertboard
Fig. 27 Schema conexiuni
Figura de mai sus prezintă modul de conexiune al diferitelor componente pe placa Gertboard. În dreapta sunt prezente conexiunile de alimentare și comandă a releelor.
Cele două cabluri roșii reprezintă alimentarea fiecărui releu, cel verde reprezintă Ground-ul comun pentru cele 2 relee iar cablurile mov și galben reprezintă comanda de închidere sau deschidere a releelor.
În partea stângă a plăcii este detaliat modul de conectare al encoderului rotativ la convertorul analog numeric de pe placa gertboard. Cablurile roșu și albastru reprezintă cele două conexiuni pentru alimentare a rezistenței interne, iar cablul negru este cursorul care dă valoarea rezistenței la orice moment.
În centrul plăcii sunt regăsite conexiunile pentru comandă a releelor (roșu și galben) și cei patru pini pentru conexiunea SPI dintre convertorul analog numeric și Raspberry Pi.
4.1.5 Prezentare sistem mecanic
Sistemul de mișcare a antenei acesta trebuie sa determine pozitia antenei cu precizie. Pentru a efectua determinarea poziției se folosește encoderul rotativ descris anterior. Sistemul pe care encoderul este poziționat este compus dintr-o serie de roți dințate și suporți pentru ca acesta să se rotească în același timp cu aceeași viteză și în același sens ca și antena.
Motorul care pune în mișcare ansamblul este atașat unei cutii de viteze care reduce viteza de rotire a motorului cu un factor de 1000:1. Astfel, pentru 1000 de rotiri ale axului motorului, axul antenei se roteste o dată. Prin această cutie de viteze motorul câștigă forța necesară pentru a pune în mișcare antena.
Ansamblu motor și cutie de viteze:
Fig. 28 Motor și cutie de viteze
Mod de instalare ansamblu motor :
Fig. 29 Ansamblu suport motor
Motorul este alimentat la o tensiune de 3V prin intermediul releelor.
Un al doilea ax este atașat de axul motorului, acesta transmite mișcarea de rotație de la motor către sistemul de pinioane (care reduce turația motorului) și în final spre antenă și encoderul rotativ.
Fig. 30 Ansamblu pinioane
Antena este atașată la un ax vertical pentru a o îndepărta de componentele metalice care pot crea interferențe și pentru a oferi un câmp de detecție al semnalului fără obstacole.
Receptorul antenei este reprezentat de un adaptor USB NANO TP-LINK model TL-WN725N.
Acesta oferă o interfață usb către calculator (în cazul prezentei lucrări către Raspberry Pi), funcționează în conformitate cu standardul IEEE 802.11 b/g/n la o frecvență între 2.5 și 2.4835GHz.
Viteza maximă de transfer prin wireless ce se poate atinge folosind acest adaptor este de 150Mbps.
Fig. 31 Schema principiala antena
4.1.6 Prezentare Generala sistem fizic.
4.2 Proiectarea și implementarea aplicației
de control a antenei
Pentru controlul antenei se folosește o aplicație scrisă în Python. Aceasta are rolul de a analiza semnalul citit de receptorul antenei și de a decide în ce direcție va fi mișcată antena pentru a selecta sau pentru a menține providerul de conexiune wireless cel mai bun.
Antena se rotește în jurul suportului pe un cerc, astfel oferind receptorului un câmp de detecție de 360 de grade pe orizontală și aproximativ 60 de grade pe vericală.
Cele 360 de grade sunt împărțite în 12 poziții distincte unde antena se oprește pentru a oferi receptorului timpul necesar să detecteze toate semnalele wireless.
În momentul lansării aplicației, aceasta citește poziția encoderului și verifică dacă antena este poziționată pe mijlocul plajei de valori ale encoderului.
Dacă antena este în poziția de mijloc a encoderului se trece mai departe, dacă nu este pe poziția de mijloc aplicația pornește motorul pentru ca antena să ajungă la poziția necesară.
După aducerea antenei la poziția de mijloc, aplicația comandă motorul să pornească pentru a ajunge la prima poziție de scanare a semnalelor wireless. În momentul când s-a ajuns la poziția necesară, aplicația oprește motorul și comandă receptorului wireless să facă o scanare a semnalelor wireless disponibile care sunt salvate într-un array. Odată efectuată scanarea se calculează poziția următorului punct în care antena trebuie să se oprească, se pornește motorul și se așteaptă ajungerea antenei la următoarea poziție. Acești pași se repetă pentru toate cele 12 poziții în care se vor efectua scanări ale semnalelor wireless. Semnalele sunt salvate în array iar la finalul scanării în cele 12 puncte se calculează valoarea maximă a semnalului fiecărui acces point și poziția acestora. Apoi se alege din lista de semnale maxime acces pointul cu cel mai puternic semnal și pozitia acestuia.
Odată ce un acces point este văzut ca fiind cel mai puternic, antena își modifică poziția pentru a fi aliniată cu acesta.
La finalul alinierii îi este afișată utilizatorului o listă cu semnalele maxime disponibile și i se oferă posibilitatea de a muta antena pe unul dintre acces pointurile disponibile. Pentru ca utilizatorul să aleagă acces point-ul pe care dorește să se conecteze acesta trebuie să scrie litera asociată acces point-ului și să apese tasta “Enter”.
Odată ce alinierea finală este realizată, aplicația se închide automat.
Pentru conectarea propriu-zisă la rețeaua wireless se folosește aplicația “WIFI Config”.
4.2.1 Descrierea funcțională a aplicației :
Inițial aplicația încarcă diferite module necesare.
Import subprocess – modul folosit pentru a lansa subprocese în python.
Cu acest modul este reinițializată interfața SPI care conectează procesorul Raspberry Pi și convertorul analog numeric pentru citirea valorii encoderului.
”unload_spi = subprocess.Popen('sudo rmmod spi_bcm2708', shell=True, stdout=subprocess.PIPE)
start_spi = subprocess.Popen('sudo modprobe spi_bcm2708', shell=True, stdout=subprocess.PIPE) ”
În general Popen poate fi un risc de securitate, astfel acesta trebuie folosit cu grijă
Import time – modul folosit pentru funcțiile care lucrează cu timpul
Import re – folosit de python se referă la expresii uzuale de lucru cu caractere
Import rpio – acesta extinde funcționalitatea pinilor gpio ai plăcii Raspberry Pi
Acest modul oferă cod pentru:
Folosirea pentru Input/Output a pinilor GPIO
Oferă posibilitatea folosirii pinilor pe post de modulator de puls electric cu o precizie de până la 1 µs (pentru control motoare, lumini etc).
Întreruperi GPIO (pentru momentele în care apar evenimente pe pinii input)
Import sys – oferă accesul la diferite funcții din mediul de programare Python
necesare în aplicație
Import spidev – acest modul este folosit pentru a face transferul de date pe magistrala SPI în mașini care rulează kernel Linux. Pentru ca acest modul să funcționeze este necesar ca în kernelul Linux care rulează pe mașină să fie încărcate driverele de interfață. Deoarece dispozitivele de pe interfața SPI folosesc comunicatie bidirectionala este necesar un cont de administrator (sudo).
După încărcarea modulelor necesare aplicația inițializează pinii de control ai motorului și pinii prin care va extrage datele din convertorul analog-numeric. Asignarea se face prin comenzile “MOTOR_PIN”=24 și “MOTOR_SENS=23”. După asignarea pinilor aceștia se inițializează prin :
RPIO.setup(MOTOR_PIN, RPIO.OUT)
RPIO.setup(SENS_PIN, RPIO.OUT)
Apoi se asignează și se inițializează canalul pe care este legat encoderul la convertorul analog-numeric “channel = 0”.
Pentru extragerea datelor privind poziția antenei se folosește funcția get_adc(channel) care mai întâi verifică ce canal este selectat și dacă acesta corespunde cu cele disponibile, apoi se trece la extragerea datelor de poziție ale antenei.
Funcția muta_antena(pozitie) are rolul de a mișca antena astfel încât să se alinieze cu o poziție dorită(valoarea encoder-ului).
Funcția determină valoarea actuală a encoder-ului și verifică dacă aceasta se află într-un range de +/-50 față de valoarea trimisă ca parametru. În caz afirmativ se iese din funcție deoarece antena este deja aliniată. Dacă antena nu este aliniată se pornește motorul urmând să se verifice din nou valoarea encoder-ului după oprirea acestuia. Se verifică din nou dacă se află în poziția dorită. În caz afirmativ se iese din fucție, altfel se repetă acest pas până la mutarea antenei la poziția dorită.
În continuare vor fi descriși pașii propriu-ziși aplicați în program pentru determinarea celui mai bun semnal și rotirea antenei în consecință.
Utilizând fucțiile disponibile în modulul spidev se deschide canalul 0 pentru a putea fi determinată valoarea encoder-ului. După deschiderea canalului are loc determinarea valorii inițiale a encoder-ului, care reprezintă de fapt poziția actuală a antenei.
Întrucât din specifiicațiile producătorului reiese faptul că encoder-ul are erori de citire atunci când este situat în apropierea capetelor range-ului [0,1023], s-a decis începerea scanării dintr-o poziție optimă. Aleator s-a ales poziționarea antenei între 400 și 600.
Din această cauză se verifică dacă valoarea inițială a encoder-ului este situată în acest interval. În cazul în care antena nu este corect poziționată, motorul este pornit pentru a-i modifica poziția câte puțin până când aceasta va fi aliniată corespunzător.
Odată finalizată alinierea antenei începe procesul de rotire și căutare a semnalului. Se determină poziția actuală a antenei și se salvează un range ale carui capete sunt calculate scăzând și adunând valoarea douăzeci poziției actuale. Acest range este memorat întrucât se dorește realizarea unei rotații complete. Antena se va roti și va căuta semnale până când va ajunge iar în poziția inițială(range-ul memorat).
După cum s-a explicat în descrierea funcției calc_ncp(), avem douăsprezece poziții într-o rotație completă în care vom citi semnalul disponibil. Aceasta este apelată pentru a determina prima poziție la care antena trebuie oprită.
Antena este mișcată puțin câte puțin prin acționarea motorului. După fiecare deplasare este determinată poziția actuală și se verifică dacă aceasta se află cumva într-un range determinat de scăderea/adunarea valorii douăzeci următoarei poziții la care antena ar trebui să se oprească.
În momentul în care antena a fost oprită la poziția vizată se utilizează modulul subprocess pentru a se realiza citirea informațiilor despre rețelele disponibile. Citirea informațiilor se face folosind comanda Linux iwlist. Informația returnată de acesta este prelucrată pentru a putea salva separat datele aferente fiecărei rețele.
Pentru a accesa comanda Linus iwlist se folosește:
proc = subprocess.Popen(‘iwlist scan 2>/dev/null’, shell = True , stdout=subprocess.PIPE)
Datele necesare pentru proiect sunt valoarea SSID-ului fiecarei rețele și nivelul semnalului pentru fiecare rețea în parte. Dacă este necesar se poate adăuga și lățimea de bandă a conexiunii pentru fiecare rețea. Pentru această aplicație sunt suficiente datele oferite de cele două variabile.
Aceste date sunt salvate sub forma unei liste care este parcursă pas cu pas. În cadrul fiecărui pas are loc salvarea din calupul de date doar a celor care reprezintă denumirea rețelei și puterea semnalului. Aceste date împreună cu pasul la care a fost gasită rețeaua și poziția curentă a antenei vor fi salvate într-o listă. Această listă care conține toate rețelele găsite la pasul curent va fi salvată într-o listă finală care va conține toate rețelele găsite într-o rotație completă.
Această lista completă a rețelelor găsite este parcursă pas cu pas. Se utilizează o variabilă max egală cu zero care va fi utilizată și actualizată după caz pentru compararea semnalelor rețelelor și salvarea datelor aferente celui mai puternic semnal din setul complet de date determinat în urma unei rotații complete.
În timpul parcurgerii acestei liste se determină de asemenea care este semnalul maxim pentru fiecare rețea în parte, iar datele aferente acestuia vor fi salvate într-o listă a rețelelor.
După finalizarea acestor determinări este apelată funcția muta_antena(pozitie) pentru a realiza alinierea antenei în concordanță cu poziția semnalului maxim găsit în urma realizării unei rotații complete. De asemenea sunt afișate informațiile semnalului maxim și lista rețelelor care conține maximul fiecăruia.
În cazul în care se dorește o repoziționare manuală, nu este necesară decât apăsarea tastei reprezentând numărul aferent rețelei vizate. Odată apăsată această tastă, funcția muta_antena(pozitie) va fi apelată iar antena va fi aliniată corespunzător cu poziția dorită.
Pentru citirea valorilor semnalului wireless aplicația folosește Linux script.
Iwlist este o comandă linux utilizată pentru a oferi utilizatorului informații despre conexiunea și starea conexiunii wireless. Această funcție oferă informații despre:
Frecvență / Canalul rețelei – iwlist [interfața] frequency/chanel;
Rata de transmisie a datelor – iwlist [interfața] rate
Informații despre power – management-ul emițătorului/receptorului – iwlist [interfața] power
Tipul de autentificare folosit – iwlist [interfața] auth
Pentru a afla toate informațiile la un loc se folosește comanda iwlist [interfața].
Parametrul [interfața] este reprezentat de codul rețelei wireless (wan0,wan1,wan2…)
Parametrii rețelei returnați de funcția iwlist sunt dependenți de tipul rețelei și parametrii care pot fi citiți de receptorul wireless atașat calculatorului.
5. Instrumente utilizate pentru dezvoltarea proiectului.
5.1 Raspbian.
Pentru dezvoltarea aplicației de control a antenei wireless a fost utilizat sistemul de operare Raspbian și o serie de instrumente specifice acestuia.
Raspbian este un sistem de operare gratuit bazat pe Debian – Linux. Acesta vine cu 35000 de pachete software, pre-compilate pentru a oferi utilizatorilor plăcilor de dezvoltare Raspberry Pi flexibilitate și posibilitatea folosirii acestuia pentru o gamă largă de aplicații.
Raspbian este o portare neoficială a sistemului “Debian wheezy armhf“ pentru a rula pe platforma hardware oferită de placa Raspberry Pi. Portarea a fost necesară deoarece sistemul original Debian wheezy nu este compatibil cu procesorul ARMv6 al Raspberry Pi. Acesta funcționează doar pe procesoarele ARMv7 și modele mai noi.
Pentru a putea folosi Raspbian imaginea sistemului de operare este descărcată de pe site-ul dezvoltatorilor și se tranferă pe un card SD / MicroSD (preferabil clasa 6+).
Odată ce cardul a fost introdus în slotul plăcii Raspberry Pi, sistemul de operare bootează și afișează o interfață primară de configurare.
Fig. 32 Interfața de configurare inițială Raspberry Pi
Meniurile interfeței de configurare au următoarele funcții :
Info – informații despre versiunea curentă de Raspbian care este salvată pe card;
Expand_rootfs – inițial dimensiunea imaginii sistemului de operare este de 2GB. Când aceasta este copiată pe un card de dimensiune mai mare este necesară folosirea acestei funcții pentru a avea acces la întreaga dimensiune a cardului. Fără aceasta, sistemul de fișiere este limitat la doar 2gb.
Overscan – folosit pentru a modifica “border-ul” (marginea) imaginii redată prin portul video analog. Această funcție este folosită în momentul în care se dorește conectarea Raspbarry Pi la un monitor/televizor vechi(cele moderne nu au nevoie de această funcție).
Change_pass – schimbă parola utilizatorului default “pi” de la “raspberry” la ceea ce dorește utilizatorul.
Change_locale – folosită pentru a seta limba și tipul de tastatură folosită pentru Raspberry Pi
Change_timezone- această funcție este folosită pentru a seta ora și data
Memory_split- placa de dezvoltare Raspberry Pi are 2 procesoare. Unul pentru calcule (UCP de tip ARM) și unul pentru grafică (UGP – de tip VideoCore). Folosind funcția Memory split se poate aloca dinamic între cele 2 procesoare cantitatea disponibilă de RAM (256/512 în funcție de versiunea plăcii pe care rulează sistemul de operare). Această funcție este utilă atunci când unul din procesoare este folosit intens la o aplicație iar celălalt este nefolosit. Un exeplu este utilizarea Raspberry Pi fără interfața grafică a desktop-ului. În acest caz procesorul grafic are nevoie de memorie ram foarte puțină.
ssh – activează sau dezactivează serverul ssh. Serverul ssh este folosit pentru a controla placa de dezvoltare dintr-un alt dispozitiv conectat la rețea, astfel se elimină necesitatea de a avea un monitor, tastatură și mouse conectate la Raspberry Pi.
Boot_behaviour- în mod obișnuit Raspbian pornește în modul linie de comandă, însă folosind această funcție utilizatorul are posibilitatea de a seta sistemul de operare să pornească cu o interfață grafică asemănătoare altor versiuni de Linux.
Update – este folosită pentru a aduce aplicația “raspi-config” la zi cu ultimele noutăți apărute pe site-ul producătorului.
Interfața grafică a sistemului de operare Raspbian este simplistă și oferă utilizatorului acces la toate funcțiile și programele care rulează într-un mediu grafic. Pentru aplicațiile care rulează în linie de comandă se folosește aplicația “LXTermina” disponibilă pe desktop.
Fig. 33 Desktop Raspberry Pi
Dacă utilizatorul are nevoie să acceseze din nou meniul de configurare al plăcii după configurarea inițială, se apelează „raspi-config” în modul administrator și aceasta este reafișată.
După fiecare configurare este recomandată o restartare a Raspberry Pi.
5.2.Aplicația WIFI Config
WIFI Config este un manager de rețele wireless care rulează folosind interfața grafică în sistemul de operare Raspbian.
În momentul pornirii aplicației este lansată o fereastră care oferă utilizatorului numele adaptorului wireless conectat(sau numele tuturor celor conectate în cazul în care sunt mai multe disponibile) acesta este denumit wlan0. Sub căsuța cu numele adaptorului este regăsit numele rețelei la care dispozitivul este conectat(dacă acesta este deconectat apare o casetă goală).
Fig. 34 Wifi Config
Pentru a conecta dispozitivul la o rețea se apasă butonul “Scan” pentru a lansa fereastra de scanare a rețelelor wireless la care are acces utilizatorul. Această interfață oferă detalii despre numele rețelei “SSID”, frecvență la care aceasta funcționează și nivelul de semnal al rețelei.
Fig. 35 Wifi Config
Pentru a selecta o rețea se face dublu click pe un SSID din listă și este lansată interfața de configurare a rețelei. Aici se configureaza parola, tipul de criptare și alți parametri ai rețelei în funcție de nevoie. Raspberry Pi în funcție de adaptorul wireless conectat acceptă o autentificare de tip: WEP, WPA/WPA2, WPA-PSK/WPA2-PSK. Cu o criptare de tip TKIP (Temporary Key Integrity Protocol) sau CCMP (Counter Cipher Mode with block chaining message authentication code Protocol).
Fig. 36 Wifi Config
După amplasarea antenei pe cea mai puternică rețea wireless din lista rețelelor găsite, software-ul de control al antenei se închide automat. Conectarea la rețeaua găsită nu se va face automat din aplicația de control. Conectarea se va realiza prin metoda descrisă, astfel Raspberry Pi nu se va conecta automat la o rețea nesecurizată. Este așteptat input-ul utilizatorului pentru a realiza conexiunea finală.
Limbajul de programare Python
Python este un limbaj de programare de nivel înalt dezvoltat acum 23 de ani care pune accentul pe lizibilitatea codului. Acest limbaj a fost dezvoltat de Guido van Rossum un programator olandez, fondator al Python Foundation.
Pentru a instala Python pe placa de dezvoltare Raspberry Pi utilizatorul trebuie să dețină drepturi de administrator. Instalarea propriu-zisă se face folosind comada:
sudo apt-get install python-dev
6 . Concluzii
O primă concluzie ce se poate trage în urma prezentei lucrări este aceea că antenele direcționale oferă un avantaj concret în realizarea conexiunilor pe distanțe mari. Aceste antene nu numai că măresc raza de acțiune a emițătorului/raceptorului dar ajută și la blocarea unor interferențe pentru a nu ajunge la acestea. Reflectorul antenelor direcționale este realizat din materiale conductive (oțel sau aluminiu) pentru a concentra toate undele electromagnetice către un anumit punct în care este plasat receptorul.
Sistemul oferă o platformă de test foarte utilă atât pentru profesioniști cât și pentru amatori, în a verifica starea sau pentru a găsi un acces point mai bun dintre cele disponibile în raza antenei wireless.
6.1 Realizări
A fost realizat un sistem autonom de alegere a unui access point dintr-o serie de access point-uri detectate de antenă în momentul scanării. Funcția principală a aplicației și a sistemului mecanic este acela de a oferi o antenă direcțională capabilă să mărească raza de detecție și implicit transmisie/racepție.
Datorită consumului foarte redus de energie, la nevoie, sistemul poate fi alimentat dintr-o baterie externă de 12V pentru relee și o baterie de 5V pentru restul elementelor. Acesta fiind ideal pentru testarea Access point-urilor în momentul testării sau pentru a optimiza conexiunea într-o zonă unde sunt disponibile rețele wireless la o distanță în afara razei de acțiune a unei antene omnidirecționale.
6.2 Dezvoltări ulterioare
Pentru dezvoltarea ulterioară a sistemului se pot opera diferite modificări. Aceste modificări au rolul de a rafina sistemul și de a îmbunătăți precizia acestuia.
Se pot opera modificări de natură mecanică prin dezvoltarea unui sistem de rotire a antenei și encoderului mai precis. Acest lucru va îmbunătăți precizia în poziționarea antenei cât și precizia cu care encoderul citește și transmite către Raspberry Pi poziția acestuia.
Un alt tip de îmbunătățire ce se poate efectua este adăugarea unui procesor de semnal radio între receptorul wireless și placa Raspberry Pi. Acest procesor de semnal are rolul de a minimiza interferențele electromagnetice care apar la propagarea semnalului prin aer.
Interferențele semnalului wireless sunt cauzate de trecerea semnalului prin materiale cu conductivitate radio diferită și de reflexia și refracția semnalelor la întâlnirea suprafețelor din metal. Aceste interferențe pot cauza compunerea undelor EM și pot crea vârfuri de semnal maxim (când se compun în aceeași fază) sau minim (când sunt defazate semnalele unul față de celălalt). Procesorul de semnal analizează tot spectrul electromagnetic recepționat de senzor și decide care parte din acesta este semnalul util și care este semnalul parazit.
O altă îmbunătățire care se poate aduce sistemului este folosirea unui driver de motor în locul releelor pentru controlul vitezei și sensului motorului. Acesta oferă un control al vitezei și poziției mai fin decât cel implementat.
Lista Abrevieri
Hz – Hertz . unitate de masura a Frecvenței.
EM – prescurtare pentru Electro – Magnetic
CPU – Control and Processing Unit (Unitate de Control si Procesare)
ARM – Advanced RISC Machines.
GPU – Graphical Processing Unit (Unitate Grafica de Procesare)
GPIO – General Purpose Input/Output( Intrari /Iesiri Generale)
SD – Secure Digital (card de memorie non-voltatila)
LED – Light Emitting Diode (Dioda Luminiscenta)
GND – Ground (masa)
RAM – Random Acces Memory
USB – Universal Serial Port
HDMI – High Definition Multimedia Interface
SSID – Serice Set Identifier
WPA – Wireless Protected Acces – Standard de criptare a conexiunii wireless
Bibliografie
1. Raspberry Pi User manual
2. Gertboard User manual
3. BROADCOM – BCM2835 ARM Peripheral
4. Transmisia si criptarea datelor – Conf.dr.ing. O. Cangea
5. Sisteme de operare – Note de curs – Conf. Dr. Ing. Gabriel Rădulescu
6. http://en.wikipedia.org/wiki/ARM_architecture
7. http://en.wikipedia.org/wiki/High-gain_antenna
8. http://en.wikipedia.org/wiki/Radio_telescope
9. A Detailed Analysis of Contemporary ARM and x86 Architectures – Emily Blem, Jaikrishnan Menon, and Karthikeyan Sankaralingam – University of Wisconsin – Madison
10. Indoor propagation modeling at 2.4GHz for IEEE 802.11 networks – Dinesh Tummala – University of Noth Texas – December 2005
11. http://en.wikipedia.org/wiki/Yagi-Uda_antenna
12. http://en.wikipedia.org/wiki/Direcțional_antenna
Bibliografie
1. Raspberry Pi User manual
2. Gertboard User manual
3. BROADCOM – BCM2835 ARM Peripheral
4. Transmisia si criptarea datelor – Conf.dr.ing. O. Cangea
5. Sisteme de operare – Note de curs – Conf. Dr. Ing. Gabriel Rădulescu
6. http://en.wikipedia.org/wiki/ARM_architecture
7. http://en.wikipedia.org/wiki/High-gain_antenna
8. http://en.wikipedia.org/wiki/Radio_telescope
9. A Detailed Analysis of Contemporary ARM and x86 Architectures – Emily Blem, Jaikrishnan Menon, and Karthikeyan Sankaralingam – University of Wisconsin – Madison
10. Indoor propagation modeling at 2.4GHz for IEEE 802.11 networks – Dinesh Tummala – University of Noth Texas – December 2005
11. http://en.wikipedia.org/wiki/Yagi-Uda_antenna
12. http://en.wikipedia.org/wiki/Direcțional_antenna
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Comunicatii Wireless Si Antene Directionale (ID: 149635)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
