This is an old revision of the document!
Saber
Introducere
Aceasta pagina documentează realizarea unui robot mini-sumo.
Autor : Darmaz Andrei-Sebastian 332AC
Descriere generală
Ca și în artele marțiale tradiționale japoneze, roboții încearcă să își împingă oponentul în afara ringului.
Reguli:
Dimensiuni maxime: robotul trebuie să încapă într-un pătrat 10 cm x 10 cm (100 x 100 mm).
Masa maximă a robotului nu trebuie să depășească 0,50 kg ( 500,00 gr.).
Robotul după start se poate extinde. Nu este permis ca robotul să se separe în 2 sau mai multe bucăți. El trebuie sa rămână un singur robot centralizat. Roboţii care nu vor respecta aceste reguli vor pierde meciul.
Șuruburi, piulițe, șaibe sau alte parți cu masa sub 5 gr, care se desprind, nu vor determina pierderea meciului.
Toți roboţii trebuie să fie autonomi. Poate fi implementat orice sistem de control, atâta timp cât acesta este în interiorul robotului şi nu interacționează cu un sistem de control exterior (om, mașină sau oricare altul).
Schema bloc:
Hardware Design
Lista de componente:
Microcontroller:
Senzori:
Conectivitate:
Wi-Fi Nina W102 uBlox module
BLUETOOTH® Nina W102 uBlox module
SECURE ELEMENT ATECC608A-MAHDA-T Crypto IC
Alimentare:
Mecanice:
Șasiul robotului a fost realizat manual din tabla de oțel de 1mm. Pe vârful acestuia, plug, voi lipi o lama din titan.
Software Design
Mediu de dezvoltare folosit a fost Arduino IDE.
Biblioteci folosite : MBED_RP2040_PWM, TFMPlus, WiFiNINA.
Deoarece am utilizat microcontrollerul ARM RP2040 care dispune de doua coruri codul este împărțit astfel :
Primul core :
* initializeaza pinii ca INPUT/OUTPUT
* initializeaza comunicația UART cu senzorul LiDAR
* acționează motoarele generând semnale PWM pure hardware. Prin urmare semnalele nu sunt întrerupte de eventuale blocaje din cod
* interpreteaza strategia inițiala a robotului prin citirea dipswitch-ului
* selectează modul de cautare / atac al robotuli pentru runda curenta
* se ocupa de întreruperile generate de TSOP
Al doilea core:
Am implementat mai multe metode de cautare :
robotul se învârte pana când găsește adversarul
robotul se mișcă random pana la marginea ringului după care se rotește înapoi spre centru
robotul avansează încet spre centrul ringului
Fiecare căutarea are avantajul ei :
rotirea conferă o viziune completa a ringului, dar face ca lama robotului sa trepideze deci robotul este mai vulnerabil. În plus dacă acesta nu reacționează rapid la detecția adversarului va pierde timp pana când va ajunge din nou cu fata la acesta.
miscarea către margine este o strategie clasica, robotul nu este staționar astfel nu este o ținta ușoară și acoperă o distanta destul de mare deci poate detecta adversarul relativ ușor. Insa, pentru ca robotul se mișcă lama nu este fixată în ring deci se poate intra mai usor sub ea.
robotii mini sumo folosesc ultima strategie când sunt siguri de acuratețea senzorilor principali. Pentru ca avansarea către centru, dar și către adversar este lenta lama robotului nu tremura foarte mult deci sunt șanse cât mai mari sa între sub cea a adversarului și sa îl ridice sciazandui aderența. Robotul este vulnerabil în laterale fiind destul de staționar. Acest defect poate fi evitat folosind senzorii laterali (sharp/laser omron) însă din experiență daca adversarul a ajuns deja în lateral o întoarcere brusca cu ±90 va destabiliza robotul și acesta va pierde în continuare.
Aceste căutări sunt implementate în funcții diferite din Arduino și sunt selectate prin determinarea strategiei de pe dipswitch. Tot înaintea meciului pe dipswitch se slecteaza și atacul principal pe care robotul o sa îl facă.
Atacul inițial oferă un avantaj robotului prin cunoașterea poziției fata de adversar. Pin selectarea strategiei 0-16 ii comunicam robotului în ce poziție sa se miște. Astfel am implementat câteva strategii clasice folosite în meciuri de sumo :
Rotire cu ± 90 fata de poziția inițială - dacă robotul adversar se afla în stânga/dreapta odată cu pornirea meciului vom ajunge cu fata către el fără sa îl mai căutăm în ring.
Arc stânga/dreapta - se folosește dacă credem ca robotul adversar o sa ajungă cu fata către noi. Prin descrierea unui arc vom puteam ajunge în spatele/lateralul acestuia.
180 de grade - pentru meciurile spate - spate
etc alte strategii asemănătoare cu cele menționate anterior.
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF