Przejdź do głównej treści

Interfejs rozszerzeń

Urządzenia niestandardowe mogą być budowane i używane razem z CanSat. Mogą być one używane do tworzenia interesujących projektów, na które pomysły można znaleźć na naszym Blogu.

Interfejs rozszerzeń CanSat oferuje wolną linię UART, dwa piny ADC oraz 5 wolnych cyfrowych pinów I/O. Dodatkowo, linie SPI i I2C są dostępne dla interfejsu rozszerzeń, chociaż są one współdzielone odpowiednio z kartą SD i zestawem czujników.

Użytkownik może również zdecydować się na użycie pinów UART2 i ADC jako cyfrowych I/O, w przypadku gdy komunikacja szeregowa lub konwersja analogowo-cyfrowa nie jest potrzebna w ich rozwiązaniu.

Numer pinuNazwa pinuUżycie jakoUwagi
12GPIO12Cyfrowe I/OWolny
15GPIO15Cyfrowe I/OWolny
16GPIO16UART2 RXWolny
17GPIO17UART2 TXWolny
18SPI_CLKSPI CLKWspółużycie z kartą SD
19SPI_MISOSPI MISOWspółużycie z kartą SD
21I2C_SDAI2C SDAWspółużycie z zestawem czujników
22I2C_SCLI2C SCLWspółużycie z zestawem czujników
23SPI_MOSISPI MOSIWspółużycie z kartą SD
25GPIO25Cyfrowe I/OWolny
26GPIO26Cyfrowe I/OWolny
27GPIO27Cyfrowe I/OWolny
32GPIO32ADCWolny
33GPIO33ADCWolny

Tabela: Tabela wyszukiwania pinów interfejsu rozszerzeń. Nazwa pinu odnosi się do nazwy pinu w bibliotece.

Opcje komunikacji

Biblioteka CanSat nie zawiera wrapperów komunikacyjnych dla urządzeń niestandardowych. W przypadku komunikacji UART, I2C i SPI pomiędzy CanSat NeXT a Twoim niestandardowym urządzeniem ładunkowym, odwołaj się do domyślnych bibliotek Arduino UART, Wire i SPI.

UART

Linia UART2 jest dobrą alternatywą, ponieważ służy jako nieprzydzielony interfejs komunikacyjny dla rozszerzonych ładunków.

Aby wysłać dane przez linię UART, odwołaj się do Arduino

       CanSat NeXT
ESP32 Urządzenie użytkownika
+----------------+ +----------------+
| | TX (Transmit) | |
| TX o----|---------------->| RX (Receive) |
| | | |
| RX o<---|<----------------| TX |
| | GND (Ground) | |
| GND o---|-----------------| GND |
+----------------+ +----------------+

Obraz: Protokół UART w ASCII

I2C

Użycie I2C jest wspierane, ale użytkownik musi pamiętać, że na linii istnieje inny podsystem.

Przy wielu urządzeniach podrzędnych I2C, kod użytkownika musi określić, z którym urządzeniem podrzędnym I2C CanSat komunikuje się w danym momencie. Jest to rozróżniane za pomocą adresu podrzędnego, który jest unikalnym kodem szesnastkowym dla każdego urządzenia i można go znaleźć w arkuszu danych urządzenia podsystemu.

SPI

Użycie SPI jest również wspierane, ale użytkownik musi pamiętać, że na linii istnieje inny podsystem.

W przypadku SPI, rozróżnienie urządzeń podrzędnych odbywa się poprzez określenie pinu wyboru układu. Użytkownik musi przeznaczyć jeden z wolnych pinów GPIO jako pin wyboru układu dla swojego niestandardowego rozszerzonego urządzenia ładunkowego. Pin wyboru układu karty SD jest zdefiniowany w pliku biblioteki CanSatPins.h jako SD_CS.

CanSat NeXT I2C bus.

Obraz: Magistrala I2C CanSat NeXT z kilkoma podrzędnymi, lub "slave" podsystemami. W tym kontekście, zestaw czujników jest jednym z podrzędnych podsystemów.

CanSat NeXT I2C bus.

Obraz: Konfiguracja magistrali SPI CanSat NeXT, gdy obecne są dwa podrzędne, lub "slave" podsystemy. W tym kontekście, karta SD jest jednym z podrzędnych podsystemów.