Diferència entre revisions de la pàgina «Vertebra digital (dvert2 v2.1) - IoT-Vertebrae»

De binefa.com
Salta a la navegació Salta a la cerca
m
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 18: Línia 18:
 
* Led indicador d'alimentació procedent del cap (D2)
 
* Led indicador d'alimentació procedent del cap (D2)
  
* Botó (WEB) i led (D1) per a usos personalitzables
+
* Botó (WEB) i led blanc (D1) per a usos personalitzables. Amb el microprogramari per defecte el led blanc indica la comunicació entre la vèrtebra i el cap
  
 
* Connector a antena de 2.4GHz
 
* Connector a antena de 2.4GHz
Línia 26: Línia 26:
  
 
[https://www.binefa.cat/IoT/IoT-Vertebrae/pdf/sch/dvert21.pdf Esquema electrònic en format pdf]
 
[https://www.binefa.cat/IoT/IoT-Vertebrae/pdf/sch/dvert21.pdf Esquema electrònic en format pdf]
 +
= Microprogramari =
 +
El microcontrolador de la vèrtebra digital és un ESP32-S3.
 +
 +
[https://www.binefa.cat/IoT/IoT-Vertebrae/firmware/dvert_v2_20240724_01.zip Microprogramari de la vèrtebra digital]
 +
 
= Configuracions =
 
= Configuracions =
 
Adreces (0x20 a 0x2F):
 
Adreces (0x20 a 0x2F):
Línia 95: Línia 100:
  
 
= Ús de Python =
 
= Ús de Python =
 +
Des de la Raspberry Pi connectada al cap. I el cap a una vèrtebra digital.
 +
 
  pi@raspberrypi:~/iot-vertebrae $ '''python'''
 
  pi@raspberrypi:~/iot-vertebrae $ '''python'''
 
  Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
 
  Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux

Revisió de 18:42, 17 ago 2024

Descripció general[modifica]

dvert2 v2.1
  • Nivells lògics de 3,3 volts
  • 16 adreces (0x20 a 0x2F)
  • Comunicació I2C
  • Comunicació CAN. Pont de terminació del bus CAN
  • Connecta costelles digitals d'entrada i sortida als costats A i B
  • Configuració d'entrades per nivell o tàctils
  • Configuració de sortides per nivell o per modulació d'amplada de pols (PWM)
  • Led indicador d'alimentació procedent del cap (D2)
  • Botó (WEB) i led blanc (D1) per a usos personalitzables. Amb el microprogramari per defecte el led blanc indica la comunicació entre la vèrtebra i el cap
  • Connector a antena de 2.4GHz

Esquema electrònic[modifica]

Esquema electrònic dvert2 v2.1

Esquema electrònic en format pdf

Microprogramari[modifica]

El microcontrolador de la vèrtebra digital és un ESP32-S3.

Microprogramari de la vèrtebra digital

Configuracions[modifica]

Adreces (0x20 a 0x2F):

Adreces dvert2 v2.1
Adreces
A3 A2 A1 A0 text Hex
- - - - 0000 0x20
- - - x 0001 0x21
- - x - 0010 0x22
- - x x 0011 0x23
- x - - 0100 0x24
- x - x 0101 0x25
- x x - 0110 0x26
- x x x 0111 0x27
x - - - 1000 0x28
x - - x 1001 0x29
x - x - 1010 0x2A
x - x x 1011 0x2B
x x - - 1100 0x2C
x x - x 1101 0x2D
x x x - 1110 0x2E
x x x x 1111 0x2F

- : sense pont (jumper)

x : amb pont (jumper)

Sense cap pont és l'adreça 0x20. Amb els quatre ponts connectats és l'adreça 0x2F.

Sortides i entrades per nivell[modifica]

Es poden fer servir els dos costats (A i/o B) per a connectar costelles digitals d'entrada i/o sortida.

Modulació per amplada de pols[modifica]

Tan sols pot haver una costella amb les 8 sortides PWM. Al costat A o al B.

Sensors tàctils[modifica]

Es pot fer servir una costella protorib. Tan sols pot ser connectada al costat B.

Un cop està configurat per maquinari de la protorib per a que es connectin els sensors tàctils, heu de configurar la vèrtebra per a poder llegir els sensors tàctils.

>>> iotv.dsetup("0000","aout","bintouch")
aout, bintouch
True
>>> iotv.dsetup("0000","ain","bintouch")
ain, bintouch
True
>>> iotv.dsetup("0000","aoutpwm","bintouch")
aoutpwm, bintouch
True

Un cop s'ha fet la configuració d'entrades tàctils, la lectura dels seus valors es fa exactament igual que la lectura del registre d'entrades.

Ús de Python[modifica]

Des de la Raspberry Pi connectada al cap. I el cap a una vèrtebra digital.

pi@raspberrypi:~/iot-vertebrae $ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import iotv
>>> iotv.dversion("0000")
Digital rib version: 1.2
'0000000100000010'
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.dsetup("0000","aout","bin")
ain, aout
Setup has not been changed
False
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.dsetup("0000","ain","bout")
ain, bout
True
>>> iotv.getdsetup("0000")
A digital input, B digital output
'00100001'
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.din("0000",'b')
'00000000'
>>> iotv.din("0000",'b')
'00100100'
>>> iotv.din("0000",'b')
'00000000'
>>> iotv.dout("0000",'a',0x5A)
>>> iotv.dsetup("0000","aoutpwm","bin")
aoutpwm, bin
True
>>> iotv.getdsetup("0000")
A PWM output, B digital input
'00010100'
>>> iotv.doutpwm('0000','a',255)
>>> iotv.doutpwm('0000','a',55)
>>> iotv.doutpwm('0000','a',0)
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.doutbit('0000','a',0,1)
>>> iotv.doutbit('0000','a',0,0)
>>> iotv.dsetup("0000","aoutpwm","bin")
aoutpwm, bin
True
>>> iotv.getdsetup("0000")
A PWM output, B digital input
'00010100'
>>> iotv.doutbitpwm('0000','a',0,55)
>>> iotv.doutbitpwm('0000','a',0,255)
>>> iotv.doutbitpwm('0000','a',0,0)
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> 
pi@raspberrypi:~/iot-vertebrae $