Zum Hauptinhalt springen

Bibliotheksspezifikation

Funktionen

Sie können alle regulären Arduino-Funktionalitäten mit CanSat NeXT nutzen, ebenso wie alle Arduino-Bibliotheken. Arduino-Funktionen finden Sie hier: https://www.arduino.cc/reference/en/.

Die CanSat NeXT-Bibliothek fügt mehrere einfach zu verwendende Funktionen hinzu, um die verschiedenen an Bord befindlichen Ressourcen wie Sensoren, Funk und die SD-Karte zu nutzen. Die Bibliothek wird mit einer Reihe von Beispielskizzen geliefert, die zeigen, wie diese Funktionalitäten genutzt werden. Die folgende Liste zeigt auch alle verfügbaren Funktionen.

Systeminitialisierungsfunktionen

CanSatInit

Funktionuint8_t CanSatInit(uint8_t macAddress[6])
Rückgabewerttypuint8_t
RückgabewertGibt 0 zurück, wenn die Initialisierung erfolgreich war, oder einen Wert ungleich Null, wenn ein Fehler aufgetreten ist.
Parameter
uint8_t macAddress[6]
6-Byte-MAC-Adresse, die vom Satelliten und der Bodenstation geteilt wird. Dies ist ein optionaler Parameter - wenn er nicht angegeben wird, wird das Funkmodul nicht initialisiert. Verwendet in Beispielskizze: Alle
BeschreibungDieser Befehl befindet sich im setup() fast aller CanSat NeXT-Skripte. Er wird verwendet, um die CanSatNeXT-Hardware zu initialisieren, einschließlich der Sensoren und der SD-Karte. Zusätzlich, wenn die macAddress angegeben wird, startet es das Funkmodul und beginnt, eingehende Nachrichten zu empfangen. Die MAC-Adresse sollte von der Bodenstation und dem Satelliten geteilt werden. Die MAC-Adresse kann frei gewählt werden, aber es gibt einige ungültige Adressen, wie alle Bytes 0x00, 0x01 und 0xFF. Wenn die Init-Funktion mit einer ungültigen Adresse aufgerufen wird, wird das Problem an die Serial gemeldet.

CanSatInit (vereinfachte MAC-Adressenspezifikation)

Funktionuint8_t CanSatInit(uint8_t macAddress)
Rückgabewerttypuint8_t
RückgabewertGibt 0 zurück, wenn die Initialisierung erfolgreich war, oder einen Wert ungleich Null, wenn ein Fehler aufgetreten ist.
Parameter
uint8_t macAddress
Letztes Byte der MAC-Adresse, verwendet, um zwischen verschiedenen CanSat-GS-Paaren zu unterscheiden.
BeschreibungDies ist eine vereinfachte Version der CanSatInit mit MAC-Adresse, die die anderen Bytes automatisch auf einen bekannten sicheren Wert setzt. Dies ermöglicht es den Benutzern, ihre Sender-Empfänger-Paare mit nur einem Wert zu unterscheiden, der zwischen 0 und 255 liegen kann.

GroundStationInit

Funktionuint8_t GroundStationInit(uint8_t macAddress[6])
Rückgabewerttypuint8_t
RückgabewertGibt 0 zurück, wenn die Initialisierung erfolgreich war, oder einen Wert ungleich Null, wenn ein Fehler aufgetreten ist.
Parameter
uint8_t macAddress[6]
6-Byte MAC-Adresse, die vom Satelliten und der Bodenstation gemeinsam genutzt wird.
Verwendet im BeispielsketchGroundstation Empfang
BeschreibungDies ist ein naher Verwandter der CanSatInit-Funktion, erfordert jedoch immer die MAC-Adresse. Diese Funktion initialisiert nur das Funkgerät, nicht andere Systeme. Die Bodenstation kann jedes ESP32-Board sein, einschließlich jedes Entwicklungsboards oder sogar eines anderen CanSat NeXT-Boards.

GroundStationInit (vereinfachte MAC-Adressenspezifikation)

Funktionuint8_t GroundStationInit(uint8_t macAddress)
Rückgabewerttypuint8_t
RückgabewertGibt 0 zurück, wenn die Initialisierung erfolgreich war, oder einen Wert ungleich Null, wenn ein Fehler aufgetreten ist.
Parameter
uint8_t macAddress
Letztes Byte der MAC-Adresse, verwendet zur Unterscheidung zwischen verschiedenen CanSat-GS-Paaren.
BeschreibungDies ist eine vereinfachte Version der GroundStationInit mit MAC-Adresse, die die anderen Bytes automatisch auf einen bekannten sicheren Wert setzt. Dies ermöglicht es den Benutzern, ihre Sender-Empfänger-Paare mit nur einem Wert zu unterscheiden, der zwischen 0-255 liegen kann.

IMU-Funktionen

readAcceleration

Funktionuint8_t readAcceleration(float &x, float &y, float &z)
Rückgabewerttypuint8_t
RückgabewertGibt 0 zurück, wenn die Messung erfolgreich war.
Parameter
float &x, float &y, float &z
float &x: Adresse einer Float-Variable, in der die Daten der x-Achse gespeichert werden.
Verwendet im BeispielsketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Beschleunigung vom integrierten IMU zu lesen. Die Parameter sind Adressen zu Float-Variablen für jede Achse. Das Beispiel IMU zeigt, wie diese Funktion verwendet wird, um die Beschleunigung zu lesen. Die Beschleunigung wird in Einheiten von G (9,81 m/s) zurückgegeben.

readAccelX

Funktionfloat readAccelX()
Rückgabewerttypfloat
RückgabewertGibt die lineare Beschleunigung auf der X-Achse in Einheiten von G zurück.
Verwendet im BeispielsketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Beschleunigung vom integrierten IMU auf einer bestimmten Achse zu lesen. Das Beispiel IMU zeigt, wie diese Funktion verwendet wird, um die Beschleunigung zu lesen. Die Beschleunigung wird in Einheiten von G (9,81 m/s) zurückgegeben.

readAccelY

Funktionfloat readAccelY()
Rückgabetypfloat
RückgabewertGibt die lineare Beschleunigung auf der Y-Achse in Einheiten von G zurück.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Beschleunigung von der an Bord befindlichen IMU auf einer bestimmten Achse zu lesen. Das Beispiel IMU zeigt, wie diese Funktion verwendet wird, um die Beschleunigung zu lesen. Die Beschleunigung wird in Einheiten von G (9,81 m/s) zurückgegeben.

readAccelZ

Funktionfloat readAccelZ()
Rückgabetypfloat
RückgabewertGibt die lineare Beschleunigung auf der Z-Achse in Einheiten von G zurück.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Beschleunigung von der an Bord befindlichen IMU auf einer bestimmten Achse zu lesen. Das Beispiel IMU zeigt, wie diese Funktion verwendet wird, um die Beschleunigung zu lesen. Die Beschleunigung wird in Einheiten von G (9,81 m/s) zurückgegeben.

readGyro

Funktionuint8_t readGyro(float &x, float &y, float &z)
Rückgabetypuint8_t
RückgabewertGibt 0 zurück, wenn die Messung erfolgreich war.
Parameter
float &x, float &y, float &z
float &x: Adresse einer Float-Variable, in der die Daten der X-Achse gespeichert werden.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Winkelgeschwindigkeit von der an Bord befindlichen IMU zu lesen. Die Parameter sind Adressen zu Float-Variablen für jede Achse. Das Beispiel IMU zeigt, wie diese Funktion verwendet wird, um die Winkelgeschwindigkeit zu lesen. Die Winkelgeschwindigkeit wird in Einheiten mrad/s zurückgegeben.

readGyroX

Funktionfloat readGyroX()
Rückgabetypfloat
RückgabewertGibt die Winkelgeschwindigkeit auf der X-Achse in Einheiten von mrad/s zurück.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Winkelgeschwindigkeit von der an Bord befindlichen IMU auf einer bestimmten Achse zu lesen. Die Parameter sind Adressen zu Float-Variablen für jede Achse. Die Winkelgeschwindigkeit wird in Einheiten mrad/s zurückgegeben.

readGyroY

Funktionfloat readGyroY()
Rückgabetypfloat
RückgabewertGibt die Winkelgeschwindigkeit auf der Y-Achse in Einheiten von mrad/s zurück.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Winkelgeschwindigkeit von der an Bord befindlichen IMU auf einer bestimmten Achse zu lesen. Die Parameter sind Adressen zu Float-Variablen für jede Achse. Die Winkelgeschwindigkeit wird in Einheiten mrad/s zurückgegeben.

readGyroZ

Funktionfloat readGyroZ()
Rückgabewert-Typfloat
RückgabewertGibt die Winkelgeschwindigkeit auf der Z-Achse in Einheiten von mrad/s zurück.
Verwendet im Beispiel-SketchIMU
BeschreibungDiese Funktion kann verwendet werden, um die Winkelgeschwindigkeit von der On-Board-IMU auf einer bestimmten Achse zu lesen. Die Parameter sind Adressen zu Float-Variablen für jede Achse. Die Winkelgeschwindigkeit wird in Einheiten von mrad/s zurückgegeben.

Barometer-Funktionen

readPressure

Funktionfloat readPressure()
Rückgabewert-Typfloat
RückgabewertDruck in mbar
ParameterKeine
Verwendet im Beispiel-SketchBaro
BeschreibungDiese Funktion gibt den Druck zurück, wie er vom On-Board-Barometer gemeldet wird. Der Druck ist in Einheiten von Millibar.

readTemperature

Funktionfloat readTemperature()
Rückgabewert-Typfloat
RückgabewertTemperatur in Celsius
ParameterKeine
Verwendet im Beispiel-SketchBaro
BeschreibungDiese Funktion gibt die Temperatur zurück, wie sie vom On-Board-Barometer gemeldet wird. Die Einheit der Messung ist Celsius. Beachten Sie, dass dies die interne Temperatur ist, die vom Barometer gemessen wird, sodass sie möglicherweise nicht die Außentemperatur widerspiegelt.

SD-Karten- / Dateisystem-Funktionen

SDCardPresent

Funktionbool SDCardPresent()
Rückgabewert-Typbool
RückgabewertGibt true zurück, wenn eine SD-Karte erkannt wird, andernfalls false.
ParameterKeine
Verwendet im Beispiel-SketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um zu überprüfen, ob die SD-Karte mechanisch vorhanden ist. Der SD-Kartensteckplatz verfügt über einen mechanischen Schalter, der gelesen wird, wenn diese Funktion aufgerufen wird. Gibt true oder false zurück, je nachdem, ob die SD-Karte erkannt wird.

appendFile

Funktionuint8_t appendFile(String filename, T data)
Rückgabewert-Typuint8_t
RückgabewertGibt 0 zurück, wenn das Schreiben erfolgreich war.
Parameter
String filename: Adresse der Datei, die angehängt werden soll. Wenn die Datei nicht existiert, wird sie erstellt.
T data: Daten, die am Ende der Datei angehängt werden sollen.
Verwendet im Beispiel-SketchSD_write
BeschreibungDies ist die grundlegende Schreibfunktion, die verwendet wird, um Messwerte auf der SD-Karte zu speichern.

printFileSystem

Funktionvoid printFileSystem()
Rückgabewert-Typvoid
ParameterKeine
Verwendet im Beispiel-SketchSD_advanced
BeschreibungDies ist eine kleine Hilfsfunktion, um die Namen von Dateien und Ordnern auf der SD-Karte auszugeben. Kann in der Entwicklung verwendet werden.

newDir

Funktionvoid newDir(String path)
Rückgabewert-Typvoid
Parameter
String path: Pfad des neuen Verzeichnisses. Wenn es bereits existiert, wird nichts unternommen.
Verwendet im Beispiel-SketchSD_advanced
BeschreibungWird verwendet, um neue Verzeichnisse auf der SD-Karte zu erstellen.

deleteDir

Funktionvoid deleteDir(String path)
Rückgabewert-Typvoid
Parameter
String path: Pfad des zu löschenden Verzeichnisses.
Verwendet im Beispiel-SketchSD_advanced
BeschreibungWird verwendet, um Verzeichnisse auf der SD-Karte zu löschen.

fileExists

Funktionbool fileExists(String path)
Rückgabewert-Typbool
RückgabewertGibt true zurück, wenn die Datei existiert.
Parameter
String path: Pfad zur Datei.
Verwendet im Beispiel-SketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um zu überprüfen, ob eine Datei auf der SD-Karte existiert.

fileSize

Funktionuint32_t fileSize(String path)
Rückgabetypuint32_t
RückgabewertGröße der Datei in Bytes.
Parameter
String path: Pfad zur Datei.
Verwendet im BeispielsketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um die Größe einer Datei auf der SD-Karte zu lesen.

writeFile

Funktionuint8_t writeFile(String filename, T data)
Rückgabetypuint8_t
RückgabewertGibt 0 zurück, wenn das Schreiben erfolgreich war.
Parameter
String filename: Adresse der zu schreibenden Datei.
T data: Daten, die in die Datei geschrieben werden sollen.
Verwendet im BeispielsketchSD_advanced
BeschreibungDiese Funktion ist ähnlich wie appendFile(), überschreibt jedoch vorhandene Daten auf der SD-Karte. Für die Datenspeicherung sollte stattdessen appendFile verwendet werden. Diese Funktion kann nützlich sein, um z.B. Einstellungen zu speichern.

readFile

FunktionString readFile(String path)
RückgabetypString
RückgabewertGesamter Inhalt der Datei.
Parameter
String path: Pfad zur Datei.
Verwendet im BeispielsketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um alle Daten aus einer Datei in eine Variable zu lesen. Der Versuch, große Dateien zu lesen, kann Probleme verursachen, aber für kleine Dateien wie Konfigurations- oder Einstellungsdateien ist es in Ordnung.

renameFile

Funktionvoid renameFile(String oldpath, String newpath)
Rückgabetypvoid
Parameter
String oldpath: Ursprünglicher Pfad zur Datei.
String newpath: Neuer Pfad der Datei.
Verwendet im BeispielsketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um Dateien auf der SD-Karte umzubenennen oder zu verschieben.

deleteFile

Funktionvoid deleteFile(String path)
Rückgabewertvoid
Parameter
String path: Pfad der zu löschenden Datei.
Verwendet im Beispiel-SketchSD_advanced
BeschreibungDiese Funktion kann verwendet werden, um Dateien von der SD-Karte zu löschen.

Radiofunktionen

onDataReceived

Funktionvoid onDataReceived(String data)
Rückgabewertvoid
Parameter
String data: Empfangene Daten als Arduino-String.
Verwendet im Beispiel-SketchGroundstation_receive
BeschreibungDies ist eine Callback-Funktion, die aufgerufen wird, wenn Daten empfangen werden. Der Benutzer-Code sollte diese Funktion definieren, und der CanSat NeXT wird sie automatisch aufrufen, wenn Daten empfangen werden.

onBinaryDataReceived

Funktionvoid onBinaryDataReceived(const uint8_t *data, uint16_t len)
Rückgabewertvoid
Parameter
const uint8_t *data: Empfangene Daten als uint8_t-Array.
uint16_t len: Länge der empfangenen Daten in Bytes.
Verwendet im Beispiel-SketchKeine
BeschreibungDies ist ähnlich der Funktion onDataReceived, aber die Daten werden als Binärdaten anstelle eines String-Objekts bereitgestellt. Dies ist für fortgeschrittene Benutzer gedacht, die das String-Objekt als einschränkend empfinden.

onDataSent

Funktionvoid onDataSent(const bool success)
Rückgabewertvoid
Parameter
const bool success: Boolean, der angibt, ob die Daten erfolgreich gesendet wurden.
Verwendet im Beispiel-SketchKeine
BeschreibungDies ist eine weitere Callback-Funktion, die bei Bedarf zum Benutzer-Code hinzugefügt werden kann. Sie kann verwendet werden, um zu überprüfen, ob der Empfang von einem anderen Radio bestätigt wurde.

getRSSI

Funktionint8_t getRSSI()
Rückgabewertint8_t
RückgabewertRSSI der zuletzt empfangenen Nachricht. Gibt 1 zurück, wenn seit dem Start keine Nachrichten empfangen wurden.
Verwendet im Beispiel-SketchKeine
BeschreibungDiese Funktion kann verwendet werden, um die Signalstärke des Empfangs zu überwachen. Sie kann verwendet werden, um Antennen zu testen oder die Funkreichweite zu beurteilen. Der Wert wird in dBm ausgedrückt, jedoch ist die Skala nicht genau.

sendData (String-Variante)

Funktionuint8_t sendData(T data)
Rückgabetypuint8_t
Rückgabewert0, wenn Daten gesendet wurden (zeigt keine Bestätigung an).
Parameter
T data: Zu sendende Daten. Jeder Datentyp kann verwendet werden, wird jedoch intern in einen String konvertiert.
Verwendet im BeispielsketchSend_data
BeschreibungDies ist die Hauptfunktion zum Senden von Daten zwischen der Bodenstation und dem Satelliten. Beachten Sie, dass der Rückgabewert nicht anzeigt, ob die Daten tatsächlich empfangen wurden, sondern nur, dass sie gesendet wurden. Der Callback onDataSent kann verwendet werden, um zu überprüfen, ob die Daten vom anderen Ende empfangen wurden.

sendData (Binäre Variante)

Funktionuint8_t sendData(T* data, uint16_t len)
Rückgabetypuint8_t
Rückgabewert0, wenn Daten gesendet wurden (zeigt keine Bestätigung an).
Parameter
T* data: Zu sendende Daten.
uint16_t len: Länge der Daten in Bytes.
Verwendet im BeispielsketchKeine
BeschreibungEine binäre Variante der sendData-Funktion, bereitgestellt für fortgeschrittene Benutzer, die sich durch das String-Objekt eingeschränkt fühlen.

getRSSI

Funktionint8_t getRSSI()
Rückgabetypint8_t
RückgabewertRSSI der zuletzt empfangenen Nachricht. Gibt 1 zurück, wenn seit dem Start keine Nachrichten empfangen wurden.
Verwendet im BeispielsketchKeine
BeschreibungDiese Funktion kann verwendet werden, um die Signalstärke des Empfangs zu überwachen. Sie kann verwendet werden, um Antennen zu testen oder die Funkreichweite zu beurteilen. Der Wert wird in dBm ausgedrückt, jedoch ist die Skala nicht genau.

setRadioChannel

Funktionvoid setRadioChannel(uint8_t newChannel)
Rückgabetypvoid
RückgabewertKeine
Parameteruint8_t newChannel: Gewünschte Wi-Fi-Kanalnummer (1–11). Jeder Wert über 11 wird auf 11 begrenzt.
Verwendet im BeispielsketchKeine
BeschreibungSetzt den ESP-NOW-Kommunikationskanal. Der neue Kanal muss innerhalb des Bereichs der Standard-Wi-Fi-Kanäle (1–11) liegen, die Frequenzen ab 2,412 GHz mit Schritten von 5 MHz entsprechen. Kanal 1 ist 2,412, Kanal 2 ist 2,417 und so weiter. Rufen Sie diese Funktion vor der Initialisierung der Bibliothek auf. Der Standardkanal ist 1.

getRadioChannel

Funktionuint8_t getRadioChannel()
Rückgabetypuint8_t
RückgabewertDer aktuelle primäre Wi-Fi-Kanal. Gibt 0 zurück, wenn beim Abrufen des Kanals ein Fehler auftritt.
Verwendet im Beispiel-SketchKeine
BeschreibungRuft den derzeit verwendeten primären Wi-Fi-Kanal ab. Diese Funktion funktioniert nur nach der Initialisierung der Bibliothek.

printRadioFrequency

Funktionvoid printRadioFrequency()
Rückgabetypvoid
RückgabewertKeine
Verwendet im Beispiel-SketchKeine
BeschreibungBerechnet und druckt die aktuelle Frequenz in GHz basierend auf dem aktiven Wi-Fi-Kanal. Diese Funktion funktioniert nur nach der Initialisierung der Bibliothek.

ADC-Funktionen

adcToVoltage

Funktionfloat adcToVoltage(int value)
Rückgabetypfloat
RückgabewertUmgewandelte Spannung in Volt.
Parameter
int value: Zu konvertierender ADC-Wert.
Verwendet im Beispiel-SketchAccurateAnalogRead
BeschreibungDiese Funktion konvertiert einen ADC-Wert in Spannung unter Verwendung eines kalibrierten Polynoms dritten Grades für eine linearere Umwandlung. Beachten Sie, dass diese Funktion die Spannung am Eingangspin berechnet. Um die Batteriespannung zu berechnen, müssen Sie auch das Widerstandsnetzwerk berücksichtigen.

analogReadVoltage

Funktionfloat analogReadVoltage(int pin)
Rückgabetypfloat
RückgabewertADC-Spannung in Volt.
Parameter
int pin: Zu lesender Pin.
Verwendet im Beispiel-SketchAccurateAnalogRead
BeschreibungDiese Funktion liest die Spannung direkt, anstatt analogRead zu verwenden, und konvertiert die Messung intern mit adcToVoltage in Spannung.