Differences

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

Link to this comparison view

pm:prj2023:adarmaz:lll [2023/05/28 15:50]
vlad_adrian.ulmeanu [Rezultate Obţinute]
pm:prj2023:adarmaz:lll [2023/05/29 23:34] (current)
vlad_adrian.ulmeanu [Jurnal]
Line 67: Line 67:
 } }
 </​code>​ </​code>​
 +
 +Receiver-ul si sender-ul trecute pe placi de prototipare:​
 +
 +{{:​pm:​prj2023:​adarmaz:​pmproj_uva_pcb.jpeg?​400|}}
 ===== Software Design ===== ===== Software Design =====
  
Line 86: Line 90:
 Matricele ''​d[][][]''​ si ''​D[][][]''​ se construiesc de la ''​l''​ mic la mare (bottom-up),​ apoi urmeaza recursia top-down. Matricele ''​d[][][]''​ si ''​D[][][]''​ se construiesc de la ''​l''​ mic la mare (bottom-up),​ apoi urmeaza recursia top-down.
  
-Deocamdatafunctia ​scor are urmatoarea implementare:​+Pe ''​ESP32-CAM''​ ''​d''​ si ''​D''​ sunt reprezentate liniar. Interactiunea fiu-tata este foarte similara cu cea de la reprezentarea unui heap in memorie (numarand de la ''​0''​daca tatal este la pozitia ''​i'',​ fiii sunt la pozitiile ''​2i+1''​ si ''​2i+2''​). 
 + 
 +Diferenta este ca aici un nod are ''​4''​ fii, iar fiecare nod ocupa ''​3''​ pozitii consecutive,​ una pentru fiecare culoare. 
 + 
 +<code c> 
 +int getChild(int r, int id) { 
 +    return ((r / 3) * 4 + id) * 3; 
 +
 + 
 +int getFather(int r) { 
 +    return ((r / 3) - 1) / 4 * 3; 
 +
 +</​code>​ 
 + 
 +Functia ​scor are urmatoarea implementare:​
 <code python> <code python>
 dispThresh = 80 dispThresh = 80
Line 100: Line 118:
     ​     ​
 #spargere daca scor(l, d[i][j][l], D[i][j][l]) > dispThresh. #spargere daca scor(l, d[i][j][l], D[i][j][l]) > dispThresh.
 +</​code>​
 +
 +Pe ''​ESP32-CAM''​ coeficientii de corectie sunt tinuti direct intr-o tabela de lookup. Normalizarea pe ''​[0,​ 1]''​ in loc de ''​[0.5,​ 1]''​ produce mult mai putini pixeli cu arii diferite.
 +
 +<code c>
 +static float coef_corector_lookup[9] = {0.501f, 0.5039f, 0.5156f, 0.5622f, 0.7311f, 0.982f, 1.0f, 1.0f, 1.0f}; //​0.00390625f
 </​code>​ </​code>​
  
Line 119: Line 143:
 {{:​pm:​prj2023:​adarmaz:​pmroj_uva_protocol.png?​500|}} {{:​pm:​prj2023:​adarmaz:​pmroj_uva_protocol.png?​500|}}
  
 +**(Concluzie ulterioara)** schema protocolului a ajutat la rezolvarea bugului legat de primirea de pachete eronate daca distanta fata de laptop era putin mai mare (peste cativa metri): ACK-ul trebuia trimis imediat inapoi de catre Receiver. Lasam seriala catre laptop sa transmita octetii primiti inainte de a face asta. Cumva cuanta de timp alocata pentru asta era prea mare.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
Line 146: Line 171:
  
  
-Nu ma asteptam ca numarul de pixeli dupa compresie sa nu fie proportional cu rezolutia imaginii initiale. Se pare ca depinde mai mult de cat de detaliata este imaginea. +Daisychain ''​ESP32-CAM --(serial)-->​ ESP32-WROOM --(serial)-->​ laptop'',​ ''​115200''​ bps. [[https://​www.youtube.com/​shorts/​5vp9rusHMUU|Link video]] (speedup ''​2x''​)
- +
-Daisychain ''​ESP32-CAM --(serial)-->​ ESP32-WROOM --(serial)-->​ laptop'',​ ''​115200''​ bps. +
- +
-[[https://​www.youtube.com/​shorts/​5vp9rusHMUU|Link video]] (speedup ''​2x''​)+
  
 Poza cu transmiterea prin LoRa functionala:​ Poza cu transmiterea prin LoRa functionala:​
Line 156: Line 177:
 {{:​pm:​prj2023:​adarmaz:​pmproj_uva_concluzie.jpeg?​400|}} {{:​pm:​prj2023:​adarmaz:​pmproj_uva_concluzie.jpeg?​400|}}
  
-Test cu LoRa (speedup ''​4x''​):​+Test cu LoRa (speedup ''​4x''​, ''​~4500''​ bps):
  
 <​html>​ <​html>​
Line 168: Line 189:
   ></​iframe>​   ></​iframe>​
 </​html>​ </​html>​
 +
 +Acum ca stream-ul merge la o distanta mai mare de laptop, pot sa arat poze precum cea de mai jos (luna, ''​2+''​ pereti distanta):
 +
 +{{:​pm:​prj2023:​adarmaz:​pmproj_uva_luna.png?​200|}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +  * Nu ma asteptam ca numarul de pixeli dupa compresie sa nu fie proportional cu rezolutia imaginii initiale. Se pare ca depinde mai mult de cat de detaliata este imaginea.
 +  * Transmiterea informatiilor este clar bottleneck-ul proiectului. Compresarea imaginii este mult mai rapida.
 +  * Transmiterea prin LoRa este cea mai grea parte din proiect. Trebuie sa investighez si setarile de putere. <​del>​Deocamdata un perete este de ajuns pentru a pune probleme serioase transmiterii,​ chiar si cu masurile de corectie implementate.</​del>​ (din fericire am reparat bugul, explicatia este jos la Software Design)
 ===== Download ===== ===== Download =====
  
Line 183: Line 211:
   * 23 mai: video cu modul Daisychain.   * 23 mai: video cu modul Daisychain.
   * 28 mai: finalizare cod interactiune LoRa.   * 28 mai: finalizare cod interactiune LoRa.
 +  * 29 mai: trecere pe PCB-uri, bugfix stream la distanta non-mica.
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​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/prj2023/adarmaz/lll.1685278215.txt.gz · Last modified: 2023/05/28 15:50 by vlad_adrian.ulmeanu
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