Dispersión de Rayleigh. ¿Por qué el cielo es azul?

¿Por qué vemos el cielo de color azul? ¿Por qué las puestas de sol tiñen el cielo de color anaranjado? La respuesta a estas preguntas se basa en un fenómeno físico conocido como dispersión de Rayleigh.

A menudo sucede que no nos damos cuenta de los procesos que tienen lugar a nuestro alrededor. Desde pequeños sabemos que la Tierra describe una órbita alrededor del Sol, y que la Luna a su vez gira alrededor de la Tierra. Si nos detenemos a pensar, nos resulta muy sencillo establecer una relación entre la posición de nuestro planeta y las diferentes estaciones del año.

Una pregunta típica que todos nos hemos hecho alguna vez es: ¿por qué el cielo es azul? Si profundizamos más en esta cuestión, deberíamos reformular la pregunta: ¿por qué el color del cielo “cambia” según la hora que sea?

Si sintetizamos toda la información que nuestro cerebro procesa de manera inconsciente, nos es muy fácil deducir el por qué de esta dependencia entre la hora del día y el color del cielo. Podemos establecer una relación entre el ángulo de incidencia de los rayos solares y el color de la luz que percibimos. Pero detrás de esa primera aproximación fruto del sentido común, hay un fenómeno físico muy interesante.

Luz blanca

La luz que percibimos de una estrella, como el Sol, se denomina luz blanca. Esta luz se compone de una superposición de todos los colores, cada uno de ellos caracterizado por su longitud de onda y su frecuencia. Este hecho lo observó por primera vez Newton.

Este fenómeno se nos demuestra experimentalmente en nuestras primeras etapas de aprendizaje. El experimento consiste en pasar un rayo de luz solar a través de un prisma de vidrio, de manera que los rayos refractados se separan en el espacio según su longitud de onda, formando todo el espectro de la luz blanca.

Dispersive_Prism_Illustration_by_Spigget

Naturaleza dual

La característica más importante de la luz es su naturaleza dual onda-corpúsculo. Esto quiere decir que la luz puede comportarse a la misma vez como una onda y una partícula. En 2001, Stephen Hawking describió este hecho como un “concepto de la mecánica cuántica según el cual no hay diferencias fundamentales entre partículas y ondas: las partículas pueden comportarse como ondas y viceversa”.

La naturaleza ondulatoria de la luz se demostró con el experimento de Young y se refutó posteriormente con las predicciones de Maxwell. La naturaleza corpuscular de la luz fue propuesta por Albert Einstein en 1905 al explicar el fenómeno fotoeléctrico.

La forma en que la luz se propaga se puede explicar por sus propiedades ondulatorias, mientras que los intercambios de energía que se producen entre la luz y la materia vienen determinados por sus propiedades como partícula.

Además de los fotones (las partículas que componen la luz), los electrones también presentan esta naturaleza dual (se propagan como ondas, pero al intercambiar energía lo hacen como partículas).

La dispersión de Rayleigh

La luz solar que incide sobre la Tierra debe atravesar primero la atmósfera. Como todos sabemos, la atmósfera está compuesta por una mezcla de gases, los cuales a su vez se componen de átomos de mayor o menor tamaño, del orden de 1 Amstrong (1 Å = 10-10 m). Además de los átomos gaseosos, también podemos encontrar pequeñas gotas de agua en suspensión, así como minúsculas partículas de polvo y otros derivados de la polución.

Si la longitud de onda de la luz que incide es grande comparada con el tamaño de los átomos, la dispersión de los fotones que componen la luz se puede describir mediante la teoría electromagnética clásica. Este fenómeno es conocido como dispersión de Rayleigh (en honor a Lord Rayleigh, quien desarrolló esta teoría en 1871).

La probabilidad de que se verifique esta dispersión viene dada por la relación 1/λ⁴, siendo el parámetro lambda la longitud de onda. Como se puede ver en el siguiente gráfico, la longitud de onda de la luz azul es menor que la longitud de onda de la luz roja.

2000px-Electromagnetic_spectrum-es.svg

Si sustituimos los valores de las longitudes de onda de los colores extremos (rojo y azul), podemos comprobar que la luz azul tiene más probabilidades de dispersarse frente a luz roja (si hacemos el denominador más pequeño, la probabilidad aumenta). De manera que se concluye que la luz azul se dispersa mucho más fácilmente que la luz roja.

Una vez comprendido este fenómeno, y siguiendo el experimento de la refracción del prisma, es fácil entender por qué el cielo es azul. Como anteriormente he mencionado, la atmósfera, además de los gases, contiene partículas en suspensión de tamaño microscópico. La longitud de onda de la luz que atraviesa estas partículas es mayor que el tamaño de dichas partículas, por lo que se dan las condiciones enunciadas por Rayleigh. Siguiendo la relación antes mencionada, la probabilidad de que las partículas dispersen el “color” azul de la luz incidente es mucho mayor que en el caso del color rojo. Luego todas esas pequeñas partículas minúsculas de vapor de agua, polvo, etc, actuarán como una especie de “prisma” dispersando la luz azul. Sin embargo, debido al ángulo de incidencia y de la cantidad de atmósfera a atravesar, la cantidad de luz dispersada es muy baja (en torno al 1 %).

Pero, ¿cómo podemos ver el color azul si es precisamente el que se dispersa? Sencillamente porque los rayos refractados chocan con las numerosas moléculas del aire que conforman la atmósfera, rebotando, y volviéndose a desviar de nuevo. Por lo tanto, aunque se ha dispersado poca luz azul, ésta se encuentra en todas las partes del cielo, y así lo percibe el observador.

Este podría ser el caso de las horas donde el sol está más alto, cuando los rayos solares inciden sobre la superficie terrestre con un ángulo mayor, como el de la siguiente imagen:

Rayleigh-Scattering
Imagen de universetoday

(Pensemos en la rotación terrestre sobre su eje y la posición relativa con respecto al sol de acuerdo con las horas de luz).

El otro caso extremo se produce en el zénit, cuando los rayos del sol inciden con un ángulo muy pequeño sobre la superficie terrestre, por lo que deberán atravesar mayor cantidad de atmósfera hasta llegar al observador. De esta manera, de acuerdo con la ley de Rayleigh, casi toda la luz azul se dispersa, pero al ser el ángulo de incidencia mucho menor, la trayectoria se desvía demasiado como para ser captada por el observador. De esta manera, toda la luz azul se pierde y al observador llegará predominantemente luz roja.

A continuación os dejo un video donde el emérito profesor Walter Lewin da una clase magistral sobre este tema.


Fuentes:
- http://www.sciencemadesimple.com/
- Física (Volumen 2) - Tipler/Mosca

Modulación por ancho de pulso (PWM)

En esta pequeña introducción a la programación mediante señales PWM veremos qué significa exactamente este concepto, analizaremos ejemplos de código en Arduino y veremos algunos casos prácticos.

Concepto de PWM

PWM son las siglas de Pulse Width Modulation, que en español se traduciría como modulación por ancho de pulsoUna señal PWM consiste en una señal con una determinada frecuencia (y por lo tanto con un mismo periodo) que consta de dos valores fijos de tensión: uno alto (HIGH), que es la amplitud, y otro bajo (LOW), que es el valor nulo.

Duty_cycle_general

También consta de otro parámetro, que se denomina ciclo de trabajo (duty cycle), y que se refiere al porcentaje de tiempo que el pulso (la cantidad de voltaje entregada) está en activo durante un ciclo o periodo.

Otro parámetro importante es el ancho de pulso (PW – Pulse Width), que define el tiempo que dura el pulso.

Pwm_5steps

Por tanto, el PWM es una técnica que consiste en variar el ancho de pulso de una señal de voltaje cuadrada con el objetivo de controlar la cantidad de potencia administrada a los componentes o elementos electrónicos conectados. De esta forma, con un ciclo de trabajo del 100 % entregaríamos los 5V totales; un ciclo de trabajo del 50 % entregaría un voltaje de 2.5 V; con un ciclo de trabajo del 10 % conseguiríamos un voltaje del 0.5 V; y así sucesivamente.

Para ilustrar este concepto, vamos a analizar un pequeño programa para controlar el siguiente montaje:

circuito 1

Como se puede observar en la imagen, conectamos el cátodo (-) de un LED directamente a un pin GND (tierra) de la placa y el ánodo (+) a una salida digital PWM, que en Arduino se señalan con el símbolo ~.

Para que sea más visual y fácil de comprender, en vez de programar usando el IDE de Arduino, lo haré mediante LabVIEW:

image1

Si hacéis memoria, este es el mismo programa que ya usé en un post anterior (Arduino & LabVIEW (II). Control de un LED mediante PWM).

Con la barra deslizante (slider) podemos variar la tensión de salida de la señal PWM entre dos valores de tensión fijos (cada uno de los extremos). Los valores de 0 a 255 corresponden al mapeado de la función AnalogWrite de Arduino. 0 se corresponde con 0 voltios de tensión de salida y 255 se corresponden con 5 voltios de tensión de salida de la placa. Los valores entre 0 y 255 se corresponden con valores de tensión en el intervalo de 0 a 5 V. En el caso de la myRIO que utilizamos en el equipo UPCT Racing Team, los valores del slider irán del 0 al 1 (en lugar del intervalo 0-255 que utiliza Arduino).

Es muy fácil ver el potencial que tienen las señales PWM. Siguiendo con el ejemplo del LED, con una salida digital normal, solo podríamos programar dos valores: 0 o LOW (apagado) y 1 HIGH (encendido). Sin embargo, mediante una salida digital PWM, podemos no solo apagar y encender un LED, sino variar su brillo.

Otras aplicaciones podrían ser controlar la velocidad de giro de un ventilador, controlar la velocidad de un motor de continua, controlar servomotores…

Algunos ejemplos con Arduino

En Arduino, usaremos la función analogWrite, que sigue el siguiente esquema:

analogWrite(número de pin, valor);

Así por ejemplo, si tomamos cualquiera de las salidas digitales PWM, como la 3:

analogWrite(3,0);                           // Ciclo de trabajo del 0 %

analogWrite(3,64);                         // Ciclo de trabajo del 25 %

analogWrite(3,127);                       // Ciclo de trabajo del 50 %

analogWrite(3,255);                       // Ciclo de trabajo del 100 %

Conociendo el manejo de esta función, procedemos a analizar algunos ejemplos sencillos de código. Estos programas de ejemplo pueden encontrarse en la carpeta Examples en el directorio donde hayamos instalado el IDE de Arduino.

PROGRAMA DE EJEMPLO 1

En este programa se utilizan tres fotorresistores, protegidos por una cubierta de diferentes colores, para encender un LED RGB. Este LED emitirá un determinado color con un determinado brillo en función de la luz que le llegue a las fotorresistencias.

En esta primera parte del programa se declaran las variables necesarias para la ejecución del mismo:

image2

En esta segunda parte se llama a la función setup para iniciar la comunicación con la placa y se configuran los pines en su correspondiente modo (input o output):

image3

En esta cuarta parte se realiza la lectura de los sensores mediante la función analogRead, estableciendo un pequeño retardo (delay) entre cada ejecución, y se saca por pantalla los resultados con la instrucción Serial.print

image4

En esta última parte se mapean los resultados de las medidas de los sensores y se les asigna una nueva variable. Este mapeo se realiza porque los valores que los sensores leen varían entre 0 y 1023, pero la salida PWM solo puede dar un valor entre 0 y 255. Dividiendo entre 4 se consigue que los valores de respuesta asociados a cada valor de entrada sean coherentes (mapeo).

image5

Con este programa tan sencillo hemos aprendido a controlar el brillo y color de un LED RGB en función de unos datos recogidos por sensores.

De manera análoga, podríamos controlar la velocidad de giro de un ventilador en función de los datos que recoge un sensor de temperatura.

PROGRAMA DE EJEMPLO 2

Con este programa aprenderemos a controlar un servomotor. Los servomotores son dispositivos que tienen engranajes integrados y un eje que podemos controlar con gran precisión. Normalmente podemos controlar el ángulo de rotación entre 0 y 180 grados, aunque hay muchos servomotores de rotación continua, como los de Parallax usados en el Home Boe-Bot. Son muy utilizados en robótica. Un servomotor tiene tres cables: alimentación (rojo), masa (negro) y el de señal (que suele ser blanco o amarillo) y que es el que utilizamos para controlar la rotación y comunicarnos con Arduino.

image6

En la primera parte del programa creamos los objetos y variables necesarias, cargamos las librerías correspondientes e iniciamos la comunicación con la placa.

image7

En la entrada analógica A0 leemos el valor del potenciómetro, y lo asignamos a la variable potVal (potentiometer value). Mostramos por pantalla este valor.

Después, realizamos el mapeo necesario para que el servomotor pueda funcionar, con la función map(). Esta función necesita cinco parámetros: el número a escalar (en este caso el valor leído por el potenciómetro y que hemos almacenado en la variable correspondiente), el mínimo valor de la entrada (0), el máximo valor de la entrada (1023), el mínimo valor de la salida (0 = 1 grado) y el máximo valor de la salida (179 = 180 grados).

Después del mapeo le transmitimos la orden al servomotor para que se mueva.

image8

Es importante notar que con las salidas digitales sería impensable realizar este programa. Como he mencionado, las salidas digitales solo pueden enviar dos valores (0 y 1). Sin embargo, con las salidas digitales podemos dar muchos más valores discretos (digital – variable discreta, analógico – variable continua) por lo que podemos tener un movimiento preciso de un servomotor, con apenas unas pocas líneas de código y mapeando correctamente los valores de entrada y salida.

Práctica propuesta

Con este pequeño ejercicio aprenderemos a controlar un motor de continua. Con los dos pulsadores podemos cambiar el sentido de giro del motor, así como apagarlo y encenderlo. Con el potenciómetro seremos capaces de regular la velocidad del motor (mediante una entrada analógica y una salida PWM).

Untitled Sketch_bb

Declaración de variables:

image9

Definimos las entradas y salidas correspondientes:

image10

Cuerpo del programa:

image11

image12

Este mismo concepto puede trasladarse, por ejemplo, al control de la velocidad de giro de un ventilador. Esta velocidad la podremos regular cambiando el potenciómetro por un sensor de temperatura. De esta forma, con el mapeo correcto, podremos controlar la velocidad del ventilador en función de la temperatura que capte el sensor.

20160221_181844


Todos los ejemplos pueden encontrarse en el libro incluido en el kit de Arduino.
Fuente propia. Imágenes propias (excepto las dos primeras, que son de Wikipedia).

 

Los números de 2015

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2015 de este blog.

Aquí hay un extracto:

Un teleférico de San Francisco puede contener 60 personas. Este blog fue visto por 720 veces en 2015. Si el blog fue un teleférico, se necesitarían alrededor de 12 viajes para llevar tantas personas.

Haz click para ver el reporte completo.

Gracias a todos los seguidores del blog por hacer crecer este proyecto. Tras el parón navideño y los exámenes, volveré a subir material. Hay muchas cosas preparadas para este 2016, y alguna que otra sorpresa. Estad atentos 😉

Recordaros que podéis seguir las novedades del blog y otras publicaciones en mis redes sociales:

Twitter   Facebook   Google+   LinkedIn   Instagram

¡FELICES FIESTAS A TODOS!

Arduino & LabVIEW (II). Control de un LED mediante PWM.

Orange_LED_emittingEn este tutorial vamos a aprender a controlar con LabVIEW la luminosidad de un LED a través una de las salidas PWM de Arduino.

Recomiendo que antes de comenzar hayáis seguido los pasos para conectar y configurar correctamente la comunicación entre Arduino y LabVIEW: Arduino & LabVIEW (I). Conexión y configuración.

Una vez que lo tengamos todo configurado, procedemos a realizar el siguiente montaje físico:

montaje

2000px-+-_of_Led.svg

Como se puede observar es un montaje muy sencillo: conectamos el cátodo (polo negativo) del diodo LED al pin GND, y conectamos el ánodo (polo positivo) al pin PWM 11.

Es importante respetar la polaridad de los terminales para no dañar el LED. En la imagen de la derecha se puede consultar un pequeño esquema para conectar correctamente nuestro diodo, fijándonos en la muesca que tiene en un lateral del encapsulado o en la longitud de los terminales.

Conectamos nuestra placa de Arduino al PC mediante el cable USB.

Para controlar el brillo del LED vamos a usar una de las salidas PWM de Arduino (en nuestro caso la 11, pero vale cualquiera que venga marcada con el símbolo ~ ).

PWM (pulse-width modulation) significa modulación por ancho de pulso. Con esta técnica podemos usar una salida digital para emular a una salida analógica (en vez de dos valores -0 y 1- podremos mandar valores comprendidos entre 0 y 255 – 8 bits = 256 valores). Para más información podéis echar un vistazo al siguiente enlace: Arduino – PWM.

Abrimos LabVIEW y creamos un nuevo proyecto en blanco. Seleccionamos la plantilla «Blank VI«.

lab1

Se nos abrirán dos ventanas: «Block diagram» y «Front panel».

En la primera de ellas, «Block diagram» podremos insertar los bloques que conformarán nuestro programa. Será nuestra «mesa de trabajo».

En el «Front panel» podremos controlar las acciones y visualizar los resultados. Será la ventana que nos permita interactuar con Arduino.

lab3Si hacemos click con el botón derecho en cualquier parte del espacio de trabajo, se nos desplegará un menú con una lista de funciones y controles, similar al de la imagen de la izquierda.

Desde este menú podemos navegar hasta encontrar las diferentes funciones que necesitamos.

Para incorporarlas a nuestro espacio de trabajo, simplemente debemos pinchar sobre el icono adecuado, arrastrar y soltar en el lugar deseado.

Se trata de un método fácil y rápido de programar.

Para empezar, debemos situar los elementos necesarios para interactuar con nuestro Arduino. Como ya he mencionado, esto se hace desde el Front Panel.

Debemos situar un control que nos permita seleccionar el valor que enviaremos al pin 11 para modificar el brillo del LED. Dicho control se sitúa, dentro del menú que hemos visto anteriormente, en Numeric > Horizontal Pointer Slide. Pinchamos sobre él, arrastramos y soltamos sobre la cuadrícula.

lab4

Podemos ajustar las dimensiones del bloque, cambiar los parámetros, las etiquetas… Lo modificamos para que el intervalo numérico vaya de 0 a 255, aumentamos el tamaño y modificamos la etiqueta para poner el nombre que deseemos. Para ello, simplemente pulsamos sobre los parámetros que queramos modificar y nos permitirá editarlos.

De la misma forma, añadimos otro elemento para visualizar la forma y amplitud de onda de los pulsos que mandaremos. Dicho elemento se encuentra en Modern > Graph > Wavefrom Chart. Para poder ver mejor la onda, aumentamos el tamaño y cambiamos los valores del eje Y de 0 a 260.

También añadimos un botón para parar el programa, que encontramos en Modern > Boolean > Stop Button.

De esta forma, se nos queda un Front Panel como el de la imagen siguiente:

lab5

Como podemos observar, podemos modificar los valores a nuestro antojo y disponer los elementos como mejor nos convengan. Haciendo click derecho sobre el elemento, podemos configurar otras opciones importantes.

El control que hemos insertado es deslizante: podemos desplazarlo horizontalmente para alcanzar los valores deseados. En cuanto a la ventana para visualizar la onda del pulso enviado, nos permite realizar una pequeña «monitorización».

Ahora procemos a programar el diagrama de bloques de nuestro programa. Al añadir los dos elementos anteriores al Front Panel, simultáneamente se han añadido dos elementos a la venta Block Diagram, como se puede ver en la imagen:

lab6

Esta ventana de Block Diagram opera igual que el Front Panel: podemos modificar la posición de los elementos, añadir otros, cambiar las propiedades, etc. La única diferencia, es que si hacemos click derecho en el espacio de trabajo, en vez de un menú de control, aparecerá un menú de funciones que nos permitirá realizar nuestro programa. Como véis, es bastante sencillo.

En primer lugar vamos a añadir una estructura While Loop. Para ello, la seleccionamos del menú de funciones (se encuentra en Programming > Structures) y dibujamos un rectángulo en el espacio de trabajo.

lab7

Dentro de el rectángulo que acabamos de dibujar, que representa la estructura While Loop, metemos los tres elementos anteriores, y conectamos el elemento STOP al botón rojo de la parte inferior derecha del rectángulo. Esto indica la condición de parada. De esta manera, al pulsar el botón desde el Front Panel, el programa cesará su ejecución. Para conectarlos basta con posicionarse sobre el icono, y se resaltarán unos puntos de conexión; pulsamos y arrastramos hasta el elemento deseado. Así de sencillo resulta programar mediante diagramas de bloques.

Es importante que los tipos de datos que maneja Arduino y los de nuestros bloques estén en concordancia. Para cambiarlos, pulsamos con el botón derecho y seleccionamos «Properties»:

lab8

En la pestaña Data Type, seleccionamos el icono U8 (Unsigned byte). De esta forma ya podemos enviar datos a Arduino.

lab9

Una vez hecho esto, unimos los bloques Control PWM (o el nombre que le hayamos dado al control numérico) y Wavefrom Chart:

lab10

Para que nuestro programa tenga conexión con Arduino, debemos añadir dos elementos que sircen para iniciar y finalizar el «puente» de conexión. Estos elementos están dentro de Functions > Arduino, y son Init y Close. Los situamos fuera del bucle while.

lab11

Ahora debemos definir los pines y las funciones.

En primer lugar añadimos un bloque «PWM Write Pin«, que se encuentra en Arduino > Low level.

lab12

Añadimos una constante numérica para seleccionar el pin (en nuestro caso el 11). Las constantes se encuentran en Programming > Numeric. Le cambiamos el valor de 0 a 11 clickando sobre dicho valor.

También añadiremos un constante que nos permita decidir si el pin se comportará como salida (output) o entrada (input). Este bloque se llama Enum Constant. Modificamos sus propiedades, como ya hemos hecho anteriormente, modificando el tipo de datos a Unsigned Byte. Dentro de la pestaña «Edit Items» de las propiedades del elemento, añadimos la siguiente configuración:

lab13

Una vez hayamos hecho esto, y seleccionando el pin como Output, conectamos los bloques a los terminales correspondientes, de esta manera:

lab14

Ahora procedemos a realizar la escritura del pin. Para ello, arrastramos otro bloque PWM Write Pin (como el anterior). Lo conectamos de la siguiente forma:

lab15Como se puede ver, las variables se pueden aprovechar en varios bloques, ahorrando así espacio.

Ahora añadiremos el bloque necesario para que al pulsar el botón STOP, el led se apague. Añadimos otro bloque  PWM Write Pin fuera del bucle, y seleccionamos las variables para el pin (11) y el valor de escritura (en este caso 0, porque queremos apagarlo):

lab16

Ahora procedemos a conectarlo todo, de la siguiente manera:

lab17Al empezar, para no liaros mucho, sería conveniente que los cables no se cruzasen y así evitar despistaros. Como podemos mover los bloques a nuestro antojo, podemos dejarlo todo un poco más organizado. También es importante cambiar un detalle para que no haya problemas en el bucle:

lab18

Debemos cambiar las propiedades (click derecho sobre el elemento) y remplazar los cuadraditos de cada pareja por un «Shift Register». Se nos quedaría todo el esquema del siguiente modo:

lab19

Para finalizar guardamos el proyecto. Solo nos queda probarlo. Conectamos nuestro Arduino al puerto USB del ordenador. Para iniciar el programa, lo hacemos desde el Front Panel, en la barra de tareas, donde podemos encontrar el botón Run (una flecha apuntando hacia la derecha).

Os dejo con un vídeo que he grabado del funcionamiento del programa:

Como se puede comprobar, a medida que deslizamos el control, el brillo del LED aumenta o disminuye en consecuencia. También podemos observar la onda (cuadrada) que describe el envío de los pulsos al pin PWM. Además, cuando presionamos el botón STOP, el LED se apaga.

Eso es todo por ahora. Cualquier duda que tengáis podéis dejarla en los comentarios. ¡Muchas gracias por vuestro tiempo!


Imágenes, texto y vídeo propios.

Arduino & LabVIEW (I). Conexión y configuración.

Tras varias semanas sin actividad, esta semana vengo para iniciar otra serie de tutoriales relacionados con Arduino. Pero esta vez subiremos de nivel: vamos a aprender a programar Arduino con LabVIEW, de National Instruments.

A diferencia de otros muchos tutoriales que hay disponibles en la red, éste está completo y contiene todos los pasos necesarios para conectar correctamente Arduino a LabVIEW.

integrated-circuit-441294_640

Pero, ¿por qué usar LabVIEW en lugar del IDE nativo de Arduino? Dos razones: optimización de tiempo y completa monitorización.

Los chicos de National Instruments, conscientes de que muchos usuarios no pueden hacer frente al coste de una tarjeta DAQ (Data Acquisition),  y debido al boom de las placas Arduino, han desarrollado una herramienta para que podamos programar una placa Arduino como si de una de sus tarjetas profesionales se tratase.

Para los que no habéis usado LabVIEW nunca, puede que al principio os cueste acostumbraros a la programación mediante diagrama de bloques. En cuanto llevéis un timepo con el programa, descubriréis el potencial que supone el uso de LabVIEW.

En este primer tutorial vamos a aprender todos los pasos necesarios para poder conectar nuestro Arduino a LabVIEW.

Requisitos necesarios:

  • Placa Arduino (el tutorial está hecho para placas Arduino UNO originales, desconozco si funciona para otros modelos).
  • Cable USB para comunicar Arduino con el PC.

Para empezar, debemos tener instalado LabVIEW, con licencia (recomendada) o la versión de prueba. Podemos encontrar la versión trial en el siguiente enlace:

NI – Descagas LabVIEW

Es necesario tener la última versión disponible de VIPM (VI Package Manager). Este programa se instala junto a LabVIEW, pero en caso de tener que actualizarlo, podemos descargarlo gratis desde el siguiente enlace (Step one):

Descargar VI Package Manager (Step One)

Una vez instalado el programa, debemos instalar el paquete NI LabVIEW Interface for Arduino Toolkit. Para instalarlo, podemos descargarlo del siguiente enlace (Step two), que debemos abrir con el programa VIPM.

 Descargar VI Package Manager (Step Two)

Mi recomendación es buscar el archivo con VIPM e instalarlo desde el mismo programa. Para ello, abrimos VIPM (si no tenéis un acceso directo, debemos buscarlo por VI Package Manager). Una vez abierto, buscamos el paquete LabVIEW Interface for Arduino (debemos asegurarnos que descargamos la última versión disponible, la v 2.2.0.79). Cuando lo hayamos seleccionado, procedemos a instalarlo presionando el botón correspondiente (ver imagen). Seguimos las instrucciones y finalizamos la instalación.

LV Arduino 1

Después de haber instalado el paquete, debemos instalar los drivers correspondientes para la correcta comunicación LabVIEW – Arduino.

Necesitamos un paquete adicional llamado NI-VISA. Aunque en este tutorial voy a instalar NI-VISA 5.2, existe una versión actualizada que ofrece soporte para las versiones más recientes de Windows. He de decir que trabajo con Windows 10 y no he tenido ningún problema con la versión 5.2.

Descargamos el paquete del siguiente enlace, seleccionando el enlace 2 marcado como Standard Download (full versión, 705.31 MB):

Descargar NI-VISA 5.2

De esta forma hemos acabado de configurar LabVIEW. Ahora procedemos a configurar Arduino.

Es importante que tengamos instalada la versión  1.0.5 r2 del IDE de Arduino. De lo contrario, no funcionará. Podemos encontrar esta versión en los antiguos repositorios de Arduino, en el siguiente enlace:

Descargar Arduino 1.0.5 r2

Si tenemos una versión más actualizada del IDE, debemos desinstalarla.

Una vez instalado, debemos instalar la interfaz gráfica de LabVIEW en Arduino. Simplemente es instalar el sketch que nos proporciona LabVIEW para poder manejar Arduino desde el programa. Este paso solo es necesario hacerlo la primera vez que vayamos a programar con LabVIEW (obviamente, si subimos un nuevo sketch sobrescribiremos el anterior, y deberemos instalarlo de nuevo si queremos programar otra vez con LabVIEW).

Abrimos el IDE de Arduino, y abrimos el sketch LIFA_Base.ino, que podemos encontrar en la siguiente ruta:

C:\Program Files\National Instruments\LabVIEW 2014\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base

Esta ruta dependerá de la versión instalada, pero el archivo siempre se encuentra en la carpeta de instalación del programa > vi.lib > LabVIEW Interface for Arduino > Firmware > LIFA_Base.

Subimos el sketch a nuestro Arduino (debemos asegurarnos previamente de que hemos seleccionado nuestro modelo de Arduino y el puerto COM correspondiente).

LV Arduino 2

Una vez subido el sketch, ya tenemos correctamente configuradas ambas partes para poder empezar a programar.

En los siguientes tutoriales veremos algún ejemplo de introducción  a la programación de Arduino con LabVIEW. Esta noche tendréis el primer ejemplo de programación, donde controlaremos la luminosidad de un led conectado a una de las salidas PWM de nuestro Arduino con LabVIEW.

En caso de alguna duda, podéis dejar un comentario en la entrada.


Fuente e imágenes propias

Raspberry Pi. Configurar conexión inalámbrica WiFi.

En este pequeño post aprenderemos a configurar una conexión WiFi en nuestra Raspberry Pi. Como ya se especificó anteriormente, Raspberry viene con sin conexión a Internet inalámbrica de serie. En su lugar, dispone de un latiguillo RJ45, que se puede conectar a un router para acceder a Internet.

Quizás en algunos proyectos nos interese dotar de una mayor movilidad a la placa. En otros, probablemente no tengamos acceso a un router cercano y nos resulte más cómodo usar una red WiFi. En la mayoría de las ocasiones, resulta menos engorroso deshacerse de los cables.

TP-Link-TL-WN725NLa solución es sencilla: usar un adaptador USB. En mi caso, he optado por usar un adaptador nano USB, más concretamente el modelo TL-WN725N de la casa TP-LINK. Es realmente compacto y económico (lo podéis encontrar por menos de 15 euros).

Antes de comenzar con la instalación de los drivers necesarios, procederemos con la actualización del firmware de la Raspberry Pi. Para ello, ejecutaremos desde la consola el comando:

 rpi-update

Una vez terminado el proceso de actualización del firmware reiniciamos la Raspberry (recordar que el reinicio se hace con el comando reboot o sudo reboot).

Una vez reiniciada, debemos comprobar y anotar la versión del firmware de nuestra Raspberry. Esto se hace mediante el comand:

uname –a

Buscamos nuestra versión en el siguiente enlace:

https://www.raspberrypi.org/forums/viewtopic.php?p=462982#p462982

Dentro del post y dependiendo de nuestra versión se nos mostrarán los comandos que hemos de ejecutar para instalar los drivers de este dispositivo (también vale para otros similares de la misma marca) correspondientes a nuestra versión.

En nuestro caso, el archivo correspondiente a nuestra versión viene dado por:

4.0.7-v7+ #801, #802 - 8188eu-v7-20150630.tar.gz

Seguimos las instrucciones que se nos indican. En nuestro caso, debemos introducir los comandos (sustituyendo yyzz por los datos correspondientes, que hemos obtenido anteriormente):

wget https://dl.dropboxusercontent.com/u/80256631/8188eu-v7-2015yyzz.tar.gz

Una vez descargado el archivo lo descomprimimos con el comando:

tar xzf 8188eu-v7-2015yyzz.tar.gz

Finalmente, lo instalamos con el comando:

./install.sh

Ejemplo de como quedaría con mi versión de firmware:

wget https://dl.dropboxusercontent.com/u/80256631/8188eu-v7-20150630.tar.gz
tar xzf 8188eu-v7-20150630.tar.gz
./install.sh

Una vez terminado el proceso de instalación, reiniciamos la Raspberry y el dispositivo funcionará correctamente.

NOTA: Para el proceso de instalación, es necesario que la Raspberry se encuentre conectada a Internet para poder realizar las actualizaciones y bajar los archivos, por lo que se hace imprescindible hacer uso del puerto de red RJ45 una primera vez para poder acceder posteriormente mediante WiFi.


Fuente propia

Introducción a Raspberry Pi (II). «Españolizar» nuestra Raspberry.

raspberry-pi-572481_640En este pequeño post, que continúa con la serie de tutoriales para aprender a usar la Raspberry Pi, modificaremos algunos parámetros para terminar de configurar nuestra placa.

Cuando instalamos Raspbian en nuestra Raspberry Pi, por defecto se configura en inglés. Lo que haremos a continuación será configurarla en español.

Configuración del idioma

Para configurar el idioma, abrimos el terminal e introducimos el siguiente comando:

sudo dpkg-reconfigure locales

Se nos desplegará una lista de codificaciones disponibles. Debemos buscar la codificación es_ES.UTF-8. La seleccionaremos con la barra espaciadora y procederemos a su instalación con Enter. A continuación nos pedirá seleccionar un idioma de los instalados como predeterminado. Seleccionamos el que acabamos de instalar.

Configuración del teclado

Ahora continuaremos con la configuración del teclado. Para ello ejecutaremos el siguiente comando desde el terminal:

sudo dpkg-reconfigure keyboard-configuration

Seleccionamos el teclado conectado de los que hay entre la lista que se despliega (si nuestro teclado no está entre ellos, usar un Generic). Pulsamos Enter para continuar. Acto seguido se nos despliega otra lista con los layout disponibles. Seleccionamos Spanish. Configuramos los demás parámetros a nuestra elección y continuamos.

Configuración de la zona horaria

A continuación seleccionaremos la zona horaria. Para ello, ejecutamos el siguiente comando desde el terminal:

sudo dpkg-reconfigure tzdata

En nuestro caso, seleccionaremos primero Europa, y después Madrid para establecer nuestra zona horaria.

Por último, reiniciamos para que los cambios tengan efecto con el comando:

sudo reboot

Una vez reiniciada nuestra Raspberry Pi, podremos observar que está todo correctamente configurado.

En el siguiente tutorial veremos como ampliar la conectividad de nuestra placa con la instalación de un dispositivo USB nano para dotar de WiFi a la Raspberry Pi.


Fuente propia

Raspberry Pi para beginners. ¿Qué es y para qué sirve?

En esta entrada intentaré explicar de forma breve, clara y sencilla, qué es y para qué sirve la Raspberry Pi.

Si bien en el anterior post realicé una introducción al funcionamiento de la Raspberry Pi, no expliqué en qué consiste exactamente ni tampoco a qué usos puede ir destinada. Siguiendo la recomendación de un lector -siempre agradezco críticas, sirven para enriquecer y mejorar el blog-, haré una explicación breve y concreta de estas cuestiones.

¿Qué es Raspberry Pi?

6701327189_0d35efce6c_bEn esencia, Raspberry Pi es un ordenador. Se trata de un pequeño computador, del tamaño de una tarjeta de crédito, que puede conectarse a un monitor, un teclado y un ratón, y comenzar a funcionar.

Es capaz de correr distribuciones basadas en Linux, por lo que bastará seleccionar una e instalarla. También puede correr una versión de Windows 10 especial, enfocada al IoT. Más adelante presentaré sus características técnicas y especificaciones.

Además del tamaño, tiene la ventaja de ser muy barato (alrededor de los 30-35 euros), lo que hace de esta pequeña placa el complemento perfecto para nuestros proyectos del llamado IoT (Internet of Things).

Raspberry Pi es un proyecto de la Raspberry Pi Foundation, que surgió con la intención de acercar la programación a estudiantes de todas las edades. Por ello, se trata de un excelente dispositivo (por su tamaño, sencillez y precio) para introducir a los más pequeños en el mundo de la programación. Para ello, incluye software destinado a enseñar el lenguaje de programación Scratch. Para aquellos que ya tienen un nivel algo superior, es una placa de desarrollo excelente en lenguaje Python.

Pero este pequeño computador no solo está destinado a las aulas. Puede ser utilizado como un ordenador normal: ver vídeos en alta definición, navegar por internet, usar procesadores de texto…

¿Para qué sirve?

7473604878_a03610a75e_bPara todo. Las posibilidades son infinitas y el único límite es tu imaginación y creatividad. Es ampliamente utilizada en la comunidad Maker, pero también en el mundo laboral, en trabajos relacionados con la electrónica, con la regulación y automatización…

Puedes usar esta pequeña placa para incorporarla a tus proyectos de Arduino, para hacer estaciones meteorológicas, para aplicaciones en domótica, para hacer tu propia máquina arcade, para crear tu media-center…

Personalmente, yo uso mi Raspberry Pi 2 para realizar proyectos con Arduino, lo que otorga al trabajo en cuestión un alto grado de movilidad, eficiencia energética y compacidad. También la usé para controlar remotamente el encendido/apagado de los inversores de un campo solar. De esta forma, puedo conectarme remotamente desde cualquier dispositivo (un iPad, un PC o un smartphone) al campo fotovoltaico y apagar los inversores que desee.

Te dejo unos enlaces para que veas las enormes posibilidades que tiene esta pequeña placa:

16 geniales usos para tu Raspberry Pi

Raspberry Pi: nuevo proyectos increíbles que puedes hacer con ella

Las 13 mejores ideas que hemos encontrado hechas con Raspberry Pi

Como ves, los usos son prácticamente infinitos.

Especificaciones técnicas

El último modelo que hay disponible en el mercado es la Raspberry Pi 2 Model B. Apenas hay diferencia de precio con sus antecesores. Es el modelo que yo tengo, y sin duda, es el que recomiendo que compres.

Especificaciones:

  • SoC Broadcom BCM2836
  • CPU ARM11 ARMv7 ARM Cortex-A7 Quad-core 90o MHz
  • GPU Broadcom VideoCore IV 250 MHz. OpenGL ES 2.0
  • Memoria RAM: 1 GB LPDDR2; SDRAM 450 MHz
  • 4 puertos USB 2.0
  • 40 pines GPIO (General Purpose Input/Output)
  • Salida HDMI 1.4 (1920 x 1200)
  • Ranura para micro SD
  • Puerto Ethernet 10/100 Mbps
  • Interfaz de cámara (CSI)
  • Interfaz de pantalla (DSI)
  • Puerto combinado micrófono+audio
Raspberry Pi 2 Model B
Raspberry Pi 2 Model B

Para ver una lista completa de especificaciones, pinchar en el enlace: http://www.raspberryshop.es/hardware-raspberry-pi.php

Cabe destacar que se puede hacer Overclocking a los procesadores para aumentar su frecuencia de reloj, aunque si lo haces te arriesgas a quemar los componentes, por lo que se recomienda usar disipadores de aluminio. También es interesante mencionar que la Raspberry Pi tiene un montón de accesorios interesantes para complementarla: cámara, cámara infrarroja, caja de protección, pantalla táctil de 7″…

Te dejo el enlace por si quieres comprarla:

http://www.pccomponentes.com/raspberry_pi_2_modelo_b.html

Espero haber resuelto algunas dudas y que quede más claro qué es exactamente y para qué sirve una Raspberry Pi. Os recuerdo que en los próximos días seguiré subiendo tutoriales de introducción a Raspberry Pi. ¡Nos vemos pronto!


Fuentes
Texto: propia
Especificaciones: http://www.raspberryshop.es/hardware-raspberry-pi.php

Introducción a Raspberry Pi (I). Instalación de un SO y First Boot.

20151024_145413_HDR-1En este primer post que inicia una nueva serie de tutoriales acerca de Raspberry Pi, procederemos con la instalación de un Sistema Operativo y el arranque del mismo.

El SO que instalaremos será Raspbian, una distribución de Linux basada en Debian y especialmente diseñada para Raspberry Pi.

Requisitos previos

La instalación del SO se realiza en la tarjeta de memoria microSD (es recomendable que sea mayor de 8 GB). También es importante remarcar la clase de la tarjeta. Podemos encontrar tarjetas de clase 2, 4, 6 y 10; este número nos indica la tasa de megabytes (MB) que graba por segundo. Cuanto mayor sea ésta, más rápido y óptimo será el sistema; por tanto, es recomendable hacerse con una tarjeta de clase 10.

Raspbian_logo

Descarga del SO

Procederemos con la instalación del sistema operativo NOOBS (v.1.4.x), que a su vez contiene a otros sistemas operativos, como RASPBIAN. Se puede descargar desde la página oficial de Raspberry: https://www.raspberrypi.org/downloads/

2015-10-24_14-33-04Como se puede comprobar, el archivo que hemos descargado se trata de un archivo comprimido ZIP. Una vez descargado el archivo, lo descomprimimos, y procedemos al formateado de memoria.

Formateo de la tarjeta de memoria

Para llevar a cabo el formateo de la tarjeta microSD usaremos el software SD Formatter 4.0 proporcionado por SD Association. Lo podemos descargar de su página web: https://www.sdcard.org/downloads/formatter_4/

Una vez descargado, seguimos las instrucciones para instalar el software.

Insertamos la tarjeta de memoria en el ordenador mediante un adaptador y anotamos la letra de la unidad.

raspIniciamos el software, seleccionamos la unidad y formateamos con los siguientes parámetros (para modificarlos desplegamos la pestaña Option):

  • Volume label: boot
  • Format option: Full (erase) Format, Format size adjustment off

Durante el formateo no podremos retirar la tarjeta de memoria bajo ningún concepto.

Copy/Paste de los archivos del SO

Una vez que hemos formateado la memoria, procederemos al copiado y pegado de los archivos que hemos descomprimido anteriormente. Una vez copiados, retiraremos la tarjeta de memoria de forma segura y la introduciremos en la Raspberry Pi.

rasp2

Primer arranque (First Boot)

Conectamos la Raspberry Pi a un monitor y a los periféricos pertinentes (teclado y ratón). Después conectamos la Raspberry Pi a una toma de corriente mediante el conector USB.

Al iniciarse, aparecerá un menú con una lista de sistemas operativos similar al de la imagen.

rasp3

Seleccionamos el SO Raspbian y clickamos en Install. Comenzará entonces el proceso de instalación, que puede llevar de 10 a 25 minutos aproximadamente.

Una vez instalado se iniciará el programa raspi-config, donde dispondremos de un menú con diferentes opciones. Para salir del menú, seleccionamos la opción Finish, y se nos abrirá una ventana de comandos.

Para iniciar el entorno gráfico del SO, teclearemos el comando startx.

Menú de configuración (raspi-config)

A continuación se muestra el menú de configuración que se despliega al iniciar la Raspberry Pi, tal y como hemos mencionado en el apartado anterior. Por ahora no modificaremos ningún parámetro. Únicamente nos desplazaremos por el menú hasta seleccionar la opción Finish (desplazándonos con la tecla Tab o con las teclas de dirección y pulsado Enter para ejecutar la opción deseada), y posteriormente iniciaremos la interfaz gráfica con el comando startx.

raspi3

Inicio de Raspbian

Si al iniciar Raspbian por segunda vez, no hemos modificado antes ningún parámetro del menú anterior, nos pedirá un usuario y contraseña para loguearnos. Por defecto, el nombre de usuario es pi y la contraseña raspberry. Como medida de seguridad de Linux, cuando introduzcamos la contraseña, no aparecerá nada por pantalla. Una vez introducidos los datos, entraremos a la interfaz gráfica del SO mediante el comando startx.

En caso de haber modificado los parámetros del programa raspi-config, podremos hacer login mediante el username y password que hayamos establecido con anterioridad. Incluso es posible configurar el inicio automático de la interfaz gráfica sin necesidad de pasar por la ventana de comandos, como veremos en tutoriales siguientes.


Fuente propia

Selección de materiales: álabes para turbinas de aviones.

Una de las etapas fundamentales del diseño de un producto es la selección de materiales para su fabricación. En esta fase, se deben considerar los requisitos que debe satisfacer el material, y seleccionarlo en base a sus propiedades, siendo consciente de sus limitaciones y teniendo en cuenta el entorno de operación.

Una mala elección de materiales puede suponer costes económicos, retrasos en la entrega del producto final, problemas de funcionamiento, y, en el peor de los casos, la pérdida de vidas humanas.

Rotura en aleación Cu-Ni
Rotura en aleación Cu-Ni

Sería inconcebible para un ingeniero conocer la totalidad de materiales existentes y sus propiedades específicas, aunque sí es conveniente conocer las propiedades generales que caracterizan a un material y qué efectos producen.

De entre los diversos métodos existentes para la selección de materiales (recomendaciones, mapas de materiales, fuentes bibliográficas…) será objeto de esta exposición el que se basa en la búsqueda en base de datos mediante software. En particular, se hará uso del conocido software de selección de materiales, CES Selector, más concretamente en su versión CES Edupack 2013.

Con este método podremos evaluar cuantas propiedades queramos considerar, y hacer una selección de materiales en base a los parámetros que definamos previamente.

Para este ejemplo, nos apoyaremos en un caso hipotético: seleccionar un material para la construcción de los álabes de una turbina destinada al montaje de motores para su uso en grandes aviones.

800px-Fan_blades_and_inlet_guide_vanes_of_GEnx-2B
Álabes de una turbina

Debemos conocer las propiedades o requerimientos que deben cumplir estos álabes, y formularlos posteriormente de forma adecuada para seleccionar el material que mejor se adapte a esta aplicación.

Estos álabes deben tener suficiente módulo de Young, límite elástico y tenacidad a la fractura. Además tienen que resistir la fatiga (causada por cargas alternativas a gran velocidad y de forma cíclica).

Debemos tener en cuenta el entorno donde va a operar el material. Debe tener una alta resistencia al desgaste superficial, pues se verá afectado por las pequeñas colisiones con gotas de agua, colisiones con pájaros u otros objetos… También tenemos que considerar que el material puede verse afectado por agua salina en entornos marinos, por lo que debe tener una alta resistencia a la corrosión.

Además de las propiedades mecánicas, es necesario contemplar las propiedades térmicas y otras propiedades relacionadas con la temperatura del entorno. Los álabes de la zona más caliente al motor deben soportar temperaturas de más de 950 ºC, por lo que será necesario que tengan una alta temperatura máxima de servicio, además de una buena resistencia a la termofluencia y a la oxidación.

Por último, es importante tener en cuenta que si los motores son muy pesados el avión deberá llevar menos carga, por lo que es fundamental escoger un material con un densidad baja.

Una vez definidos todos los requisitos y formuladas las distintas características o propiedades que debe tener el material que seleccionaremos, procedemos a la selección del material más adecuado de entre todos los que han superado las distintas etapas propuestas.

2015-10-20_21-35-44

2015-10-20_21-36-01

2015-10-20_21-36-20

2015-10-20_21-36-58

2015-10-20_21-36-39

2015-10-20_21-39-03Los gráficos anteriores corresponden a cada una de las etapas definidas. Si seleccionamos todas las etapas que hemos propuesto (como si superpusiéramos las gráficas), podemos observar que hay tres materiales que cumplen con todas las especificaciones.

Las tres son aleaciones de base níquel, muy utilizadas en el campo de aplicaciones aeroespacial. Si las analizamos una por una, podemos comprobar que la primera (Nickel-Co-Cr alloy, MAR-M 432) es específicamente usada para los álabes de las turbinas de aviones.

2015-10-20_21-41-07
Detalle de la primera aleación, especificando su uso en turbinas

Queda pues comprobada la enorme utilidad de este tipo de programas para seleccionar los materiales adecuados en el diseño de nuestros productos. Debemos ser coscientes de la enorme importancia de esta etapa del diseño y de las graves consecuencias de una mala selección de materiales.


Fuente propia. Imágenes del programa propias.
Programa: CES EduPack 2013

La familia crece: Intel y Arduino presentan Genuino 101.

Intel y Arduino vuelven a aliarse para presentar la nueva placa Arduino 101 (que llegará a los mercados internacionales con el nombre de Genuino 101). Será la primera placa de desarrollo en montar el módulo Intel Curie, que se caracteriza por su bajo consumo.

Arduino101El módulo Intel Curie estará dotado de un diminuto SoC 32-bit Intel Quark de bajo consumo con una frecuencia de 32 MHz. En cuanto a memoria, dispondrá de 384 kB de memoria flash y 80 kB de SRAM.

Además, incorporará Bluetooth LE (Low Energy) de escaso consumo, 14 pines I/O (input/output) digitales (4 de ellos podrán usarse como PWM), 6 pines analógicos, un sistema conjunto de acelerómetro y giroscopio de 6 ejes.

La comunicación con el ordenador se realizará con el típico conector USB que montan las placas de la familia Arduino, conector que también podrá dar la alimentación necesaria a la placa para su funcionamiento.

Genuino 101 está pensado tanto para la comunidad maker como para los estudiantes que se inician en el mundo de la electrónica. Destaca por su escaso consumo y su tamaño compacto, con unas dimensiones de 68.6 x 53.4 mm.

Genuino 101 saldrá a la venta en el primer trimestre de 2016, con un precio realmente competitivo: 30 dólares (27 euros aproximadamente).


Fuentes:
- https://www.arduino.cc/en/Main/ArduinoBoard101
- https://blog.arduino.cc/2015/10/16/intel-and-banzi-just-presented-arduino-101-and-genuino-101/

Astro Pi: una Raspberry en el espacio exterior

Todos los aficionados a las nuevas tecnologías hemos oído hablar alguna vez de la Raspberry Pi. Incluso más de uno hemos tenido la oportunidad de trabajar con una de ellas. Pero, ¿qué pasaría si alguien decidiera embarcar una Raspberri Pi en una misión al espacio?

Astro_Pi_Logo_WEB

En enero de 2015 se puso en marcha un nuevo proyecto de manos de la ESA (European Space Agency) y de la UK Space Agency. Estas organizaciones dieron la posibilidad a los estudiantes de Reino Unido de participar en el diseño de aplicaciones y experimentos para una Raspberry Pi un tanto peculiar: su lugar de trabajo será el espacio exterior. Así surge Astro Pi.

tim-peak-infopages-sml
Timothy Peak

En total, dos Raspberry Pi especialmente diseñadas para su funcionamiento en el espacio formarán parte del equipaje del astronauta británico de la ESA Tim Peake durante su misión en la ISS (International Space Station). Para esta misión de 6 meses, las Raspberry Pi han sido dotadas de una nueva placa con nuevos sensores y gadgets: Sense HAT. Está previsto que esta misión espacial comience en Diciembre de 2015, cuando Peake llegue a la ISS en el vuelo Soyuz TMA-19M.

Especificaciones técnicas y características

La nueva placa Sense HAT se conecta a la Raspberry Pi mediante los pines GPIO de la placa. Sense HAT viene con una completa librería en Phyton para desarrollar aplicaciones que expriman al máximo las posibilidades de este nuevo módulo.

Incorpora un sistema de orientación en tres dimensiones, contenido en un sólo chip, que combina acelerómetro, magnetómetro y giroscopio. Estos sensores proporcionarán información referente a la órbita de la ISS (eje de guiñada, de cabeceo y de alabeo).

AstroPiRainbow-500x329
Módulo Sense HAT conectado a la Raspberry

Además, posee sensores de humedad, temperatura y presión. El módulo tiene salidas (outputs) para conectar una cámara normal y una cámara infrarroja. Como se puede ver en la imagen, tiene una Matriz 8×8 de LEDs RGB. Incluye un Joystick y cinco pulsadores con los que poder interactuar.

Todos los sensores del Sense HAT se comunican mediante la Raspberry mediante I2C, y su programación se puede llevar acabo desde la propia Raspberry mediante la interfaz SPI.

Las especificaciones completas pueden consultarse en su página oficial https://www.raspberrypi.org/blog/astro-pi-tech-specs/

Preparando Astro Pi para el espacio

Poner en marcha el proyecto Astro Pi no es tan simple como mandar la Raspberry a la ISS en un cohete. Antes debe superar numerosas y exhaustivas pruebas para cumplir con todos los estándares de seguridad.

IMG_2020La Raspberry Pi viajará en una caja de aluminio 6063 (aleación de aluminio con magnesio y silicio), el material estándar para aplicaciones aerospaciales. El diseño de la caja puede destacar por lo voluminoso, pero debe cumplir con los estrictos requisitos de seguridad de la ESA y de la NASA.

El requisito más importante es la temperatura. Una de las normas es que ninguna superficie dentro de la ISS que pueda tocar la tripulación sobrepase los 45ºC.  Este proceso es complicado debido a que en el espacio no se dan procesos de convección (no hay aire). La caja está diseñada para disipar el aire caliente, teniendo en cuenta los niveles de flujo de aire que se garantizan en todos los módulos de la ISS. Para ello se ha dotado a la caja de numerosos pines en la base que disipan aproximadamente 0.1 wattios de calor.

IMG_2019-500x375
Detalle de la base disipadora de calor

Además, el proyecto Astro Pi ha sido sometido a otras pruebas, todas ellas completadas con éxito. Entre ellas destacan:

  • La placa puede obtener energía de dos formas distintas: mediante un invesor de corriente alterna, o mediante un puerto USB (como el de los ordenadores portátiles que irán a bordo de la ISS). Se debe asegurar que la alimentación se garantice sin que se vean afectados por el estrés los demás ordenadores o los sistemas de alimentación de la estación. Los tests realizados confirmaron que la alimentación de la Raspberry Pi mediante USB no provocó efectos adversos en los ordenadores.
  • Otro de los requisitos es que durante los intervalos de tiempo donde la Raspberry Pi no reciba alimentación, debe permanecer en hora. Para ello se ha dotado a la placa de 8 pilas modelo Panasonic BR-1225 (las pilas son elementos muy peligrosos en una misión espacial), que han de superar numerosas pruebas para garantizar su uso seguro (mediciones de voltaje, de intensidad, funcionamiento en vacío a una presión de 0.6 bares).
  • Cuando son sometidos a microgravedad, los componentes electrónicos metálicos puede vis_conformal-500x429verse afectados por un fenómeno llamado tin whiskers. Este fenómeno hace que crezcan «pelos» metálicos de forma espontánea en cualquier zona metálica, especialmente en puntos de soldadura. Estos pelos pueden desprenderse y provocar un cortocircuito. Para evitarlo, se recubre de una especie de «barniz», un revestimiento de conformado.
  • También ha pasado por pruebas de resistencia a la vibración, para resistir el viaje y el despegue del cohete Soyuz. Para ello se someten los componentes a pruebas que simulan las condiciones a las que se verá sometida. Luego, se inspecciona su funcionamiento y se garantiza que no ha sufrido daños.
  • Compatibilidad electromagnética (EMC). La placa debe soportar pulsos electromagnéticos de fuerza considerada. La Raspberry no ocasionó ninguna interferencia con otros aparatos durante la prueba.
  • Además se comprobó con ningún componente emitía gases nocivos cuando se calientan en exceso. Se verificó que la caja de Astro Pi no tenía aristas ni partes que pudieran producir cortes o daños en la estructura. Por último se realizó un test de operatividad en una réplica fiel del módul Columbus de la ISS.

Todas estas durísimas pruebas ponen de manifiesto las condiciones a las que se verá sometido el Astro Pi, y nos hacen ver como un proyecto modesto puede crecer de una manera espectacular.

Aunque la caja de vuelo del Astro Pi no se vende al público (debido al prohibitivo precio), podemos encontrar el módulo Sense HAT por unos 35 euros.

Fuentes:
- https://www.raspberrypi.org/blog/astro-pi-mission-update-5-flight-safety-testing/
- http://astro-pi.org/
- https://www.raspberrypi.org/blog/astro-pi/

Introducción a las formas alotrópicas del Carbono.

A pesar de que el carbono (C) sólo constituye, aproximada2000px-Carbone_lewis.svgmente, un 0.094% de la masa de la corteza terrestre, es un elemento esencial para los seres vivos. Lo podemos encontrar en múltiples formas: libre en forma de diamante y grafito; como componente del gas natural, del petróleo y del carbón; combinado con el oxígeno, para formar dióxido de carbono (presente en la atmósfera); como carbonato en la piedra caliza y en la tiza…

Entre las características más importantes del carbono se encuentra el fenómeno conocido como concatenación, que le permite formar cadenas muy largas, de hasta más de 50 átomos de carbono. La enorme versatilidad de este elemento le convierte en pilar básico de la química orgánica, siendo capaz de formar más de 16 millones de compuestos distintos (cifra que aumenta cada año con nuevos descubrimientos).

El carbono, al igual que muchos otros elementos, tiene distintas formas alotrópicas: diamante, grafito, fullerenos (buckyball) y nanotubos (buckytube).

  • Grafito. El grafito tiene una estructura basada en capas, en las cuales los átomos de carbono se disponen unidos fuertemente entre sí, formando distribuciones hexagonales. Las diferentes capas, a su vez, se unen mediante enlaces secundarios débiles (fuerzas de Van der Waals), lo que les permite deslizarse una sobre otra con facilidad.

Graphit_gitter El grafito es, por tanto, un material anisotrópico: sus propiedades varían en función de la dirección sobre la que nos desplazamos. Entre sus características destacan su baja densidad (2.26 g/cm³) y su buena conductividad térmica y eléctrica (únicamente en el plano basal, pero no en el perpendicular). Sus principales usos son como lubricantes sólidos y para la fabricación de fibras empleadas en materiales compuestos.

  • Grafeno. El grafeno es una sustancia con estructura similar al grafito, con la salvedad de que se dispone en una lámina del grosor de un átomo. Podríamos decir que el grafito es una superposición de láminas de grafeno. Si bien hace 20 años eGraphenl material llamado a revolucionar el mercado industrial eran los nanotubos de carbono, se dice que el siglo XXI será la Era del Grafeno. Sus propiedades más destacadas son su alta conductividad térmica y eléctrica, su alta elasticidad, su dureza, su resistencia (aproximadamente 200 veces más resistente que el acero), su ligereza (5 veces más ligero que el acero), es más flexible que la fibra de carbono convencional (e igual de ligero), apenas hay pérdidas por el efecto Joule (no se calienta en exceso con el paso de electrones), etc… Sus usos son igualmente sorprendetes, destacando su empleo en células solares (son capaces de generar electricidad si son expuestos a luz solar), en pantallas flexibles, como reemplazo del silicio en los procesadores (10 veces más veloces, ligeros y eficientes). Sin embargo también presentan graves inconvenientes que limitan su uso, como su elevado coste de producción y la dificultad de producir grandes muestras con calidad óptima.
  • Diamante. Destaca por ser el material más rígido, duro y menos compresible de la naturaleza. Su estructura cúbica está basada en orbitales libres sp³ unidos mediante enlaces covalentes. Tiene propiedades muy distintas al grafito: es isotrópico, es decir, las propiedades varían sin importar la dirección en la que nos desplacemos; tiene mayor densidad (3.51 g/cm³). A pesar de que tiene una conductividad térmica muy alta, no ocurre lo mismo con la electricidad, considerándose un excelente aislante eléctrico. Podemos encontrarlo como diamante natural y diamante sintético (fabricado por el hombre, con propiedades casi idénticas y precio menor).
  • Fullerenos. El Fullereno Buckminster posee una estructura similar a un balón de fútbol constituido por 12 pentágonos y 20 hexágonos. En cada punto de unión, un átomo de carbono se une mediante enlaces covalentes a otros tres átomos de carbono. La estructura resultante consta de 60 átomos (C60). También podemos encontrar otros fullerenos, con mayor o menor número de átomos (C70, C76, C78, etc…). Se destinan principalmente al campo de la electrónica, a la fabricación de celdas de combustible, como lubricantes, para la elaboración de superconductores

    Fullereno
    Fullereno C60
  • Nanotubos. Los nanotubos se forman mediante la laminación de una sola capa atómica de grafito (es decir, un grafeno) en forma de tubo. Al cerrar los extremos del tubo mediante dos hemifullerenos formados sólo de pentagonos, se obtiene la estructura del nanotubo. Los nano646px-Types_of_Carbon_Nanotubestubos se dividen entre nanotubos de una sola pared (SWNT) y nanotubos multiparedes (MWNT); la estructura de los nanotubos multiparedes se basa en la disposición de varios tubos de forma concéntrica. Los nanotubos destacan por su alta resistencia a la tensión (20 veces mayor que los aceros más fuertes -unos 45 GPa-), por su baja densidad, por su alta conductividad térmica, su complejidad eletrónica (puede ser desde semiconductor hasta superconductor), puede verse sometido a deformaciones muy intensas y permanecer en el régimen elástico (su módulo de Young es superior a σ=1.3 TPa), etc… Estas propiedades justifican su uso en la fabricación de fibras para compuestos, en la industria electrónica (supercondensadores, transistores, memorias…), en nanomedicina, en sensores, en biotecnología, en instrumentación científica (puntas de STM), etc…

Fuentes: 
- Fundamentos de la ciencia e ingeniería de los materiales - William F. Smith - McGraw Hill 
- Química - Raymond Chang - McGraw Hill

Hierro y sus formas alotrópicas. Contracción y expansión volumétrica.

      El hierro es un metal alotrópico, es decir, su estructura cristalina sufre variaciones con la temperatura. En el hierro puro (Fe), estas transformaciones alotrópicas se dan a unas determinadas temperaturas (cabe destacar que en los materiales cristalinos los puntos de fusión están bien definidos, al contrario que en los amorfos).

      Por encima de la temperatura de solidificación del Fe (1539 ºC), éste se encuentra en estado líquido.

image003      En el intervalo de temperaturas que abarca desde los 1400 ºC a 1539 ºC se encuentra el hierro delta (Fe δ). La estructura cristalina de esta variedad es cúbica centrada en el cuerpo (BCC), con una longitud de arista de 0.293 nanómetros.

      El hierro sigue enfriándose, hasta alcanzar la temperatura de 910 ºC. Durante todo este proceso, el hierro tiene una estructura cristalina cúbica centrada en las caras (FCC), con una longitud de arista igual a 0.3646 nanómetros. A esta variedad de hierro se la denomina hierro gamma (Fe γ).

      Entre los 910 ºC y los 768 ºC se produce una nueva variedad de hierro, el hierro beta (Fe β). Si bien durante este intervalo de temperaturas no se aprecia un cambio de estructura cristalina y no es una forma alotrópica (sigue siendo una estructura BCC –cúbica centrada en el cuerpo- correspondiente al hierro alfa), es importante destacar que a partir de los 768 ºC, punto denominado Temperatura de Curie, el hierro pierde sus propiedades magnéticas (este proceso es reversible volviendo a enfriar a temperaturas por debajo de Curie).

      La última variedad del hierro es el hierro alfa (Fe α), que se da en temperaturas inferiores a los 768 ºC. Esta última forma alotrópica se caracteriza por una estructura cristalina centrada en el cuerpo (BCC) con una longitud de arista de 0.286 nanómetros.

20150926_200811-1      Estas transformaciones alotrópicas van asociadas a variaciones de volumen, tal y como se muestra en la gráfica. Se podría deducir que un incremento de temperatura produciría un aumento de volumen del hierro. En efecto, debido a una misma ley de dilatación, se produce el aumento de volumen en el caso de Fe α y Fe δ. Sin embargo, observamos como a 900 ºC se produce una repentina contracción volumétrica y a 1400 ºC se produce una expansión volumétrica. Estas discontinuidades pueden explicarse mediante los cambios alotrópicos (de α a γ y de γ a δ), ya que los factores de empaquetamiento atómico de las estructuras cristalinas asociadas a las formas alotrópicas del hierro son distintos. Así, tenemos que:

  • El hierro alfa presenta una estructura BCC con un factor de empaquetamiento igual a 0.68. Esto quiere decir que tiene el 68% del volumen total de la celda unitaria ocupada por átomos de hierro.
  • El hierro gamma presenta una estructura FCC cuyo factor de empaquetamiento es el de máxima compacidad (0.74). Es decir, el 74% del volumen total está ocupado por átomos de hierro.
  • Por último, el hierro delta presenta de nuevo una estructura BCC con un factor de empaquetamiento de 0.68.

      Podemos concluir, pues, que el hierro gamma es más denso que el hierro alfa y el hierro delta (para una misma cantidad de volumen, habrá más masa de Fe).

      Esto explica los cambios volumétricos definidos anteriormente:

  • Si tenemos una cantidad de hierro alfa (de masa invariable), al promocionar a hierro gamma, como la densidad de éste es mayor, el volumen ha de ser menor para mantener la proporción.
  • Al contrario sucede en el paso de hierro gamma a hierro delta: como la densidad del hierro delta es menor, el hierro gamma tendrá que expandirse volumétricamente para mantener la proporción.

Fuentes: 
- Ciencia de materiales. Teoría-Ensayos-Tratamientos – P. Coca & J. Rosique – PIRÁMIDE
- Introducción al conocimiento de materiales – S. Barroso & J. Ibáñez - UNED