Spring til hovedindhold

Udvidelsesinterface

Brugerdefinerede enheder kan bygges og bruges sammen med CanSat. Disse kan bruges til at lave interessante projekter, som du kan finde idéer til i vores Blog.

CanSats udvidelsesinterface har en fri UART-linje, to ADC-ben og 5 frie digitale I/O-ben. Derudover er SPI- og I2C-linjer tilgængelige for udvidelsesinterfacet, selvom de deles med henholdsvis SD-kortet og sensorsuiten.

Brugeren kan også vælge at bruge UART2- og ADC-benene som digital I/O, hvis seriel kommunikation eller analog-til-digital-konvertering ikke er nødvendig i deres løsning.

Pin numberPin nameUse asNotes
12GPIO12Digital I/OFree
15GPIO15Digital I/OFree
16GPIO16UART2 RXFree
17GPIO17UART2 TXFree
18SPI_CLKSPI CLKCo-use with SD card
19SPI_MISOSPI MISOCo-use with SD card
21I2C_SDAI2C SDACo-use with sensor suite
22I2C_SCLI2C SCLCo-use with sensor suite
23SPI_MOSISPI MOSICo-use with SD card
25GPIO25Digital I/OFree
26GPIO26Digital I/OFree
27GPIO27Digital I/OFree
32GPIO32ADCFree
33GPIO33ADCFree

Table: Opslagstabel for udvidelsesinterface-ben. Pin name refererer til bibliotekets pin-navn.

Kommunikationsmuligheder

CanSat-biblioteket inkluderer ikke kommunikations-wrappere til de brugerdefinerede enheder. For UART-, I2C- og SPI-kommunikation mellem CanSat NeXT og din brugerdefinerede payload-enhed, henvises der til Arduinos standardbiblioteker UART, Wire og SPI, henholdsvis.

UART

UART2-linjen er et godt alternativ, da den fungerer som et ikke-allokeret kommunikationsinterface til udvidede payloads.

For at sende data gennem UART-linjen, henvises der til Arduino

       CanSat NeXT
ESP32 User's device
+----------------+ +----------------+
| | TX (Transmit) | |
| TX o----|---------------->| RX (Receive) |
| | | |
| RX o<---|<----------------| TX |
| | GND (Ground) | |
| GND o---|-----------------| GND |
+----------------+ +----------------+

Image: UART-protokol i ASCII

I2C

Brug af I2C understøttes, men brugeren skal være opmærksom på, at der findes et andet undersystem på linjen.

Med flere I2C-slaver skal brugerkoden angive, hvilken I2C-slave CanSat bruger på et givent tidspunkt. Dette skelnes ved en slaveadresse, som er en unik hexadecimal kode for hver enhed og kan findes i undersystemenhedens datablad.

SPI

Brug af SPI understøttes også, men brugeren skal være opmærksom på, at der findes et andet undersystem på linjen.

Med SPI foretages skelnen mellem slaver i stedet ved at angive en chip select-pin. Brugeren skal dedikere en af de frie GPIO-ben til at være chip select for deres brugerdefinerede udvidede payload-enhed. SD-kortets chip select-pin er defineret i biblioteksfilen CanSatPins.h som SD_CS.

CanSat NeXT I2C bus.

Image: CanSat NeXT I2C-bussen med flere sekundære, eller "slave", undersystemer. I denne kontekst er sensorsuiten et af slave-undersystemerne.

CanSat NeXT I2C bus.

Image: CanSat NeXT SPI-buskonfigurationen, når to sekundære, eller "slave", undersystemer er til stede. I denne kontekst er SD-kortet et af slave-undersystemerne.