Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:cristip:saber [2022/05/27 00:07]
andrei.darmaz [Software Design]
pm:prj2022:cristip:saber [2022/05/27 22:09] (current)
andrei.darmaz [Download]
Line 57: Line 57:
 {{:​pm:​prj2022:​cristip:​sasiu3.png?​150|}} {{:​pm:​prj2022:​cristip:​sasiu3.png?​150|}}
 {{:​pm:​prj2022:​cristip:​sasiu5.png?​150|}} {{:​pm:​prj2022:​cristip:​sasiu5.png?​150|}}
 +{{:​pm:​prj2022:​cristip:​saber_01.png?​150|}}
 +{{:​pm:​prj2022:​cristip:​saber_02.png?​150|}}
 +{{:​pm:​prj2022:​cristip:​saber_03.png?​150|}} ​
 {{:​pm:​prj2022:​cristip:​saber_schem01.png?​700|}} {{:​pm:​prj2022:​cristip:​saber_schem01.png?​700|}}
-{{:​pm:​prj2022:​cristip:​saber_schem02.jpg?​200|}} ​ +{{:​pm:​prj2022:​cristip:​saber_schem02.jpg?​200|}} 
 +     
 ===== Software Design ===== ===== Software Design =====
  
Line 97: Line 101:
   * etc alte strategii asemănătoare cu cele menționate anterior.   * etc alte strategii asemănătoare cu cele menționate anterior.
  
 +Interacțiune cu senzorii:
 +  * Citirea senzorului LiDAR TOF se face prin UART BR 115200 Fq 1MHZ (senzorul este capabil de BR mai mare, dar devine instabil). Acesta returnează distanta fata de obiectul detectat (max 12m - putin cam overkill), temperatura senzorului și acuratețea de care crede ca da dovada. În cod folosesc doar distanta fata de target. În alta versiune a codului am setat senzorul pe modul de detection response, mod în care genereaza o întrerupere de fiecare data când un obiect intra in zona critica setată în registrii. Încă testez pentru a alfa care versiune este mai buna.
 +  * Senzorii QTR (de linie) generează o întrerupere high edge de fiecare data când detectează culoarea albă și astfel robotul se va îndepărta de margine.
 +  * TSOP-ul generează o întrerupere când primește semnal de la telecomanda,​ în handler se citește intructiunea primită pentru a afla dacă robotul trebuie sa pornească sau sa se oprească.
 +  * DipSwitch-ul este citit doar inițial și se face o adunare binară pe cei 4 pini pentru a stabili strategia. Puteam sa folosesc un shift register sau un NE555 pentru a folosit mai putini pini digitali, dar nu am dispus de spațiu pe PCB.
 +
 +Interacțiunea cu motoarele: ​
 +  * Fiecare motor are câte un drive asignat care rezista la 2.4A peek.
 +  *   ​Motoarele sunt comandate pe 3 pini - 2 pini de direcție și unul de PWM
 +  *   ​Generarea de PWM se face pure hardware putand sa se stabilească duty cicle si frecventa.
 +Posibile upgrades :
 +
 +În viitorul nu foarte îndepărtat o sa mai adaug citirea datelor de la accelerometrul de pe placa. Din putinele teste făcute pana acum datele nu vin destul de rapid de la senzor pentru a-l implementa în codul core al robotului.
 +Conexiune Bluetooth cu un device pentru a selecta strategia/​desena atacul inițial - nu am implementat în core fiindcă conexiunea bluetooth nu este tot timpul stabilă, iar unele concursuri nu permit conexiuni externe in timpul meciurilor, dar poate sa fie o funcție fun.
 +Pornire/​oprire folosind microfonul de pe board - am implementat antrenând un model ML cu TenserFlow, dar ocupa un core și nu este practic în timpul meciurilor. ​
 +Alimentare cu 12V în loc de 8V pentru motoare - am testat deja totul era funcțional,​ însă nu voiam sa ard motoarele fix înainte de prezentare :)
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Am obținut inca un robot mini-sumo de adăugat la colecție. Pot spune ca este cel mai avansat de pana acum din punct de vedere mecanic, iar la partea software este tot timpul loc de îmbunătățire
-Care au fost rezultatele ​obţinute în urma realizării proiectului vostru+Saber a reușit sa îmi bată robotul anterior care avea în palmares un loc 8 la Robochallenge și loc 2 la Infomatrix. Deci o sa așteptam sa vedem cum se descurca la concursurile din viitor. 
-</​note>​+ 
 +Tot ca rezultat aș putea spune ca mi-am mai dezvoltat skillurile hardware și am învățat mai multe despre arhitectura ARM, eu fiind obișnuit numai cu AVR.
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Mă bucur ca am ales sa fac PM și ca mi-a dat impulsul de a începe un nou proiect.
 +Robotul consider ca este unul reușit, desi exista tot timpul loc de îmbunătățiri.
 ===== Download ===== ===== Download =====
  
-<note warning> 
-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**. 
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
Line 121: Line 140:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +https://​github.com/​khoih-prog/​RP2040_PWM#​features 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+https://​cdn.sparkfun.com/​assets/​1/​4/​2/​1/​9/​TFmini_Plus_A02_Product_Manual_EN.pdf 
 + 
 +https://​github.com/​budryerson/​TFMini-Plus 
 + 
 +https://​datasheets.raspberrypi.com/​pico/​raspberry-pi-pico-c-sdk.pdf 
 + 
 +https://​p1r.se/​startmodule/​implement-yourself/​ 
 + 
 +https://​docs.arduino.cc/​hardware/​nano-rp2040-connect 
 + 
 +https://​cdn-reichelt.de/​documents/​datenblatt/​A300/​ABX00053-DATASHEET.pdf 
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/cristip/saber.1653599277.txt.gz · Last modified: 2022/05/27 00:07 by andrei.darmaz
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0