This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| projects:iotaiuto:occhiali [2022/01/14 10:30] – created daniel | projects:iotaiuto:occhiali [2022/01/31 13:48] (current) – daniel | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Giroscopio utilizzato: MPU-6050 / GY-521 | + | ====== Occhiali Mouse ====== |
| + | Gli occhiali sono costituiti da un esp32 con batteria, un modulo giroscopio MPU-6050 e uno o più pulsanti | ||
| + | |||
| + | ==== Giroscopio ==== | ||
| + | |||
| + | Sensore utilizzato: MPU-6050 / GY-521\\ | ||
| Questo giroscopio ha due funzioni: | Questo giroscopio ha due funzioni: | ||
| - | **Accelerometro**\\ | + | * **Accelerometro** |
| Misura di quanto il dispositivo è inclinato rispetto all’inclinazione zero data nel momento della calibrazione | Misura di quanto il dispositivo è inclinato rispetto all’inclinazione zero data nel momento della calibrazione | ||
| - | + | * **Giroscopio** | |
| - | **Giroscopio**\\ | + | |
| Misura con che velocità il dispositivo sta ruotando attorno agli assi relativi al dispositivo rispetto alla velocità zero data nel momento della calibrazione | Misura con che velocità il dispositivo sta ruotando attorno agli assi relativi al dispositivo rispetto alla velocità zero data nel momento della calibrazione | ||
| Per ora ho scelto di utilizzare solo i dati del giroscopio, in modo da far corrispondere uno spostamento del dispositivo a uno spostamento del mouse.\\ | Per ora ho scelto di utilizzare solo i dati del giroscopio, in modo da far corrispondere uno spostamento del dispositivo a uno spostamento del mouse.\\ | ||
| - | Per la calibrazione del giroscopio è sufficiente che il dispositivo resti immobile: **non importa l' | + | |
| + | === Calibrazione === | ||
| + | |||
| + | Per la calibrazione del giroscopio | ||
| La calibrazione serve solo a settare la velocità rotazionale zero. | La calibrazione serve solo a settare la velocità rotazionale zero. | ||
| - | È necessario invece che il giroscopio sia dritto quando viene indossato: | + | === Montatura === |
| - | Non importa il verso in cui viene montato, gli assi possono essere scambiati tra loro nel codice. | + | |
| - | Ma è importante che questi assi siano dritti rispetto agli assi di rotazione della testa quando il dispositivo viene utilizzato (indipendentemente dagli assi terrestri) altrimenti una rotazione verso destra della testa corrisponderebbe a una rotazione su più assi del giroscopio. | + | È **necessario** invece che il giroscopio sia dritto quando viene indossato:\\ |
| + | Non importa il verso in cui viene montato, gli assi possono essere scambiati tra loro nel codice.\\ | ||
| + | Ma è importante che questi assi siano dritti rispetto agli assi di rotazione della testa quando il dispositivo viene utilizzato (indipendentemente dagli assi terrestri), altrimenti una rotazione verso destra della testa corrisponderebbe a una rotazione su più assi del giroscopio. | ||
| + | |||
| + | === Collegamento === | ||
| + | Per il funzionamento base utilizzare questi 4 pin: VIN (3.3v o 5v), GND, SCL, SDA | ||
| + | |||
| + | ==== Pulsante ==== | ||
| + | |||
| + | Ogni pulsante va collegato a GND e a un GPIO | ||
| + | |||
| + | ==== Micropython vs Circuitpython ==== | ||
| + | Su git sono presenti due versioni del codice per gli occhiali: per esp32 e per raspberry pi pico | ||
| + | |||
| + | Micropython supporta esp32, che ha il bluetooth, ma ha meno librerie di circuitpython | ||
| + | Per micropython potete usare la IDE Thonny | ||
| + | |||
| + | Circuitpython supporta esp32-s2 e raspberry pi pico. Quest' | ||
| + | Le librerie di circuitpython permettono di usare facilmente HID usb o bluetooth e sensori come il giroscopio MPU6050 | ||
| + | Per circuitpython potete usare la IDE Mu | ||
| + | |||
| + | ==== Raspberry pi pico ==== | ||
| + | |||
| + | Scaricare l' | ||
| + | https:// | ||
| + | |||
| + | Scaricare il firmware stable di circuitpython per raspberry pi pico:\\ | ||
| + | https:// | ||
| + | |||
| + | Installare circuitpython sul raspberry pi pico:\\ | ||
| + | https:// | ||
| + | |||
| + | Consiglio di usare l'IDE Mu per modificare il codice e vedere l' | ||
| + | Il file che viene lanciato al boot è code.py | ||
| + | |||
| + | Collegare il giroscopio al raspberry tramite VCC (3v3), GND, SCL (GP27) e SDA (GP26)\\ | ||
| + | Salvare il file code.py presente su git nel raspberry | ||
| + | |||
| + | **Calibrazione**\\ | ||
| + | Ogni giroscopio ha un leggero errore di misurazione che va compensato\\ | ||
| + | Salvare il codice nel file calibration.py (su git) nel raspberry con il nome code.py ed eseguire mostrando l' | ||
| + | Lo script farà varie misurazioni durante le quali il giroscopio deve essere immobile e dritto, e calcolerà la media dei valori dando come risultato una serie di valori di offset che vanno salvati e copiati nel codice degli occhiali | ||
| + | |||