Diferència entre revisions de la pàgina «Vertebra analògica (avert2 v2.1) - IoT-Vertebrae»
Salta a la navegació
Salta a la cerca
(Es crea la pàgina amb «= Descripció general = center|thumb|dvert2 v2.1 * Nivells lògics de 3,3 volts * 16 adreces (0x20 a 0x2F) * Comunicació I2C * Comunic...».) |
m (→Ús de Python) |
||
(Hi ha 8 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
= Descripció general = | = Descripció general = | ||
− | [[Image: | + | [[Image:Avert_v2.1_01.png|center|thumb|avert2 v2.1]] |
− | * | + | * Comunicació I2C opto-aïllada amb les costelles analògiques. Dos canals I2C opto-aïllats per costella. |
− | * 16 adreces ( | + | * 16 adreces (0x10 a 0x1F) |
* Comunicació I2C | * Comunicació I2C | ||
Línia 10: | Línia 10: | ||
* Comunicació CAN. Pont de terminació del bus CAN | * Comunicació CAN. Pont de terminació del bus CAN | ||
− | * Connecta costelles | + | * 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 indicador d'alimentació procedent del cap (D2) | + | * 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 | * Connector a antena de 2.4GHz | ||
= Esquema electrònic = | = Esquema electrònic = | ||
− | [[Image: | + | [[Image:avertv21_sch.png|center|thumb|Esquema electrònic avert2 v2.1]] |
+ | |||
+ | [https://www.binefa.cat/IoT/IoT-Vertebrae/pdf/sch/avert21.pdf Esquema electrònic en format pdf] | ||
− | |||
= Microprogramari = | = Microprogramari = | ||
El microcontrolador de la vèrtebra analògica és un ESP32-S3. | El microcontrolador de la vèrtebra analògica és un ESP32-S3. | ||
Línia 34: | Línia 41: | ||
Adreces (0x10 a 0x1F): | Adreces (0x10 a 0x1F): | ||
− | [[Image: | + | [[Image:AvertAddr00.png|center|thumb|Adreces avert2 v2.1]] |
{| class="wikitable" style="margin:auto" | {| class="wikitable" style="margin:auto" | ||
Línia 78: | 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 = | ||
− | Des de la Raspberry Pi connectada al cap. I el cap a una vèrtebra | + | Des de la Raspberry Pi connectada al cap. I el cap a una vèrtebra analògica. |
pi@raspberrypi:~/iot-vertebrae $ '''python''' | pi@raspberrypi:~/iot-vertebrae $ '''python''' | ||
Línia 106: | Línia 99: | ||
Type "help", "copyright", "credits" or "license" for more information. | Type "help", "copyright", "credits" or "license" for more information. | ||
>>> '''import iotv''' | >>> '''import iotv''' | ||
− | >>> iotv.''' | + | >>> iotv.'''aversion'''("0000") |
− | + | Analog rib version: 1.0 | |
− | + | '0000000100000000' | |
− | + | >>> iotv.'''getasetup'''("0000") | |
− | + | respA: 0x1, respB: 0x2 | |
− | + | A rib is ADC, B rib is DAC. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ' | ||
− | >>> iotv.''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | A | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'00010010' | '00010010' | ||
+ | >>> iotv.'''ain'''("0000",'a',1) | ||
+ | 19881 | ||
+ | >>> iotv.'''ainv'''("0000",'a',1) | ||
+ | i2cAddr: 0x10, addrChannel: 0x1 | ||
+ | res: 0x4DAA: 19882 | ||
+ | 0x4DAA --> 19882 --> 4.94V | ||
+ | 19882 | ||
+ | >>> iotv.ainv("0000",'a',2) | ||
+ | i2cAddr: 0x10, addrChannel: 0x21 | ||
+ | res: 0x4DBE: 19902 | ||
+ | 0x4DBE --> 19902 --> 4.95V | ||
+ | 19902 | ||
+ | >>> iotv.'''aout'''("0000",'b',2,4095) | ||
+ | dacCommand: 0x32 | ||
+ | It has been sent 0xFFF (10.00 volts) to DAC 2 | ||
+ | >>> iotv.ainv("0000",'a',2) | ||
+ | i2cAddr: 0x10, addrChannel: 0x21 | ||
+ | res: 0x6781: 26497 | ||
+ | 0x6781 --> 26497 --> 9.90V | ||
+ | 26497 | ||
+ | >>> iotv.aout("0000",'b',2,2047) | ||
+ | dacCommand: 0x32 | ||
+ | It has been sent 0x7FF (5.00 volts) to DAC 2 | ||
+ | >>> iotv.ainv("0000",'a',2) | ||
+ | i2cAddr: 0x10, addrChannel: 0x21 | ||
+ | res: 0x4DBB: 19899 | ||
+ | 0x4DBB --> 19899 --> 4.95V | ||
+ | 19899 | ||
>>> | >>> | ||
pi@raspberrypi:~/iot-vertebrae $ | pi@raspberrypi:~/iot-vertebrae $ |
Revisió de 19:05, 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 analògica.
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.aversion("0000") Analog rib version: 1.0 '0000000100000000' >>> iotv.getasetup("0000") respA: 0x1, respB: 0x2 A rib is ADC, B rib is DAC. '00010010' >>> iotv.ain("0000",'a',1) 19881 >>> iotv.ainv("0000",'a',1) i2cAddr: 0x10, addrChannel: 0x1 res: 0x4DAA: 19882 0x4DAA --> 19882 --> 4.94V 19882 >>> iotv.ainv("0000",'a',2) i2cAddr: 0x10, addrChannel: 0x21 res: 0x4DBE: 19902 0x4DBE --> 19902 --> 4.95V 19902 >>> iotv.aout("0000",'b',2,4095) dacCommand: 0x32 It has been sent 0xFFF (10.00 volts) to DAC 2 >>> iotv.ainv("0000",'a',2) i2cAddr: 0x10, addrChannel: 0x21 res: 0x6781: 26497 0x6781 --> 26497 --> 9.90V 26497 >>> iotv.aout("0000",'b',2,2047) dacCommand: 0x32 It has been sent 0x7FF (5.00 volts) to DAC 2 >>> iotv.ainv("0000",'a',2) i2cAddr: 0x10, addrChannel: 0x21 res: 0x4DBB: 19899 0x4DBB --> 19899 --> 4.95V 19899 >>> pi@raspberrypi:~/iot-vertebrae $