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.

lunes, 2 de diciembre de 2013

Encendido y apagado de un LED mediante una App propia







sábado, 30 de noviembre de 2013

Integrando tecnologías: Arduino + Bluetooth + Android

En el video observamos el funcionamiento de este artefacto para encender y apagar un LED desde un dispositivo Android. El prototipo pone en relieve el potencial de estas tecnologías. El alcance superó los 50 m.
 

A la izquierda la placa Arduino UNO con el LED a controlar. En el centro el módulo Bluetooth JY-MCU que interconecta la UNO con el dispositivo móvil.

domingo, 11 de agosto de 2013

Colección de E-book disponibles en el sitio de la NASA


NASA's Massive Free E-Book Collection en:

http://history.nasa.gov/series95.html#order

lunes, 5 de agosto de 2013

¿Qué ocurre en Internet durante 60 segundos?

Qmee Online in 60 Seconds Infographic
Online in 60 Seconds [Infographic] is an infographic that was produced by Qmee


domingo, 4 de agosto de 2013

Excelente sitio para aprender y experimentar con Arduino

En http://arduinotronics.blogspot.com.ar/ accedemos a excelentes tutoriales y proyectos basados en Arduino.

miércoles, 24 de julio de 2013

Otro ejemplo de programacion en C++ a un robot Lego NXT


Vamos a crear un programa en C++ para que el LEGO NXT combine varias acciones de detección y movimiento de manera simultánea.

Proponemos el código siguiente:

#include
#include
#include
#include
#include "nxt.h"
//using namespace std;

// Set up the NXT
Connection *connection = new Nxt_network();
Sensor *sensor1 = new Touch(IN_1, connection);
Sensor *sensor2 = new Light(IN_3, connection, LED_ON);
Sensor *sensor3 = new Sound(IN_2, connection, DBA_MODE);
Motor *motorB = new Motor(OUT_B, connection);
Motor *motorC = new Motor(OUT_C, connection);
int main()
{
  try{
    cout << "Try to connect to the NXT" << endl;
    Server_settings settings;
    connection->connect(1000, "127.0.0.1", settings); // Connect to localhost
    cout << "Connected" << endl;
    cout << "Press touch sensor to make motors B and C turn - hit any key to end" << endl;
    while(!_kbhit()){ // Hit a key to end
      if(sensor1->read()){
        motorB->on(-75);
        motorC->on(-75);
      }
 //Sensor de Luz: Lego lee el valor del sensor de luz y, además, enciende y apaga el LED de dicho sensor cada cierto tiempo.     
 while(!_kbhit()){ // Hit a key to end (if not, repeat and repeat next actions)
       sensor2->set(LED_OFF);
       cout << sensor2->print() << endl; // Returns a string with mode dependent sensor value
       cout << sensor2->read() << endl; // Mode dependent value
       Sleep(1000);
       sensor2->set(LED_ON);
       cout << sensor2->print() << endl; // Returns a string with mode dependent sensor value
       cout << sensor2->read() << endl; // Mode dependent value
       Sleep(1000);
     }
 //Sensor de sonido: Lego mide el nivel de sonido del entorno y lo muestra por pantalla.
 while(!_kbhit()){//hit a key to end
       cout << sensor3->print() << endl; //returns a string can be used on all sensor types
       cout << sensor3->read() << endl;
     }
       else{
       motorB->stop();
       motorC->stop();
      }
    }
    connection->disconnect();
  }
  catch (Nxt_exception& e){
    // Some error occurred - print it out
    cout << e.what() << endl;
    cout << "error code: " << e.error_code() << endl;
    cout << "error type: " << e.error_type() << endl;
    cout << e.who() << endl;
    connection->disconnect();
  }
  return 0;
}

Programando el robot NXT en C++


Vamos a crear un programa en C++ para que el LEGO mida la distancia con los objetos que tiene a su alrededor. Esto implica crear un objeto para el sensor de ultrasonidos y que la conexión a crear sea por red, en lugar de Bluetooth.

El código que implementa la solución es el siguiente:

#include
#include
#include
#include
#include "nxt.h"
//using namespace std;

//set up the NXT
Connection *connection = new Nxt_network();
Sensor *sensor1 = new Sonar(IN_2, connection, METRIC);
int main()
{
  try{
    cout << "Try to connect to the NXT" << endl;
    Server_settings settings;
    connection->connect(1000, "127.0.0.1", settings); //connect to localhost
    cout << "Connected" << endl;
    while(!_kbhit()){//hit a key to end
      cout << sensor1->print() << endl; //returns a string can be used on all sensor types
      cout << sensor1->read() << endl;
    }
    connection->disconnect();
  }
  catch (Nxt_exception& e){
    //some error occurred - print it out
    cout << e.what() << endl;
    cout << "error code: " << e.error_code() << endl;
    cout << "error type: " << e.error_type() << endl;
    cout << e.who() << endl;
    connection->disconnect();
  }
  system("pause");
  return 0;
}

Proyecto de robótica NXT con LabView


Deseamos que el robot NXT avance con el 20% de su potencia hasta que detecte un ruido
superior a 50 dBA, entonces, el robot retrocederá con el 100% de potencia.         Cuando el
ruido desaparezca, volverá a avanzar con el 20% de potencia. El programa finaliza cuando
se active el sensor de contacto.
 
La solución propuesta:
 
 

domingo, 24 de marzo de 2013

Entorno de desarrollo integrado o IDE de Arduino


La plataforma Arduino consta de la tarjeta Arduino, una pieza de hardware donde construir los proyectos; y del entorno de desarrollo (IDE), basado en el lenguaje de programación Processing, que se ejecuta en la computadora. Mediante el IDE se crea un pequeño programa o “sketch”, en lenguaje C,  se envía a la placa Arduino y le dice que hacer.

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 placa ejecuta el sketch.


En este ejemplo, un  diodo  led  en el  pin 13 de la  Arduino UNO  enciende y  apaga (Blink) a intervalos  de 1  segundo repetidamente. 


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


Arduino posibilita programación gráfica para aprender a programar sin conocimientos previos. 

El ejemplo anterior, “Blink” de un diodo led utilizando “Scratch” adaptado para Arduino (S4A), se presenta a continuación:



En el sitio oficial de Arduino: http://www.arduino.cc , encontramos información actualizada.












Tarjetas accesorias o Shields para Arduino

Arduino es una plataforma de computación física open source basada en una placa de entrada/salida (E/S) y un ambiente de desarrollo (IDE) que implementa el lenguaje Processing.

Arduino no está limitada a la placa microcontrolada sino que han aparecido diferentes placas electrónicas o “shields” que se acoplan directamente sobre la placa Arduino. 

Dada la disponibilidad para una gran cantidad de aplicaciones, conectando el shield adecuado a la Arduino rápidamente se obtienen aplicaciones funcionando. Incluso podría construir un shied utilizando diseños disponibles en Internet y, también diseñar y construirla en función de los propios intereses y conocimientos.

Algunas de las shields más populares:

·        Motor. Opera motores eléctricos desde una Arduino.
·        Relays. Comanda relés.
·        USB Host. Controla dispositivos mediante USB.
·        Ethernet. Conexión a Internet, con capacidades de servidor Web.
·        WiFi. Conexión WiFi (IEEE 802.11 b/g).
·        GSM. Conectar dispositivos a la la red celular.
·        XBEE. Conectar dispositivos XBee.


Registro fotográfico de Arduinos

Las Arduinos más populares se muestran en los registros fotográficos para un mejor reconocimiento físico.

Arduino UNO
 Arduino MEGA 2650
Arduino DUE

 Arduino LEONARDO



Tabla comparativa de Arduinos

En la Tabla se observan las características de las placas Arduino más populares: 

Característica de Arduino
UNO
Mega 2560
Leonardo
DUE
Tipo de microcontrolador
Atmega 328
Atmega 2560
Atmega 32U4
AT91SAM3X8E
Velocidad de reloj
16 MHz
16 MHz
16 MHz
84 MHz
Pines digitales de E/S
14
54
20
54
Entradas analógicas
6
16
12
12
Salidas analógicas
0
0
0
2 (DAC)
Memoria de programa (Flash)
32 Kb
256 Kb
32 Kb
512 Kb
Memoria de datos (SRAM)
2 Kb
8 Kb
2.5 Kb
96 Kb
Memoria auxiliar (EEPROM)
1 Kb
4 Kb
1 Kb
0 Kb

La Arduino con microcontroladores de 8 bits Atmel es actualmente la más popular. Entre otras, incluye las placas UNO, MEGA 2560 y Leonardo. 

Anteriormente se comercializaron placas  Diecimilia y Duemilanove. La diferencia más importante entre UNO y estas es que Arduino UNO utiliza un tipo diferente de chip USB. Si bien esta modificación no afecta como se utiliza la placa, facilita la instalación del software de Arduino y permite mayores velocidades de comunicación con la computadora. 

Arduino Leonardo se diferencia de sus predecesoras en que utiliza un chip ATmega32U4 que contiene el controlador USB, eliminando la necesidad de un procesador secundario.

Las salidas analógicas presentes en la Arduino DUE, de 32 bits, proporcionan una resolución (4096 niveles) que podrían emplearse para crear una salida de audio.


Estas placas se alimentan a partir de una fuente de 9 Vcc o mediante el puerto USB.


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: