This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

jueves, 21 de febrero de 2013

Comunicación serie con Arduino - Parte 1


Uno de los aspectos más interesantes en Arduino es lograr que esta placa se comunique con el exterior y pueda así intercambiar información. Una Arduino se comunica con otra Arduino o similar y también con cualquier tipo de computadora.

¿Cuál es el potencial de esta facilidad?: que Arduino, utilizando un programa específico, pueda recibir información del entorno que lo rodea a partir de sensores (luz, temperatura, presión, humedad, velocidad, etc.), pulsadores, detectores de presencia, interruptores entre otros. Luego, esta información se transmite a la PC donde con su propio software es capaz de manipularla, registrarla, representarla gráficamente, imprimirla y, en general realizar cualquier tipo de procesamiento sobre ella.

En  sentido inverso, la PC puede tomar decisiones en función de la información que recibe desde la Arduino, procesarla y responder con diferentes órdenes hacia la placa Arduino de modo que esta pueda activar/desactivar artefactos de iluminación, motores, un led, un relé, etc.

La Comunicación serie

La esencia de la comunicación entre una placa Arduino y el exterior es la transferencia de datos en la forma de dígitos binarios o “bits” (“0” o “1”). Básicamente, estos bits pueden transmitirse uno a continuación del otro (comunicación serie) o todos en el mismo momento (comunicación en paralelo). Arduino utiliza comunicación en serie.

La comunicación en serie necesita solamente de dos líneas de comunicación (o dos “hilos”) indicados como “Tx” para la transmisión de datos y “Rx” para la recepción de los mismos. En este esquema, Arduino transmite un dato por el hilo Tx que se conecta con la línea Rx de la PC por donde son recibidos por esta. En sentido inverso, Tx desde la PC envía los datos  a Rx de la Arduino con lo que la comunicación bidireccional es posible.


Si bien es posible transmitir cualquier cantidad de bits, se ha normalizado su transmisión a grupos de 8 bits o “1 Byte” y van circulando siempre desde el Tx de un dispositivo hacia Rx del otro y viceversa desde el Tx que los recibe hacia el Rx que originalmente los enviara tal como se observa en la figura anterior.

La velocidad de transferencia de los datos es un elemento sumamente importante y se mide en cantidad de bits transmitidos en 1 segundo. Por ejemplo, una velocidad de 1 bit en un segundo recibe el nombre de “1 Baudio”. Entonces, 8 bits (1 Byte) tardará 8 segundos en ser transmitido.

Arduino permite comunicaciones desde los 300 baudios hasta los 115.000 baudios, o 115.000 bits por segundo. En las experiencias propuestas se utilizará una velocidad de 9600 baudios, por considerarla fiable y de un valor compatible con la mayoría de los dispositivos con los cuales se podrá comunicar Arduino, como por ejemplo una PC.




Un aspecto importante en toda comunicación de datos desde un dispositivo a otro a través de un hilo es la necesidad de recibir correctamente los datos en el otro extremo. Para pequeñas cantidades de datos como las que estamos considerando esta técnica es muy útil y requiere mantener un alto grado de sincronización entre ambos extremos. Esto significa que el receptor debe conocer la velocidad a la que está recibiendo los datos de manera de poder recuperar cada bit correctamente y sin errores.

Esta técnica se conoce como transmisión asíncrona y funciona adecuadamente para cantidades de datos a transmitir que no sean excesivamente grandes ya que existe el peligro de perder la sincronización entre Tx y Rx.

Arduino transmite y recibe los datos a través del puerto USB (Universal Serial Bus), también un tipo de puerto serie. Por otra parte, Arduino Uno proporciona dos salidas digitales, “D0” y “D1” como líneas de Rx y Tx respectivamente por lo cual es posible conectar esta placa Arduino con otra placa Arduino o con cualquier otro microcontrolador que admita la comunicación serie y se adapte al protocolo “TTL”. 

Así, por ejemplo, se podrían controlar periféricos desde estas dos líneas digitales de entrada/salida. Internamente, parte de la electrónica presente en la placa Arduino Uno adapta estas señales a la especificación USB 2.0 de modo de lograr una comunicación con la PC a través de estos puertos.

En próximas entregas profundizaremos estos conceptos.














lunes, 7 de enero de 2013

Fritzing. Ecosistema Open Source

Fritzing es una iniciativa de hardware open-source para soporte de diseñadores, artistas, investigadores y hobistas que trabajan creativamente con electrónica interactiva.
 
Fritzing ha creado una herramienta de software, un website comunitario y servicios según el espíritu de Processing y Arduino, fomentando un ecosistema que permite a los usuarios documentar sus prototipos, compartirlos con otros, enseñar electrónica en un aula y diseñar y fabricar pcbs profesionales.
 
Nos referimos a él ya que es un recurso muy utilizado en este Blog y que podrán observar en entradas anteriores.
 
Para descargar la última versión (0.7.11b del 03/01/2013) e instrucciones de instalación:
 
 
Una introducción a Fritzing en YouTube:
 
 
 
 

domingo, 6 de enero de 2013

Séptimo Congreso Argentino de Tecnología Aeroespacial. Mayo 2013. Mendoza.

La Asociación Argentina de Tecnología Espacial (AATE) se encuentra organizando en forma conjunta con la Universidad Nacional de Cuyo, con el auspicio del Consejo Profesional de Ingeniería Aeronáutica y Espacial, el Séptimo Congreso Argentino de Tecnología Espacial. Este evento se realizará en el campus de la Universidad Nacional de Cuyo, en la Ciudad de Mendoza, capital de la provincia de Mendoza, y tendrá por objeto reunir a los profesionales argentinos y de otras partes del mundo que trabajan en el sector espacial, para intercambiar experiencias de los distintos proyectos que se realizan, como profundizar acuerdos de intercambios y coordinación de tareas para los trabajos en conjunto que llevan a cabo diferentes entes, organismos e instituciones.

Más información en:



Haciendo uso de los componentes electrónicos de una placa madre de PC

Una nota de computación y electrónica muy interesante...


Entre los montones de aparatos obsoletos o estropeados que se descartan cada día, figuran un buen número de ordenadores PC, cuyas cajas, placas y fuentes de alimentación acaban normalmente en los puntos verdes, en contenedores de residuos, o cuando no, de forma incívica, en cualquier rincón de los caminos poco transitados.

Quienes tenemos la electrónica por afición, pero no nos sobra el dinero para adquirir componentes, podemos aprovecharnos de esta situación, y pensar en estos aparatos ya sin uso como fuentes selectivas para ciertos componentes.

Para leer la nota:



domingo, 23 de diciembre de 2012

Computación Gráfica con aplicación en Computación Física

Proyecto: Interfaz gráfica con círculos

1-Breve descripción


En entradas anteriores hemos analizado el funcionamiento tanto de Arduino y su entorno IDE como de Processing. En esta oportunidad se muestran los resultados de un proyecto donde se integran Arduino y Processing a los efectos de desarrollar una interfaz gráfica.

El proyecto utiliza una Arduino UNO, una fotoresistencia (LDR), dos potenciómetros, una resistencia, Processing y utiliza la comunicación serie básica entre Arduino y la computadora.

Básicamente puede dibujar, y observar el resultado en el monitor de la computadora, controlando los dos potenciómetros. El LDR determina cuan oscuro será dibujado el círculo.

2-Componentes

• Fotoresistencia (LDR).
• Resistencia 10 KΩ.
• Potenciómetro 100 KΩ (2).
• Arduino UNO.
• Cable USB.
• Breadboard.
• Alambres de conexión.
• IDE Arduino.
• Processing.

3-Pasos

Paso 1: configurar el hardware


• Ubicar los potenciómetros próximos uno al otro. Actuarán como control horizontal y vertical de la interfaz gráfica.

• Uno de sus pines extremos se conectará a la fuente de +5V, el otro a tierra y el pin medio a una entrada analógica de la placa Arduino UNO (A0 o A1).
• LDR: configurar un divisor de tensión utilizando la LDR y la resistencia de 10 KΩ. El punto medio del divisor de tensión se conectará a la entrada analógica A2.


Esquema realizado con Fritzing (http://www.fritzing.org)


Paso 2: subir el código Arduino (sketch)


• Descargar e instalar el IDE Arduino desde el sitio http://www.arduino.com, la versión 1.0.2 en este caso.

• Conectar la placa Arduino UNO a la computadora mediante el cable USB.
• Abrir el IDE Arduino.
• Verificar/Compilar el código y subirlo a la placa Arduino UNO.


Paso 3: Processing


• Descargar e instalar Processing desde el sitio http://www.processing.org, la versión 1.5.1 en este caso.

• Abrir Processing y subir el código en Processing.
• Click sobre el botón “Run” y observe el funcionamiento de la interfaz gráfica.

Precaución: tanto el puerto que utiliza Arduino como el que utiliza Processing debe ser el mismo.

4-Resultados obtenidos



5-Registro fotográfico



Imágen N° 1


Imágen N° 2

Computación Física. Arduino


La base de la computación física es hacer servir herramientas y tecnologías conceptualmente simples, para diseñar ingenios que actúan directamente sobre el mundo físico.

Involucra el diseño de objetos interactivos que pueden comunicarse con humanos utilizando sensores y actuadores controlados mediante un comportamiento implementado por un software que corre dentro de un microcontrolador.

1-Computación Física con Arduino

Arduino es una plataforma de computación física open source basada en una placa de I/O y un ambiente de desarrollo que implementa el lenguaje Processing.

Puede ser usado para desarrollar objetos interactivos en si mismos o puede ser conectada al software de una computadora.

Entre sus características principales se encuentran:

• Multiplataforma (Windows, Macintosh y Linux).
• Basado en el IDE de Processing.
• Programable por medio del puerto USB.
• Tanto el software como el hardware son open-source.
• Hardware barato (U$S 35).
• Existe una comunidad de usuarios a nivel mundial.


La plataforma Arduino consta de dos partes: la tarjeta Arduino, una pieza de hardware donde construir los proyectos; y el entorno de desarrollo (IDE), la pieza de software que corre en una
computadora. Mediante el IDE se crea un pequeño programa o “sketch” que se envía a la placa Arduino y le dice que hacer.

1-1. Hardware Arduino UNO

• Microcontrolador Atmega328 de 8 bits.
• 14 I/O digitales.
• 6 entradas analógicas.
• 6 salidas analógicas.
• Alimentado desde el puerto USB o desde una batería de 9 Vcc.


1-2. Software (IDE)

• Un programa especial que corre en la computadora y permite escribir programas en un lenguaje de programación sencillo y basado en el lenguaje Processing.

• Al presionar “Run”, el código escrito en e IDE se traduce al lenguaje C y compila en un lenguaje comprensible para el microcontrolador.

• El ciclo de programación en Arduino básicamente es el siguiente:

  • Conectar la placa Arduino a la PC mediante el cable USB.
  • Escribir el sketch que dará vida a la placa.
  • Subir el sketch a la placa por medio del cable USB y esperar unos segundos.
  • La tarjeta ejecuta el sketch.
1-3. Sketch ejemplo: encender un LED conectado al pin 13 durante 1 segundo y esperar otro
segundo apagado antes de repetir el ciclo.

int led = 13; //LED conectado a pin 13
void setup() {
pinMode(led, OUTPUT); // inicializa la el pin digital como salida
}
void loop() { // rutina para ejecutar un bucle
digitalWrite(led, HIGH); // enciende el LED  (nivel HIGH)
delay(1000); // espera 1 segundo
digitalWrite(led, LOW); // apaga el lED (nivel LOW)
delay(1000); // espera 1 segundo
}