Sistem de orientare si [616270]
Sistem de orientare si
control pentru nevazatori
Propusă de Departamentul
Electronică, Telecomunicații și Inginerie Energetică ca
Lucrare de Diplomă
la
Facultatea de Inginerie Electrică, Electronică și Tehnologia Informației
Universitatea VALAHIA din Târgoviște
susținută de
Constantin Stanciu
Specializarea – Tehnologii și Sisteme de Telecomunicații
iulie 19, 2017
SUPERVIZATĂ DE
dr.ing. Dan și Puchianu
Facultatea de Inginerie Electrică,
Electronică și Tehnologia
Informației Faculty of Electrical Engineering,
Electronics and Information
Technology
Prenume și Nume
2 AUTOR LUCRARE / AUTHOR OF THESIS
Inginer (B.Sc.)
GRAD / DEGREE
Inginerie Electronică și Telecomunicații
DOMENIU / DOMAINE
Sistem de orientare si
control pentru nevazatori
TITLUL LUCRĂRII / TITLE OF THESIS
Prenume și Nume
COORDONATOR LUCRARE / THESIS SUPERVISOR
CO-SUPERVIZOR LUCRARE / THESIS CO -SUPERVISOR
EXAMINA TORI LUCRARE / THESIS EXAMINERS
Henri – George COANDĂ
DECAN / DEAN
3 Cuprins
1. Introducere
2. Prezentarea generală a proiectului
3. Componente
3.1 Placa de dezvoltare Raspberry Pi 3 B
3.2 Senzorii ultrasoici HC-SR04
3.3 Motorase cu vibraț ie A1027
3.4 Camera Pi Noir
3.5 Driverul L293D
3 3.6 Breadboard si conexiuni
4. Limbajul de programare Python
5. Machine Learning
6. Google Cloud Vision API
8. Concluzii
9. Anexa A – Codul sursă
10. Bilbliografie
Lista de figuri
l
Lista de tabele
4 Scopul acestei lucrări este de a crea un dispozitiv pentru a ajuta persoanele cu probleme de
vedere să se poată orienta in siguranță, prin detectarea si evitarea obstacolelor. Pentru acest
dispozitiv am ales o pereche de ochelari Virtual Reality, pe care i -am upgradat pentru ideea
mea, astefel toate componentele necesare acestui proiect sunt incapsulate in interiorul
ochelarilor, reduând spatiul folosit si totodata dând un aer Science Fiction.
Cum funționează dispozitivul? Răspunsul îl găsim în natură, mai exact analizând modul in
care liliecii se orientează. Asadar, pentr u a se orienta, liliecii transmit un sunet pe o anumită
frecvență, care se levește de un obsacol și se întoarce, în ureche fiind transormat în semnal si
ajungând la neuroni, astfel știind poziția obstacolului si dacă acesta este in mișcare sau nu.
Folosind același principiu, am decis să folosesc doi senzori ultrasonici HC -SR04 pentru
detectarea obstacolelor. Un senzor este folosit pentru detectarea obstacolelor ce se află in
partea dreaptă și în față iar celălat din partea stângă si fața persoanei la o dist anță de cel mult
200 centimetri. Am ales această distanță ca fiind una maximă deoarece obstacolele aflate la
mai mult de 200 centimetri ar fi prea îndepărtare de persoana respectivă si totodată mărind
distanța de la senzor la obstacol se vor detecta si mai multe obstacole, punând in dificultate
utilizatorul ochelarilor.
Pentru a semnaliza obstacolele detectate cu ajutorul senzorilor si pentru a coordona
utilizatorul, am folosit doua motorașe cu vibrație de tip A1027. Acestea sunt poziționate in
zona tâmplel or, unul în partea dreaptă a capului si celălalt in stânga, astfel indicând direcția.
De exemplu, dacă senzorul din partea dreaptă detectează un obstacol la distanța de 200
centimetri, motorașul din tâmpl dreaptă o să vibreze, atenționând astfel persoana c a există un
obstacol la dreapta. Probabil vă intrebați de unde va ști utilizatorul distanța dintre el si
obstacol. Pentru a comunica utilizatorului distanța dintre el si obstacol m -am folosit de timpul
de vibrare al motorului. Astfel, pentru distanța maxim ă de 200 centimetri, motorașul va vibra
0.5 secunde, iar cu cat distanța scade, acesta isi va mări timpul de vibrare până la maxim 2
secunde, acolo unde va atinge distanța minimă de 1 centimetru.
Totuși marele dușman al persoanelor cu handicap de vedere, r amâne treptele. Pentru a detecta
treptele am folosit o camera PI Noir cu focalizare reglabilă. Pentru ca această cameră să poată
detecta treptele am utilizat Google Cloud Vision API si Machine Learning. Cum funcționează
? Camera va face cate o poza pe secu ndă si o va trimite către Google Cloud, unde se vor cauta
trepte în imaginea respectivă și se va returna raspunsul, dacă există sau nu trepte. Dacă
raspunsul este pozitiv, adică există trepte in imagine, vom știi si localizarea in imagine, mai
exact dacă t reptele se află în partea dreată, stângă sau centru. In funcție de această localizare a
treptelor, va vibra unul din motorașe, de această dată timp de 3 secunde pentru a se face o
diferență între detectarea obstacolelor si detectarea treptelor.
Acest dispo zitiv ar putea fi upgradat la un alt nivel, superior acestuia prin adăugarea de noi
componente si funcții. De exemplu, pentru orice nevăzător, traversarea starzilor este un real
pericol deoarece acesta nu poate vedea semafoarele. Aici putem interveni, cu a jutorul camerei
PI Noir, prin detectarea semafoarelor si a culorilor acestuia, semnalizând in mod auditiv
culoarea verde si cea roșie.
Un alt pericol pentru aceste persoane îl reprezintă localizarea în spațiu și anunțarea
ajutoarelor. Dacă o persoană nevă zătoare se accidenteaza în timpul deplasării, nemaiputând
merge și necunoscând locația exacta unde se află, aceasta poate fi ajutată prin intermediul
localizarii GPS și acționarea unui buton de urgență, care să facă legătura telefonică cu
ajutoarele.
5 Raspberry
Raspberry Pi 3 – Dupa ce funda ția care se ocupă cu aceste mini computere , a avut un succes
enorm prin vânzarea a nu mai puțin de 8 milioane de unităț i ,Raspberry Pi Model B a decis sa
sarbatoareasca prin lansarea unui nou model, unul mai performant, denumit Raspberry Pi 3.
Aceasta noua placa de dezvoltare are o performanta de 50 -60% mai mare in modul -32 biti fata
de Raspberry Pi 2 si de aproape 10 ori mai mare fata de modelul initial de Raspberry. Asadar,
are un procesor quad core ARM Cortex -A53 pe 64 de biti capabil sa ruleze la 1.2 GHz, 1 GB
RAM, iar fata de modelele anterioare, placa dispune si de conexiuni WiFi si Bluetooth,
asigurate de cipul BCM43438.. Este capabila sa ruleze toate distributiile GNU/Linux ARM,
aici fiind incluse: Snappy Ubuntu Co re, Raspibian (Debian) dar si Microsoft Windows 10.
Placa poate fi alimentata cu 5 V cu ajutorul conectorului micro USB. Daca se conecteaza pe
USB periferice care consuma mult curent, se recomanda un alimentator de 2 -2.5 A.
Spre deosebire de celelalte vers iuni de Raspberry Pi, aceasta placa dispune de un GPU
VideoCore IV 3D care ruleaza la o frecventa de 400 MHz, aceasta frecventa fiind
semnificativ mai mare in comparatie cu generatiile anterioare.
Specificatii:
– Procesor Quad Core ARM Cortex -A53 64 bit 1.2 GH
– 1 GB RAM
– GPU VideoCore IV 3D
– WiFi 802.11n
– Bluetooth 4.1 și Bluetooth LE
– 40 de pini GPIO
– HDMI
– 4 Porturi USB 2.0
– Ieșire Video Composite
– Ieșire Audio Stereo
– Port CSI pentru a conecta camera Raspberry P i
– Port DSI pentru a conecta display -uri cu touchscreen
– Slot pentru Card Micro SD
6
Primii pași în utilizarea plăcii Raspberry Pi 3
Ce este Raspberry Pi?
Raspberry Pi este o placă de dezvoltare de tip SBC (Si ngle Board Computer) – un sistem de
calcul nemodular implementat pe un singur cablaj electronic. Chiar dacă are dimensiuni
reduse (85mm x 56mm), Raspberry Pi este un calculator complet permițând funcționalități
obișnuite precum rularea unui sistem de oper are (Linux sau Windows) și rularea de aplicații
utilizator (jocuri, editoare de text, medii de programare, redarea de muzică și filme, aplicații
de teleconferință, aplicații Internet). Diferențele între o placă Raspberry Pi și un calculator
personal (PC) s au laptop constau atât în dimensiunea redusă a plăcii cât și în puterea mai mică
de calcul a acesteia – nu are aceleași performanțe de calcul precum un PC desktop care are un
cost și o dimensiune de cât eva ori mai mari. Putem compara placa Raspberry Pi cu o tabletă
sau cu un sistem de tip NetBook dar fără a dispune de ec ran și tastatură. În plus, placa
Raspberry Pi oferă posibilitatea de a conecta diverse componente electronice specifice
sistemelor embedded: senzori, butoane, ecrane LCD sau pe 7 segmente, d rivere de motoare,
relee etc. Posibilitatea de a personaliza sistemele de programe (sistemul de operare,
aplicațiile) și posibilitatea de interconectare cu alte compo nente electronice fac din placa
Raspberry Pi un sistem de calcul ce poate stă la baza unor proiecte personale extrem de
interesante și de puternice – un calculator ce poate fi integrat în sisteme electronice și
mecanice proiectate și realizate de utilizator.
7
Componente necesare utilizării plăcii Raspberry Pi 3
Pentru a pune în funcțiune placa Raspberry Pi 3 avem nevoie de următoarele componente
suplimentare:
Cablu HDMI și un monitor cu intrare HDMI. În cazul în care nu dispunem de un
monitor cu intrare HDMI putem folosi un adaptor HDMI -DVI sau un adaptor HDMI –
VGA, depinde de intrarea mon itorului .
Alimentator de rețea cu ieșire de 5V, minim 2.5A și mufă microUSB. Este
recomandată ut ilizarea alimentatorului original pentru a asigura o tensiune corectă și
un curent suficient pentru alimentarea plăcii Raspberry PI 3. În cazul în care utilizăm
un alimentator ieftin putem distruge placă din cauza fluctuațiilor de tensiune sau
putem întâmpina probleme în utilizare din cauza curentului insuficient debitat de sursă
de tensiune.
Tastatură și mouse USB. Sunt necesare pentru instalarea și configurarea inițială a
sistemului. Ulterior putem utiliza sistemul de la distanță, ne mai fiind necesare
tastatură, mouse și monitor.
Card de memorie microSD, capacitate minimă 8GB, clasa de viteză 10. Cardul de
memorie va stoca sistemul de operare la fel că și hard-disk-ul în cazul unui PC. Este
foarte importantă utilizarea unui card microSD de calitate și de vi teză adecvată pentru
a nu conduce la p robleme de funcționare foarte neplăcute: blocări în funcționare,
resetarea aleatorie a sistemului sau pierderi de d ate. Dacă este posibil, se recomandă
utilizarea cardului microSD original.
Dacă sistemul va fi utilizat într -o rețea locală pe cablu este necesar și un cablu de rețea
UTP – patch -cord. Dacă se utilizează placă într -o rețea locală WiFi nu este ne cesar.
Cone ctivitatea de rețea nu este obligatorie pentru funcționarea plăcii dar este
recomandată deoarece altfel nu se pot realiza actualizările de securitate ale sistemului
de operare, nu se pot menține corect setările de dată și ora și, bineînțeles, se pierde o
funcționalitate importantă a sistemului.
Recomandat este sa se utilizeze și o carcasă pentru placa Raspberry Pi. Manipularea
plăcii fără nici u n fel de protecție poate duce la deteriorarea acesteia datorită
descărcărilor electrostatice (descărcarea sarcinii electrice statice a corpului uman în
circuitul electronic prin atingerea componentelor conductoare a acestuia), a șocurilor
mecanice și a murdăriei (praf, lichide, grăsimi).
Instalarea sistemului de operare
Următorul pas, necesar înainte de punerea în f uncțiune a plăcii Raspberry Pi 3, este pregătirea
cardului microSD pentru instalarea sistemului de operare. Placă Raspberry Pi 3 poate rula
diverse distribuții ale sistemului de operare Linux și o versiune minimală a sistemului de
operare Microsoft Windows 10 (prin versiune minimală înțelegem o varianta ce nu poate fi
folosită că platforma desktop ci doar că platforma pentru aplicații – Windows 10 IoT Core ).
În continuare vom exemplifica instalarea distribuției Linux Raspbian, sistemul de operare
oficial al plăcii Raspberry Pi, sistem de operare foarte ușor de utilizat și recomandat pentru
8 începători. Alte sisteme de operare recomandate de fundația Raspberry Pi (producătorul plăcii
Raspberry Pi) pot fi explorate în pagină de download a site -ului fundației.
În cazul în care utilizați cardul microSD oficial al plăcii Raspberry Pi instalarea sistemului de
operare este foarte simplă deoarece cardul de memorie conține utilitarul NOOBS (New Out
Of Box Software) ce facilitează instalarea diverselor sisteme de opera re specifice plăcii
Raspberry Pi. Pentru pornirea instalării sistemului de operare se inserează cardul în slotul
microSD al plăcii și se pornește sistemul (trebuie să va asigurați că aveți toate echipamentele
conectate corect: tastatură, mouse, cablu HDMI) . După initializare utilitarul NOOBS va
permite alegerea sistemului de operare pe care doriți să -l instalați:
În cazul în care placă nu este conectată la Internet (prin cablu sau prin WiFi) singură opțiune
de instalare va fi sistemul de operare Raspbian al cărui kit de instalare se află deja pe cardul
de memorie. Toate celelalte sisteme de operare necesită conectivitate Internet pentru instalare.
Conexiunea la Internet se poate realiza prin conectarea cu un cablu la o rețea ce oferă setări
automate (DHCP ) sau configurând accesul WiFi (opțiunea Wifi networks din partea de sus a
ferestrei anterioare). După confirmarea sistemului de operat dorit, utilitarul NOOBS va instala
automat sistemul de operare – acest proces durează câteva zeci de minute.
9
După fi nalizarea procesului de instalare sistemul va reporni ș i putem deja să lucrăm cu placa
Raspberry Pi.
În cazul în care nu dispunem de un card microSD cu NOOBS preinstalat putem utiliza un card
microSD de calitate pe care să copiem utilitarul NOOBS – se downloadează și se
dezarhiveaza pe cardul microSD. Mai multe detalii puteți găsi și pe pagină utilitarului. După
această operație instalarea decurge că în cazul precedent. ATENȚIE!!! Cardurile de memorie
ieftine produc o groază de bătăi de cap!
O alternati vă la utilizarea programului NOOBS este copierea directă a sistemului de operare
pe cardul microSD. Copierea nu se poate face direct, că în cazul NOOBS, ci se realizează prin
10 transferul unui fișier imagine cu ajutorului unui utilitar specializat, de exempl u: Etcher sau
Win32DiskImager. Se downloadează imaginea de sistem de operare dorit (varianta LITE nu
include interfață grafică) și se copiază pe cardul de memorie. După această operație cardul de
memorie va conține sistemul de operare deja instalat, gata d e utilizare. Cardul de memorie se
poate introduce în slotul plăcii și se poarte porni sistemul.
Configurarea inițială a plăcii Raspberry Pi 3
Există două metode de configurare a plăcii Raspberry Pi: folosind utilitarele puse la dispoziție
de interfață grafică a sistemului de operare Raspbian sau folosind utilitarele în linie de
comandă (Terminal). Utilitarul principal de configurare se numește raspi -config și poate fi
accesat atât prin intermediul interfeței grafice cât și în linie de comandă.
11
În linie de comandă (se accseaza aplicația Terminal din bară de aplicații) se va introduce
comandă:
sudo raspi -config
Comandă “sudo” permite execuția de utilitare sistem privilegiate (pot fi executate doar cu
drepturi de administrare a sistemului). Chiar dacă contul de conectare inițial are drepturi
depline asupra sistemului (dreptuti de administrator sau root), sistemul de operare nu permite
execuția unor comenzi sau utilitare importante fără a fi precedate de comandă sudo pentru a
preveni accidentele de configurare. Accesarea utilitarului în linie de comandă este utilă mai
ales când sistemul este administrat de la distanță prin intermediul utilitarului ssh (a se vedea
secțiunea următoare).
12
Prin intermediul utilitarului raspi -config se pot configura maj oritatea setărilor de sistem ale
plăcii Raspberry Pi dar vă recomandăm următoarele setări esențiale pentru a putea lucra mai
departe:
Modificarea credențialelor implicite ale sistemului. Datele de conectare implicite
ale sistemului Raspbian sunt: utilizato r: pi / parolă: raspberry . Se recomandă
modificarea parolei implicite pentru ca sistemul să nu fie accesat în mod neautorizat.
Notați noua parolă, fără aceasta este posibil să nu mai puteți accesa sistemul și să
trebuiască să reinstalați sistemul de opera re.
13
Realizați setările de rețea pentru ca placa să se poată conecta la Internet. Conexiunea la
Internet este importantă pentru funcționarea corectă a plăcii. Cel mai simplu este să
configurați conexiunea WiFi accesând icon -ul specific din bara de aplicații:
Dacă folosiți o conexiune pe cablu aceasta se configurează în mod automat d acă sistemul este
introdus într -o rețea ce oferă DHCP .
Realizați instalarea update -urilor pentru pachetele software din distribuție pentru a va
bucură de ultimele facilități oferite de sistemul de operare Raspbian și pentru a beneficia de
corecțiile de securitate. Pentru a face acest lucru se vor tasta în aplicația Terminal următoarele
comenzi:
sudo apt -get update
sudo apt -get dist -upgrade
14
Activați serviciile de acces la distanț ă dacă doriți să utilizați placa fără periferice proprii
(tastatură, mouse și monitor). Explicarea utilizării acestora se va f ace în următoarea secțiune.
Cele mai cunoscute programe de acces la distanță sunt VNC (pentru accesul în mod grafic) și
ssh (pentru accesul în linie de comandă). Ambele sunt instalate implicit în distribuția
Raspbian și pot fi activate prin intermediul uti litarului raspi -config.
15
16 Utilizarea plăcii Raspberry Pi 3 de la distanță
De multe ori este mai comod sau pur și simplu natură proiectului impune accesul la distanță
pentru utilizarea plăcii Raspberry Pi. Prin acces la distanță nu se înțelege ne apărat faptul că
placă se află la mare distanță ci că nu este accesată de la o tastatură și un monitor direct
conectate. În acest fel putem utiliza placă fără a bloca un set de periferice dedicate.
Pentru a putea să ne conectăm la placă Raspberry Pi prin intermediul rețelei este necesar să
cunoaștem adresa IP a acesteia. Dacă alocarea adreselor IP în rețeaua locală în care se
utilizează placă se realizează în mod static este suficient să ne notăm adresa alocată după
instalarea sistemului de operare utilizâ nd comandă ifconfig în aplicația Terminal.
Dacă placa se conectează într -o rețea locală ce alocă dinamic adresele IP asta înseamnă că la
fiecare repornire este posibil că adresa IP să se modifice și nu avem altă posibilitate decât să
”scanăm” rețeaua pentru a descoperi ce adresa a fost alocată pentru placă R aspberry Pi.
Scanarea se face cu aplicații specifice, de exemplu: Angry IP Scanner sau nmap.
17 După instalare, aplicația Angry IP Scanner permite verificarea întregii plaje de adrese dintr -o
rețea locală și raportează ce adrese IP sunt active (sunt alocate) și ce servicii rulează sistemele
de calcul respective:
Pentru accesul la distanță în linie de comandă se utilizează programul ssh ce permite
deschiderea unei sesiuni de tip terminal de pe un alt sistem de calcul. Este necesară instalarea
unui client ssh pe sistemul de pe care se va face accesul. Cel mai cunoscut client ssh pentru
Windows este putty, sistemele Linux au clientul ssh instalat implicit:
18
Pentru accesul la distanță beneficiind de interfață grafică pusă la dispoziție de sistemul de
operare vom utiliza programul VNC. La fel că și în cazul ssh este necesară instalarea pe
sistemul de pe care se face accesul a unui client specific. Unul dintre cei mai cunoscuți clienți
VNC este RealVNC:
19
Senzorul
Senzor ultrasonic HC -SR04
Acest senzor este unul dintre cei mai populari și ușor de utilizat dintre senzorii de distanță,
deoarece față de senzorii de distanță analogici, el necesită doar pini I/O digitali și are
imunitate mai mare la zgomot. Acest senzor are o precizie de 3 mm și un ung hi de 15 grade.
Fiecare modul dispune de un transmițător ultrasonic, un receptor și un circuit de comandă.
Pentru a putea funcționa, acesta are nevoie de 4 pini : VCC (Alimentare), TRIG (Trigger),
ECHO (Primire) și GND.
Caracteristici:
Tensiune de operare: DC 5V
Curentul de funcționare: 15mA
Unghi de funcționare: 15 °
Distanță: 2cm – 4m
20 Introducere
Senzorul HC -SR04 utilizează un s onar pentru a determina distanța față de un obiect că și
liliecii sau delfinii. Oferă o detec tare excelență a obiectelor, fără contact , cu o precizie ridicată
și citiri stabile într -un pachet ușor de utilizat. De la 2 cm la 400 cm. Operațiunea nu este
afectată de lumina soarelui sau material negru, cum ar fi distanțierele Sharp (deși materialele
acustice moi, cum ar fi stofă, pot fi dificil de detectat). Acesta vine complet cu transmițător de
ultrasunete și modul receptor.
21
Parameterii Min Med. Max Unit.
Operating Voltage 4.50 5.0 5.5 V
Quiescent Current 1.5 2 2.5 mA
Working Current 10 15 20 mA
Ultrasonic Frequency – 40 – kHz
Se afișează diagrama de timp a HC -SR04. Pentru a începe măsurarea, Trigul SR04 trebuie să
primească un impuls de 5V pentru cel puțin 10us, acest lucru va face că senzorul să transmită
8 cicluri de explozie cu ultrasunete la 40kHz și va aștepta explozia ultrasonică reflectată.
Când senzorul detectează ultrasunetele de la receptor, acesta va seta pînul Echo la înalta (5V)
și va întârzia o perioada (lățime) proporțională cu distanță. Pentru a obține distanță, măsurați
lățimea (Ton) a pinului Echo.
Time = Lățimea pulsului Echo, în uS (micro second)
Distanță în centimetri = Timp / 58
Distanță în inch = Timp / 148
Sau puteți utiliza viteză sunetului, care este de 340m / s
22
L293D
L293D este un circuit integrat (IC) pentru conducătorul auto cu punte H. Motoarele
acționează ca amplificatoare curente, deoarece efectuează un semnal de control al curentului
scăzut și furnizează un semnal de curent mai mare. Acest semnal de curent mai mare este
folosit pentru a conduce motoarele.
L293D conține două circuite de driver H -bridge încor porate. În modul său comun de
funcționare, doua motoare de curent continuu pot fi acționate simultan, atât în direcția înainte
cât și înapoi. Operațiile motorului a două motoare pot fi controlate prin logica de intrare la
pinii 2 și 7 și 10 și 15. Logica d e intrare 00 sau 11 va opri motorul corespunzător. Logica 01 și
10 o vor roti în sens orar și respectiv în sens invers acelor de ceasornic.
Activați pinii 1 și 9 (corespunzători celor două motoare) trebuie să fie ridicate pentru ca
motoarele să înceapă să funcționeze. Când o intrare de activare este ridicată, driver -ul asociat
devine activat. Ca urmare, ieșirile devin active și lucrează în fază cu intrările lor. În mod
similar, când intrarea de activare este scăzută, acel driver este dezactivat, iar ieșiri le sunt
oprite și în starea de înaltă impedanță.
23
Conectarea motoraselor cu vibratie si a drverului L293D
Ceea ce intenționăm să facem este să conectam in siguranță unul sau doua motoar e la
Raspberry Pi cu cat mai puț ine componente posibil. Odată ce avem electronicele asamblate pe
panourile de bord, vă vom arăta cum să le controlați cu ușurință folosind Python pentru a face
24 mai întâi rotirea motorului și apoi adăugați un anumit control pentru a schimba direcția
motorul ui pentru a putea merge înapoi.
Cerinț e
Raspberry Pi cu card SD preinstalat cu Raspbian
Un Breadboard pentru a conecta totul
Un cip de motor L293D
Jumper cabluri pentru a conecta totul sus
Doua motoare de curent continuu clasificate pentru 6V
Pinii GPIO
Daca nu v -ați uitat atent la Raspberry Pi inainte, acum ar putea fi cel mai bun mom ent pentru
a avea o privire bună . Există 26 de insigne grupate în două rânduri de 13, iar acestea sunt
colectiv numite antet de ieșire de destinație generală sau GPIO pe s curt. Acestea sunt un
amestec de patru p ini de putere, cinci pini de masă și 17 pini de date.
25
Unii dintre acești pini de date au funcții suplimentare, cum ar fi o magistrală i2c, bus SPI și
conectori seria UART, care se pot conecta la alte echipamente hardware pentru a permite
Raspberry Pi să vorbească cu elemente precum un arduino, un convertor analogic la digital )
Sau plăci suplimentare, cum ar fi PiGlow sau PiFace.
Asamblarea circuitului
Adăugarea alimentării și a masei
Este important să faceți acest lucru, în timp ce puterea pentru Raspberry Pi este oprită sau
deconectată, pe măsură ce doriți să evitați o scurt circuitare a conectorilor.
Primul lucru pe care trebuie să -l faceți este să conectați cablurile de alimentare și de la sol. Ca
și în cazul majorității proiectelor electronice, tot ceea ce conectează împreună va necesita o
bază comună. Acest lucru este ind icat cu firele negre.
Pământul de pe Raspberry Pi este pinul fizic 6. Referindu -ne la Figura 1, acest lucru este
elaborat pornind de la stânga sus cu pinul 3V3, numărând de la stânga la dreapta, astfel încât
5V este pinul 2, GPIO 2 (etichetat 2) este pi nul 3 pe.
Citirea numerelor de cipuri pe cipurile cu circuite integrate (IC) se face cu ușurință prin faptul
că are crestătură sau punct la stânga, apoi pornind din partea de jos din stânga ne dă un pin 1.
26
Adăugarea fișelor de date
Acum adăugați tre i fire de la pinii GPIO la L293D.
GPIO 25 -Pin 22> Pin L293D 1
GPIO 24 -Pin 18> L293D -Pin 2
GPIO 23 -pini 16> L293D -pin 7
27
Adăugați motorul:
Motor -fir 1> L293D -pin 3
Motor -fir 2> L293D -pin 6
Este extrem de important să verificați dublu conexiunea înainte de a adăuga bateriile. Numai
atunci când sunteți fericiți că totul este în loc, conectați firele bateriei la șinele de alimentare
ale panoului.
Adăugați un al doilea motor (opțional)
Una dintre marile trăsături ale model ului L293D este aceea că se poate ocupa de două
motoare în mod independent și fiecare motor poate funcționa la diferite viteze sau direcții.
Folosind acest model IC face posibilă crearea unui robot pe două roți capabil să se întoarcă, să
meargă înainte și să meargă înapoi cu ușurință.
28 Adăugarea unui al doilea motor implică doar trei fire suplimentare și un alt motor.
GPIO 11 -Pin 23> Pin L293D 9
GPIO 9 -Pin 21> L293D -Pin 10
GPIO 10 -pini 19> L293D -Pin 15
Porniți alimentarea
Este important să verificați și să verificați în orice moment cablajul înainte de a adăuga orice
sursă de alimentare la proiectul dvs., deoarece unele dintre cabluri pot obține un pic fiddly
este ușor să pierdeți o conexiune și trimiteți 5V la 3.3V de Raspberry Pi.
Verif icați întotdeauna cablurile și apoi verificați din nou!
Dacă nu ați creat o cartelă SD pentru dispozitivul dvs. Pi înainte, va fi util să înțelegeți cum să
creați unul, citiți mai întâi modul Cum se face Flash pe un card SD pentru tutorialul Raspberry
Pi.
Cu o cartelă proaspăt creată de Raspbian SD conectați rasina Pi ca de obicei și boot -up.
Adăugați bateriile, asigurându -vă că acordați atenție șinelor corecte (benzile lungi de -a lungul
părții superioare și inferioare, dacă aveți), deoarece doriți doar ca firul negru să se conecteze
la sol, iar firul roșu la pozitiv sau la sursă Din cip numai.
29 Următoarea treabă este să -i spui lui Raspberry Pi că a fost conectat un motor sau două. Pentru
a face acest lucru, folosesc o limbă numită Python. Acesta este instala t pe Raspbian, care este
un bonus. Dacă utilizați un alt sistem de operare, cum ar fi Arch sau PiDora, verificați dacă
RPi.GPIO este disponibil.
Breadboard
Caracteristici tehnice:
Dimensiuni: 16.5 x 5.4 x 0.85mm;
Număr de puncte: 830;
Diametru fir necesar: 0.8mm.
Acest breadboard de calitate bună este perfect pentru proiectele dumneavoastră de test în care
doriți să vedeți rapid cum funcționează un montaj. Pentru un contact cat mai bun al firelor,
conexiunile interne sunt placate cu un aliaj de nichel și bronz.
Conexiunile interne de la dreadboard sunt realizate orizontal sau vertical, conform pozei
atașate.
Aplicațiile acestui produs sunt foarte multe, fiind recomandat atunci când începeți să învățați
electronică, putând crea foarte multe montaje fără să fiți nevoiți să faceți lipituri.
Utilizarea unui breadboard este recomandată în momentul în care ne dorim construirea rapidă
și ușoară a unui circuit. Acesta este o placă de plastic cu găuri și contacte metalice în interior,
ce permi te conectarea prin fire a elementelor de circuit, fără a mai fi nevoie să le lipim.
Breadboardurile pot avea diverse dimensiuni. “Anatomia” de bază a acestora se poate observa
în imaginea alaturata:
• secțiunile orizontale A și D vor fi folosite de obicei pentru alimentare;
• în secțiunile verticale B și C vom insera elementele de circuit;
30
Fiecare linie verticală ilustrată cu negru poate reprezenta un nod de circuit. Pe mijloc există
un canal orizontal ce separă secțiunile B și C pentru a oferi mai mul te noduri și pentru a face
posibilă conectarea elementelor de circuit ce au două perechi de pini.
Pentru a realiza conexiunile vom utiliza fire prefabricate, ideale pentru astfel de aplicații.
Uneori, pentru a avea o vizibilitate cât mai bună și pentru a r ealiza un circuit ordonat, vom
utiliza fire de tip “agrafă” – fire drepte cu capetele îndoite, special concepute pentru
breadboard.
Camera pi noir
Caracteristici tehnice:
500 milioane de pixeli;
Chip OV5647;
Senzor CCD 1/4 inch;
Diafragma f1.8;
Distanță focală: 3.6 mm (ajustabilă);
Focalizare reglabilă;
Unghi de vizualizare: 75.7 grade;
Rezoluție: 1080p;
Tensiune de alimentare: 3.3V.
Acest produs reprezintă o cameră compatibilă cu toate versiunile de Raspberry Pi. Pentru
conexiune, ea folosește interfața CSI (Camera Serial Interface) ce se găsește pe toate modelele
31 de plăcuță de dezvoltare Raspberry Pi. O particularitate a acestei came re este aceea că are
vedere pe timp de noapte.
Cu ajutorul acestei camere și cu o plăcuță de dezvoltare Raspberry Pi puteți să dezvoltați
diferite proiecte inovative. De exemplu, vă puteți face un sistem de supraveghere pe timp de
noapte și, cu ajutorul pu terii de procesare disponibilă pe Raspberry Pi, puteți să procesați i
Python este un limbaj dinamic multi -paradigmă , creat în 1989 de programatorul olandez
Guido van Rossum . Guido van Rossum este și în ziua de astăzi un lider al comunității de
dezvoltatori de software care lucrează la perfecționarea limbajul Python și implementarea de
bază a acestuia, CPython, scrisă în C. Python este un limbaj de programare multifuncțional
folosit de exemplu de către companii ca Google sau Yahoo! pentru progra marea aplicațiilor
32 web, dar există și o serie de aplicații științifice sau de divertisment pro gramate parțial s au în
totalitate în Python. Popularitatea în creștere, dar și puterea limbajului de programare Python
au dus la adoptarea sa ca limbaj principal de dezvoltare de către programatori specializați și
chiar și la predarea limbajului în unele medii universitare. Din aceleași motive, multe sisteme
bazate pe Unix, inclusiv Linux , BSD și Mac OS X includ din start interpretatorul CPython.
Python pune accent pe curățenia și simpli tatea codului, iar sintaxa sa permite dezvoltatorilor
să exprime ideile programatice într -o manieră m ai clară și mai concisă decât a altor limbaje de
programare ca C. În ceea ce privește parad igma de programare, Python serveste ca limbaj
pentru software de tipul object -oriented , dar permite și programarea funcțională , imperativă
sau procedurală. Sistemul de tipizare este dinamic iar administrarea memoriei decurge
automat prin intermediul unui serviciu „gunoier” ( garbage collector ). Un a lt avantaj al
limbajului este existența unei ample biblioteci standard de metode.
Implementarea de referință a Python este scrisă în C și poartă numele de CPython . Această
implementare este software liber și este administrată de fundația Python Softw are Foundation .
Python este un limbaj de programare multi -paradigmă, concentrându -se asupra programării
imperative, orientate pe obiecte și funcționale, ceea ce permite o flexibilitate mai mare în
scrierea aplicațiilor. Din punctul d e vedere al sintaxei, Python conține un număr de contrucții
și cuvinte cheie cunoscute oricărui programator, dar prezintă și un concept unic: nivelul de
indentare are semnificație sintactică. Blocurile de cod sunt delimitate prin simplă indentare.
În C astfel de blocuri sunt deseori desemnte prin acolade, {<cod>} , dar în Python nu este
nevoie de astfel de construcții,n ivelele de indentare îndeplinesc această funcție. Această
importanță a in dentării este foarte suprinzătoare pentru mulți utilizatori noi ai limbajului
Python, chiar dacă sunt programatori cu experiență. O astfel de utilizare a indentării permite
codului să fie mai ușor de citit și mai compact. Programatorii care au experiență vo r indenta
implicit codul sursă, oricare ar fi lim bajul, astfel se permite structurarea codului sursă și
evidențierea funcționalității. Python face din această deprindere folositoare în acest sens o
cerință strictă.
O impunere similară există și în limbajul de programare Java, care forțează programatorii să
delimiteze clasele în fișiere aparte, din motive de organizare și sporire a eficienței de scriere a
softului în echipe.
Includerea tutu ror acestor structuri, precum și a funcțiilor ce permit manipularea și prelucrarea
lor, precum și multe alte biblioteci de funcții sunt prezente datorită conceptului “Batteries
Included”, ce poate fi explicat prin faptul că V an Rossum și comunitatea ce s-a format în jurul
limbajului cred că un limbaj de programare nu prezintă utilitate practică dacă nu are un set de
biblioteci importante pentru majoritatea dezvoltatorilor.
Din acest motiv Python contine biblioteci pentru lucrul cu fișiere, arhive, fiși ere XML și un
set de biblioteci pentru lucrul cu rețeaua și principalele protocoale de comunicare pe internet
(HTTP , Telnet , FTP). Un număr destul de mare de platforme Web sunt construite cu Python.
Abilitățile limbajului ca limbaj pentru programarea CGI sunt în afara oricăror dubii. De
exemplu YouTube , unul din site -urile cu cea mai amplă cantitate de trafic din lume, este
construit pe baza limbajului Python.
33 Totuși, Python permite extinderea funcționalității prin pachete adițional e programate de terți
care sunt axate pe o anumită funcționalitate. De pildă, pachetul wxPython conține metodele și
structurile necesare pentru crearea unei interfețe grafice.
Popularitatea acestui limbaj este în creștere începâ nd cu anul 2000 , datorită faptului că Python
permite crearea mai rapidă a aplicațiilor care nu cer viteze înalte de procesare a datelor. De
asemenea este util ca limbaj de scriptare, utilizat în cadrul aplicațiilor scrise în alte limb aje.
Modul ele (bibliotecile) Python sunt de asemenea scrise în C, compilate și i mportate î n Python
pentru mă rirea vitezei de procesare.
Machine Learning
Învățarea în mașină este subcâmpul științei informaticii care, în opinia lui Arthur Samuel în
1959, of eră "computere abilitatea de a învăța fără a fi programat în mod explicit." [1] Evoluția
studiului recunoașterii de modele și teoriei învățării computaționale în inteligența artificială
[2] ] Masina de invatare exploreaza studiul si construirea de algoritm i care pot invata si de a
face predictii cu privire la date [3] – astfel de algoritmi depasesc urmatoarele instructiuni static
program prin realizarea de predictii de date sau decizii [4]: 2 prin construirea unui model de la
Intrări de probe. Învățarea î n mașină este utilizată într -o serie de sarcini de calcul în care
proiectarea și programarea algoritmilor expliciți cu performanțe bune este dificilă sau
imposibilă; Exemplele de aplicații includ filtrarea prin e -mail, detectarea intrușilor de rețea
sau a insidatorilor rău intenționați care lucrează spre încălcarea datelor, [5] recunoașterea
optică a caracterelor (OCR), [6] învățarea la rang și viziunea pe calculator.
Învățarea în mașină este strâns legată de (și adesea se suprapune cu) statisticile
comput aționale, care se concentrează, de asemenea, asupra predicției prin utilizarea
computerelor. Are legături strânse cu optimizarea matematică, care oferă domeniilor metode,
teorii și aplicații. Învățarea în mașină este uneori confundată cu exploatarea datelo r, [7] unde
subdomeniul din urmă se concentrează mai mult pe analiza datelor exploratorii și este
cunoscut sub numele de învățare nesupravegheată. [4]: vii [8] De asemenea, învățarea în
mașină poate fi nesupravegheată [9] Să învețe și să stabilească prof iluri comportamentale de
bază pentru diferite entități [10] și apoi folosite pentru a găsi anomalii semnificative.
În domeniul analizei datelor, învățarea automată este o metodă utilizată pentru a elabora
modele complexe și algoritmi care se pretează la p redicție; În uz comercial, aceasta este
cunoscută ca analiză predictivă. Aceste modele analitice permit cercetătorilor, cercetătorilor
de date, inginerilor și analiștilor să "producă decizii și rezultate fiabile și repetate" și să
descopere "perspective as cunse" prin învățarea din relațiile istorice și tendințele din date.
Începând cu anul 2016, învățarea în mașină este un cuvânt cheie și, conform ciclului de hype
Gartner din 2016, la vârful așteptărilor umflate. [12] Învățarea eficientă a mașinilor este
dificilă, deoarece găsirea modelelor este dificilă și adesea nu sunt disponibile suficiente date
de instruire; Ca rezultat, programele de învățare a mașinilor nu reușesc adesea să producă.
Un obiectiv central al unui cursant este de a generaliza din experi ența sa [24] [25].
Generalizarea în acest context este capacitatea unei mașini de învățare de a efectua cu
exactitate exemple / sarcini noi, nevăzute, după ce au experimentat un set de date de învățare.
Exemplele de instruire provin dintr -o distribuție de probabilități, în general necunoscută
34 (considerată reprezentativă pentru spațiul aparițiilor), iar elevul trebuie să construiască un
model general despre acest spațiu care să îi permită să producă predicții suficient de precise în
cazuri noi.
Analiza comp utațională a algoritmilor de învățare a mașinilor și performanțele lor este o
ramură a științei teoretice a informaticii, cunoscută sub numele de teorie de învățare
computațională. Deoarece seturile de antrenament sunt finite și viitorul este nesigur, teor ia
învățării nu oferă, de obicei, garanții privind performanța algoritmilor. În schimb, limitele
probabilistice ale performanței sunt destul de frecvente. Descompunerea părtinire -varianță
este o modalitate de a cuantifica eroarea de generalizare.
Pentru c ea mai bună performanță în contextul generalizării, complexitatea ipotezei ar trebui să
corespundă complexității funcției care stă la baza datelor. Dacă ipoteza este mai puțin
complexă decât funcția, atunci modelul a subminat datele. Dacă complexitatea mod elului este
crescută ca răspuns, atunci eroarea de antrenament scade. Dar dacă ipoteza este prea
complexă, atunci modelul este supus unei suprapuneri, iar generalizarea va fi mai săracă [26].
În plus față de limitele de performanță, teoreticienii de învăț are computațională studiază
complexitatea timpului și fezabilitatea învățării. În teoria învățării computaționale, un calcul
este considerat fezabil dacă se poate face în timp polinomial. Există două tipuri de rezultate
complexe de timp. Rezultatele poziti ve arată că o anumită clasă de funcții poate fi învățată în
timp polinomial. Rezultatele negative arată că anumite clase nu pot fi învățate în timp
polinomial.
Cloud Vision API
API-ul Google Cloud Vision permite dezvoltatorilor să înțeleagă conținutul unei imagini prin
încapsularea unor modele puternice de învățare în mașină într -un API REST ușor de folosit.
Se clasifică rapid imaginile în mii de categorii (de ex., "Barcă cu vele", "leu", "Turnul
Eiffel"), detectează obiecte și fețe individuale în imagi ni, și găsește și citește cuvintele
imprimate conținute în imagini. Puteți crea metadate în catalogul dvs. de imagini, conținut
moderat ofensator sau puteți permite noi scenarii de marketing prin analiza sentimentelor
imaginilor. Analizați imaginile încărc ate în cerere sau integrați -le cu spațiul de stocare a
imaginilor în Google Cloud Storage.
Insight From Your Images
Detectați cu ușurință seturi largi de obiecte în imaginile dvs., de la flori, animale sau transport
la mii de alte categorii de obiecte c are se găsesc frecvent în imagini. Vision API se
îmbunătățește în timp, introducând noi concepte și îmbunătățind acuratețea.
35
Bibliografie
https://docs.google.com/document/d/1Y -yZnNhMYy7rwhAgyL_pfa39RsB –
x2qR4vP8saG73rE/edit 08:10 08.07.2017
https://www.robofun.ro/raspberry -pi-v3 08:43 08.07.2017
https://www.engineersgarage.com/electronic -compo nents/l293d -motor -driver -ic 08:
08.07.2017
https://business.tutsplus.com/tutorials/controlling -dc-motors -using -python -with-a-raspberry –
pi–cms-20051 08.07.2017
https://www.optimusdigital.ro/prototipare -breadboard -uri/8 -breadboard -830-points.html
08.07.2017
https://www.okazii.ro/camer -259-pentru -raspberry -pi-cu-vedere -pe-timp-de-noapte -x219 -i-
focalizare -reglabil -259-a18607 5076 08.07.2017
https://ro.wikipedia.org/wiki/Python 08.07.2017
https://en.wikipedia.org/wiki/Machine_learning#cite_note -bishop2006 -24 08.07.2017
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: Sistem de orientare si [616270] (ID: 616270)
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.
