Saltar al contenido principal

Especificación de la biblioteca

Funciones

Puedes usar todas las funcionalidades regulares de Arduino con CanSat NeXT, así como cualquier biblioteca de Arduino. Las funciones de Arduino se pueden encontrar aquí: https://www.arduino.cc/reference/en/.

La biblioteca CanSat NeXT añade varias funciones fáciles de usar para utilizar los diferentes recursos a bordo, como sensores, radio y la tarjeta SD. La biblioteca viene con un conjunto de ejemplos que muestran cómo usar estas funcionalidades. La lista a continuación también muestra todas las funciones disponibles.

Funciones de Inicialización del Sistema

CanSatInit

Funciónuint8_t CanSatInit(uint8_t macAddress[6])
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la inicialización fue exitosa, o un valor distinto de cero si hubo un error.
Parámetros
uint8_t macAddress[6]
Dirección MAC de 6 bytes compartida por el satélite y la estación terrestre. Este es un parámetro opcional: cuando no se proporciona, la radio no se inicializa. Usado en el ejemplo: Todos
DescripciónEste comando se encuentra en el setup() de casi todos los scripts de CanSat NeXT. Se utiliza para inicializar el hardware de CanSatNeXT, incluidos los sensores y la tarjeta SD. Además, si se proporciona el macAddress, inicia la radio y comienza a escuchar mensajes entrantes. La dirección MAC debe ser compartida por la estación terrestre y el satélite. La dirección MAC se puede elegir libremente, pero hay algunas direcciones no válidas, como todos los bytes siendo 0x00, 0x01, y 0xFF. Si la función de inicialización se llama con una dirección no válida, informará del problema al Serial.

CanSatInit (especificación simplificada de la dirección MAC)

Funciónuint8_t CanSatInit(uint8_t macAddress)
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la inicialización fue exitosa, o un valor distinto de cero si hubo un error.
Parámetros
uint8_t macAddress
Último byte de la dirección MAC, usado para diferenciar entre diferentes pares CanSat-GS.
DescripciónEsta es una versión simplificada de CanSatInit con dirección MAC, que establece los otros bytes automáticamente a un valor seguro conocido. Esto permite a los usuarios diferenciar sus pares Transmisor-Receptor con solo un valor, que puede ser de 0-255.

GroundStationInit

Funciónuint8_t GroundStationInit(uint8_t macAddress[6])
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la inicialización fue exitosa, o un valor distinto de cero si hubo un error.
Parámetros
uint8_t macAddress[6]
Dirección MAC de 6 bytes compartida por el satélite y la estación terrestre.
Usado en el ejemplo de sketchRecepción de estación terrestre
DescripciónEste es un pariente cercano de la función CanSatInit, pero siempre requiere la dirección MAC. Esta función solo inicializa la radio, no otros sistemas. La estación terrestre puede ser cualquier placa ESP32, incluyendo cualquier placa de desarrollo o incluso otra placa CanSat NeXT.

GroundStationInit (especificación simplificada de dirección MAC)

Funciónuint8_t GroundStationInit(uint8_t macAddress)
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la inicialización fue exitosa, o un valor distinto de cero si hubo un error.
Parámetros
uint8_t macAddress
Último byte de la dirección MAC, utilizado para diferenciar entre diferentes pares CanSat-GS.
DescripciónEsta es una versión simplificada de GroundStationInit con dirección MAC, que establece los otros bytes automáticamente a un valor seguro conocido. Esto permite a los usuarios diferenciar sus pares Transmisor-Receptor con solo un valor, que puede ser de 0-255.

Funciones IMU

readAcceleration

Funciónuint8_t readAcceleration(float &x, float &y, float &z)
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la medición fue exitosa.
Parámetros
float &x, float &y, float &z
float &x: Dirección de una variable float donde se almacenarán los datos del eje x.
Usado en el ejemplo de sketchIMU
DescripciónEsta función se puede usar para leer la aceleración del IMU a bordo. Los parámetros son direcciones a variables float para cada eje. El ejemplo de IMU muestra cómo usar esta función para leer la aceleración. La aceleración se devuelve en unidades de G (9.81 m/s).

readAccelX

Funciónfloat readAccelX()
Tipo de Retornofloat
Valor de RetornoDevuelve la aceleración lineal en el eje X en unidades de G.
Usado en el ejemplo de sketchIMU
DescripciónEsta función se puede usar para leer la aceleración del IMU a bordo en un eje específico. El ejemplo de IMU muestra cómo usar esta función para leer la aceleración. La aceleración se devuelve en unidades de G (9.81 m/s).

readAccelY

Funciónfloat readAccelY()
Tipo de Retornofloat
Valor de RetornoDevuelve la aceleración lineal en el eje Y en unidades de G.
Usado en el ejemplo de bocetoIMU
DescripciónEsta función se puede usar para leer la aceleración del IMU a bordo en un eje específico. El ejemplo de IMU muestra cómo usar esta función para leer la aceleración. La aceleración se devuelve en unidades de G (9.81 m/s).

readAccelZ

Funciónfloat readAccelZ()
Tipo de Retornofloat
Valor de RetornoDevuelve la aceleración lineal en el eje Z en unidades de G.
Usado en el ejemplo de bocetoIMU
DescripciónEsta función se puede usar para leer la aceleración del IMU a bordo en un eje específico. El ejemplo de IMU muestra cómo usar esta función para leer la aceleración. La aceleración se devuelve en unidades de G (9.81 m/s).

readGyro

Funciónuint8_t readGyro(float &x, float &y, float &z)
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la medición fue exitosa.
Parámetros
float &x, float &y, float &z
float &x: Dirección de una variable float donde se almacenarán los datos del eje x.
Usado en el ejemplo de bocetoIMU
DescripciónEsta función se puede usar para leer la velocidad angular del IMU a bordo. Los parámetros son direcciones a variables float para cada eje. El ejemplo de IMU muestra cómo usar esta función para leer la velocidad angular. La velocidad angular se devuelve en unidades de mrad/s.

readGyroX

Funciónfloat readGyroX()
Tipo de Retornofloat
Valor de RetornoDevuelve la velocidad angular en el eje X en unidades de mrad/s.
Usado en el ejemplo de bocetoIMU
DescripciónEsta función se puede usar para leer la velocidad angular del IMU a bordo en un eje específico. Los parámetros son direcciones a variables float para cada eje. La velocidad angular se devuelve en unidades de mrad/s.

readGyroY

Funciónfloat readGyroY()
Tipo de Retornofloat
Valor de RetornoDevuelve la velocidad angular en el eje Y en unidades de mrad/s.
Usado en el ejemplo de bocetoIMU
DescripciónEsta función se puede usar para leer la velocidad angular del IMU a bordo en un eje específico. Los parámetros son direcciones a variables float para cada eje. La velocidad angular se devuelve en unidades de mrad/s.

readGyroZ

Funciónfloat readGyroZ()
Tipo de Retornofloat
Valor de RetornoDevuelve la velocidad angular en el eje Z en unidades de mrad/s.
Usado en el ejemploIMU
DescripciónEsta función se puede usar para leer la velocidad angular del IMU a bordo en un eje específico. Los parámetros son direcciones a variables float para cada eje. La velocidad angular se devuelve en unidades de mrad/s.

Funciones del Barómetro

readPressure

Funciónfloat readPressure()
Tipo de Retornofloat
Valor de RetornoPresión en mbar
ParámetrosNinguno
Usado en el ejemploBaro
DescripciónEsta función devuelve la presión según lo informado por el barómetro a bordo. La presión está en unidades de milibar.

readTemperature

Funciónfloat readTemperature()
Tipo de Retornofloat
Valor de RetornoTemperatura en Celsius
ParámetrosNinguno
Usado en el ejemploBaro
DescripciónEsta función devuelve la temperatura según lo informado por el barómetro a bordo. La unidad de la lectura es Celsius. Tenga en cuenta que esta es la temperatura interna medida por el barómetro, por lo que podría no reflejar la temperatura externa.

Funciones de Tarjeta SD / Sistema de Archivos

SDCardPresent

Funciónbool SDCardPresent()
Tipo de Retornobool
Valor de RetornoDevuelve true si detecta una tarjeta SD, false si no.
ParámetrosNinguno
Usado en el ejemploSD_advanced
DescripciónEsta función se puede usar para verificar si la tarjeta SD está presente mecánicamente. El conector de la tarjeta SD tiene un interruptor mecánico, que se lee cuando se llama a esta función. Devuelve true o false dependiendo de si se detecta la tarjeta SD.

appendFile

Funciónuint8_t appendFile(String filename, T data)
Tipo de Retornouint8_t
Valor de RetornoDevuelve 0 si la escritura fue exitosa.
Parámetros
String filename: Dirección del archivo al que se añadirá. Si el archivo no existe, se crea.
T data: Datos que se añadirán al final del archivo.
Usado en el ejemplo de sketchSD_write
DescripciónEsta es la función básica de escritura utilizada para almacenar lecturas en la tarjeta SD.

printFileSystem

Funciónvoid printFileSystem()
Tipo de Retornovoid
ParámetrosNinguno
Usado en el ejemplo de sketchSD_advanced
DescripciónEsta es una pequeña función auxiliar para imprimir nombres de archivos y carpetas presentes en la tarjeta SD. Puede ser utilizada en desarrollo.

newDir

Funciónvoid newDir(String path)
Tipo de Retornovoid
Parámetros
String path: Ruta del nuevo directorio. Si ya existe, no se hace nada.
Usado en el ejemplo de sketchSD_advanced
DescripciónUsada para crear nuevos directorios en la tarjeta SD.

deleteDir

Funciónvoid deleteDir(String path)
Tipo de Retornovoid
Parámetros
String path: Ruta del directorio a eliminar.
Usado en el ejemplo de sketchSD_advanced
DescripciónUsada para eliminar directorios en la tarjeta SD.

fileExists

Funciónbool fileExists(String path)
Tipo de Retornobool
Valor de RetornoDevuelve true si el archivo existe.
Parámetros
String path: Ruta al archivo.
Usado en el ejemplo de sketchSD_advanced
DescripciónEsta función puede ser utilizada para verificar si un archivo existe en la tarjeta SD.

fileSize

Funciónuint32_t fileSize(String path)
Tipo de Retornouint32_t
Valor de RetornoTamaño del archivo en bytes.
Parámetros
String path: Ruta al archivo.
Usado en ejemplo de bocetoSD_advanced
DescripciónEsta función se puede usar para leer el tamaño de un archivo en la tarjeta SD.

writeFile

Funciónuint8_t writeFile(String filename, T data)
Tipo de Retornouint8_t
Valor de RetornoRetorna 0 si la escritura fue exitosa.
Parámetros
String filename: Dirección del archivo a escribir.
T data: Datos a escribir en el archivo.
Usado en ejemplo de bocetoSD_advanced
DescripciónEsta función es similar a appendFile(), pero sobrescribe los datos existentes en la tarjeta SD. Para el almacenamiento de datos, se debe usar appendFile. Esta función puede ser útil para almacenar configuraciones, por ejemplo.

readFile

FunciónString readFile(String path)
Tipo de RetornoString
Valor de RetornoTodo el contenido del archivo.
Parámetros
String path: Ruta al archivo.
Usado en ejemplo de bocetoSD_advanced
DescripciónEsta función se puede usar para leer todos los datos de un archivo en una variable. Intentar leer archivos grandes puede causar problemas, pero es adecuado para archivos pequeños, como archivos de configuración o ajustes.

renameFile

Funciónvoid renameFile(String oldpath, String newpath)
Tipo de Retornovoid
Parámetros
String oldpath: Ruta original al archivo.
String newpath: Nueva ruta del archivo.
Usado en ejemplo de bocetoSD_advanced
DescripciónEsta función se puede usar para renombrar o mover archivos en la tarjeta SD.

deleteFile

Funciónvoid deleteFile(String path)
Tipo de Retornovoid
Parámetros
String path: Ruta del archivo a eliminar.
Usado en el ejemplo de sketchSD_advanced
DescripciónEsta función se puede usar para eliminar archivos de la tarjeta SD.

Funciones de Radio

onDataReceived

Funciónvoid onDataReceived(String data)
Tipo de Retornovoid
Parámetros
String data: Datos recibidos como un String de Arduino.
Usado en el ejemplo de sketchGroundstation_receive
DescripciónEsta es una función de callback que se llama cuando se reciben datos. El código del usuario debe definir esta función, y el CanSat NeXT la llamará automáticamente cuando se reciban datos.

onBinaryDataReceived

Funciónvoid onBinaryDataReceived(const uint8_t *data, uint16_t len)
Tipo de Retornovoid
Parámetros
const uint8_t *data: Datos recibidos como un array de uint8_t.
uint16_t len: Longitud de los datos recibidos en bytes.
Usado en el ejemplo de sketchNinguno
DescripciónEsto es similar a la función onDataReceived, pero los datos se proporcionan como binarios en lugar de un objeto String. Esto se proporciona para usuarios avanzados que encuentran limitaciones en el objeto String.

onDataSent

Funciónvoid onDataSent(const bool success)
Tipo de Retornovoid
Parámetros
const bool success: Booleano que indica si los datos se enviaron con éxito.
Usado en el ejemplo de sketchNinguno
DescripciónEsta es otra función de callback que se puede agregar al código del usuario si es necesario. Se puede usar para verificar si la recepción fue reconocida por otro radio.

getRSSI

Funciónint8_t getRSSI()
Tipo de Retornoint8_t
Valor de RetornoRSSI del último mensaje recibido. Devuelve 1 si no se han recibido mensajes desde el inicio.
Usado en el ejemplo de sketchNinguno
DescripciónEsta función se puede usar para monitorear la fuerza de la señal de la recepción. Se puede usar para probar antenas o medir el alcance del radio. El valor se expresa en dBm, sin embargo, la escala no es precisa.

sendData (Variante String)

Funciónuint8_t sendData(T data)
Tipo de Retornouint8_t
Valor de Retorno0 si los datos fueron enviados (no indica reconocimiento).
Parámetros
T data: Datos a enviar. Se puede usar cualquier tipo de datos, pero se convierte internamente a una cadena.
Usado en el ejemploSend_data
DescripciónEsta es la función principal para enviar datos entre la estación terrestre y el satélite. Tenga en cuenta que el valor de retorno no indica si los datos fueron realmente recibidos, solo que fueron enviados. El callback onDataSent se puede usar para verificar si los datos fueron recibidos por el otro extremo.

sendData (Variante binaria)

Funciónuint8_t sendData(T* data, uint16_t len)
Tipo de Retornouint8_t
Valor de Retorno0 si los datos fueron enviados (no indica reconocimiento).
Parámetros
T* data: Datos a enviar.
uint16_t len: Longitud de los datos en bytes.
Usado en el ejemploNinguno
DescripciónUna variante binaria de la función sendData, proporcionada para usuarios avanzados que se sienten limitados por el objeto String.

getRSSI

Funciónint8_t getRSSI()
Tipo de Retornoint8_t
Valor de RetornoRSSI del último mensaje recibido. Devuelve 1 si no se han recibido mensajes desde el arranque.
Usado en el ejemploNinguno
DescripciónEsta función se puede usar para monitorear la fuerza de la señal de recepción. Se puede usar para probar antenas o medir el alcance de la radio. El valor se expresa en dBm, sin embargo, la escala no es precisa.

setRadioChannel

Funciónvoid setRadioChannel(uint8_t newChannel)
Tipo de Retornovoid
Valor de RetornoNinguno
Parámetrosuint8_t newChannel: Número de canal Wi-Fi deseado (1–11). Cualquier valor por encima de 11 se limitará a 11.
Usado en el ejemploNinguno
DescripciónEstablece el canal de comunicación ESP-NOW. El nuevo canal debe estar dentro del rango de canales Wi-Fi estándar (1–11), que corresponden a frecuencias comenzando desde 2.412 GHz con pasos de 5 MHz. El canal 1 es 2.412, el canal 2 es 2.417 y así sucesivamente. Llame a esta función antes de la inicialización de la biblioteca. El canal predeterminado es 1.

getRadioChannel

Funciónuint8_t getRadioChannel()
Tipo de Retornouint8_t
Valor de RetornoEl canal principal de Wi-Fi actual. Devuelve 0 si hay un error al obtener el canal.
Usado en ejemploNinguno
DescripciónRecupera el canal principal de Wi-Fi que se está utilizando actualmente. Esta función solo funciona después de la inicialización de la biblioteca.

printRadioFrequency

Funciónvoid printRadioFrequency()
Tipo de Retornovoid
Valor de RetornoNinguno
Usado en ejemploNinguno
DescripciónCalcula e imprime la frecuencia actual en GHz basada en el canal Wi-Fi activo. Esta función solo funciona después de la inicialización de la biblioteca.

Funciones ADC

adcToVoltage

Funciónfloat adcToVoltage(int value)
Tipo de Retornofloat
Valor de RetornoVoltaje convertido en voltios.
Parámetros
int value: Lectura ADC a convertir en voltaje.
Usado en ejemploAccurateAnalogRead
DescripciónEsta función convierte una lectura ADC a voltaje usando un polinomio calibrado de tercer orden para una conversión más lineal. Tenga en cuenta que esta función calcula el voltaje en el pin de entrada, por lo que para calcular el voltaje de la batería, también debe considerar la red de resistencias.

analogReadVoltage

Funciónfloat analogReadVoltage(int pin)
Tipo de Retornofloat
Valor de RetornoVoltaje ADC en voltios.
Parámetros
int pin: Pin a leer.
Usado en ejemploAccurateAnalogRead
DescripciónEsta función lee el voltaje directamente en lugar de usar analogRead y convierte la lectura a voltaje internamente usando adcToVoltage.