Diferència entre revisions de la pàgina «Vertebra analògica (avert2 v2.1) - IoT-Vertebrae»
Salta a la navegació
Salta a la cerca
m (→Configuracions) |
m (→Configuracions) |
||
| Línia 85: | Línia 85: | ||
Sense cap pont és l'adreça 0x10. Amb els quatre ponts connectats és l'adreça 0x1F. | Sense cap pont és l'adreça 0x10. Amb els quatre ponts connectats és l'adreça 0x1F. | ||
| − | == Sortides i entrades | + | == Sortides i entrades analògiques == |
| − | Es poden fer servir els dos costats (A i/o B) per a connectar costelles | + | Es poden fer servir els dos costats (A i/o B) per a connectar costelles analògiques d'entrada i/o sortida. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | La vèrtebra analògica llegeix automàticament si les costelles analògiques són d'entrades o de sortides. | |
| − | + | A la versió 2.1 la costella de quatre entrades analògiques pot llegir tensions entre -10V i +10V. La costella de quatre sortides analògiques escriu tensions entre 0V i 10V. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
= Ús de Python = | = Ús de Python = | ||
Revisió del 19:02, 17 ago 2024
Contingut
Descripció general
- Comunicació I2C opto-aïllada amb les costelles analògiques. Dos canals I2C opto-aïllats per costella.
- 16 adreces (0x10 a 0x1F)
- Comunicació I2C
- Comunicació CAN. Pont de terminació del bus CAN
- Connecta costelles analògiques d'entrada i de sortida als costats A i B
- Detecció automàtica de les costelles analògiques connectades
- Led blanc que indica la comunicació entre la vèrtebra i el cap
- Led vermell indicador d'alimentació procedent del cap (D2)
- Led groc indicador d'alimentació externa de 24 volts (D3)
- Alimentació externa de 24 volts procedent d'una de les costelles analògiques. L'altra costella analògica també rep aquests 24 volts externs
- La vertebra genera +12V, -12V i 5V per a les dues costelles a partir dels 24 volts externs. La tensió dual +12V/-12V és per a alimentar els amplificadors operacionals. Els 5V són per alimentar els xips ADC i/o DAC de les costelles
- És una placa de 4 capes. Una és de massa, una altra de terra i la capa superior i inferior és per a les connexions elèctriques. Amb això es pretén tenir una alta immunitat al soroll extern
- Connector a antena de 2.4GHz
Esquema electrònic
Esquema electrònic en format pdf
Microprogramari
El microcontrolador de la vèrtebra analògica és un ESP32-S3.
Microprogramari de la vèrtebra analògica
Configuracions
Adreces (0x10 a 0x1F):
| A3 | A2 | A1 | A0 | text | Hex |
|---|---|---|---|---|---|
| - | - | - | - | 0000 | 0x10 |
| - | - | - | x | 0001 | 0x11 |
| - | - | x | - | 0010 | 0x12 |
| - | - | x | x | 0011 | 0x13 |
| - | x | - | - | 0100 | 0x14 |
| - | x | - | x | 0101 | 0x15 |
| - | x | x | - | 0110 | 0x16 |
| - | x | x | x | 0111 | 0x17 |
| x | - | - | - | 1000 | 0x18 |
| x | - | - | x | 1001 | 0x19 |
| x | - | x | - | 1010 | 0x1A |
| x | - | x | x | 1011 | 0x1B |
| x | x | - | - | 1100 | 0x1C |
| x | x | - | x | 1101 | 0x1D |
| x | x | x | - | 1110 | 0x1E |
| x | x | x | x | 1111 | 0x1F |
- : sense pont (jumper)
x : amb pont (jumper)
Sense cap pont és l'adreça 0x10. Amb els quatre ponts connectats és l'adreça 0x1F.
Sortides i entrades analògiques
Es poden fer servir els dos costats (A i/o B) per a connectar costelles analògiques d'entrada i/o sortida.
La vèrtebra analògica llegeix automàticament si les costelles analògiques són d'entrades o de sortides.
A la versió 2.1 la costella de quatre entrades analògiques pot llegir tensions entre -10V i +10V. La costella de quatre sortides analògiques escriu tensions entre 0V i 10V.
Ús de Python
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 $
