Post on 22-Oct-2021
Informatică Aplicată II
Controller, Computer
Metode de gestionare ale etapelor de lucru
Universitatea Tehnică de Construcții București
Facultatea de Utilaj Tehnologic
SCOP
Se exersează modalităţile generice de abordare și de realizare a conexiunilor în ceea ce priveşte tratarea problemelor tehnice inginerești din punctul de vedere al informaticii aplicate, (diverse abordări).
Controller vs. Computer
Arduino Uno
Arduino Mega
Mini Maestro
Raspberry Pi
Onion Omega 2Plus
NanoPC T3
• Exemple de controller-e
Arduino Uno
Sursa foto: https://www.amazon.com/Arduino-A000066-ARDUINO-UNO-R3/dp/B008GRTSV6
o controller Atmel 8-bit, 14 pini de intrare/iesire (input/output) pentru semnal digital, din care 6 suporta Pulse Width Modulation (modulatie in latime de puls), 6 pini de intrare pentru semnal analog, oscilator local (cristal cuart) cu frecventa de 16MHz, conexiune USB, alimentare externa prin mufa jack, conector ICSP (In Circuit Serial Programming), buton de reset.
• Exemple de controller-e
Arduino Mega
Sursa foto: https://www.amazon.com/SmartProjects-Mega-Arduino-MEGA-Board/dp/B004A7H3DG
o controller Atmega 2560 8-bit, 54 pini de intrare/iesire (input/output) pentru semnal digital, din care 15 suporta Pulse Width Modulation (modulatie in latime de puls), 16 pini de intrare pentru semnal analog, 4 porti de comunicatie UART (hardware serial port), oscilator local (cristal cuart) cu frecventa de 16MHz, conexiune USB, alimentare externa prin mufa jack, conector ICSP (In Circuit Serial Programming), buton de reset.
• Exemple de controller-e
Mini Maestro Servo Controller
Sursa foto: https://www.pololu.com/product/1354
o controller pentru servomotoare si placa pentru signal input/output de uz general, trei metode de control (Universal Serial Bus – USB, Time To Live – TTL 5V serial si script proprietar), dimensiuni reduse.
• Exemple de computer
Raspberry Pi
Sursa foto: https://en.wikipedia.org/wiki/Raspberry_Pi
o computer single-board, Broadcom SoC (System on a chip), procesor ARM, GPU, frecventa procesor de la 700MHz la 1,4GHz, memorie proprie 256MB la 1GB, stocare pe cartele SD (MicroSDHC), una la patru porti USB, video output HDMI si composite, Bluetooth.
• Exemple de computer
Onion Omega2 Plus
Sursa foto: https://www.amazon.co.uk/Omega2-Plus-Linux-Computer-Wi-Fi/dp/B01N6PO7V2/ref=sr_1_1/257-8244819-5612807?ie=UTF8&qid=1550640183&sr=8-1&keywords=Onion+Omega2
o computer single-board, sistem de operare bazat pe Linux, procesor la 580MHz, memorie 128MB, capacitate stocare 32MB, doua porti USB2.0, Wifi, un sfert din caracteristicile geometrice ale Rapsberry Pi.
• Exemple de computer
NanoPC T3
Sursa foto: https://all3dp.com/1/single-board-computer-raspberry-pi-alternative/#nanopc-t3-plus
o computer single-board, procesor octa-core Samsung Cortex-A53, frecventa de lucru 400MHz-1,4GHz, 2GB DDR3 RAM, sisteme de operare: Android, Debian, UbuntuCore.
Arduino Uno
Dispunere terminale. Semnificatie acronime
Sursa foto: http://full-parts.com/arduino-uno-r3.html
Arduino Uno
Dispunere terminale. Semnificatie acronime
Sursa foto: http://full-parts.com/arduino-uno-r3.html
I2C (bus) – (IIC), Inter-Integrated Circuit, protocol de comunicare bazat pe adrese ale componentelor cuplate. SPI (bus) – Serial Peripheral Interface, protocol sincron de comunicare serial, numit si bus serial cu patru fire. Interrupt – un semnal adresat procesorului de partea hardware sau software a sistemului, semnal ce indica necesitatea imediata a luarii unei decizii la nivel logic. GPIO – General Purpose Input/Output, interfata standard utilizata a conecta microcontroller-e la diverse etaje sau dispozitive electronice.
Arduino Nano
Dispunere terminale. Semnificatie acronime
Sursa foto: http://www.circuitstoday.com/arduino-nano-tutorial-pinout-schematics
Arduino Nano Shield
Sursa foto: http://3dmodularsystems.com/en/arduino/410-arduino-nano-io-expansion-board-shield.html
Arduino Uno Shield
Sursa foto: arhiva personala
Arduino Pro Mini
Dispunere terminale. Semnificatie acronime
Sursa foto: https://www.engineersgarage.com/electronic-components/arduino-pro-mini-pinout http://roboromania.ro/wp-content/uploads/2016/12/FTDI-FT232RL-USB-TTL-Serial-Converter-Adapter-Module-5V-3v-roboromania.jpg
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare
Sursa: pozitia 1, bibliografie
programare : Transpunerea unor operatii repetitive, asupra unui set de date, intr-un limbaj inteligibil de catre un sistem de calcul care urmeaza ulterior sa le execute, astfel: • trecere de la problema reala la limbajul de programare – om; •transpunerea codului sursa (insiruiri de instructiuni specifice limbajului respectiv), intr-un cod direct executabil (inteligibil sistemului de calcul) – programe specifice numite compiler-e (compilatoare).
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare
Sursa: pozitia 1, bibliografie
limbaj C: • dezvoltat in 1972 de catre Dennis M. Ritchie la Laboratoarele AT&T Bell; versiunile C++, Visual C++ si C#, intre cele mai utilizate la ora actuala. • permite doua tehnici de programare: programare structurata si acces direct la masina
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
Keywords - cuvinte cheie limbaj C
auto break case char const continue default do double else enum extern float for goto if
int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
limbaj C++
asm bool catch class delete friend inline mutable namespace new
operator private public protected template this using virtual
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tip de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
Tip de date – precizeaza: • multimea de valori pe care variabila respectia le poate lua; • setul de operatii pe care programatorul le poate efectua cu acea variabila.
Exemple: char – retine un singur caracter: “A”, “a”, “%”; int – integer, retine numere intregi cu semn: “23”, “-48”, “0”; float – retine numere reale in format cu virgula mobila, patru zecimale (simpla precizie):”-8.4529”; void – tip special de date ce nu specifica un anumit set initial de valori, dar poate fi specificat ulterior declararii
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
In memoria calculatorului, valorile de orice tip se reprezinta in cod numeric ASCII (American Standard Code for Information Interchange); pot lua valori intre 0 si 255
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
Constante, date a caror valoare nu poate fi modificata in timpul executiei programului: •constanta intreaga – o insiruire de cifre, pot fi constante zecimale (exprimate in baza 10): 23, 256, 18546, etc., constante octale (exprimate in baza 8): , constante hexazecimale (exprimate in baza 16): 0xsir de cifre…, const. intreaga se reprezinta pe 16 sau 32 biti. •constanta flotanta – parte intreaga.parte fractionara e exponent: 2.1e5, const. flotante se reprezinta pe 16 biti. •constanta caracter – caracter intre apostrofuri, se reprezinta pe 8 biti. •constanta sir sau sir de caractere – succesiune de caractere scrise intre ghilimele.
2 1 0
8O437 4*8 3*8 7*8
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
exprimare in baza 10 (decimal) – fiecare digit are zece valori posibile: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
exprimare in baza 16 (hexadecimal ) – fiecare digit are 16 valori posibile: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
bit
Byte
0 0 0 0 1 1 0 1
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
exprimare in baza 10 (decimal) – fiecare digit are zece valori posibile: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
10000 1000 100 10 1
2 4 4
sau 2 100 4 10 4 244;
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
128 64 32 16 8 4 2 1
1 1 1 1 0 1 0 0
sau 128 64 32 16 4 244;
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
8 bit
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1
sau 128 64 32 16 8 4 2 1 255;
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
8 bit – valoare maxima
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
/ 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1
sau / 64 32 16 8 4 2 1 / 127;
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
8 bit – valoare maxima
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
11 11 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 111 1 1 1 1
exprimare in baza 2 (binar) – fiecare digit are doua valori posibile: 0, 1
32 bit – valoare maxima
…= 2 147 483 647
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
Variabile – o denumire (identificator) pe care compilatorul o asociaza unei anumite zone din memorie, numele nu poate sa inceapa cu cifra, limbajul C este case sensitive, asadar face diferenta intre minuscule si majuscule: •variabile simple: tip nume_variabila. •variabile tablou – multime ordonata de acelasi tip: tip nume_tablou[dimensiune].
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Tipuri de date. Variabile. Constante
Sursa: pozitia 1, bibliografie
Comentariu (comment) – portiune de text ce nu este luat in considerare de compilator; se utilizeaza pentru clarificarea diverselor zone din script sau pentru eliminarea (cu caracter temporar, eventual), a uneia ori mai multor instructiuni din programul rulat: • /*comment*/ ; • //comment - cazul unei singure linii de cod.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Operatori
Sursa: pozitia 1, bibliografie
Expresii O expresie poate sa fie un operand sau mai multi operanzi legati prin operatori. Orice expresie se caracterizeaza prin tip si valoare, caracteristici obtinute dupa evaluarea expresiei.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Operatori
Sursa: pozitia 1, bibliografie
Operatori Sunt caracterizati prin asociere de la stanga la dreapta, mai putin cazul operatorilor unari (se aplica la un singur operand), celor relationali si de atribuire, la care asocierea se face de la dreapta la stanga: • aritmetici; • relationali; • de egalitate; • logici; • logici pe biti; • de atribuire; • de incrementare si decrementare; • de conversie explicita (cast); • de lungime (sizeof); • conditional; • virgula.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Operatori
Sursa: pozitia 1, bibliografie
Operatori aritmetici: + adunare; - scadere;
* inmultire; / impartire;
% rest (al impartirii); + adunare unara; - scadere unara
pentru int i=9, j=2; i/j rezultat 4, i%j rezultat 1.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Operatori
Sursa: pozitia 1, bibliografie
Operatori relationali – prin aplicarea op. relationali se obtin doua valori posibile in cazul evaluarii expresiilor ce-i contin, 0 (fals), respectiv 1 (adevarat):
< mai mic; <= mai mic sau egal;
> mai mare; >= mai mare sau egal.
pentru int i=3, j=8; i < j rezultat 1, i >= j rezultat 0.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare C++ - Operatori
Sursa: pozitia 1, bibliografie
Operatori de egalitate – prin aplicarea op. de egalitate se obtin doua valori posibile in cazul evaluarii expresiilor ce-i contin, 0 (fals), respectiv 1 (adevarat):
== egal; != diferit
pentru int i=3, j=9, k=3; i != j rezultat 1, i == j rezultat 0, i==k rezultat 1.
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare
Sursa foto: arhiva personala
Generic, o aplicatie software ce permite multiple facilitati programatorilor in scopul dezvoltarii software; se compune dintr-un editor de cod sursa (source code editor), unelte de automatizare a procesului (build automation tools) si un tester/ unealta de diagnoza (debugger).
Arduino IDE Integrated Development Environment
Mediu integrat de dezvoltare
Sursa foto: arhiva personala Referinta: https://www.arduino.cc/en/main/software
Arduino IDE
Integrated Development Environment
Mediu integrat de dezvoltare
Portiunea de cod din sectiunea de initializare, contine eventualele “librarii”, script-uri elaborate in limbaj C ori C++ (terminatie .c, .cpp), ce ofera functionalitate extinsa “sketch-ului” (programului propriu) utilizat – o consecinta imediata o reprezinta simplificarea acestuia.
Sursa foto: arhiva personala Referinta: https://www.arduino.cc/en/Main/Products
Arduino IDE
Integrated Development Environment
Mediu integrat de dezvoltare
Portiunea de cod din sectiunea “setup” se ruleaza o singura data, in momentul alimentarii placii (sau la apasarea butonului “reset”).
Sursa foto: arhiva personala Referinta: https://www.arduino.cc/en/Main/Products
Arduino IDE
Integrated Development Environment
Mediu integrat de dezvoltare
Portiunea de cod din sectiunea “loop” se ruleaza continuu, pana la momentul intreruperii alimentarii placii (la reluarea ulterioara a alimentarii placii controller, se va rula in mod automat ultimul program (sketch) studiat, program stocat in memoria controller-ului).
Sursa foto: arhiva personala Referinta: https://www.arduino.cc/en/Main/Products
Ardublock
Integrated Development Environment
Mediu integrat de dezvoltare
Un exemplu de extensie GUI pentru programarea Arduino – (visual) graphical programming add-on
Sursa foto: arhiva personala Referinta: https://learn.sparkfun.com/tutorials/alternative-arduino-interfaces/all
mBlock
Integrated Development Environment
Mediu integrat de dezvoltare
Un alt exemplu de extensie GUI pentru programarea Arduino – (visual) graphical programming add-on – educatie copii
Sursa foto: arhiva personala Referinta: https://learn.sparkfun.com/tutorials/alternative-arduino-interfaces/all
REZUMAT
• Controller versus Computer
•Integrated Development Environment
BIBLIOGRAFIE
1. Adrian Runceanu, Programarea calculatoarelor, Universitatea “Constantin Brancusi” Targu Jiu, Fac. Inginerie, 2014
www.runceanu.ro/adrian/