[Agregar un gift de vídeo del proyecto aquí.]
Aprende > Arduino nano > NanoSat
ElaNa 23 RadSat-G.
CubeSat del estado de la universidad de montana en órtbita al rededor de la tierra.
Instrumentos de maniobras de un Cubesat en desarrollo de la universidad de Texas.
Descripción:
Este proyecto consiste en la construcción de un nanosatélite utilizando Arduino Nano como plataforma principal. El nanosatélite integra una serie de sensores avanzados y sistemas clave para realizar diversas mediciones y transmitir datos en tiempo real.
¿Qué es un Nanosatélite?
Un nanosatélite es un tipo de satélite artificial de tamaño pequeño, típicamente con una masa entre 1 y 10 kilogramos. Estos satélites están diseñados para realizar tareas específicas en el espacio, como la observación de la Tierra, la comunicación, experimentos científicos, o la recolección de datos ambientales.
A pesar de su tamaño compacto, los nanosatélites pueden estar equipados con una variedad de instrumentos y sensores, lo que les permite realizar funciones similares a las de los satélites más grandes, pero con un costo significativamente menor. Esta reducción en costos y tamaño ha hecho que los nanosatélites sean una opción popular para universidades, agencias espaciales, y empresas que buscan realizar misiones espaciales de bajo presupuesto.
Uno de los tipos más comunes de nanosatélites son los CubeSats, que son satélites modulares basados en unidades cúbicas de 10x10x10 centímetros y con un peso de alrededor de 1 kilogramo por unidad. Estos satélites pueden ser ensamblados en configuraciones más grandes según las necesidades de la misión.
El desarrollo de nanosatélites ha permitido democratizar el acceso al espacio, facilitando la participación de más actores en la exploración y utilización del espacio para diversas aplicaciones.
Componentes y Funcionalidades:
Sensores de Ambiente: Se incorporan sensores de humedad, presión y temperatura para monitorear las condiciones atmosféricas y del entorno en el espacio.
Giroscopio y Acelerómetro: Estos sensores permiten medir la orientación y la aceleración del nanosatélite, proporcionando datos esenciales para el control de su estabilidad y trayectoria.
GPS: Un módulo GPS se encarga de rastrear la ubicación precisa del nanosatélite, lo que permite monitorizar su órbita y posición en tiempo real.
Sistema de Gestión de Batería (BMS): Para garantizar un suministro de energía estable y seguro, el sistema de potencia está gestionado por un BMS, que protege las baterías y optimiza su rendimiento.
Pantalla OLED: Los datos recopilados por los sensores se muestran en una pantalla OLED, facilitando la visualización directa de las mediciones sin necesidad de conexión a un ordenador.
Sistema de Potencia: Incluye paneles solares y baterías recargables, diseñados para maximizar la eficiencia energética del nanosatélite y asegurar su funcionamiento continuo.
Este nanosatélite es una excelente demostración de cómo se puede combinar hardware accesible y de bajo costo, como Arduino Nano, con componentes electrónicos sofisticados para crear un dispositivo funcional y educativo. Es ideal para estudiantes y entusiastas de la tecnología espacial que desean explorar el desarrollo de satélites en miniatura.
[Insertar vídeo de YT del proyecto aquí.]
Materiales:
(Si no conoces el funcionamiento de algún componente da click aquí)
Arduino Nano.
1 Protoboard.
BMP180
Pantalla oled 128X64
Cables de conexión.
Procedimiento:
Ordenador de a bordo
La parte de un nanosatélite que se encarga de procesar toda la información obtenida de los sensores y gestionar las comunicaciones se llama unidad de procesamiento de datos o ordenador de a bordo (en inglés, On-Board Computer, OBC).
Procesamiento de Datos: Recibe y procesa la información de todos los sensores a bordo del satélite.
Control de Sistemas: Gestiona y controla los subsistemas del satélite, como el sistema de potencia, control de actitud y orientación, entre otros.
Almacenamiento de Datos: Almacena los datos recopilados por los sensores para su posterior transmisión a la estación terrestre.
Gestión de Comunicaciones: Controla el envío y la recepción de datos entre el satélite y la estación terrestre.
Ejecución de Software: Corre los programas que controlan las operaciones y tareas del nanosatélite.
El OBC es crucial para el funcionamiento autónomo del nanosatélite, asegurando que las tareas se realicen de manera eficiente y que la comunicación con la Tierra sea continua y fiable.
Para este proyecto usaremos una placa arduino Nano para hacer la función del OBC.
Si necesitas más información sobre esta placa da clic aquí
Sensores
Sensor BMP280+AHT20
Uno de los requerimientos principales en un satélite es obtener datos del entorno como temperatura, humedad, presión atmosférica y altitud. Para ello utilizaremos un sensor BMP280 que tiene integrado sensores.
Sensor BMP280:
El módulo AHT20 + BMP280 combina dos sensores digitales que miden presión atmosférica, temperatura y humedad con gran precisión. Este dispositivo es compacto, fácil de integrar en circuitos electrónicos, y cuenta con un bajo consumo de energía. Emplea el protocolo de comunicación I2C, lo que facilita la conexión simultánea de varios dispositivos o módulos que usen esta misma interfaz.
Si quieres más información de este modulo da click Aquí.
Conexión:
Para obtener datos del sensor haremos la siguiente conexión.
Código de prueba para el BMP280+AHT20:
Además de eso, el código establece los tiempos para cada estado de la serie aleatoria:
/*
Programa: Encender y apagar un led en Arduino uno. (Blink)
Curso: Arduino UNO
Autor: Expacio Science Group TM2024
*/
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_AHTX0.h>
// Crear objetos para los sensores
Adafruit_BMP280 bmp; // Sensor BMP280
Adafruit_AHTX0 aht; // Sensor AHT20
void setup() {
// Iniciar la comunicación serial
Serial.begin(9600);
Serial.println(F("Inicializando..."));
// Inicializar el BMP280
if (!bmp.begin(0x77)) { // Cambia a 0x77 si estás usando esa dirección
Serial.println(F("No se encontró el sensor BMP280. ¡Verifica la conexión!"));
while (1);
}
// Inicializar el AHT20
if (!aht.begin()) {
Serial.println(F("No se encontró el sensor AHT20. ¡Verifica la conexión!"));
while (1);
}
Serial.println(F("Sensores inicializados correctamente."));
}
void loop() {
// Leer temperatura, presión y altitud del BMP280
float temperature_bmp = bmp.readTemperature();
float pressure = bmp.readPressure();
float altitude = bmp.readAltitude(1013.25); // 1013.25 es la presión estándar al nivel del mar
// Leer temperatura y humedad del AHT20
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);
// Mostrar los resultados en el monitor serial
Serial.println(F("Datos del BMP280:"));
Serial.print(F("Temperatura: "));
Serial.print(temperature_bmp);
Serial.println(F(" °C"));
Serial.print(F("Presión: "));
Serial.print(pressure);
Serial.println(F(" Pa"));
Serial.print(F("Altitud: "));
Serial.print(altitude);
Serial.println(F(" metros"));
Serial.println(F("Datos del AHT20:"));
Serial.print(F("Temperatura: "));
Serial.print(temp.temperature);
Serial.println(F(" °C"));
Serial.print(F("Humedad: "));
Serial.print(humidity.relative_humidity);
Serial.println(F(" %"));
Serial.println();
delay(2000); // Espera 2 segundos antes de la siguiente lectura
}
Al cargar el código abrimos el monitor series para ver los datos que el sensor está proporcionando.
Controlar la velocidad en 2 leds.
Ahora vamos a agregar una pantalla para ver los datos en la protoboard.
La pantalla que usaremos será una OLED 128X64