Cuprins
- 1. Introducere 6
- 1.1. Motivația alegerii proiectului 6
- 1.2. Organizarea proiectului 6
- 2. Prezentarea proiectului 8
- 3. Fundamente teoretice 13
- 3.1. Raspberry Pi 13
- 3.1.1. Hardware 13
- 3.1.1.1. GPIO 13
- 3.1.1.2. Porturile USB, Ethernet și HDMI 14
- 3.1.1.3. Alimentarea electrică 15
- 3.1.1.4. Audio și video 15
- 3.1.1.5. Clock în timp real 16
- 3.1.1.6. CSI și DSI 16
- 3.1.1.6.1. Camera Raspberry Pi 16
- 3.1.1.6.2. Afișajul Raspberry Pi 17
- 3.1.2. Software 17
- 3.1.3. Raspberry Pi în industrie 19
- 3.1.4. Ramura educațională 19
- 3.2. Node.js 20
- 3.2.1. Mediile Node hosting 20
- 3.2.2. Blocuri Node 20
- 3.2.2.1. Obiectele global și process 20
- 3.2.2.2. Buffer, JSON, Vectori 23
- 3.2.2.3. Callback Node și Evenimente asincrone 24
- 3.2.2.3.1. The event queue (Loop) 24
- 3.2.2.3.2. Crearea unei funcții asincrone callback 27
- 3.2.3. Node Package Manager (NPM) 29
- 3.2.4. Node si Web-ul 33
- 3.2.4.1. Modulul HTTP: Server și Client 33
- 3.2.4.2. Web Server Static 36
- 3.2.5. Networking, Sockets și Securitate 37
- 3.2.5.1. Server, Stream și Socket 37
- 3.2.5.2. Socket TCP și Servere 38
- 3.2.6. Node în noile medii de dezvoltare 40
- 3.2.6.1. Samsung IoT și GPIO 41
- 3.2.6.2. Node pentru Microcontrolere și Microcalculatoare 41
- 4. Proiectarea aplicației 43
- 4.1. Proiectare inițială 43
- 4.1.1. Sistemul de operare Raspberry Pi 43
- 4.1.1.1. Scrierea sistemului de operare pe cardul de memorie 44
- 4.1.2. Aplicația aprindere led 45
- 4.1.3. Aplicație aprindere led prin comandă server 47
- 4.2. Dezvoltare proiect de licență 51
- 4.2.1.1. Poziția a două puncte alăturate 54
- 4.2.1.2. Analiza și transmiterea datelor 59
- 4.2.1.3. Funcții JavaScript 65
- 5. Etape în proiectare și probleme întâmpinate 67
- 5.1. Desenarea traseului 67
- 5.2. Comunicația între clienți 68
- 5.3. Preluare și prelucrare coordonate 70
- 5.4. Transmitere JSON 72
- 5.5. Probleme întâmpinate și modalități de soluționare 75
- 6. Concluzii și perspective de dezvoltare 76
- 6.1. Concluzii 76
- 6.2. Perspective de dezvoltare 76
- Bibliografie 77
- Anexe 78
Extras din licență
1. Introducere
Într-o lume din ce în ce mai automatizată mașinăriile joacă un rol foarte important în viața oamenilor. Omenirea a căutat dintotdeauna să își ușureze viața și, începând cu bine-cunoscuta roată care a fost piatra de temelie a inovației, s-a dezvoltat ramura IT cu o ascensiune mult mai mare în comparație cu celelalte ramuri.
Procesul de automatizare oferă o precizie crescută în condiții inițiale, înlocuind majoritatea acțiunilor repetitive. Programul care stă la baza acestor activități este conceput într-o manieră care permite modificarea acestuia și adaptarea la noile cerințe ale clientului.
O activitate digitizată este comanda. Sistemele flexibile bazate pe un PLC sunt folosite în locul legăturilor fizice dintre senzori și alte elemente de execuție. Cum secolul vitezei grăbește orice, este nevoie de un sistem care să răspundă în timp real, comanda executându-se în momentul în care aceasta este creată. Acesta este unul dintre motivele pentru care această ramură a reprezentat un interes pentru mine.
1.1. Motivația alegerii proiectului
Consider că acțiunile făcute în timp real constituie un mare avantaj în procesele tehnologice și sporesc productivitatea în toate domeniile. Comanda motoarelor făcută de către un operator instruit poate da rezultate imediate și de o calitate superioară. Pentru o programare corectă, este nevoie de o interfață ușor accesibilă, intuitivă, astfel încât orice operator să poată lucra cu aceasta, luând decizii corecte în orice situație.
Obiectivul acestui proiect este proiectarea unei unități de comandă a unui motor pas cu pas folosind mini-calculatorul Raspberry PI. Interfațarea se va face prin intermediul unei aplicații web utilizând Node.js și Java Script. Pe lângă acestea se vor adăuga module care vor facilita prelucrarea datelor cum ar fi sockets.io, express, p5 și alte asemenea module.
1.2. Organizarea proiectului
Proiectul va fi organizat în mai multe capitole în care se vor dezvolta etapele în care acesta a fost realizat.
Primul capitol cuprinde introducerea în proiect și este format dintr-o parte introductiva în tema proiectului și două subcapitole:
- Motivația alegerii proiectului - convingeri și argumente
- Organizarea proiectului - scurt rezumat al structurii
Al doilea capitol este denumit Prezentarea proiectului și cuprinde rezumatul lucrării cu informațiile de bază.
Următorul capitol poartă numele de Fundamente teoretice și cuprinde două subcapitole principale care descriu Raspberry Pi și Node.js. În cele două subcapitole se regăsesc informații cu privire la aspectele hardware ale Raspberry Pi-ului: portul GPIO cu descrierea pinilor, porturile USB, Ethernet și HDMI, alimentarea electrică, audio și video, clock în timp real, CSI și DSI. Software-ul și utilizarea Raspberry-ului în mai multe domenii încheie subcapitolul cu o privire de ansamblu.
În cel de-al doilea subcapitol sunt analizate Mediile Node hosting, Blocurile Node, Managerul de pachete Node, Networking, Sockets și securitate și se încheie cu utilizarea Node.js în noile medii de dezvoltare.
Capitolul numărul patru este denumit Proiectarea aplicației în care se detaliază toți pași care s-au urmat pentru realizarea proiectului. Acesta este format din două subcapitole dintre care primul cuprinde acțiunile inițiale pentru obținerea unor cunoștințe care vor servi la proiectare. Cele două aplicații din cadrul acestui subcapitol conțin cunoștințe cu privire la conexiunile dintre componentele fizice ale aplicației finale. Al doilea subcapitol cuprinde toate fazele de execuție.
Urmează capitolul Etape în proiectare și probleme întâmpinate și include un sumar al stadiilor de proiectare structurate în subcapitole precum și rezultate din execuție: Desenarea traseului, Comunicația între clienți, Preluare și prelucrare coordonate, Transmitere JSON, Probleme întâmpinate și modalități de soluționare.
Ultimul capitol se intitulează Concluzii si perspective de dezvoltare și cuprinde potențiale căi de dezvoltare care se pot face pe viitor.
De asemenea proiectul cuprinde Bibliografie în care sunt enumerate sursele de inspirație folosite la realizare.
Lucrarea se încheie cu Anexe, la care se atașează codul aplicației complet.
Bibliografie
[1] Cătălin Nițu (2018), Raspberry Pi 3 Model B+, go4it.ro, Online: http://www.go4it.ro/componente-pc/raspberry-pi-3-model-b-vine-cu-un-procesor-mai-puternic-si-antene-wireless-performante-17063690/ , dată accesare: 21.03.2018
[2] Raspberry Pi (2018), Online: https://en.wikipedia.org/wiki/Raspberry_Pi, dată accesare: 23.03.2018
[3] Raspberry Pi (2018), Online: https://en.wikipedia.org/wiki/Raspberry_Pi#Peripherals , dată accesare: 25.03.2018
[4] Camera Module, Online: https://www.raspberrypi.org/documentation/hardware/camera/README.md , dată accesare: 28.03.2018
[5] Raspberry Pi Display, Online: https://www.raspberrypi.org/documentation/hardware/display/README.md, dată accesare: 28.03.2018
[6] Industrial use of the Raspberry Pi , Online: https://www.raspberrypi.org/documentation/hardware/industrial/README.md, dată accesare: 28.03.2018
[7] Compute Module Datasheet (2016), Version 1.0, pag 20, Online: https://www.raspberrypi.org/documentation/hardware/computemodule/RPI-CM-DATASHEET-V1_0.pdf, dată accesare: 29.03.2018
[8] Node.js and Raspberry Pi, Online: https://www.w3schools.com/nodejs/nodejs_raspberrypi.asp, dată accesare: 2.04.2018
[9] INSTALLING OPERATING SYSTEM IMAGES Online: https://www.raspberrypi.org/documentation/installation/installing-images/README.md, dată accesare: 2.04.2018
[10] W3Schools , www.w3schools.com, dată accesare: 10.04.2018
[11] Node in a nutshell,
Preview document
Conținut arhivă zip
- Sistem de comanda cu Raspberry PI.docx