Informatii generale
- Categorie: Roboti
- Judetul: Dolj
Descriere
TechTopus este un braț robotic bioinspirat, conceput ca răspuns tehnologic la două probleme distincte pe care robotica industrială clasică nu le rezolvă elegant: manipularea obiectelor fragile sau cu geometrie neregulată, respectiv intervenția în medii contaminate unde prezența umană directă este dificilă sau periculoasă. Proiectul se inspiră direct din morfologia și comportamentul cefalopodelor, în special al caracatiței, reproducând mecanic principiile de funcționare ale tentaculelor: flexibilitate distribuită, adaptare pasivă la forma obiectului manipulat și distribuție uniformă a forței pe suprafața de contact.Spre deosebire de gripperele rigide clasice, care operează pe principiul strângerii mecanice prin două sau trei degete metalice și necesită o formă compatibilă a obiectului, TechTopus utilizează un modul terminal cu șase tentacule flexibile fabricate integral din TPU 90A — un elastomer termoplastic durabil și rezistent la umiditate, cu proprietăți mecanice apropiate de cele ale țesuturilor biologice. Fiecare tentacul este acționat prin trei sfori de nylon tensionate independent, dispuse la 120° una față de alta pe secțiunea transversală. Această configurație oferă fiecărui tentacul trei grade de libertate reale, permițând mișcări curbilinii în orice direcție a spațiului, similar cu articulațiile continue ale unei tentacule biologice. Rezultatul este un mecanism care poate manipula fără reconfigurare mecanică obiecte extrem de diferite — de la o sticlă de plastic rigidă la o pungă flexibilă, o creangă neregulată sau resturi organice — cu risc minim de deteriorare.Structura mecanică este modulară, construită din profile de aluminiu pentru elementele portante și patru piese structurale imprimate 3D din PLA care alcătuiesc brațul. Lanțul cinematic complet oferă șase grade de libertate: rotația bazei, ridicarea segmentului primar, articulația segmentului secundar, orientarea modulului terminal, mularea tentaculelor și ridicarea lor. Toată electronica este protejată într-o carcasă din aluminiu etașată cu garnituri de silicon, oferind un grad de protecție IP54 împotriva stropilor și umidității specifice mediului acvatic.Aplicația principală a robotului este colectarea deșeurilor din ecosisteme acvatice statice — lacuri, iazuri, bălți, zone mlăștinoase — unde acumularea de sticle de plastic, materiale organice în descompunere, resturi vegetale sau chiar animale decedate creează atât probleme de mediu, cât și riscuri sanitare majore pentru operatorii umani. TechTopus abordează aceste probleme simultan: operează de la distanță prin Wi-Fi eliminând expunerea directă a operatorului; manipulează obiecte de forme și dimensiuni foarte variate fără reconfigurare mecanică; iar tentaculele flexibile permit apucarea sigură chiar și a obiectelor alunecoase sau a resturilor organice.Sistemul de viziune artificială este asigurat de un modul ESP32-CAM cu senzor optic OV2640, care rulează algoritmi de detecție și clasificare a obiectelor țintă direct pe placă și comunică deciziile către ESP32-ul principal prin Wi-Fi. Această arhitectură distribuită — cu un procesor dedicat pentru viziune și altul pentru control motor — permite ambelor plăci să funcționeze la performanță maximă fără să se blocheze reciproc. Controlul manual se face printr-un controller PlayStation 5 conectat prin cablu USB-C la un telefon Android, pe care rulează o aplicație dedicată de tip driver station, dezvoltată în Android Studio, ce transmite comenzile prin Wi-Fi la ESP32 folosind protocolul UDP pentru latență minimă (sub 90 ms end-to-end).Proiectul se plasează la intersecția a trei domenii moderne în evoluție rapidă — soft robotics, robotica biomimetică și robotica de mediu — demonstrând că soluțiile complexe pentru probleme reale de mediu pot fi construite cu componente Arduino accesibile, într-un cadru educațional.
Tehnologii
Arhitectură generală. Sistemul este construit pe o arhitectură distribuită cu două plăci ESP32 care colaborează prin Wi-Fi pe aceeași rețea locală: ESP32-ul principal (IP static 192.168.1.50) se ocupă exclusiv de controlul motoarelor și servomotoarelor, iar ESP32-CAM (IP static 192.168.1.51) rulează algoritmul de viziune autonomă și oferă stream video. Aplicația Android de control se conectează tot la această rețea, formând un sistem multi-nod client-server. Această separare de responsabilități evită situațiile în care microcontrolerul principal ar fi supraîncărcat cu procesare grafică, permițând ambelor plăci să funcționeze la performanță maximă.
Structura mecanică. Brațul robotic este format din patru piese structurale printate 3D din PLA, legate prin patru articulații actuate independent, plus modulul terminal cu tentacule. Lanțul cinematic complet oferă șase grade de libertate:
Rotație bază stânga/dreapta — motor stepper NEMA 17 17HS4401, comandat prin driver TMC2208 (semnal STEP + DIR + ENABLE de la pinii ESP32: STEP=25, DIR=26, EN=27)
Ridicare/coborâre segment 1 — motor stepper NEMA 17 17HS4401, comandat prin al doilea driver TMC2208 (STEP=32, DIR=33, EN=14)
Articulație segment 2 — servomotor DS3225 (25 kg·cm digital) pe canalul 0 al shield-ului PCA9685
Orientare modul terminal — servomotor DS3225 pe canalul 1 al PCA9685
Mulare tentacule prin cele 12 sfori interioare — servomotor DS3225 pe canalul 2 al PCA9685
Ridicare tentacule prin cele 6 sfori exterioare — servomotor MG996R (11 kg·cm analogic) pe canalul 3
Cele șase tentacule flexibile sunt fabricate din TPU 90A prin imprimare 3D, iar cele 18 sfori de nylon (câte 3 per tentacul, la 120°) sunt ghidate prin scripeți imprimați 3D pentru a minimiza pierderile de forță. Toată electronica este montată într-o carcasă din aluminiu etașată cu garnituri de silicon și capac filetat, oferind un grad de protecție IP54, protecție mecanică împotriva șocurilor și disipare termică pasivă.
Alegerea motoarelor stepper. Motoarele stepper NEMA 17 au fost alese în locul soluțiilor DC clasice cu reductor datorită mai multor avantaje decisive pentru un braț robotic care se mișcă lent și precis: cuplul mare disponibil imediat la turații mici (40-50 kg·cm holding torque, fără reductor extern), precizia inerentă de 200 de pași nativ per rotație (extinsă la 3200 pași cu microstepping 1/16 pe TMC2208 — echivalentul a 0,11° per pas), lipsa backlash-ului mecanic specific reductoarelor cu roți dințate, și capacitatea de a menține o poziție fixă fără corecție continuă (holding torque activ când stepperul e alimentat dar nu se mișcă). Driver-ele TMC2208 completează alegerea prin tehnologia StealthChop2 care elimină zgomotul acustic tipic driver-elor A4988/DRV8825, protecție internă împotriva supracurentului și supratensiunii, și interfață simplă STEP/DIR compatibilă cu librăria AccelStepper.h.
Arhitectură electronică. Shield-ul PCA9685 este conectat pe magistrala I2C a ESP32-ului principal (SDA=21, SCL=22) și oferă 16 canale PWM la frecvență de 50 Hz — standard pentru servomotoare hobby. Alimentarea provine dintr-o baterie LiPo 3S 11,1V 2200mAh cu descărcare minim 25C, iar tensiunile secundare (5V pentru servouri, 3,3V pentru logică ESP32) sunt generate printr-un regulator DC-DC step-down ajustabil de 3A. ESP32-CAM se alimentează separat la 5V, iar comunicația între cele două plăci se face exclusiv prin Wi-Fi (nu sunt legate fizic).
Algoritmul de viziune autonomă. ESP32-CAM inițializează senzorul OV2640 în format RGB565 la rezoluție 160×120 pixeli (calitatea VGA nu este necesară pentru detecție simplă și ar consuma prea multă memorie). La fiecare 200 ms (aproximativ 5 FPS), sistemul preia un cadru și îl parcurge pixel cu pixel. Fiecare pixel este convertit din spațiul RGB în HSV, iar apoi evaluat împotriva pragurilor de culoare țintă: intervalul H pentru roșu (0-15° și 340-360° pe roata cromatică), saturația minimă 60% și luminozitatea minimă 40%. Pixelii care se încadrează sunt contorizați și li se calculează centrul de masă (centroidul). Dacă numărul total este sub 300, sistemul consideră că nu vede ținta și trimite comanda de rotire pentru scanare. Dacă centroidul este descentrat față de mijlocul imaginii cu mai mult de 1/8 din lățime, se trimite comanda de rotire în direcția corespunzătoare. Dacă este centrat, se trimite comanda de mers înainte. Când suprafața acoperită de pixelii țintă depășește 25% din cadru — indicator că robotul este suficient de aproape — se trimite comanda de oprire, iar ESP32 principal declanșează secvența de prindere: orientează modulul, apoi tensionează gradual cele 12 sfori interioare pe o rampă de aproximativ 800 ms pentru mulare adaptivă.
Software-ul de control manual (Self Control). Aplicația Android este dezvoltată în Android Studio folosind Kotlin. Citește input-ul controller-ului PlayStation 5 prin USB OTG (cablul USB-C conectează controller-ul direct la telefonul operatorului). Semnalele analogice ale joystick-urilor și trigger-elor sunt filtrate cu praguri de deadband pentru eliminarea zgomotului, apoi mapate pe axele robotului: joystick stânga → rotație bază + segment 1; joystick dreapta → segment 2 + orientare modul; trigger R2 → mulare tentacule; trigger L2 → eliberare tentacule; butoanele frontale → comenzi rapide (prindere completă, stop de urgență, mod home, comutare autonom). Pachetele de comandă sunt trimise prin UDP la 50 Hz către ESP32 principal, cu latență end-to-end sub 90 ms.
Firmware-ul ESP32. Scris în C++ prin Arduino IDE, structurat modular pe cinci fișiere header: Main.ino (orchestrare), RoboticArm.h (control motoare stepper NEMA 17 și cele două servouri DS3225 ale brațului), TentacleModule.h (DS3225 mulare și MG996R ridicare), CamComm.h (comunicare HTTP cu ESP32-CAM), WiFiController.h (server HTTP pentru comenzile aplicației). Toate rutele răspund cu header CORS pentru a permite accesul din aplicație. Librăriile folosite: WiFi.h, WebServer.h, HTTPClient.h (incluse cu boardul), Wire.h pentru I2C, Adafruit_PWMServoDriver.h pentru PCA9685, AccelStepper.h pentru controlul non-blocant al motoarelor stepper (permite rularea comenzilor pas cu pas în paralel cu răspunsul la cererile HTTP, esențial pentru sincronizarea între comenzile aplicației și cele autonome).
Performanță măsurată. Rată de succes prindere ~85%, sarcină maximă manipulată 250 g, extensie maximă 611 mm, precizie poziționare vizuală ±10 mm, frecvență procesare autonomă 5 FPS, latență control end-to-end sub 90 ms, precizie unghi motor stepper 0,11° (cu microstepping 1/16), backlash mecanic sub 1° (fără reductor), vibrații sub 3 mm, greutate totală estimată 1,9 kg.
Cerinte sistem
Hardware pentru construcția robotului:
1× placă ESP32 DevKit (recomandat WROOM-32 sau WROVER cu PSRAM)
1× modul ESP32-CAM AI-Thinker cu senzor OV2640 și antenă Wi-Fi integrată
1× shield PCA9685 pe I2C, 16 canale PWM, frecvență 40-1600 Hz
2× motor stepper NEMA 17 17HS4401 (200 pași/rotație, cuplu de reținere 40-50 kg·cm, curent nominal 1,5-1,7A, alimentare 12V)
2× driver stepper TMC2208 (curent maxim 2A, microstepping până la 1/256, tehnologie StealthChop2 silențioasă, protecție împotriva supracurentului și supratensiunii)
3× servomotor DS3225 (digital, 25 kg·cm la 6,8V, metal gear, 4,8-7,2V)
1× servomotor MG996R (analogic, 11 kg·cm la 6V, metal gear, 4,8-7,2V)
1× baterie LiPo 3S, 11,1V, minim 2200mAh, descărcare minim 25C, cu conector XT60
1× regulator DC-DC step-down ajustabil (intrare 8-24V, ieșire 5V/3A minim)
1× adaptor FTDI FT232RL sau CP2102 (5V logic) pentru programarea ESP32-CAM
Radiatoare pasive pentru driverele TMC2208 (obligatoriu — motoarele stepper generează căldură)
Cabluri Dupont mamă-mamă, mamă-tată pentru conexiuni
Bornier tip WAGO sau clipuri Dean pentru alimentare
Materiale pentru structura mecanică:
Filament TPU 90A (rulou 1 kg, diametru 1,75 mm) pentru cele 6 tentacule
Filament PLA (rulou 1 kg) pentru cele 4 piese structurale ale brațului, scripeți și piese secundare
Profile aluminiu 20×20 mm slot 6 (aproximativ 2 m total)
Îmbinări colț și piulițe T pentru asamblarea profilelor
Fir nylon 0,8 mm × 20 m pentru cele 18 sfori de tracțiune
Placă aluminiu 2 mm și garnituri de silicon 3 mm pentru carcasa electronică
Șuruburi M3 și M4 pentru asamblare
Cuplaje flexibile 5×8 mm pentru conectarea axelor motoarelor stepper la mecanismul brațului
Dispozitiv de control (partea utilizatorului):
Telefon Android cu versiune minimă Android 8.0 (API 26)
Port USB-C sau micro-USB cu adaptor OTG compatibil
Suport Wi-Fi 2,4 GHz standard 802.11 b/g/n (obligatoriu — controllerul autonom folosește doar 2,4 GHz)
Minim 2 GB RAM și 100 MB spațiu liber pentru aplicație
Controller Sony PlayStation 5 DualSense (comunicare prin cablu USB-C, nu prin Bluetooth pentru latență minimă)
Cablu USB-C la USB-C de calitate, cu suport transfer de date (nu doar încărcare)
Cerințe de rețea:
Rețea Wi-Fi 2,4 GHz cu SSID configurat (implicit TechTopus_Robot, parola GoTechTopus25)
Router sau Access Point care suportă alocarea de IP-uri statice (subrețea 192.168.1.x)
IP-uri configurate: 192.168.1.50 pentru ESP32 principal, 192.168.1.51 pentru ESP32-CAM, 192.168.1.1 pentru router
Fără izolare client-to-client activată (obligatoriu pentru ca cele două plăci să comunice între ele)
Latență în LAN sub 20 ms
Poate fi folosit și modul Access Point al unui telefon secundar, dacă acesta permite dezactivarea izolării clienților
Software pentru dezvoltare și programare:
Arduino IDE versiune minimă 2.0 (recomandat 2.3+)
Board package “esp32 by Espressif Systems” versiune 2.0.11 sau mai nouă, instalabil din Boards Manager
Librăria “Adafruit PWM Servo Driver Library” din Library Manager
Librăria “AccelStepper by Mike McCauley” din Library Manager (obligatoriu pentru controlul non-blocant al motoarelor stepper)
Librăria “esp_camera” (inclusă cu board package-ul ESP32)
Android Studio Giraffe (2022.3.1) sau mai nou pentru compilarea aplicației
Kotlin 1.9 sau mai nou
Android SDK Platform 34
Gradle 8.0 sau mai nou
Autodesk Fusion 360 sau FreeCAD pentru vizualizarea și modificarea modelelor CAD (opțional)
Cura, PrusaSlicer sau Bambu Studio pentru slicing-ul pieselor de imprimare 3D
Setări recomandate pentru TPU: 220°C nozzle, 50°C pat, 30 mm/s, retract dezactivat
Setări recomandate pentru PLA: 210°C nozzle, 60°C pat, 60 mm/s
Configurare drivere TMC2208 (obligatoriu înainte de prima utilizare):
Setare curent motor prin potențiometrul de pe driver (Vref = curent × 1,41 → pentru 1,5A înseamnă Vref ≈ 2,1V, măsurat între potențiometru și GND)
Setare microstepping 1/16 prin pinii MS1 și MS2 (ambii HIGH)
Verificare orientare radiatoare și fixare cu bandă termoconductoare
Test de rotire lentă înainte de conectarea la mecanismul brațului
Mediu de operare:
Temperatură ambient: 5°C - 40°C (limitare dată de bateria LiPo)
Umiditate: până la 85% (structura este protejată IP54, dar nu IP67)
Iluminare pentru modul autonom: minim 200 lux (lumină difuză de zi sau iluminare artificială echivalentă)
Distanță maximă operator-robot: 30 m în spații deschise, 15 m în interior cu obstacole
Nu se operează în ploaie sau imersie completă
Suprafață relativ plană pentru poziționarea robotului (nu este mobil autonom în versiunea actuală)
Realizatori
Stefan Gresita
- Scoala: Colegiul National Elena Cuza
- Clasa: 11
- Judet: Dolj
- Oras: Craiova
Sofia Fluerasu
- Scoala: Colegiul National Elena Cuza
- Clasa: 11
- Judet: Dolj
- Oras: Craiova
Screenshots

