Menu   Conf. dr. Dănuţ Rusu


    Curriculum Vitae
    Teaching
    Research
    Programming

Contact

    drusu@uaic.ro
    +400232201225

Home

  www.math.uaic.ro  www.math.uaic.ro
  

Lucrări de licenţă


2023

  • Programare Python pe Raspberry Pi.
    Lucrarea constă în realizarea unei staţii meteo controlată printr-un Raspberry Pi. Staţia va conţine senzori de temperatură, umiditate, presiune, lumină, viteză şi direcţie a vântului. Datele înregistrate vor fi furnizate prin intermediul unui server web. Programarea serverului şi controlul senzorilor se va face în Python.

  • Grafică 3D în Java.
    Lucrarea constă în scrierea unei aplicaţii Java care să poată afişa în modul 3D o hartă turistică scanată. Aplicaţia va permite vizualizarea hărţii de la diverse altitudini, deplasarea peste hartă în orice direcţie şi navigarea automată la o înălţime fixă.

  • Programare Arduino pe microcontrolere ESP.
    Lucrarea constă în realizarea unui dispozitiv medical care să măsoare semnalele electrice ale inimii şi realizează o analiză asupra acestor date, furnizând un diagnostic orientativ. Programul va fi scris în Arduino IDE şi încărcat pe un microcontroler ESP8266 sau ESP32. Comunicarea cu acesta se va face printr-un server web.

  • Stabilitate şi automatism în deplasarea dronelor.
    Lucrarea constă în construcţia unei drone, controlată de un microcontroler ATmega328P, care va evita obstacolele prin intermediul a 6 senzori ultrasonici.

  • Orientare şi navigare automată în deplasarea dronelor.
    Lucrarea constă în construcţia unei drone, înzestrată cu GPS şi compas, capabilă să navigheze autonom pe un traseu dat.

2024

  • Interfaţă Java pentru formatul MIDI, cu posibilităţi creative.
    Lucrarea presupune realizarea în limbajul Java a unui sintetizator MIDI care să permită redarea şi modificarea parametrilor unui fişier MIDI printr-o interfaţă cu 16 canale. Programul va fi înzestrat cu o claviatură cu 6 octave, controlabilă cu ajutorul tastaturii, pe două manuale, care va simula automat melodia redată pe canalul curent. Prin diverse transformări matematice, programul va genera muzică nouă.

  • Robot Arduino pentru rezolvarea cubului Rubik.
    Lucrarea constă în realizarea unui robot înzestrat cu 6 motoare, controlate de un microcontroler, care să rotească automat feţele unui cub Rubik până când acesta este rezolvat. Starea iniţială a cubului poate fi introdusă manual, printr-un set de butoane, sau, în mod automat, prin intermediul unei camere şi a unui proces de recunoaştere de culori şi muchii.

  • Robot insectă autonom.
    Lucrarea constă în realizarea unui robot înzestrat cu 4 picioare, mişcate de servomotoare. Robotul se va deplasa autonom şi va evita obstacolele cu ajutorul unor senzori ultrasonici. Microcontrolerul utilizat va fi ESP32. Robotul va fi înzestrat cu un senzor de gaz şi un senzor de temperatură cu infraroşu. Periodic, datele colectate vor fi trimise la un server web. La detectarea unui incendiu sau a prezenţei gazelor, robotul va porni o alarmă prin intermediul unui buzzer şi va semnala pericolul pe serverul web, eventual va trimite un SMS.

  • Robot autonom pe două roţi.
    Lucrarea constă în realizarea unui robot care se deplasează pe două roţi. Poziţia robotului va fi determinată cu ajutorul unui giroscop şi a unui accelerometru. Datele primite de la aceşti senzori vor fi procesate de un microcontroler care va calcula cum şi cât se vor roti motoarele aşa încât robotul să-şi menţină poziţia verticală. Robotul se va deplasa autonom şi se va întoarce în faţa oricărui obstacol. Detectarea acestora se va face prin senzori ultrasonici. Robotul va fi înzestrat cu 2 senzori acustici care vor determina amplitudinea sunetelor ambientale şi, în funcţie de aceasta, se va roti către sursa sunetului. De asemenea, va fi înzestrat cu difuzoare prin care va reda o melodie, o carte audio sau va încerca să lege o conversaţie, fără pretenţia de a înţelege semantica informaţiei.

  • Aplicaţie Java pentru dezvoltarea atenţiei, memoriei şi a puterii de concentrare.
    Lucrarea constă în realizarea unei aplicaţii Java, organizată ca un joc, care va reda cu o anumită viteză literele unei fraze, una câte una. Frazele vor fi încărcate dintr-un fişier şi vor fi alese de către program aleatoriu. Din când în când, o literă va fi colorată în galben. Utilizatorul trebuie să memoreze fraza citită şi să numere literele colorate, informaţii care vor trebuie raportate la sfârşitul redării textului. În funcţie de acestea va primi o notă (un scor) şi eventual un premiu audio. Dificultatea poate creşte prin mărirea vitezei de redare, prin introducerea a două culori, prin derularea a două fraze în paralel, prin lungimea şi conţinutul textului redat. Psihologii au stabilit că un astfel de antrenament practicat zilnic poate determina creşterea gradului de atenţie şi de memorie de până la 2,7 ori. Programul va fi de asemenea util în prevenirea bolii Alzheimer.

2025

  • Transformări integrale și aplicații.
    Lucrarea constă în prezentarea transformatelor Fourier și Laplace, a proprietăților acestora și a unor aplicații. În paralel, va fi dezvoltat un program Java educațional care să permită generarea de semnale cu zgomot, trecerea acestora în domeniul frecvență, eliminarea frecvențelor ce reprezintă zgomotul și revenirea în domeniul timp. Programul va putea fi utilizat concret pe semnale acustice.

  • Spațiul culorilor.
    Lucrarea va prezenta diverse modalități de codificare a culorilor și aritmetica acestora. Va fi dezvoltată o aplicație Java care, plecând de la un număr de culori disponibile {CD}, scanate de pe tuburi de culori în ulei, și de la o culoare dată C, caută în înfășurătoarea liniară a mulțimii {CD} elementul de cea mai bună aproximare a lui C și determină pentru o suprafață cunoscută cantitățile necesare din fiecare culoare, suficiente pentru a umple suprafața, și ordinea de amestecare. Programul va permite încărcarea unei imagini pe suprafața de lucru, divizarea acesteia în suprafețe mici, în care culorile sunt apropiate, delimitarea grafică a acestora și afișarea informațiilor privind obținerea culorii, la un click de mouse pe fiecare suprafață.

  • Computer Vision și aplicații.
    Lucrarea constă în construcția și programarea unui dispozitiv care să ajute persoanele nevăzătoare. Dispozitivul va fi atașat de o centură elastică și va fi purtat la nivelul pieptului. Acesta va conține o placă Raspberry Pi, conectată la o cameră, 3 senzori ultrasonici și un senzor radar Doppler. Cum totul trebuie alimentat cu o baterie externă de capacitate mare, trebuie avut în vedere ca rezultatul final să fie un dispozitiv compact, ușor, comod de purtat și cât mai eficient energetic. Aplicația va fi scrisă în limbajul Python. Senzorii ultrasonici vor determina distanța până la obstacole apropiate (discutabil dacă vor fi folosiți sau nu), iar radarul Doppler este eficient până la 9 m. Există și varianta utilizării unui telemetru cu laser. Camera va prelua imagini (cu un FPS scăzut), iar programul va detecta în acestea o serie de obiecte. Telemetria ne va furniza distanța până la acestea. În interior va detecta pereții, ușile și diverse piese de mobilier. În exterior va detecta persoanele, mașinile, muchiile străzilor, etc. Se poate implementa și o recunoaștere facială, pentru un număr de fizionomii apropiate (membri ai familiei, prieteni, vecini, etc). Rezultatele descoperite de aplicație vor fi anunțate purtătorului prin mesaje audio.

  • Clasificarea semnalelor electrice ale creierului folosind mașini cu vectori suport.
    Lucrarea constă în realizarea unui dispozitiv de înregistrare EEG la un preț foarte mic și utilizarea acestuia pentru clasificarea semnalelor electrice produse de creier. Cagula va fi printată 3D, pentru 21 de electrozi, dar, la început vom utiliza doar 3 electrozi frontali. Aceștia vor fi conectați la un modul AD8232 modificat, care va fi conectat la rândul său la un microcontroler ESP32. Acesta va crea un webserver la care ne vom putea conecta cu laptop-ul. Datele vor fi transmise în timp real printr-un server WebSockets. Pe laptop, semnalul va fi filtrat și apoi segmentele de interes vor fi vectorizate. În continuare vom captura semnale EEG produse în timpul unei activităti motorii. Se vor forma mulțimi de vectori de învățare pe care vom încerca să le clasificăm folosind mașinile cu vectori suport. Pentru a găsi un nucleu potrivit, vom utiliza aplicația SVM dezvoltată la laboratorul de Inteligență artificială. Dacă am găsit mașina potrivită, clasificatorul va fi implementat în programul Arduino de pe ESP, iar acesta va identifica activitatea respectivă atunci când o vom efectua. La pasul următor vom încerca să clasificam semnalele produse atunci când ne gândim la o cifră, privim o floare, trăim o emoție, etc.

  • Programarea dronelor.
    Lucrarea constă în construcția unei drone experimentale care va fi folosită pentru testarea și îmbunătățirea algoritmilor de stabilitate. Aceștia, numiți și algoritmi PID (acronim ce provine de la Proporție-Integrală-Derivată), sunt esențiali în zborul stabil și în siguranță al unei drone, chiar și în condiții de vânt. Pentru fiecare dintre cele 3 axe (numite Pitch, Roll și Yaw) funcționează câte un algoritm PID. Aceștia sunt calculați în fiecare ciclu al sistemului de operare, de mii de ori pe secundă. Diferența dintre punctul de referință (setpoint) comandat prin RC (cât de repede dorim să se rotească drona în jurul unei axe) și datele furnizate de senzorul giroscop (cât de repede se rotește de fapt drona), se numește eroare. Dorim ca eroarea să ajungă cât mai repede la 0, iar lucrul acesta se face treptat, în mulți cicli de calcul. În funcție de rezultatele furnizate de PID, fiecare motor este turat separat mai mult sau mai puțin. Deci, ca să ajungem cât mai repede unde dorim, eroarea este înmulțită cu factorul constant P. Dacă P este prea mare, ajungem repede la punctul dorit, dar acesta va fi depășit. Acest lucru va produce oscilații și un zbor instabil. Dacă factorul P este prea mic, se ajunge la punctul dorit fără să-l depășim, dar mult mai încet. Această latență mare se adaugă la latența transmisiei video și la latența de reacție a pilotului și într-o situație critică, de apropiere foarte rapidă de un obstacol, poate fi fatală dronei. Oscilațiile produse de P pot fi atenuate prin creșterea factorului D (cu care este înmulțită derivata erorii). Acesta acționează ca un amortizor, dar, o valoare prea mare a lui D duce la o creștere a consumului energetic, la supraîncălzirea sau chiar arderea ESC-urilor și/sau a motoarelor. Un factor D prea mic va produce de asemenea oscilații, mai ales la intrarea dronei în turbulențele elicilor la coborârea pe verticală. Factorul I (coeficientul integralei erorii) este cel care "luptă" cu factorii externi (vântul sau un centru de greutate deplasat față de poziția giroscopului). Cu cât I este mai mare, drona este mai stabilă în vânt, dar o valoare prea mare produce de asemenea oscilații. O valoare prea mică face drona instabilă în vânt și necesită permanente corecții din partea pilotului. Prin urmare, pentru fiecare axă trebuie găsite valori cât mai bune ale parametrilor P, I și D. Cum de multe ori mișcările sunt compuse, cei 9 parametri trebuie optimizați împreună. Lucrul acesta este dificil si se face experimental, prin zeci de zboruri și analize de date. Prin această lucrare vom experimenta algoritmi în care P, I și D nu mai sunt valori constante, ci funcții și se modifică în timpul zborului. Vom implementa și testa algoritmul de control ZN (Ziegler-Nichols) și algoritmul ACD, inspirat de optimizarea traseului produsă de o colonie de furnici.

  • Calculabilitate pe spații metrice efectiv date.
    Lucrarea va face o introducere în calculabilitate, prin prezentarea concepului în general, pe domenii efectiv date. Va fi descris apoi un model computaţional pentru spațiile metrice complete efectiv date, care va fi adaptat la spațiile Banach efectiv date și particularizat la mulțimea numerelor reale. Va fi studiat conceptul de calculabilitate pe fiecare din aceste structuri.