Differences

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

Link to this comparison view

si:iot2025:lab02 [2025/08/09 21:55]
robert_ionut.alexa
si:iot2025:lab02 [2025/08/11 12:53] (current)
dan.tudose [DRV2605L - senzor haptic]
Line 1: Line 1:
-===== Laboratorul 02. I2C - Haptics, Accelerometru =====+===== Laboratorul 02. I2C - Haptics, Accelerometru, Giroscop ​=====
  
 În laboratorul de astăzi veți învăța cum să interactionați cu diferite periferice prin I2C și cum datele de la hardware sunt transmise utilizatorului prin diferite niveluri de redirectare. Vom explora atât noțiuni low-level cât și aspecte mai high-level (arhitectura software a driver-elor in NuttX) construite peste. În laboratorul de astăzi veți învăța cum să interactionați cu diferite periferice prin I2C și cum datele de la hardware sunt transmise utilizatorului prin diferite niveluri de redirectare. Vom explora atât noțiuni low-level cât și aspecte mai high-level (arhitectura software a driver-elor in NuttX) construite peste.
Line 11: Line 11:
 Din punct de vedere al user-ului, driverele pot să fie expuse în două moduri: Din punct de vedere al user-ului, driverele pot să fie expuse în două moduri:
  
-  * char device driver - în Linux sunt folosite pentru mouse și tastatură, de exemplu, iar în NuttX pentru senzori, printre altele. Pe scurt, dispozitive cu rată mică de transfer de date, care functionează la nivel de caracter (byte). +  ​* **char device driver** - în Linux sunt folosite pentru mouse și tastatură, de exemplu, iar în NuttX pentru senzori, printre altele. Pe scurt, dispozitive cu rată mică de transfer de date, care functionează la nivel de caracter (byte). 
-  * block device driver - folosite pentru hdd-uri, sdd-uri, device-uri care au nevoie să transfere date la nivel de blocuri (4KB de obicei).+  ​* **block device driver** - folosite pentru hdd-uri, sdd-uri, device-uri care au nevoie să transfere date la nivel de blocuri (4KB de obicei).
  
 ==== I2C ==== ==== I2C ====
Line 32: Line 32:
 {{ :​si:​iot2025:​i2c-communication-how-it-works.png?​500 }} {{ :​si:​iot2025:​i2c-communication-how-it-works.png?​500 }}
  
-==== DRV2605L - senzor ​haptic ====+==== DRV2605L - driver ​haptic ====
  
-DRV2605L este un senzor ​haptic proiectat cu scopul de a controla motoare de vibratie care in final sa poata oferi feedback utilizatorului prin vibratii. Avantajul acestui device este ca, desi poate fi programat sa genereze vibratii constante, vine cu o biblioteca interna de efecte haptice, fara a fi nevoie ca user-ul sa creeze ​undele ​manual.+DRV2605L este un driver ​haptic proiectat cu scopul de a controla motoare de vibratie care in final sa poata oferi feedback utilizatorului prin vibratii. Avantajul acestui device este ca, desi poate fi programat sa genereze vibratii constante, vine cu o biblioteca interna de efecte haptice, fara a fi nevoie ca user-ul sa creeze ​trenul de vibrații ​manual.
  
 In cadrul NuttX, arhitectura software prin care o aplicatie interactioneaza cu senzorul DRV2605L presupune mai multe niveluri de redirectare:​ In cadrul NuttX, arhitectura software prin care o aplicatie interactioneaza cu senzorul DRV2605L presupune mai multe niveluri de redirectare:​
Line 96: Line 96:
 <note tip> <note tip>
 **Hint:** pentru a opri un efect, trebuie sa scrieti o functie care realizeaza inversul lui ''​play_effect''​. Parametrul care ne intereseaza si trebuie modificat este ''​play.value''​ (trebuie sa fie setat pe 0 - disabled). **Hint:** pentru a opri un efect, trebuie sa scrieti o functie care realizeaza inversul lui ''​play_effect''​. Parametrul care ne intereseaza si trebuie modificat este ''​play.value''​ (trebuie sa fie setat pe 0 - disabled).
 +</​note>​
 +
 +<note tip>
 +**Hint:** pentru a putea face polling mai des pe senzor si sa obtineti date mai accurate este nevoie sa folositi ''​usleep''​.
 </​note>​ </​note>​
  
 **3. (Bonus)** La exercitiul anterior, intensitatea de vibrare era absoluta (on/off). Ne dorim sa avem un mecanism mai complex prin care sa folosim vibrare graduala in functie de nivelul acceleratiei - cu cat acceleratia este mai mare, cu atat vibratia va fi mai puternica. **3. (Bonus)** La exercitiul anterior, intensitatea de vibrare era absoluta (on/off). Ne dorim sa avem un mecanism mai complex prin care sa folosim vibrare graduala in functie de nivelul acceleratiei - cu cat acceleratia este mai mare, cu atat vibratia va fi mai puternica.
 +
 +===== Resurse =====
 +  * [[https://​www.ti.com/​lit/​ds/​symlink/​drv2605l.pdf|DRV2605L Effect library]]
si/iot2025/lab02.1754765721.txt.gz · Last modified: 2025/08/09 21:55 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