Differences

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

Link to this comparison view

si:iot2025:lab01 [2025/08/09 18:27]
robert_ionut.alexa
si:iot2025:lab01 [2025/08/11 12:50] (current)
dan.tudose
Line 3: Line 3:
 Bine ați venit la școala de vară IoT Summer School! Bine ați venit la școala de vară IoT Summer School!
  
-În cadrul școlii de vară, ne propunem să vă familiarizăm cu sisteme de operare RTOS (NuttX) care se pretează mai degrabă ​microcontrollerelor ​decât sistemelor de tip desktop.+În cadrul școlii de vară, ne propunem să vă familiarizăm cu sisteme de operare RTOS (Real time operating system- NuttX - care se pretează mai degrabă ​microcontrolerelor ​decât sistemelor de tip desktop.
  
-În acest laborator veți învăța cum să compilați și să încărcați sistemul de operare NuttX pe smartwatch-ul [[https://​github.com/​dantudose/​open-smartwatch|Hector ​Watch]], în facultate și bazat pe un modul **ESP32 S3 mini** la care au fost adăugate:​ +În acest laborator veți învăța cum să compilați și să încărcați sistemul de operare NuttX pe smartwatch-ul [[https://​github.com/​dantudose/​Hacktor-Watch-2.0/|Hacktor ​Watch]], ​dezvoltat ​în facultate și bazat pe un microprocesor ​**ESP32 S3** la care au fost adăugate:​ 
-  * patru butoane externe +  * doua butoane externe
-  * un step counter+
   * un display cu touch   * un display cu touch
   * un senzor de haptics   * un senzor de haptics
-  * un accelerometru +  * un accelerometru ​si giroscop
-  * un cititor de carduri microSD+
  
-Mai jos puteți vedea și o poză cu PCB-ul ​ceasului:+Mai jos puteți vedea diagrama hardware a ceasului:
  
-[[https://​github.com/​radupascale/​smartwatch-licenta|{{  si:laboratoare:pcb2_no_bg.png?500  ​}}]]+{{ :si:iot2025:hacktor_watch_2.0.jpg?600 }}
  
-Pentru a putea fi folosit pe microcontrollere, NuttX are un memory-footprint foarte scăzut (de ordinul câtorva sute de kilobytes). Un alt feature care îl face potrivit sistemelor low-end este faptul că nu folosește mecanismele de memorie virtuală (mai costisitoare atât din punct de vedere hardware, cât și software) în mod implicit, acest mod de operare numindu-se flat-mode addressing.+Pentru a putea fi folosit pe microcontrolere, NuttX are un memory-footprint foarte scăzut (de ordinul câtorva sute de kilobytes). Un alt feature care îl face potrivit sistemelor low-end este faptul că nu folosește mecanismele de memorie virtuală (mai costisitoare atât din punct de vedere hardware, cât și software) în mod implicit, acest mod de operare numindu-se flat-mode addressing.
  
 ===== Setup ===== ===== Setup =====
Line 116: Line 114:
 </​code>​ </​code>​
  
-În functie de tipul de placă pe care rulați, este posibil să fie nevoie să apăsați un buton de ''​BOOT''​ (''​IO0''​) atunci când încărcați NuttX. Astfel, placa intră în modul de "​Download"​ - în mod normal, placa este în starea de "​Boot"​. Butonul trebuie apăsat doar atunci când se încearcă stabilirea conexiunii cu firmware-ul de pe ESP32. În cazul smartwatch-ului nostru, aveți mai jos o poză atașată care vă arată ce rol are fiecare buton:+În functie de tipul de placă pe care rulați, este posibil să fie nevoie să apăsați un buton de ''​BOOT''​ (''​IO0''​) atunci când încărcați NuttX. Astfel, placa intră în modul de "​Download"​ - în mod normal, placa este în starea de "​Boot"​. Butonul trebuie apăsat doar atunci când se încearcă stabilirea conexiunii cu firmware-ul de pe ESP32. În cazul smartwatch-ului nostru, aveți mai jos o poză atașată care vă arată ce rol au cele doua butoane disponibile pe carcasa:
  
-{{ :si:laboratoare:​hacktor_buttons.jpg ​|}}+{{ :si:iot2025:​hacktor_buttons.jpg?300 }}
  
 Dacă vrem să încărcăm NuttX pe un ESP32S3 (microcontroller-ul care stă la baza ceasului nostru), pentru a comuta din "​Boot"​ in "​Download"​ nu este suficient să apăsați un singur buton, ci trebuie să urmați o secvență de operații: ''​Țineți apăsat BOOT''​ -> ''​apăsați RESET **o singură dată**''​ -> ''​ridicați degetul de pe BOOT''​. Acum puteți să flash-uiți microcontroller-ul folosind comanda ''​make flash ESPTOOL_PORT=/​dev/​ttyACM0 ESPTOOL_BAUD=115200 ESPTOOL_BINDIR=../​esp32s3-bins''​. Dacă vrem să încărcăm NuttX pe un ESP32S3 (microcontroller-ul care stă la baza ceasului nostru), pentru a comuta din "​Boot"​ in "​Download"​ nu este suficient să apăsați un singur buton, ci trebuie să urmați o secvență de operații: ''​Țineți apăsat BOOT''​ -> ''​apăsați RESET **o singură dată**''​ -> ''​ridicați degetul de pe BOOT''​. Acum puteți să flash-uiți microcontroller-ul folosind comanda ''​make flash ESPTOOL_PORT=/​dev/​ttyACM0 ESPTOOL_BAUD=115200 ESPTOOL_BINDIR=../​esp32s3-bins''​.
Line 169: Line 167:
   * [[https://​en.wikipedia.org/​wiki/​Cross_compiler| What is a cross-compiler?​]]   * [[https://​en.wikipedia.org/​wiki/​Cross_compiler| What is a cross-compiler?​]]
   * [[https://​docs.espressif.com/​projects/​esp-idf/​en/​latest/​esp32/​api-guides/​tools/​idf-tools.html| ESP32 toolchain]]   * [[https://​docs.espressif.com/​projects/​esp-idf/​en/​latest/​esp32/​api-guides/​tools/​idf-tools.html| ESP32 toolchain]]
 +  * [[https://​developer.espressif.com/​blog/​nuttx-adding-porting-an-app/​| Building Applications on NuttX]]
si/iot2025/lab01.1754753225.txt.gz · Last modified: 2025/08/09 18:27 by robert_ionut.alexa
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