Especificação da Biblioteca
Funções
Você pode usar todas as funcionalidades regulares do Arduino com o CanSat NeXT, bem como quaisquer bibliotecas do Arduino. As funções do Arduino podem ser encontradas aqui: https://www.arduino.cc/reference/en/.
A biblioteca CanSat NeXT adiciona várias funções fáceis de usar para utilizar os diferentes recursos a bordo, como sensores, rádio e o cartão SD. A biblioteca vem com um conjunto de exemplos de esboços que mostram como usar essas funcionalidades. A lista abaixo também mostra todas as funções disponíveis.
Funções de Inicialização do Sistema
CanSatInit
Função | uint8_t CanSatInit(uint8_t macAddress[6]) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a inicialização foi bem-sucedida, ou um valor diferente de zero se houve um erro. |
Parâmetros | |
| uint8_t macAddress[6] |
| Endereço MAC de 6 bytes compartilhado pelo satélite e pela estação terrestre. Este é um parâmetro opcional - quando não é fornecido, o rádio não é inicializado. Usado no exemplo de esboço: Todos |
Descrição | Este comando é encontrado no setup() de quase todos os scripts do CanSat NeXT. É usado para inicializar o hardware do CanSatNeXT, incluindo os sensores e o cartão SD. Além disso, se o macAddress for fornecido, ele inicia o rádio e começa a escutar mensagens recebidas. O endereço MAC deve ser compartilhado pela estação terrestre e pelo satélite. O endereço MAC pode ser escolhido livremente, mas existem alguns endereços não válidos, como todos os bytes sendo 0x00 , 0x01 e 0xFF . Se a função de inicialização for chamada com um endereço não válido, ela reportará o problema para o Serial. |
CanSatInit (especificação simplificada do endereço MAC)
Função | uint8_t CanSatInit(uint8_t macAddress) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a inicialização foi bem-sucedida, ou um valor diferente de zero se houve um erro. |
Parâmetros | |
| uint8_t macAddress |
| Último byte do endereço MAC, usado para diferenciar entre diferentes pares CanSat-GS. |
Descrição | Esta é uma versão simplificada do CanSatInit com endereço MAC, que define os outros bytes automaticamente para um valor seguro conhecido. Isso permite que os usuários diferenciem seus pares Transmissor-Receptor com apenas um valor, que pode ser de 0-255. |
GroundStationInit
Função | uint8_t GroundStationInit(uint8_t macAddress[6]) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a inicialização foi bem-sucedida, ou um valor diferente de zero se houve um erro. |
Parâmetros | |
| uint8_t macAddress[6] |
| Endereço MAC de 6 bytes compartilhado pelo satélite e pela estação terrestre. |
Usado no exemplo de esboço | Groundstation receive |
Descrição | Este é um parente próximo da função CanSatInit, mas sempre requer o endereço MAC. Esta função apenas inicializa o rádio, não outros sistemas. A estação terrestre pode ser qualquer placa ESP32, incluindo qualquer placa de desenvolvimento ou até mesmo outra placa CanSat NeXT. |
GroundStationInit (especificação simplificada do endereço MAC)
Função | uint8_t GroundStationInit(uint8_t macAddress) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a inicialização foi bem-sucedida, ou um valor diferente de zero se houve um erro. |
Parâmetros | |
| uint8_t macAddress |
| Último byte do endereço MAC, usado para diferenciar entre diferentes pares CanSat-GS. |
Descrição | Esta é uma versão simplificada do GroundStationInit com endereço MAC, que define os outros bytes automaticamente para um valor seguro conhecido. Isso permite que os usuários diferenciem seus pares Transmissor-Receptor com apenas um valor, que pode ser de 0-255. |
Funções IMU
readAcceleration
Função | uint8_t readAcceleration(float &x, float &y, float &z) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a medição foi bem-sucedida. |
Parâmetros | |
| float &x, float &y, float &z |
| float &x : Endereço de uma variável float onde os dados do eixo x serão armazenados. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a aceleração do IMU a bordo. Os parâmetros são endereços para variáveis float para cada eixo. O exemplo IMU mostra como usar esta função para ler a aceleração. A aceleração é retornada em unidades de G (9.81 m/s). |
readAccelX
Função | float readAccelX() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a aceleração linear no eixo X em unidades de G. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a aceleração do IMU a bordo em um eixo específico. O exemplo IMU mostra como usar esta função para ler a aceleração. A aceleração é retornada em unidades de G (9.81 m/s). |
readAccelY
Função | float readAccelY() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a aceleração linear no eixo Y em unidades de G. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a aceleração do IMU integrado em um eixo específico. O exemplo IMU mostra como usar esta função para ler a aceleração. A aceleração é retornada em unidades de G (9.81 m/s). |
readAccelZ
Função | float readAccelZ() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a aceleração linear no eixo Z em unidades de G. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a aceleração do IMU integrado em um eixo específico. O exemplo IMU mostra como usar esta função para ler a aceleração. A aceleração é retornada em unidades de G (9.81 m/s). |
readGyro
Função | uint8_t readGyro(float &x, float &y, float &z) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a medição foi bem-sucedida. |
Parâmetros | |
| float &x, float &y, float &z |
| float &x : Endereço de uma variável float onde os dados do eixo x serão armazenados. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a velocidade angular do IMU integrado. Os parâmetros são endereços para variáveis float para cada eixo. O exemplo IMU mostra como usar esta função para ler a velocidade angular. A velocidade angular é retornada em unidades mrad/s. |
readGyroX
Função | float readGyroX() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a velocidade angular no eixo X em unidades de mrad/s. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a velocidade angular do IMU integrado em um eixo específico. Os parâmetros são endereços para variáveis float para cada eixo. A velocidade angular é retornada em unidades mrad/s. |
readGyroY
Função | float readGyroY() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a velocidade angular no eixo Y em unidades de mrad/s. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a velocidade angular do IMU integrado em um eixo específico. Os parâmetros são endereços para variáveis float para cada eixo. A velocidade angular é retornada em unidades mrad/s. |
readGyroZ
Função | float readGyroZ() |
---|
Tipo de Retorno | float |
Valor de Retorno | Retorna a velocidade angular no eixo Z em unidades de mrad/s. |
Usado no exemplo de esboço | IMU |
Descrição | Esta função pode ser usada para ler a velocidade angular do IMU integrado em um eixo específico. Os parâmetros são endereços para variáveis float para cada eixo. A velocidade angular é retornada em unidades de mrad/s. |
Funções do Barômetro
readPressure
Função | float readPressure() |
---|
Tipo de Retorno | float |
Valor de Retorno | Pressão em mbar |
Parâmetros | Nenhum |
Usado no exemplo de esboço | Baro |
Descrição | Esta função retorna a pressão conforme relatado pelo barômetro integrado. A pressão está em unidades de milibar. |
readTemperature
Função | float readTemperature() |
---|
Tipo de Retorno | float |
Valor de Retorno | Temperatura em Celsius |
Parâmetros | Nenhum |
Usado no exemplo de esboço | Baro |
Descrição | Esta função retorna a temperatura conforme relatado pelo barômetro integrado. A unidade da leitura é Celsius. Note que esta é a temperatura interna medida pelo barômetro, portanto pode não refletir a temperatura externa. |
Funções do Cartão SD / Sistema de Arquivos
SDCardPresent
Função | bool SDCardPresent() |
---|
Tipo de Retorno | bool |
Valor de Retorno | Retorna true se detectar um cartão SD, false caso contrário. |
Parâmetros | Nenhum |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função pode ser usada para verificar se o cartão SD está mecanicamente presente. O conector do cartão SD possui um interruptor mecânico, que é lido quando esta função é chamada. Retorna true ou false dependendo se o cartão SD é detectado. |
appendFile
Function | uint8_t appendFile(String filename, T data) |
---|
Return Type | uint8_t |
Return Value | Retorna 0 se a escrita foi bem-sucedida. |
Parameters | |
| String filename : Endereço do arquivo a ser anexado. Se o arquivo não existir, ele será criado. |
| T data : Dados a serem anexados ao final do arquivo. |
Used in example sketch | SD_write |
Description | Esta é a função básica de escrita usada para armazenar leituras no cartão SD. |
printFileSystem
Function | void printFileSystem() |
---|
Return Type | void |
Parameters | Nenhum |
Used in example sketch | SD_advanced |
Description | Esta é uma pequena função auxiliar para imprimir nomes de arquivos e pastas presentes no cartão SD. Pode ser usada no desenvolvimento. |
newDir
Function | void newDir(String path) |
---|
Return Type | void |
Parameters | |
| String path : Caminho do novo diretório. Se já existir, nada é feito. |
Used in example sketch | SD_advanced |
Description | Usado para criar novos diretórios no cartão SD. |
deleteDir
Function | void deleteDir(String path) |
---|
Return Type | void |
Parameters | |
| String path : Caminho do diretório a ser deletado. |
Used in example sketch | SD_advanced |
Description | Usado para deletar diretórios no cartão SD. |
fileExists
Function | bool fileExists(String path) |
---|
Return Type | bool |
Return Value | Retorna true se o arquivo existir. |
Parameters | |
| String path : Caminho para o arquivo. |
Used in example sketch | SD_advanced |
Description | Esta função pode ser usada para verificar se um arquivo existe no cartão SD. |
fileSize
Função | uint32_t fileSize(String path) |
---|
Tipo de Retorno | uint32_t |
Valor de Retorno | Tamanho do arquivo em bytes. |
Parâmetros | |
| String path : Caminho para o arquivo. |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função pode ser usada para ler o tamanho de um arquivo no cartão SD. |
writeFile
Função | uint8_t writeFile(String filename, T data) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | Retorna 0 se a escrita foi bem-sucedida. |
Parâmetros | |
| String filename : Endereço do arquivo a ser escrito. |
| T data : Dados a serem escritos no arquivo. |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função é semelhante ao appendFile() , mas sobrescreve dados existentes no cartão SD. Para armazenamento de dados, appendFile deve ser usado. Esta função pode ser útil para armazenar configurações, por exemplo. |
readFile
Função | String readFile(String path) |
---|
Tipo de Retorno | String |
Valor de Retorno | Todo o conteúdo do arquivo. |
Parâmetros | |
| String path : Caminho para o arquivo. |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função pode ser usada para ler todos os dados de um arquivo em uma variável. Tentar ler arquivos grandes pode causar problemas, mas é adequado para arquivos pequenos, como arquivos de configuração ou de definições. |
renameFile
Função | void renameFile(String oldpath, String newpath) |
---|
Tipo de Retorno | void |
Parâmetros | |
| String oldpath : Caminho original para o arquivo. |
| String newpath : Novo caminho do arquivo. |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função pode ser usada para renomear ou mover arquivos no cartão SD. |
deleteFile
Função | void deleteFile(String path) |
---|
Tipo de Retorno | void |
Parâmetros | |
| String path : Caminho do arquivo a ser deletado. |
Usado no exemplo de esboço | SD_advanced |
Descrição | Esta função pode ser usada para deletar arquivos do cartão SD. |
Funções de Rádio
onDataReceived
Função | void onDataReceived(String data) |
---|
Tipo de Retorno | void |
Parâmetros | |
| String data : Dados recebidos como uma String do Arduino. |
Usado no exemplo de esboço | Groundstation_receive |
Descrição | Esta é uma função de callback que é chamada quando os dados são recebidos. O código do usuário deve definir esta função, e o CanSat NeXT irá chamá-la automaticamente quando os dados forem recebidos. |
onBinaryDataReceived
Função | void onBinaryDataReceived(const uint8_t *data, uint16_t len) |
---|
Tipo de Retorno | void |
Parâmetros | |
| const uint8_t *data : Dados recebidos como um array de uint8_t. |
| uint16_t len : Comprimento dos dados recebidos em bytes. |
Usado no exemplo de esboço | Nenhum |
Descrição | Isto é similar à função onDataReceived , mas os dados são fornecidos como binário em vez de um objeto String. Isto é fornecido para usuários avançados que acham o objeto String limitante. |
onDataSent
Função | void onDataSent(const bool success) |
---|
Tipo de Retorno | void |
Parâmetros | |
| const bool success : Booleano indicando se os dados foram enviados com sucesso. |
Usado no exemplo de esboço | Nenhum |
Descrição | Esta é outra função de callback que pode ser adicionada ao código do usuário, se necessário. Pode ser usada para verificar se a recepção foi reconhecida por outro rádio. |
Função | int8_t getRSSI() |
---|
Tipo de Retorno | int8_t |
Valor de Retorno | RSSI da última mensagem recebida. Retorna 1 se nenhuma mensagem foi recebida desde o boot. |
Usado no exemplo de esboço | Nenhum |
Descrição | Esta função pode ser usada para monitorar a força do sinal da recepção. Pode ser usada para testar antenas ou medir o alcance do rádio. O valor é expresso em dBm, no entanto, a escala não é precisa. |
sendData (variante String)
Função | uint8_t sendData(T data) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | 0 se os dados foram enviados (não indica reconhecimento). |
Parâmetros | |
| T data : Dados a serem enviados. Qualquer tipo de dado pode ser usado, mas é convertido para uma string internamente. |
Usado no exemplo de sketch | Send_data |
Descrição | Esta é a função principal para enviar dados entre a estação terrestre e o satélite. Note que o valor de retorno não indica se os dados foram realmente recebidos, apenas que foram enviados. O callback onDataSent pode ser usado para verificar se os dados foram recebidos pela outra extremidade. |
sendData (Variante Binária)
Função | uint8_t sendData(T* data, uint16_t len) |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | 0 se os dados foram enviados (não indica reconhecimento). |
Parâmetros | |
| T* data : Dados a serem enviados. |
| uint16_t len : Comprimento dos dados em bytes. |
Usado no exemplo de sketch | Nenhum |
Descrição | Uma variante binária da função sendData , fornecida para usuários avançados que se sentem limitados pelo objeto String. |
Função | int8_t getRSSI() |
---|
Tipo de Retorno | int8_t |
Valor de Retorno | RSSI da última mensagem recebida. Retorna 1 se nenhuma mensagem foi recebida desde a inicialização. |
Usado no exemplo de sketch | Nenhum |
Descrição | Esta função pode ser usada para monitorar a força do sinal da recepção. Pode ser usada para testar antenas ou medir o alcance do rádio. O valor é expresso em dBm, no entanto, a escala não é precisa. |
setRadioChannel
Função | void setRadioChannel(uint8_t newChannel) |
---|
Tipo de Retorno | void |
Valor de Retorno | Nenhum |
Parâmetros | uint8_t newChannel : Número do canal Wi-Fi desejado (1–11). Qualquer valor acima de 11 será limitado a 11. |
Usado no exemplo de sketch | Nenhum |
Descrição | Define o canal de comunicação ESP-NOW. O novo canal deve estar dentro do intervalo dos canais Wi-Fi padrão (1–11), que correspondem a frequências começando em 2.412 GHz com passos de 5 MHz. Canal 1 é 2.412, Canal 2 é 2.417 e assim por diante. Chame esta função antes da inicialização da biblioteca. O canal padrão é 1. |
getRadioChannel
Função | uint8_t getRadioChannel() |
---|
Tipo de Retorno | uint8_t |
Valor de Retorno | O canal principal atual do Wi-Fi. Retorna 0 se houver um erro ao buscar o canal. |
Usado no exemplo de esboço | Nenhum |
Descrição | Recupera o canal principal do Wi-Fi atualmente em uso. Esta função funciona apenas após a inicialização da biblioteca. |
printRadioFrequency
Função | void printRadioFrequency() |
---|
Tipo de Retorno | void |
Valor de Retorno | Nenhum |
Usado no exemplo de esboço | Nenhum |
Descrição | Calcula e imprime a frequência atual em GHz com base no canal Wi-Fi ativo. Esta função funciona apenas após a inicialização da biblioteca. |
Funções ADC
adcToVoltage
Função | float adcToVoltage(int value) |
---|
Tipo de Retorno | float |
Valor de Retorno | Tensão convertida em volts. |
Parâmetros | |
| int value : Leitura ADC a ser convertida para tensão. |
Usado no exemplo de esboço | AccurateAnalogRead |
Descrição | Esta função converte uma leitura ADC para tensão usando um polinômio de terceira ordem calibrado para uma conversão mais linear. Note que esta função calcula a tensão no pino de entrada, então para calcular a tensão da bateria, você também precisa considerar a rede de resistores. |
analogReadVoltage
Função | float analogReadVoltage(int pin) |
---|
Tipo de Retorno | float |
Valor de Retorno | Tensão ADC em volts. |
Parâmetros | |
| int pin : Pino a ser lido. |
Usado no exemplo de esboço | AccurateAnalogRead |
Descrição | Esta função lê a tensão diretamente em vez de usar analogRead e converte a leitura para tensão internamente usando adcToVoltage . |