Microcontrollere și Microprocesoare

Nivel: Licență · Titular: Tiberiu Cociaș

Curs despre sisteme bazate pe microcontrolere: arhitectura internă, programare, porturi I/O, sistemul de întreruperi, module timer, conversie analog-numerică, comunicație serială (UART/USART, RS-232/RS-485) și proiectarea de aplicații embedded complete, ilustrate prin proiectul GT Robot.

Suportul de curs

Materiale de curs

  1. Introducere în Sistemele cu Microcontrolere - Ce este un sistem cu microcontroler, senzori și actuatori, schema bloc, sisteme fixe vs. reconfigurabile și platforma Arduino. PDF
  2. Arhitectura unui Microcontroler - Biți, octeți și regiștri cu funcții speciale, tipuri de memorie (SRAM/Flash/EEPROM), ALU și setul de instrucțiuni, arhitectura ATmega328P, oscilator și alimentare. PDF
  3. Programarea unui Microcontroler - Lanțul de unelte de la sursă la fișierul hex, formatul Intel HEX, bootloader și programare ISP, ASM vs. C vs. C++ și depanare hardware. PDF
  4. Porturi de Intrare și Ieșire - Structura internă a unui pin digital, regiștrii DDRx/PORTx/PINx, eșantionare și metastabilitate, rezistoare de pull-up și protecția pinilor. PDF
  5. Sistemul de Întreruperi - Interogare vs. întreruperi, tabelul vectorilor de întrerupere, priorități, variabile partajate și condiții de cursă, debounce prin întreruperi. PDF
  6. Module de Tip Timer - Moduri de lucru ale timerelor, prescalare, generarea PWM și capturarea evenimentelor, ilustrate cu măsurarea distanței cu ultrasunete. PDF
  7. Convertorul Analog-Numeric - Eșantionare și aliere, eroarea de cuantizare, tensiunea de referință, arhitecturi de convertoare și modulul ADC al ATmega328P. PDF
  8. Comunicația Serială Asincronă - Formatul cadrului UART, bugetul de eroare al ratei de transfer, recepție prin întrerupere cu tampon circular, RS-232 și RS-485. PDF
  9. Magistralele Sincrone: SPI și I²C - Adresarea și tranzacțiile I²C prin colector deschis, mecanismul registrului de deplasare al SPI și modurile de ceas, modulele SPI/TWI ale ATmega328P. PDF
  10. Proiectarea și Testarea Aplicațiilor cu Microcontrolere - De ce eșuează proiectele, caiet de sarcini, partiționarea sistemului, mașina cu stări finite, testare și depanare sistematică. PDF
  11. Studiu de Caz: Robotul GT - Un robot complet care urmărește o linie: buget de resurse, comanda motoarelor, odometrie din encodere și lecțiile de pe teren. PDF

Lucrări de laborator

  1. Introducere - limbajul C, Arduino IDE, Arduino Hardware PDF
  2. 1B. Programare embedded - lucrul cu biți și regiștri PDF lucrare pregătitoare
  3. Portul digital de intrare-ieșire PDF
  4. Sistemul de întreruperi PDF
  5. Modulul de măsurare a timpului (Timer) PDF
  6. Convertorul analog-numeric (ADC) PDF
  7. Comunicația serială PDF
  8. Aplicații practice - stație meteo, control motor DC, wireless, măsurarea distanței PDF

Îndrumarul complet

Programarea Calculatoarelor și Limbaje de Programare

Nivel: Licență · Titular: Tiberiu Cociaș

Introducere în programarea orientată pe obiecte, predată ca paralelă practică între C++ și Python: clase și obiecte, moștenire, polimorfism, încapsulare, abstractizare, șabloane/generice și principalele design patterns (Singleton, Factory, Builder, Adapter, Decorator, Observer, Strategy și altele), încheiat cu bune practici de programare și depanare.

Cartea de curs

Capitole

  1. Introducere în Programarea Orientată pe Obiecte
  2. Fundamentele C++
  3. Fundamentele Python
  4. Clase și obiecte
  5. Conceptul de moștenire
  6. Conceptul de polimorfism
  7. Conceptul de încapsulare
  8. Conceptul de abstractizare
  9. Concepte de design patterns
  10. Practici uzuale în programare

Lucrări de laborator

  1. Noțiuni introductive C/C++ PDF
  2. Constante. Variabile. PDF
  3. Operații de intrare/ieșire pentru consolă PDF
  4. Operatori și expresii PDF
  5. Instrucțiuni (1) - algoritmi și decizii PDF
  6. Instrucțiuni (2) - structuri repetitive PDF
  7. Tablouri de date PDF
  8. Variabile pointeri. Variabile referințe. PDF
  9. Alocare dinamică de memorie PDF
  10. Funcții în C/C++ PDF
  11. Tipuri de date definite de utilizator PDF
  12. Operații de intrare/ieșire. Fișiere. PDF
  13. Operații I/O în C++. Clase și obiecte. PDF

Rețele Locale

Nivel: Licență · Titular: Tiberiu Cociaș

Rețele locale, de la transmisia fizică la securitatea rețelei. Cursul este publicat ca douăsprezece pagini interactive scrise pentru acest site, fiecare cu diagramele, exemplele rezolvate și întrebările ei de verificare, plus șapte lucrări de laborator care se pot face fie direct în browser, pe un emulator de rețea scris pentru acest site, fie în Cisco Packet Tracer.

Suportul de curs

Paginile de curs

  1. Transmisiuni analogice și digitale - Rețele și protocoale, stivele OSI și TCP/IP, nivelul fizic, codări de linie și modulații. PDF
  2. Medii de transmisie - Cupru, fibră și wireless, cablare structurată, multiplexare și performanța legăturii. PDF
  3. Nivelul legătură de date - Cadrul Ethernet, adresarea MAC, CSMA/CD, domenii de coliziune și broadcast, comutarea. PDF
  4. Optimizarea rețelelor locale - VLAN-uri, trunk 802.1Q, rutare inter-VLAN, Spanning Tree și EtherChannel. PDF
  5. Protocolul IP - Antetul IPv4, subnetare, VLSM, adrese private, ARP și DHCP. PDF
  6. Rutare - Tabela de rutare, cea mai lungă potrivire, distanța administrativă, rute statice și sumarizare. PDF
  7. Liste de acces - Liste standard și extinse, măști wildcard, reguli de plasare, liste cu nume și reflexive. PDF
  8. Securizarea rețelei - Nivelul transport, firewall-uri, filtrare cu iptables și criptografia din spatele SSH. PDF
  9. NAT și tunelare - NAT static, dinamic și PAT, tuneluri GRE și SSH, adresare IPv6 și 6to4. PDF
  10. Rutare dinamică - Protocoale link-state, Dijkstra în practică, OSPF single-area și multi-area. PDF
  11. Rețele wireless - Familia 802.11, spreading și modulație, acces la mediu cu CSMA/CA, WPA2 și WPA3. PDF
  12. Securitatea LAN și atacuri de rețea - CAM overflow, ARP poisoning, VLAN hopping, atacuri STP - și configurațiile care le opresc. PDF

Lucrări de laborator

Șapte lucrări de câte două ore, fiecare construită peste cea dinainte. Fiecare pagină conține lista de echipamente, topologia, configurația IOS completă cu ieșirea așteptată a fiecărei comenzi, sarcini de lucru, o provocare și întrebări de verificare - plus un banc de lucru încorporat, cu rutere și switch-uri simulate, ca laboratorul să se poată face în browser, fără să se instaleze nimic.

  1. Primii pași: topologie, adresare și primul ping PDF fără instalare cursurile 1–3
  2. Comutarea în LAN: tabela MAC, ARP, domenii PDF fără instalare cursul 3
  3. VLAN-uri, trunk și rutare inter-VLAN PDF fără instalare cursul 4
  4. Plan de adresare: subnetare, VLSM și DHCP PDF fără instalare cursul 5
  5. Rutare statică și OSPF PDF fără instalare cursurile 6 și 10
  6. Liste de acces și NAT PDF fără instalare cursurile 7 și 9
  7. Securitate LAN și rețea wireless PDF fără instalare cursurile 8, 11 și 12

Unelte interactive

Paginile conțin calculatoare și simulatoare construite pentru acest curs: generator de forme de undă pentru codări de linie, calculator de subrețea și VLSM, simulator al tabelei MAC a unui switch, consultarea tabelei de rutare, evaluator de liste de acces, testor de mască wildcard, tabelă PAT, convertor de adrese IPv6, algoritmul lui Dijkstra pe o topologie editabilă și calculator de Spanning Tree.

De ce aveți nevoie. Toate laboratoarele rulează în Cisco Packet Tracer 8.2 sau mai nou, disponibil gratuit cu un cont Cisco Networking Academy. Nu este nevoie de niciun echipament fizic.

Sisteme Încorporate

Nivel: Licență · Titular: Tiberiu Cociaș

Un curs complet despre sisteme încorporate: de la arhitectura calculatoarelor și procesoare ARM la consum energetic, tehnici de optimizare energetică, execuție în timp real și RTOS, sisteme reconfigurabile, energy harvesting și Internet of Things.

Cartea de curs

Capitole

  1. Introducere în Sistemele Încorporate - Ce este un sistem embedded, caracteristici fundamentale, domenii de aplicare, constrângeri de proiectare, clasificare și tendințe IoT. PDF
  2. Arhitectura Sistemelor de Calcul - ISA, modele de adresare, CISC vs. RISC și ecuația de performanță a procesorului. PDF
  3. Arhitectura Memoriei și Procesoarele ARM - von Neumann vs. Harvard, familia ARM, registre, pipeline și moduri de execuție. PDF
  4. Consumul de Energie în Sistemele Embedded - Putere, energie, profil de consum, DVFS și tehnici hardware de reducere a consumului. PDF
  5. Tehnici de Optimizare a Consumului Energetic - Paralelism și legea lui Amdahl, VLIW, acceleratoare și managementul dinamic al puterii. PDF
  6. Software Power Management și Optimizarea Energetică la Nivel Software - Optimizare la nivel de algoritm și memorie, politici software de gestiune energetică. PDF
  7. Modele de Execuție și Planificare în Sistemele Embedded de Timp Real - Corectitudine temporală, stările unui task, Rate Monotonic Scheduling și Earliest Deadline First. PDF
  8. Sincronizare, Arhitecturi de Kernel și RTOS-uri pentru Sisteme Embedded - Mutex-uri și semafoare, inversiunea de prioritate, arhitecturi de kernel și alegerea unui RTOS. PDF
  9. Sisteme Reconfigurabile și Accelerare Hardware pentru Aplicații Embedded - Arhitectura FPGA, LUT-uri, fluxul de proiectare hardware și partiționarea hardware/software. PDF
  10. Energy Harvesting și Sisteme Embedded Autonome Energetic - Surse fotovoltaice, termoelectrice, vibraționale și RF, management al puterii și dimensionarea stocării. PDF
  11. Internet of Things și Rețele de Dispozitive Inteligente - Arhitectura IoT, topologii de rețea, tehnologii de comunicație, MQTT/CoAP și securitatea dispozitivelor. PDF

Laboratoare

Cinci lucrări practice, fiecare construită în jurul unui proiect care funcționează la final. Fiecare pagină conține teoria necesară, montajul, codul complet, simulatoare interactive, sarcini de lucru și întrebări de verificare.

  1. Banc de test energetic pe Raspberry Pi 5 și Pi 3 PDF Raspberry Pi 5 / Pi 3 + LCD cap. 4–6
  2. Stările de consum și autonomia unui nod ESP32-C6 PDF ESP32-C6 cap. 4, 5, 10
  3. Sisteme de operare în timp real: firmware pe un ceas open source PDF PineTime + InfiniTime cap. 7–8
  4. Nod IoT complet: de la senzor la panou de comandă PDF ESP32-C6 + Pi 5 cap. 11
  5. Accelerare hardware: același algoritm, de zece ori mai repede PDF Raspberry Pi 5 · ARM NEON cap. 9

Componente de achiziționat

Lista consolidată pentru toate cele cinci lucrări. Un singur set acoperă o grupă care lucrează pe echipe.

ComponentăBuc.NecesitateFolosită la
Raspberry Pi 5 (4 sau 8 GB) + alimentator 27 W + răcitor activ1esențiallaboratoarele 1, 4, 5
ESP32-C6-DevKitC-12esențiallaboratoarele 2 și 4 - două bucăți pentru a demonstra o rețea reală
PineTime (varianta sigilată)1esențiallaboratorul 3 - se actualizează prin Bluetooth, fără programator
Modul INA219 sau INA226 (I²C)2esențialmăsurarea consumului la laboratoarele 1, 2 și 5
Afișaj LCD 16×2 cu adaptor I²C1esențialaveți deja unul; laboratoarele 1 și 4
Senzor BME280 (I²C)2esențiallaboratoarele 2 și 4
Card microSD 32 GB, clasa A21esențialsistemul de operare al plăcii Pi 5
Breadboard + set fire jumper2esențialtoate laboratoarele
Buton tactil + rezistoare 10 kΩ4esențialtrezirea prin pin, laboratorul 2
Suport 2×AA sau acumulator LiPo 1000 mAh2opționalalimentarea nodului pe baterie, laboratorul 2
Cablu magnetic de rezervă pentru PineTime1opționalcel inclus se pierde ușor
Osciloscop sau analizor logic ieftin1opționalvizualizarea vârfurilor de curent Wi-Fi

Materiale suplimentare