Salta al contenuto principale

Specifiche della libreria

Funzioni

Puoi utilizzare tutte le funzionalità regolari di Arduino con CanSat NeXT, così come qualsiasi libreria Arduino. Le funzioni di Arduino possono essere trovate qui: https://www.arduino.cc/reference/en/.

La libreria CanSat NeXT aggiunge diverse funzioni facili da usare per utilizzare le diverse risorse a bordo, come sensori, radio e la scheda SD. La libreria viene fornita con una serie di sketch di esempio che mostrano come utilizzare queste funzionalità. L'elenco seguente mostra anche tutte le funzioni disponibili.

Funzioni di Inizializzazione del Sistema

CanSatInit

Funzioneuint8_t CanSatInit(uint8_t macAddress[6])
Tipo di Ritornouint8_t
Valore di RitornoRestituisce 0 se l'inizializzazione è stata completata con successo, o un valore diverso da zero se c'è stato un errore.
Parametri
uint8_t macAddress[6]
Indirizzo MAC a 6 byte condiviso dal satellite e dalla stazione di terra. Questo è un parametro opzionale - quando non viene fornito, la radio non viene inizializzata. Utilizzato nello sketch di esempio: Tutti
DescrizioneQuesto comando si trova nel setup() di quasi tutti gli script CanSat NeXT. Viene utilizzato per inizializzare l'hardware CanSatNeXT, inclusi i sensori e la scheda SD. Inoltre, se viene fornito il macAddress, avvia la radio e inizia ad ascoltare i messaggi in arrivo. L'indirizzo MAC dovrebbe essere condiviso dalla stazione di terra e dal satellite. L'indirizzo MAC può essere scelto liberamente, ma ci sono alcuni indirizzi non validi come tutti i byte 0x00, 0x01 e 0xFF. Se la funzione di inizializzazione viene chiamata con un indirizzo non valido, segnalerà il problema alla Serial.

CanSatInit (specifica semplificata dell'indirizzo MAC)

Funzioneuint8_t CanSatInit(uint8_t macAddress)
Tipo di Ritornouint8_t
Valore di RitornoRestituisce 0 se l'inizializzazione è stata completata con successo, o un valore diverso da zero se c'è stato un errore.
Parametri
uint8_t macAddress
Ultimo byte dell'indirizzo MAC, utilizzato per differenziare tra diverse coppie CanSat-GS.
DescrizioneQuesta è una versione semplificata del CanSatInit con indirizzo MAC, che imposta automaticamente gli altri byte su un valore noto sicuro. Questo consente agli utenti di differenziare le loro coppie Trasmettitore-Ricevitore con un solo valore, che può essere 0-255.

GroundStationInit

Funzioneuint8_t GroundStationInit(uint8_t macAddress[6])
Tipo di Ritornouint8_t
Valore di RitornoRitorna 0 se l'inizializzazione ha avuto successo, o un valore diverso da zero in caso di errore.
Parametri
uint8_t macAddress[6]
Indirizzo MAC a 6 byte condiviso dal satellite e dalla stazione di terra.
Usato nell'esempioRicezione stazione di terra
DescrizioneQuesto è un parente stretto della funzione CanSatInit, ma richiede sempre l'indirizzo MAC. Questa funzione inizializza solo la radio, non altri sistemi. La stazione di terra può essere qualsiasi scheda ESP32, inclusa qualsiasi devboard o anche un'altra scheda CanSat NeXT.

GroundStationInit (specifica semplificata dell'indirizzo MAC)

Funzioneuint8_t GroundStationInit(uint8_t macAddress)
Tipo di Ritornouint8_t
Valore di RitornoRitorna 0 se l'inizializzazione ha avuto successo, o un valore diverso da zero in caso di errore.
Parametri
uint8_t macAddress
Ultimo byte dell'indirizzo MAC, usato per differenziare tra diverse coppie CanSat-GS.
DescrizioneQuesta è una versione semplificata della GroundStationInit con indirizzo MAC, che imposta automaticamente gli altri byte su un valore sicuro noto. Questo consente agli utenti di differenziare le loro coppie Trasmettitore-Ricevitore con un solo valore, che può essere da 0 a 255.

Funzioni IMU

readAcceleration

Funzioneuint8_t readAcceleration(float &x, float &y, float &z)
Tipo di Ritornouint8_t
Valore di RitornoRitorna 0 se la misurazione ha avuto successo.
Parametri
float &x, float &y, float &z
float &x: Indirizzo di una variabile float dove verranno memorizzati i dati dell'asse x.
Usato nell'esempioIMU
DescrizioneQuesta funzione può essere utilizzata per leggere l'accelerazione dall'IMU a bordo. I parametri sono indirizzi a variabili float per ciascun asse. L'esempio IMU mostra come utilizzare questa funzione per leggere l'accelerazione. L'accelerazione è restituita in unità di G (9.81 m/s).

readAccelX

Funzionefloat readAccelX()
Tipo di Ritornofloat
Valore di RitornoRitorna l'accelerazione lineare sull'asse X in unità di G.
Usato nell'esempioIMU
DescrizioneQuesta funzione può essere utilizzata per leggere l'accelerazione dall'IMU a bordo su un asse specifico. L'esempio IMU mostra come utilizzare questa funzione per leggere l'accelerazione. L'accelerazione è restituita in unità di G (9.81 m/s).

readAccelY

Funzionefloat readAccelY()
Tipo di Ritornofloat
Valore di RitornoRestituisce l'accelerazione lineare sull'asse Y in unità di G.
Usato nell'esempio di sketchIMU
DescrizioneQuesta funzione può essere utilizzata per leggere l'accelerazione dall'IMU integrato su un asse specifico. L'esempio IMU mostra come utilizzare questa funzione per leggere l'accelerazione. L'accelerazione è restituita in unità di G (9.81 m/s).

readAccelZ

Funzionefloat readAccelZ()
Tipo di Ritornofloat
Valore di RitornoRestituisce l'accelerazione lineare sull'asse Z in unità di G.
Usato nell'esempio di sketchIMU
DescrizioneQuesta funzione può essere utilizzata per leggere l'accelerazione dall'IMU integrato su un asse specifico. L'esempio IMU mostra come utilizzare questa funzione per leggere l'accelerazione. L'accelerazione è restituita in unità di G (9.81 m/s).

readGyro

Funzioneuint8_t readGyro(float &x, float &y, float &z)
Tipo di Ritornouint8_t
Valore di RitornoRestituisce 0 se la misurazione è stata effettuata con successo.
Parametri
float &x, float &y, float &z
float &x: Indirizzo di una variabile float dove verranno memorizzati i dati dell'asse x.
Usato nell'esempio di sketchIMU
DescrizioneQuesta funzione può essere utilizzata per leggere la velocità angolare dall'IMU integrato. I parametri sono indirizzi a variabili float per ciascun asse. L'esempio IMU mostra come utilizzare questa funzione per leggere la velocità angolare. La velocità angolare è restituita in unità mrad/s.

readGyroX

Funzionefloat readGyroX()
Tipo di Ritornofloat
Valore di RitornoRestituisce la velocità angolare sull'asse X in unità di mrad/s.
Usato nell'esempio di sketchIMU
DescrizioneQuesta funzione può essere utilizzata per leggere la velocità angolare dall'IMU integrato su un asse specifico. I parametri sono indirizzi a variabili float per ciascun asse. La velocità angolare è restituita in unità mrad/s.

readGyroY

Funzionefloat readGyroY()
Tipo di Ritornofloat
Valore di RitornoRestituisce la velocità angolare sull'asse Y in unità di mrad/s.
Usato nell'esempio di sketchIMU
DescrizioneQuesta funzione può essere utilizzata per leggere la velocità angolare dall'IMU integrato su un asse specifico. I parametri sono indirizzi a variabili float per ciascun asse. La velocità angolare è restituita in unità mrad/s.

readGyroZ

Funzionefloat readGyroZ()
Tipo di Ritornofloat
Valore di RitornoRestituisce la velocità angolare sull'asse Z in unità di mrad/s.
Usato nello sketch di esempioIMU
DescrizioneQuesta funzione può essere utilizzata per leggere la velocità angolare dall'IMU integrato su un asse specifico. I parametri sono indirizzi a variabili float per ciascun asse. La velocità angolare è restituita in unità di mrad/s.

Funzioni del Barometro

readPressure

Funzionefloat readPressure()
Tipo di Ritornofloat
Valore di RitornoPressione in mbar
ParametriNessuno
Usato nello sketch di esempioBaro
DescrizioneQuesta funzione restituisce la pressione come riportato dal barometro integrato. La pressione è in unità di millibar.

readTemperature

Funzionefloat readTemperature()
Tipo di Ritornofloat
Valore di RitornoTemperatura in Celsius
ParametriNessuno
Usato nello sketch di esempioBaro
DescrizioneQuesta funzione restituisce la temperatura come riportato dal barometro integrato. L'unità della lettura è Celsius. Nota che questa è la temperatura interna misurata dal barometro, quindi potrebbe non riflettere la temperatura esterna.

Funzioni della Scheda SD / File System

SDCardPresent

Funzionebool SDCardPresent()
Tipo di Ritornobool
Valore di RitornoRestituisce true se rileva una scheda SD, false altrimenti.
ParametriNessuno
Usato nello sketch di esempioSD_advanced
DescrizioneQuesta funzione può essere utilizzata per verificare se la scheda SD è meccanicamente presente. Il connettore della scheda SD ha un interruttore meccanico, che viene letto quando questa funzione viene chiamata. Restituisce true o false a seconda che la scheda SD sia rilevata o meno.

appendFile

Functionuint8_t appendFile(String filename, T data)
Return Typeuint8_t
Return ValueRestituisce 0 se la scrittura è stata completata con successo.
Parameters
String filename: Indirizzo del file a cui aggiungere dati. Se il file non esiste, viene creato.
T data: Dati da aggiungere alla fine del file.
Used in example sketchSD_write
DescriptionQuesta è la funzione di scrittura di base utilizzata per memorizzare le letture sulla scheda SD.

printFileSystem

Functionvoid printFileSystem()
Return Typevoid
ParametersNessuno
Used in example sketchSD_advanced
DescriptionQuesta è una piccola funzione di supporto per stampare i nomi dei file e delle cartelle presenti sulla scheda SD. Può essere utilizzata nello sviluppo.

newDir

Functionvoid newDir(String path)
Return Typevoid
Parameters
String path: Percorso della nuova directory. Se esiste già, non viene fatto nulla.
Used in example sketchSD_advanced
DescriptionUtilizzata per creare nuove directory sulla scheda SD.

deleteDir

Functionvoid deleteDir(String path)
Return Typevoid
Parameters
String path: Percorso della directory da eliminare.
Used in example sketchSD_advanced
DescriptionUtilizzata per eliminare directory sulla scheda SD.

fileExists

Functionbool fileExists(String path)
Return Typebool
Return ValueRestituisce true se il file esiste.
Parameters
String path: Percorso al file.
Used in example sketchSD_advanced
DescriptionQuesta funzione può essere utilizzata per verificare se un file esiste sulla scheda SD.

fileSize

Funzioneuint32_t fileSize(String path)
Tipo di Ritornouint32_t
Valore di RitornoDimensione del file in byte.
Parametri
String path: Percorso al file.
Usato nell'esempio di sketchSD_advanced
DescrizioneQuesta funzione può essere utilizzata per leggere la dimensione di un file sulla scheda SD.

writeFile

Funzioneuint8_t writeFile(String filename, T data)
Tipo di Ritornouint8_t
Valore di RitornoRitorna 0 se la scrittura è stata eseguita con successo.
Parametri
String filename: Indirizzo del file da scrivere.
T data: Dati da scrivere nel file.
Usato nell'esempio di sketchSD_advanced
DescrizioneQuesta funzione è simile a appendFile(), ma sovrascrive i dati esistenti sulla scheda SD. Per l'archiviazione dei dati, dovrebbe essere usato appendFile. Questa funzione può essere utile per memorizzare impostazioni, ad esempio.

readFile

FunzioneString readFile(String path)
Tipo di RitornoString
Valore di RitornoTutto il contenuto nel file.
Parametri
String path: Percorso al file.
Usato nell'esempio di sketchSD_advanced
DescrizioneQuesta funzione può essere utilizzata per leggere tutti i dati da un file in una variabile. Tentare di leggere file di grandi dimensioni può causare problemi, ma va bene per file piccoli, come file di configurazione o impostazioni.

renameFile

Funzionevoid renameFile(String oldpath, String newpath)
Tipo di Ritornovoid
Parametri
String oldpath: Percorso originale al file.
String newpath: Nuovo percorso del file.
Usato nell'esempio di sketchSD_advanced
DescrizioneQuesta funzione può essere utilizzata per rinominare o spostare file sulla scheda SD.

deleteFile

Funzionevoid deleteFile(String path)
Tipo di Ritornovoid
Parametri
String path: Percorso del file da eliminare.
Usato nell'esempio di sketchSD_advanced
DescrizioneQuesta funzione può essere utilizzata per eliminare file dalla scheda SD.

Funzioni Radio

onDataReceived

Funzionevoid onDataReceived(String data)
Tipo di Ritornovoid
Parametri
String data: Dati ricevuti come una Stringa di Arduino.
Usato nell'esempio di sketchGroundstation_receive
DescrizioneQuesta è una funzione di callback che viene chiamata quando i dati vengono ricevuti. Il codice utente dovrebbe definire questa funzione, e il CanSat NeXT la chiamerà automaticamente quando i dati vengono ricevuti.

onBinaryDataReceived

Funzionevoid onBinaryDataReceived(const uint8_t *data, uint16_t len)
Tipo di Ritornovoid
Parametri
const uint8_t *data: Dati ricevuti come un array di uint8_t.
uint16_t len: Lunghezza dei dati ricevuti in byte.
Usato nell'esempio di sketchNessuno
DescrizioneQuesta è simile alla funzione onDataReceived, ma i dati sono forniti come binari invece che come oggetto String. Questa è fornita per utenti avanzati che trovano l'oggetto String limitante.

onDataSent

Funzionevoid onDataSent(const bool success)
Tipo di Ritornovoid
Parametri
const bool success: Booleano che indica se i dati sono stati inviati con successo.
Usato nell'esempio di sketchNessuno
DescrizioneQuesta è un'altra funzione di callback che può essere aggiunta al codice utente se necessario. Può essere utilizzata per verificare se la ricezione è stata riconosciuta da un'altra radio.

getRSSI

Funzioneint8_t getRSSI()
Tipo di Ritornoint8_t
Valore di RitornoRSSI dell'ultimo messaggio ricevuto. Ritorna 1 se non sono stati ricevuti messaggi dall'avvio.
Usato nell'esempio di sketchNessuno
DescrizioneQuesta funzione può essere utilizzata per monitorare la potenza del segnale della ricezione. Può essere utilizzata per testare le antenne o valutare la portata della radio. Il valore è espresso in dBm, tuttavia la scala non è accurata.

sendData (variante String)

Funzioneuint8_t sendData(T data)
Tipo di Ritornouint8_t
Valore di Ritorno0 se i dati sono stati inviati (non indica l'avvenuta ricezione).
Parametri
T data: Dati da inviare. Qualsiasi tipo di dati può essere utilizzato, ma viene convertito internamente in una stringa.
Usato nello sketch di esempioSend_data
DescrizioneQuesta è la funzione principale per l'invio di dati tra la stazione a terra e il satellite. Nota che il valore di ritorno non indica se i dati sono stati effettivamente ricevuti, ma solo che sono stati inviati. Il callback onDataSent può essere utilizzato per verificare se i dati sono stati ricevuti dall'altra parte.

sendData (Variante binaria)

Funzioneuint8_t sendData(T* data, uint16_t len)
Tipo di Ritornouint8_t
Valore di Ritorno0 se i dati sono stati inviati (non indica l'avvenuta ricezione).
Parametri
T* data: Dati da inviare.
uint16_t len: Lunghezza dei dati in byte.
Usato nello sketch di esempioNessuno
DescrizioneUna variante binaria della funzione sendData, fornita per utenti avanzati che si sentono limitati dall'oggetto String.

getRSSI

Funzioneint8_t getRSSI()
Tipo di Ritornoint8_t
Valore di RitornoRSSI dell'ultimo messaggio ricevuto. Ritorna 1 se non sono stati ricevuti messaggi dall'avvio.
Usato nello sketch di esempioNessuno
DescrizioneQuesta funzione può essere utilizzata per monitorare la potenza del segnale della ricezione. Può essere utilizzata per testare le antenne o per valutare la portata radio. Il valore è espresso in dBm, tuttavia la scala non è accurata.

setRadioChannel

Funzionevoid setRadioChannel(uint8_t newChannel)
Tipo di Ritornovoid
Valore di RitornoNessuno
Parametriuint8_t newChannel: Numero del canale Wi-Fi desiderato (1–11). Qualsiasi valore superiore a 11 sarà limitato a 11.
Usato nello sketch di esempioNessuno
DescrizioneImposta il canale di comunicazione ESP-NOW. Il nuovo canale deve essere all'interno dell'intervallo dei canali Wi-Fi standard (1–11), che corrispondono a frequenze a partire da 2.412 GHz con passi di 5 MHz. Il canale 1 è 2.412, il canale 2 è 2.417 e così via. Chiamare questa funzione prima dell'inizializzazione della libreria. Il canale predefinito è 1.

getRadioChannel

Funzioneuint8_t getRadioChannel()
Tipo di Ritornouint8_t
Valore di RitornoIl canale Wi-Fi primario attuale. Restituisce 0 se c'è un errore nel recupero del canale.
Usato nello sketch di esempioNessuno
DescrizioneRecupera il canale Wi-Fi primario attualmente in uso. Questa funzione funziona solo dopo l'inizializzazione della libreria.

printRadioFrequency

Funzionevoid printRadioFrequency()
Tipo di Ritornovoid
Valore di RitornoNessuno
Usato nello sketch di esempioNessuno
DescrizioneCalcola e stampa la frequenza attuale in GHz basata sul canale Wi-Fi attivo. Questa funzione funziona solo dopo l'inizializzazione della libreria.

Funzioni ADC

adcToVoltage

Funzionefloat adcToVoltage(int value)
Tipo di Ritornofloat
Valore di RitornoTensione convertita in volt.
Parametri
int value: Lettura ADC da convertire in tensione.
Usato nello sketch di esempioAccurateAnalogRead
DescrizioneQuesta funzione converte una lettura ADC in tensione utilizzando un polinomio calibrato di terzo ordine per una conversione più lineare. Nota che questa funzione calcola la tensione al pin di ingresso, quindi per calcolare la tensione della batteria, è necessario considerare anche la rete di resistenze.

analogReadVoltage

Funzionefloat analogReadVoltage(int pin)
Tipo di Ritornofloat
Valore di RitornoTensione ADC in volt.
Parametri
int pin: Pin da leggere.
Usato nello sketch di esempioAccurateAnalogRead
DescrizioneQuesta funzione legge la tensione direttamente invece di usare analogRead e converte internamente la lettura in tensione usando adcToVoltage.