Przejdź do głównej treści

Specyfikacja biblioteki

Funkcje

Możesz używać wszystkich standardowych funkcji Arduino z CanSat NeXT, jak również dowolnych bibliotek Arduino. Funkcje Arduino można znaleźć tutaj: https://www.arduino.cc/reference/en/.

Biblioteka CanSat NeXT dodaje kilka łatwych w użyciu funkcji do korzystania z różnych zasobów na pokładzie, takich jak czujniki, radio i karta SD. Biblioteka zawiera zestaw przykładowych szkiców pokazujących, jak korzystać z tych funkcji. Poniższa lista pokazuje również wszystkie dostępne funkcje.

Funkcje inicjalizacji systemu

CanSatInit

Funkcjauint8_t CanSatInit(uint8_t macAddress[6])
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli inicjalizacja zakończyła się sukcesem, lub wartość niezerową, jeśli wystąpił błąd.
Parametry
uint8_t macAddress[6]
6-bajtowy adres MAC współdzielony przez satelitę i stację naziemną. Jest to opcjonalny parametr - gdy nie jest podany, radio nie jest inicjalizowane. Używany w przykładowym szkicu: Wszystkie
OpisTa komenda znajduje się w setup() prawie wszystkich skryptów CanSat NeXT. Służy do inicjalizacji sprzętu CanSatNeXT, w tym czujników i karty SD. Dodatkowo, jeśli podany jest macAddress, uruchamia radio i zaczyna nasłuchiwać przychodzących wiadomości. Adres MAC powinien być współdzielony przez stację naziemną i satelitę. Adres MAC można wybrać dowolnie, ale istnieją pewne nieprawidłowe adresy, takie jak wszystkie bajty będące 0x00, 0x01 i 0xFF. Jeśli funkcja inicjalizacji zostanie wywołana z nieprawidłowym adresem, zgłosi problem do Serial.

CanSatInit (uproszczona specyfikacja adresu MAC)

Funkcjauint8_t CanSatInit(uint8_t macAddress)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli inicjalizacja zakończyła się sukcesem, lub wartość niezerową, jeśli wystąpił błąd.
Parametry
uint8_t macAddress
Ostatni bajt adresu MAC, używany do rozróżnienia różnych par CanSat-GS.
OpisJest to uproszczona wersja CanSatInit z adresem MAC, która automatycznie ustawia pozostałe bajty na znaną bezpieczną wartość. Umożliwia to użytkownikom rozróżnienie swoich par Nadajnik-Odbiornik za pomocą tylko jednej wartości, która może wynosić 0-255.

GroundStationInit

Funkcjauint8_t GroundStationInit(uint8_t macAddress[6])
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli inicjalizacja zakończyła się sukcesem, lub wartość niezerową, jeśli wystąpił błąd.
Parametry
uint8_t macAddress[6]
6-bajtowy adres MAC współdzielony przez satelitę i stację naziemną.
Używane w przykładzie szkicuGroundstation receive
OpisJest to bliski krewny funkcji CanSatInit, ale zawsze wymaga adresu MAC. Ta funkcja inicjalizuje tylko radio, a nie inne systemy. Stacja naziemna może być dowolną płytką ESP32, w tym dowolną płytką deweloperską lub nawet inną płytką CanSat NeXT.

GroundStationInit (uproszczona specyfikacja adresu MAC)

Funkcjauint8_t GroundStationInit(uint8_t macAddress)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli inicjalizacja zakończyła się sukcesem, lub wartość niezerową, jeśli wystąpił błąd.
Parametry
uint8_t macAddress
Ostatni bajt adresu MAC, używany do rozróżnienia różnych par CanSat-GS.
OpisJest to uproszczona wersja GroundStationInit z adresem MAC, która automatycznie ustawia pozostałe bajty na znaną bezpieczną wartość. Umożliwia to użytkownikom rozróżnienie swoich par Nadajnik-Odbiornik za pomocą tylko jednej wartości, która może wynosić 0-255.

Funkcje IMU

readAcceleration

Funkcjauint8_t readAcceleration(float &x, float &y, float &z)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli pomiar zakończył się sukcesem.
Parametry
float &x, float &y, float &z
float &x: Adres zmiennej typu float, w której zostaną zapisane dane osi x.
Używane w przykładzie szkicuIMU
OpisTa funkcja może być używana do odczytu przyspieszenia z wbudowanego IMU. Parametry to adresy zmiennych typu float dla każdej osi. Przykład IMU pokazuje, jak używać tej funkcji do odczytu przyspieszenia. Przyspieszenie jest zwracane w jednostkach G (9.81 m/s).

readAccelX

Funkcjafloat readAccelX()
Typ zwracanyfloat
Wartość zwracanaZwraca liniowe przyspieszenie na osi X w jednostkach G.
Używane w przykładzie szkicuIMU
OpisTa funkcja może być używana do odczytu przyspieszenia z wbudowanego IMU na konkretnej osi. Przykład IMU pokazuje, jak używać tej funkcji do odczytu przyspieszenia. Przyspieszenie jest zwracane w jednostkach G (9.81 m/s).

readAccelY

Funkcjafloat readAccelY()
Typ zwracanyfloat
Wartość zwracanaZwraca liniowe przyspieszenie na osi Y w jednostkach G.
Używane w przykładowym szkicuIMU
OpisTa funkcja może być używana do odczytu przyspieszenia z wbudowanego IMU na określonej osi. Przykład IMU pokazuje, jak używać tej funkcji do odczytu przyspieszenia. Przyspieszenie jest zwracane w jednostkach G (9,81 m/s).

readAccelZ

Funkcjafloat readAccelZ()
Typ zwracanyfloat
Wartość zwracanaZwraca liniowe przyspieszenie na osi Z w jednostkach G.
Używane w przykładowym szkicuIMU
OpisTa funkcja może być używana do odczytu przyspieszenia z wbudowanego IMU na określonej osi. Przykład IMU pokazuje, jak używać tej funkcji do odczytu przyspieszenia. Przyspieszenie jest zwracane w jednostkach G (9,81 m/s).

readGyro

Funkcjauint8_t readGyro(float &x, float &y, float &z)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli pomiar zakończył się sukcesem.
Parametry
float &x, float &y, float &z
float &x: Adres zmiennej typu float, w której będą przechowywane dane z osi x.
Używane w przykładowym szkicuIMU
OpisTa funkcja może być używana do odczytu prędkości kątowej z wbudowanego IMU. Parametry to adresy zmiennych typu float dla każdej osi. Przykład IMU pokazuje, jak używać tej funkcji do odczytu prędkości kątowej. Prędkość kątowa jest zwracana w jednostkach mrad/s.

readGyroX

Funkcjafloat readGyroX()
Typ zwracanyfloat
Wartość zwracanaZwraca prędkość kątową na osi X w jednostkach mrad/s.
Używane w przykładowym szkicuIMU
OpisTa funkcja może być używana do odczytu prędkości kątowej z wbudowanego IMU na określonej osi. Parametry to adresy zmiennych typu float dla każdej osi. Prędkość kątowa jest zwracana w jednostkach mrad/s.

readGyroY

Funkcjafloat readGyroY()
Typ zwracanyfloat
Wartość zwracanaZwraca prędkość kątową na osi Y w jednostkach mrad/s.
Używane w przykładowym szkicuIMU
OpisTa funkcja może być używana do odczytu prędkości kątowej z wbudowanego IMU na określonej osi. Parametry to adresy zmiennych typu float dla każdej osi. Prędkość kątowa jest zwracana w jednostkach mrad/s.

readGyroZ

Funkcjafloat readGyroZ()
Typ zwracanyfloat
Wartość zwracanaZwraca prędkość kątową na osi Z w jednostkach mrad/s.
Używane w przykładzie szkicuIMU
OpisTa funkcja może być używana do odczytu prędkości kątowej z wbudowanego IMU na określonej osi. Parametry to adresy do zmiennych typu float dla każdej osi. Prędkość kątowa jest zwracana w jednostkach mrad/s.

Funkcje Barometru

readPressure

Funkcjafloat readPressure()
Typ zwracanyfloat
Wartość zwracanaCiśnienie w mbar
ParametryBrak
Używane w przykładzie szkicuBaro
OpisTa funkcja zwraca ciśnienie zgłaszane przez wbudowany barometr. Ciśnienie jest w jednostkach milibar.

readTemperature

Funkcjafloat readTemperature()
Typ zwracanyfloat
Wartość zwracanaTemperatura w stopniach Celsjusza
ParametryBrak
Używane w przykładzie szkicuBaro
OpisTa funkcja zwraca temperaturę zgłaszaną przez wbudowany barometr. Jednostką odczytu jest Celsjusz. Należy zauważyć, że jest to temperatura wewnętrzna mierzona przez barometr, więc może nie odzwierciedlać temperatury zewnętrznej.

Funkcje Karty SD / Systemu Plików

SDCardPresent

Funkcjabool SDCardPresent()
Typ zwracanybool
Wartość zwracanaZwraca true, jeśli wykryje kartę SD, false w przeciwnym razie.
ParametryBrak
Używane w przykładzie szkicuSD_advanced
OpisTa funkcja może być używana do sprawdzenia, czy karta SD jest mechanicznie obecna. Złącze karty SD ma mechaniczny przełącznik, który jest odczytywany, gdy ta funkcja jest wywoływana. Zwraca true lub false w zależności od tego, czy karta SD jest wykryta.

appendFile

Funkcjauint8_t appendFile(String filename, T data)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli zapis zakończył się sukcesem.
Parametry
String filename: Adres pliku, do którego ma być dodana zawartość. Jeśli plik nie istnieje, zostanie utworzony.
T data: Dane do dodania na końcu pliku.
Używane w przykładowym szkicuSD_write
OpisTo jest podstawowa funkcja zapisu używana do przechowywania odczytów na karcie SD.

printFileSystem

Funkcjavoid printFileSystem()
Typ zwracanyvoid
ParametryBrak
Używane w przykładowym szkicuSD_advanced
OpisTo jest mała funkcja pomocnicza do drukowania nazw plików i folderów obecnych na karcie SD. Może być używana w trakcie rozwoju.

newDir

Funkcjavoid newDir(String path)
Typ zwracanyvoid
Parametry
String path: Ścieżka nowego katalogu. Jeśli już istnieje, nic nie jest robione.
Używane w przykładowym szkicuSD_advanced
OpisUżywane do tworzenia nowych katalogów na karcie SD.

deleteDir

Funkcjavoid deleteDir(String path)
Typ zwracanyvoid
Parametry
String path: Ścieżka katalogu do usunięcia.
Używane w przykładowym szkicuSD_advanced
OpisUżywane do usuwania katalogów na karcie SD.

fileExists

Funkcjabool fileExists(String path)
Typ zwracanybool
Wartość zwracanaZwraca true, jeśli plik istnieje.
Parametry
String path: Ścieżka do pliku.
Używane w przykładowym szkicuSD_advanced
OpisTa funkcja może być używana do sprawdzania, czy plik istnieje na karcie SD.

fileSize

Funkcjauint32_t fileSize(String path)
Typ zwracanyuint32_t
Wartość zwracanaRozmiar pliku w bajtach.
Parametry
String path: Ścieżka do pliku.
Używane w przykładzieSD_advanced
OpisTa funkcja może być używana do odczytu rozmiaru pliku na karcie SD.

writeFile

Funkcjauint8_t writeFile(String filename, T data)
Typ zwracanyuint8_t
Wartość zwracanaZwraca 0, jeśli zapis zakończył się sukcesem.
Parametry
String filename: Adres pliku do zapisu.
T data: Dane do zapisania w pliku.
Używane w przykładzieSD_advanced
OpisTa funkcja jest podobna do appendFile(), ale nadpisuje istniejące dane na karcie SD. Do przechowywania danych powinno się używać appendFile. Funkcja ta może być przydatna do przechowywania ustawień, na przykład.

readFile

FunkcjaString readFile(String path)
Typ zwracanyString
Wartość zwracanaCała zawartość pliku.
Parametry
String path: Ścieżka do pliku.
Używane w przykładzieSD_advanced
OpisTa funkcja może być używana do odczytu wszystkich danych z pliku do zmiennej. Próba odczytu dużych plików może powodować problemy, ale jest odpowiednia dla małych plików, takich jak pliki konfiguracyjne lub ustawień.

renameFile

Funkcjavoid renameFile(String oldpath, String newpath)
Typ zwracanyvoid
Parametry
String oldpath: Oryginalna ścieżka do pliku.
String newpath: Nowa ścieżka pliku.
Używane w przykładzieSD_advanced
OpisTa funkcja może być używana do zmiany nazwy lub przenoszenia plików na karcie SD.

deleteFile

Funkcjavoid deleteFile(String path)
Typ zwracanyvoid
Parametry
String path: Ścieżka do pliku, który ma zostać usunięty.
Używane w przykładowym szkicuSD_advanced
OpisTa funkcja może być używana do usuwania plików z karty SD.

Funkcje radiowe

onDataReceived

Funkcjavoid onDataReceived(String data)
Typ zwracanyvoid
Parametry
String data: Otrzymane dane jako Arduino String.
Używane w przykładowym szkicuGroundstation_receive
OpisTo jest funkcja zwrotna, która jest wywoływana, gdy dane są odbierane. Kod użytkownika powinien zdefiniować tę funkcję, a CanSat NeXT wywoła ją automatycznie, gdy dane zostaną odebrane.

onBinaryDataReceived

Funkcjavoid onBinaryDataReceived(const uint8_t *data, uint16_t len)
Typ zwracanyvoid
Parametry
const uint8_t *data: Otrzymane dane jako tablica uint8_t.
uint16_t len: Długość otrzymanych danych w bajtach.
Używane w przykładowym szkicuBrak
OpisJest to podobne do funkcji onDataReceived, ale dane są dostarczane jako binarne zamiast obiektu String. Jest to przeznaczone dla zaawansowanych użytkowników, którzy uważają obiekt String za ograniczający.

onDataSent

Funkcjavoid onDataSent(const bool success)
Typ zwracanyvoid
Parametry
const bool success: Wartość logiczna wskazująca, czy dane zostały wysłane pomyślnie.
Używane w przykładowym szkicuBrak
OpisJest to kolejna funkcja zwrotna, którą można dodać do kodu użytkownika, jeśli jest to wymagane. Może być używana do sprawdzenia, czy odbiór został potwierdzony przez inne radio.

getRSSI

Funkcjaint8_t getRSSI()
Typ zwracanyint8_t
Wartość zwracanaRSSI ostatniej odebranej wiadomości. Zwraca 1, jeśli od uruchomienia nie odebrano żadnych wiadomości.
Używane w przykładowym szkicuBrak
OpisTa funkcja może być używana do monitorowania siły sygnału odbioru. Może być używana do testowania anten lub oceny zasięgu radia. Wartość jest wyrażona w dBm, jednak skala nie jest dokładna.

sendData (wariant String)

Functionuint8_t sendData(T data)
Return Typeuint8_t
Return Value0, jeśli dane zostały wysłane (nie wskazuje potwierdzenia).
Parameters
T data: Dane do wysłania. Można użyć dowolnego typu danych, ale wewnętrznie są one konwertowane na ciąg znaków.
Used in example sketchSend_data
DescriptionTo jest główna funkcja do wysyłania danych między stacją naziemną a satelitą. Należy zauważyć, że wartość zwracana nie wskazuje, czy dane zostały faktycznie odebrane, tylko że zostały wysłane. Callback onDataSent może być użyty do sprawdzenia, czy dane zostały odebrane przez drugą stronę.

sendData (Wariant binarny)

Functionuint8_t sendData(T* data, uint16_t len)
Return Typeuint8_t
Return Value0, jeśli dane zostały wysłane (nie wskazuje potwierdzenia).
Parameters
T* data: Dane do wysłania.
uint16_t len: Długość danych w bajtach.
Used in example sketchNone
DescriptionBinarny wariant funkcji sendData, przeznaczony dla zaawansowanych użytkowników, którzy czują się ograniczeni przez obiekt String.

getRSSI

Functionint8_t getRSSI()
Return Typeint8_t
Return ValueRSSI ostatniej odebranej wiadomości. Zwraca 1, jeśli od uruchomienia nie odebrano żadnych wiadomości.
Used in example sketchNone
DescriptionTa funkcja może być używana do monitorowania siły sygnału odbioru. Może być używana do testowania anten lub oceny zasięgu radia. Wartość jest wyrażona w dBm, jednak skala nie jest dokładna.

setRadioChannel

Functionvoid setRadioChannel(uint8_t newChannel)
Return Typevoid
Return ValueNone
Parametersuint8_t newChannel: Żądany numer kanału Wi-Fi (1–11). Każda wartość powyżej 11 zostanie ograniczona do 11.
Used in example sketchNone
DescriptionUstawia kanał komunikacji ESP-NOW. Nowy kanał musi być w zakresie standardowych kanałów Wi-Fi (1–11), które odpowiadają częstotliwościom zaczynającym się od 2.412 GHz z krokami co 5 MHz. Kanał 1 to 2.412, Kanał 2 to 2.417 i tak dalej. Wywołaj tę funkcję przed inicjalizacją biblioteki. Domyślny kanał to 1.

getRadioChannel

Funkcjauint8_t getRadioChannel()
Typ zwracanyuint8_t
Wartość zwracanaAktualny główny kanał Wi-Fi. Zwraca 0, jeśli wystąpi błąd podczas pobierania kanału.
Używane w przykładowym szkicuBrak
OpisPobiera aktualnie używany główny kanał Wi-Fi. Ta funkcja działa tylko po zainicjowaniu biblioteki.

printRadioFrequency

Funkcjavoid printRadioFrequency()
Typ zwracanyvoid
Wartość zwracanaBrak
Używane w przykładowym szkicuBrak
OpisOblicza i drukuje aktualną częstotliwość w GHz na podstawie aktywnego kanału Wi-Fi. Ta funkcja działa tylko po zainicjowaniu biblioteki.

Funkcje ADC

adcToVoltage

Funkcjafloat adcToVoltage(int value)
Typ zwracanyfloat
Wartość zwracanaPrzekształcone napięcie w woltach.
Parametry
int value: Odczyt ADC do przekształcenia na napięcie.
Używane w przykładowym szkicuAccurateAnalogRead
OpisTa funkcja przekształca odczyt ADC na napięcie, używając skalibrowanego wielomianu trzeciego stopnia dla bardziej liniowej konwersji. Należy pamiętać, że ta funkcja oblicza napięcie na pinie wejściowym, więc aby obliczyć napięcie baterii, należy również uwzględnić sieć rezystorów.

analogReadVoltage

Funkcjafloat analogReadVoltage(int pin)
Typ zwracanyfloat
Wartość zwracanaNapięcie ADC w woltach.
Parametry
int pin: Pin do odczytu.
Używane w przykładowym szkicuAccurateAnalogRead
OpisTa funkcja odczytuje napięcie bezpośrednio zamiast używać analogRead i przekształca odczyt na napięcie wewnętrznie, używając adcToVoltage.