lunes, 3 de mayo de 2010

Respuestas a la primera entrevista

  1. ¿Cuál es el objetivo del proyecto?
    El proyecto CanSat (cansote satélite= satélite en lata) comprende la construcción de un microsatélite, con objetivo científico (se simula una “exploración planetaria”) ó tecnológico (todo experimento requiere de ciertos elementos tecnológicos). Ej.: medición de parámetros ambientales, medición de performance de un vuelo (altura, velocidad, etc.), etc.
    Se desea hacer volar un microsatélite a bordo de un cohete experimental a una altura de algunos “miles de metros”.
    Es una simulación que en última instancia tiene fines educativos.

  2. ¿En qué áreas se divide el proyecto?
    El proyecto se divide en dos áreas: hardware y software. La primera se encarga de La construcción de los distintos bloques del hardware que conforma el CanSat descriptos en le PowerPoint, receptor RF y Conexión para servicios en tierra.

    La segunda se encarga de todo lo referente a la programación tanto del PIC de satélite como del PIC receptor y la PC utilizada durante el experimento

  3. ¿Quién es el encargado de cada una de estas áreas?
    Hardware:

    Software:

    Director general de proyecto: Edgardo Daniel Báez

  4. ¿Habrá reuniones para los participantes del proyecto?¿Tienen una fecha programada?
    Si, empiezan esta semana (estamos a fines de abril). La fecha, el lugar, aun no definidos, se publicarán próximamente en el foro del campus

  5. y 6.¿Cuál es mi rol en el proyecto?¿Qué necesidades debo satisfacer?
    • Diseñar y programar el software para el microsatélite
      • Toma de mediciones y filtrado de las mismas. Para luego almacenarlas en la memoria y enviarlas a tierra

      • Disparar eventos de vuelo (estas son las distintas acciones que se van dando a lo largo del experimento, como son: desplegar paracaídas, desplegar antena, etc.) Para ello se debe enviar una señal digital en una patita la cual activa el mecanismo.

      • Se debe permitir configurar ciertas opciones antes del despegue. Habría una “tabla” de los eventos de vuelo por cada uno se determinaría si se realiza o no y en qué momento o bajo qué condiciones. Para ello se conectará el CanSat a una computadora mediante un cable en serie (la comunicación sería únicamente desde la computadora al satélite)

    • Diseñar y programar el software del receptor en tierra (que será otro PIC) para decodificar los paquetes que vallan llegando. Tienen que rearmar los datos en tierra

    • Diseñar un protocolo de trasmisión que permita la transmisión de datos. Ya sean mediciones o el estado (es decir en que etapa del vuelo está: “en tierra”, “volando con propulsión”,”volando por inercia”, etc.) desde el satélite hasta la base en tierra a través de radio frecuencia. Debe haber mucha redundancia (repetición) para evitar que se pierdan datos por el ruido. Será de una velocidad “lenta, algunos cientos de bits por segundo”. La señal debe tener un alcance de “algunos miles de metros”
      Además de las mediciones y el status del sistema se desea poder enviar mediante RF preferiblemente (aunque existiría la posibilidad de hacerlo vía cable de ser necesario) la configuración que se tiene en ese momento (la tabla de los eventos de vuelo) y los datos almacenados en el chip.

    La plataforma debe poder utilizarse para distintas misiones CanSat: con diferentes sensores, diferentes momentos de medición, diferentes eventos de vuelo, etc. Se desea que en el futuro se pueda trabajar con el sistema informatizado y que otra persona-calificada- pueda realizarle modificaciones fácilmente de ser necesario. O sea se debe incluir el código fuente y este debe estar acompañado de clarificadores comentarios

    Las señales de los sensores son voltaje que va de 0v a 5v (señal análoga) un ADC (Convertidor Digital-Analógico) le asigna a este voltaje un valor binario que va de 0 hasta 1024. Hay que convertir esos valores a las unidades físicas correspondientes. Esto sirve para tomar las decisiones de vuelo.

    Con una medición el valor puede ser erróneo debido al ruido siempre presente o por otras causas inevitables, como es la vibración propia del cohete. Hay que hacer varias mediciones, compararlas y mediante una operación calcular el verdadero valor. Se deben “FILTRAR” las mediciones erróneas.

    ES RECOMENDABLE INVESTIGAR TÉCNICAS DE FILTRO

    Cada instrucción elemental se realiza en 4 ciclos a 8MHZ, Por lo tanto la velocidad de procesamiento del micro es de 2 MIPS.

    Todo el software debe entrar en poco espacio disponible: 2K

    Ojo con los tiempos: Antes de enviar los datos hay que convertirlos.

    Las funciones de transformación desde voltaje emitido por el sensor a unidades físicas correspondientes será “generalmente” lineal - f(X)=K*X+X0 – Si bien hay algunas que son exponenciales, es posible que el rango en que trabajemos nosotros se pueda redondear a una función lineal, para que de esa forma no sea necesario usar coma flotante. Las fórmulas de las funciones deberán poder configurarse cómodamente en un laboratorio, es decir con la conexión PC-->satélite, vía cable serial, etc.

    Conviene usar integer sin punto flotante por cuestiones de tiempo y memoria.

    Puede ocurrir que 2 eventos se den en simultáneo
    Puede haber dos opciones distintas de eventos de vuelo. Por ejemplo:”Abrir patas mucho” ó “Abrir patas poco”


  6. ¿Cómo es exactamente el experimento a realizar? Detallar las diversas etapas del vuelo explicando bastamente todos los conceptos y describiendo los datos que se deben enviar a la base a tierra.

    Se dispara un cohete en medio del campo en algún lugar de la Provincia de Buenos Aires. Se trata de que sea monofásico para disminuir la posibilidad de fallas. La carga útil consiste en un “satélite enlatado”. En el poco espacio disponible se encuentra todo el equipo necesario. El cohete asciende unos pocos miles de metros, antes de volver a caer a tierra. Se efectúan mediciones acerca de la performance de vuelo (como la aceleración a la que esta sometida la carga útil, etc.) ó se simula una exploración planetaria, que mide parámetros del entorno. Es posible que se deba aterrizar el satélite para efectuar las mediciones en tierra. Las mediciones son enviadas a una base terrestre situada en las inmediaciones de la plataforma de despegue. Estas son las características generales de todas las misiones.

    A continuación un ejemplo extraído del foro 2009, (algunas de las etapas enunciadas pueden variar)"

    1. Comprobación de la "Nave" puesta en modo de vuelo.

    2. Retirar llaves de seguridad.

    3. Cuenta regresiva

    4. Ignición

    5. Despegue

    6. Vuelo con propulsión.

    7. Vuelo inercial

    8. Apogeo

    9. Separación de Cápsula

    10. Despliegue de paracaídas.

    11. Descenso

    12. Suelta de paracaídas.

    13. Despliegue de antena.

    14. Despliegue de experimentos.

    15. Transmisión de datos

    16. Noche eterna.
    "
  7. ¿Cuándo se realizará el experimento?¿Cuándo debe estar listo el software?¿Cuándo debe estar listo el protocolo de transmisión?
    El experimento se realizará a fines de octubre o principios de noviembre. El software debe estar disponible antes a fin de realizar todas las pruebas necesarias; cuanto antes este, mejor. El protocolo es lo que se necesitaría con más urgencia.

  8. ¿En los lanzamientos previos se utilizó algún software?

    El código del año pasado se encuentra publicado en el foro del campus:
    http://campus.almagro.ort.edu.ar/fisica/cansat/foro/31845/lenguajes-de-programaci-n/2/

    En el 2005 Gonzalo de Producción musical realizó varios aportes
    En el 2007 y el 2008 se programó software, pero solo para PC. Su fin era graficar y mostrar las mediciones
    Martín Cohen de informática también brindó aportes

    CAN-SAT.BLOGSPOT.COM-->2008: “programación de las adquisiciones de los valores que obtienen los sensores y la programación de la secuencia de expulsión que consiste en expulsar la lata en el apogeo y abrir una compuerta para luego cerrarla y así tomar una muestra de aire de la alta atmósfera.”(Código de PIC en BASIC)

  9. ¿En los lanzamientos antecesores se utilizó algún protocolo de transmisión de información?
    Sí, hubo 2 intentos:
    Primero se probó transmitir modulando en frecuencia AM con RSM32. Pero no funcionó.
    En 2007 hubo una transmisión exitosa por tonos. Este transmitía altura a lo largo del tiempo. Había una función lineal que definía la frecuencia de la onda análoga portadora en función de la altura. (http://cansatrf.wordpress.com/)


  10. ¿Qué características debe reunir el protocolo de transmisión para este lanzamiento?

    • Inmunidad al ruido --> repetición “redundancia”

    • Baja potencia

    • Velocidad de transmisión “baja” (algunos cientos de bits por segundo)

    • Alcance de algunos miles de metros


    Se transmite por pulsos: uno agudo representa un 1 y uno grave representa un 0

    Se transmitirá en paquetes. Cada uno está conformado por un valor precedido de un encabezamiento, indicando si se trata de una medición o de un evento y de que tipo (de evento o variable) se trata.
    Habrá un bit de comienzo y un bit de final, para la sincronización.

    El satélite solo transmite información a tierra a través de señales de radio. En tierra mediante una conexión física se pueden intercambiar datos con el satélite a través de un cable conectado a CN2 “conector 2” (es solo el nombre)

  11. ¿Cuál es el listado completo de los eventos de vuelo?
    Extarído del foro 2009:
    " La lata tiene que ser capaz de:

    • determinar si esta para volar o realizar tares de tierra... (un switch on u off)...

    • si esta en tierra comunicarse con alguien vía cable para distintas operaciones p Ej. cargar parámetros... etc.

    • Si esta para volar...

    • Detectar despegue.

    • Detectar "me soltaron".

    • Abrir paracaídas. (puede ser automático)

    • Detectar suelo (sensor Ultra sonidos)

    • Liberar paracaídas...(pirotécnico)

    • Despliegue patas

    • Desplegar antena. (ídem)



    • Desplegar experimentos....

    • Transmitir datos... mientras te dure la pila


    "
    Estas necesidades son válidas para una misión específica que planteábamos en 2009 de la exploración planetaria.
    En general están bien… (Era una misión muy completa)
    Si es correcto los eventos de vuelo están bien.

    Las capacidades de la "lata" faltan alguna cuestiones mas generales:

    • No están mencionadas las capacidades de "medir" procesar y almacenar

    • Faltaría definir el tema de comunicaciones en tierra.

    • En general durante el vuelo "puede ser de interés" medir algunas variables y transmitirlos (altura, temperatura, etc.).



  12. ¿En base a qué información se deberán tomar las decisiones de vuelo?
    De a cuerdo a lo que se indique en la tabla de configuración, los eventos pueden ser que se disparen:

    • Automáticamente después de un determinado tiempo

    • Instantáneamente luego de que se detecte un determinado valor para una variable ó conjunto de variables

    • Transcurrido un determinado tiempo luego de que se detecte un determinado valor para una variable ó conjunto de variables



  13. ¿De qué sensores provendrá dicha información?
    Los básicos son aquellos que miden presión, aceleración y temperatura. Estos se encuentran en la mayoría de las misiones. También existen otros específicos para cada misión en particular. Estos pueden ser: intensidad lumínica, temperatura ambiente (que no es lo mismo que la temperatura sólo), humedad y oxígeno.
    La mayoría de los decisiones respecto de los eventos de vuelo se tomarán en base la presión y a la aceleración (o derivados de las mismas).

  14. ¿Qué componentes hardware se utilizarán para la emisión y recepción de la señal entre el cohete y la base terrestre?
    Emitido por Transmisor TXS-434 8 mW 433 Mhz w los datos entran por un solo pin, comunicación en serie WEN SHING Input power -0.3 to +12.0v

  15. ¿Cuál es el listado completo de los datos a enviar a la base?

    • las mediciones de los distintos sensores deben ser enviadas varias veces cada segundo

    • Se debe indicar el disparo de los eventos de vuelo para el seguimiento de la misión (esto no es tan prioritario como las mediciones)

    • Además de las mediciones y el status del sistema se desea poder enviar mediante RF preferiblemente (aunque existiría la posibilidad de hacerlo vía cable de ser necesario) la configuración que se tiene en ese momento (la tabla de los eventos de vuelo)

    • Se desea poder recuperar los datos que estén almacenados en el chip, en caso de que en el momento no se haya podido efectuar la transmisión



  16. ¿Qué se desea realizar con esa información una vez en tierra? almacenarla? mostrarla? analizarla? cómo?
    Sí, se desea mostrarla(ya hay software existente para este fin, no es necesario programarlo), almacenarla y analizarla.
    El tratamiento que se le desea dar a la información una vez en tierra, no es prioritario. Lo que realmente se desea es que se programe el software del satélite y del microchip en tierra que recibe la señal y el software de PC necesario para la configuración. El software para tratamiento de los datos recibidos es un opcional que fácilmente será descartado en caso de que no haya tiempo suficiente.

  17. ¿Por qué esos datos deben ser enviados a tierra?
    Permitirán un segumiento en tiempo real de la misión y además es importante tener las mediciones en caso de que no se consiga recuperar la cápsula. (Así mismo es necesario que las mediciones estén almacenadas en el satélite por si no se llegan a transmitir)

  18. ¿De qué sensores provendrán dichos datos?
    Micro tiene 4 canales. Pero se puede llegar a necesitar conectar un máximo de 5 sensores.(Tres serán utilizados para la presión, la aceleración y la temperatura.
    A estos se le agregarán los sensores específicos de la misión, como pueden ser: intensidad lumínica, temperatura ambiente -que no es lo mismo que la temperatura sólo-, humedad y oxígeno)

  19. ¿Cuál es el listado completo de las opciones que deben poder configurarse en los instantes previos al lanzamiento?¿Por qué se desea configurar dicha infromación?
    Habría una “tabla” de los eventos de vuelo por cada uno se determinaría si se realiza o no y en qué momento o bajo qué condiciones.

    Las fórmulas de las funciones deberán poder configurarse cómodamente en un laboratorio, es decir con la conexión PC-->satélite, vía cable serial, etc. Es necesario calibrar la función de acuerdo a lo que marque ese sensor, para ello es necesario realizar unas pruebas en el laboratorio y a partir de un análisis sencillo surgen las fórmulas.

    No se indicará que sensor está conectado a pata simplemente se hablará de las mediciones tomadas por “la pata x”

  20. ¿Cómo se desea ingresar la configurarción en los instantes previos al lanzamiento?
    Se conectará el CanSat a una PC –que cuenta con Windows XP y todo lo que sea necesario- mediante un cable en serie. La comunicación sería únicamente desde la computadora al satélite; para saber como esta configurado efectivamente el satélite, este podrá enviar la información a través de señales de radio.

  21. y 23. ¿Es obligatorio el uso de “MPLAB” Microchip Co Como entorno de programación ó se puede utilizar otra opción? ¿De ser así alguna opción me permitiría programar en c#? ¿Se puede utilizar Visual Studio?¿Es obligatorio el uso de High-Tech de C como compilador ó existen otras opciones?
    Se puede utilizar cualquier entorno de programación, pero es necesario que luego se pueda compilar el código a fin de poder almacenarlo y ejecutarlo en el PIC. Se considera que el MPLAB es el más recomendado, puesto es otorgado por la misma compañía como el entorno y compilador especialmente pensado para programar un PIC.
    Claro que el software que se ejecutará en PC puede ser programado en C# utilizando el Visual Studio




  22. ¿Es obligatoria la utilización del hardware propuesto?
    Sí, es obligatorio.

    Pero Citando el foro 2009:
    "El PIC ese que están usando tiene demasiada poca memoria EEPROM (256 bytes), si quisiesen guardar 10 samples de 8 bits por segundo de 2 sensores se quedarían cortos de memoria en 10 segundos!
    Para solucionarlo por ahí les convendría usar una memoria EEPROM externa (como la 24lc256(32KiB) o 24lc515(64KiB)), que es relativamente fácil de controlar ya que ese PIC incluye un puerto serie I2C por hardware. El problema es que éstas memorias son relativamente lentas al tiempo de escribir (tardan 5ms en escribir 64 Bytes)
    "

    En caso de ser absolutamente necesario se podría agregar memoria. Pero se debe hacer todo lo posible para evitarlo debido a las complicaciones técnicas y de organización que esto implicaría.



Información extra

Cohete
Es el portador, el medio que transporta el satélite (y otras cosas): los sistemas de recuperación y eventualmente otro satélite. Lo que lleva el cohete se llaman “cargas útiles” o “paypall” (carga de pago). El lugar donde se alojan es llamado “bahía de carga”. El tipo de motor dependerá de la misión, pueden ser de pólvora negra u otros componentes, que hacen ignición.

Candy rocket
los componentes de azúcar permiten que la combustión no sea tan rápida y así brinda más potencia tienen carcasa y tobera de acero.
Puede tener varios motores, pero se trata de que no sea así porque aumenta las probabilidades de falla.

Es recomendable la investigación de términos y conceptos

"Ha pasado que hay un poquito de viento a 2 Km. de altura y se va lejos… lejos. El cohete tenía un sistema GPS que transmitía. En base a la ultima posición transmitida (la transmisión se cortó involuntariamente al llegar a tierra) se pudo recuperar la carga útil (después de dos días) "

lunes, 12 de abril de 2010

Analizando el entorno de programación

Algunas características del software recomendado para programar la solución:

Contiene un editor de texto para escribir el código. Que permite establecer "breakpoints" para el análisis del mismo, se puede inspeccionar el contenido de las variables con el mouse.Además existe la posibilidad de mezclar códigos en distintos lenguajes y establecer funciones de salida.

El simulador MPLAB SIM permite probar el funcionamiento de la aplicación, emulando la interacción con periféricos.

Compilador HI-TECH C PRO sirve para varios modelos de controlador entre otros el que será utilizado en CanSat: pic16f819


Para más información visitar el siguiente link:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469

Para descargar el manual del usuario:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pdf

Para descargar MPLAB última versión gratuita completa:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_50.zip

Analizando el microcontrolador

Modelo 8BIT FLASH MCU, 16F819, DIP18

Características:
  • Case Style:DIP
  • Frecuencia del clock:20MHz
  • Tamaño de memoria EEPROM:256Byte
  • Tamaño de memoria Flash:3.5KB
  • Tipo de Interface:I2C, SPI
  • Máxima tensión:5.5V
  • Mínima tensión:4V
  • No. de entradas ADC:5
  • No. de líneas I/O:16
  • No. de canales PWM:1
  • No. de Pins:18
  • No. de Timers:3
  • Rango de temperatura operable:-40°C to +85°C
  • Tamaño de memoria RAM:256Byte
  • SVHC:No SVHC
  • Series:PIC16F
  • Tipo de terminación::"Through Hole"
  • Mínima temperatura operable:-40°C
  • Máxima temperatura operable:85°C
  • Número base:16
  • Marcado de dispositivo:PIC16F819-I/P
  • Digital IC Case Style:DIP
  • Número genérico IC:16F819
  • Rango de temperatura IC :Industrial
  • Número de función lógica:16F819
  • Tamaño de la memoria:2KB
  • Tipo de memoria:FLASH
  • Microprocesador/Controlador características:ADC, BOR, ICSP, INTERNAL RC, PWM, SPI, WDT
  • No. de Bits:8
  • Número de bits en el Timer:16
  • Número de bits en ADC:10
  • Tamaño de RAM: 256Byte



Fuente (en ingles):
http://cpc.farnell.com/1/1/71047-8bit-flash-mcu-16f819-dip18-pic16f819-ip-microchip.html

lunes, 29 de marzo de 2010

Primer entrevista proyecto CanSat

El proyecto CanSat consiste básicamente en volar en cohetes de aficionado ciertos paquetes de carga útil suministrados por integrantes de la comunidad educativa. La sede Almagro de las Escuelas Técnicas ORT participa anualmente del Proyecto CanSat patrocinado por la ACEMA.
Requiere de un sistema informático para dos funciones clave:
  1. Manejo de eventos de vuelo (Toma de decisiones en base a mediciones realizadas por los sensores del cohete). Ejemplos: - Detectar el apogeo y abrir el paracaídas ó detectar cercanía con el suelo y desplegar mecanismo de aterrizaje.

  2. Transmisión de datos desde el cohete a una base en tierra para su visualización en pantalla y almacenamiento en soporte. El sistema debe permitir que en los momentos previos al despegue se configuren ciertas opciones acerca de las acciones a realizar durante el vuelo. Una vez realizado el aterrizaje se efectúa (automáticamente un experimento) tanto los datos de los resultados del mismo y diversas mediciones tomadas durante el ascenso y descenso deben ser enviadas a una estación terrestre cercana a la base de lanzamiento. Es crucial la repetición de los mensajes, debido a la presencia de ruidos y cortes durante la transmisión. El hardware disponible consiste en un chip programable de 2K de capacidad, una memoria EEPROM de 256 K, una memoria RAM de 256 K y un microcontrolador modelo 16F819. El software debe ir almacenado en el chip de 2K, el cual se programa en lenguaje C o Assembler. El entorno de programación sugerido es “MPLAB” Microchip Co. El mismo puede adquirirse gratuitamente a través de Internet; al igual que el compilador, llamado “High-Tech de C”.

Páginas relacionadas:
http://campus.almagro.ort.edu.ar/fisica/cansat
http://www.cansat.com.ar/
http://www.acema.com.ar/PROY_SLMCanSat.html


Preguntas a realizar durante la primer entrevista


  1. ¿Cuál es el objetivo del proyecto?
  2. ¿En qué áreas se divide el proyecto?
  3. ¿Quién es el encargado de cada una de estas áreas?
  4. ¿Habrá reuniones para los participantes del proyecto?¿Tienen una fecha programada?
  5. ¿Cuál es mi rol en el proyecto?¿Qué necesidades debo satisfacer?
  6. ¿Existe algo opcional que pueda agregar al proyecto?
  7. ¿Cómo es exactamente el experimento a realizar? Detallar las diversas etapas del vuelo explicando bastamente todos los conceptos y describiendo los datos que se deben enviar a la base a tierra.
  8. ¿Cuándo se realizará el experimento?¿Cuándo debe estar listo el software?¿Cuándo debe estar listo el protocolo de transmisión?
  9. ¿En los lanzamientos previos se utilizó algún software?
  10. ¿En los lanzamientos antecesores se utilizó algún protocolo de transmisión de información?
  11. ¿Qué características debe reunir el protocolo de transmisión para este lanzamiento?
  12. ¿Cuál es el listado completo de los eventos de vuelo?
  13. ¿En base a qué información se deberán tomar las decisiones de vuelo?
  14. ¿De qué sensores provendrá dicha información?
  15. ¿Qué componentes hardware se utilizarán para la emisión y recepción de la señal entre el cohete y la base terrestre?
  16. ¿Cuál es el listado completo de los datos a enviar a la base?
  17. ¿Qué se desea realizar con esa información una vez en tierra? almacenarla? mostrarla? analizarla? cómo?
  18. ¿Por qué esos datos deben ser enviados a tierra?
  19. ¿De qué sensores provendrán dichos datos?
  20. ¿Cuál es el listado completo de las opciones que deben poder configurarse en los instantes previos al lanzamiento?¿Por qué se desea configurar dicha infromación?
  21. ¿Cómo se desea ingresar la configurarción en los instantes previos al lanzamiento?
  22. ¿Es obligatorio el uso de “MPLAB” Microchip Co Como entorno de programación ó se puede utilizar otra opción? ¿De ser así alguna opción me permitiría programar en c#? ¿Se puede utilizar Visual Studio?
  23. ¿Es obligatorio el uso de High-Tech de C como compilador ó existen otras opciones?
  24. ¿Es obligatoria la utilización del hardware propuesto?