Estación meteorológica

Proyecto en el que a través de un barómetro y un termómetro se puede realizar una predicción del tiempo.

Arduino y Nokia 5110

Mediante un arduino y una pantalla de un Nokia 5110, se consigue crear cosas muy curiosas.

Tipos de Arduinos

Información acerca de los distintos Arduinos que podemos encontrar en el mercado.

Definiciones y Conceptos

Aquí se pueden aprender conceptos básicos sobre la plataforma Arduino.

Dónde adquirir productos (Proximamente)

En esta sección se podrá obtener información de las distintas páginas donde se puede comprar hardware.

sábado, 21 de diciembre de 2013

Arduino Robot, Robótica al alcance de tu mano

Arduino Robot


Overview


Hoy presentamos el Arduino Robot, este modelo de Arduino presenta dos procesadores y dispone de un Controlador para los Motores y otro para los Sensores por lo que es de suma facilidad poder controlarlos, gestionarlos y leer datos de ellos. Dispone de dos placas de Arduino (una por cada cara) y ambas son programables bajo el IDE que nos proporciona.

Ambas placas dispoenen de un microcontrolador basado en ATmega32u4, y su progrmación es muy similar a la de Arduino Leonardo. 

Como siempre, con Arduino tenemos una comunidad inmensa de desarrolladores y todo es Open-Source por lo que tenemos acceso a todos los tutoriales o documentación necesaria. Para más información, librerías y guía de comienzo pueden visitar esta página.

Resumen de componentes




Esta placa nos proporciona todo lo necesario para poder hacer un proyecto de robótica y todo totalmente integrado en un solo componente. Está equipada con un microcontrolador ATmega32u4 alimentada con 5V y 40mA. Dispone de 5 pines digitales de entrada / salida, 6 pines PWM y entradas analógicas multiplexadas y no multiplexadas.

Dispone de una memoria flash de 32KB de los cuales 4KB están dedicados al bootloader, una SRAM de 2.5KB y dos EEPROM (interna de 1KB y externa de 512Kbit en el I2C). Dispone de un Keypad de 5 teclas, una velocidad de reloj de 16MHz y un LCD de color bajo comunicación SPI. Por último, cabe destacar que tiene un lector de SD en formato FAT16 y un altavoz de 8 Ohm.

Unboxing y Seguidor de líneas



viernes, 18 de octubre de 2013

Arduino meets Android, primer ejemplo

¿Qué nos puede ofrecer Arduino junto con Android?



Una de las principales aportaciones que nos da la integración de Arduino con Android es que podemos conseguir proyectos de domótica muy llamativos a la vez que son de muy bajo coste. Android consigue proporcionar una interfaz gráfica para todas las operaciones que puede realizar Arduino. Por ejemplo, en este tutorial vamos a configurar el color de un led RGB desde una aplicación. Toda la comunicación se hará a través de Bluetooth utilizando una librería llamada Amarino. Nos ponemos manos a la obra.

¿Qué necesitamos?


  • Módulo de Bluettoth JY-MCU, utiliza una comunicación serie con Arduino y es por esto por lo que su pin TX se conecta al RX de Arduino y viceversa.
  • Led RGB, que nos servirá para poder representar los colores que se muestran en el seekbar de la aplicación de Android.
  • Resistencias de 330 Ohm para los pines del led RGB.

¿Cómo conectarlos?




El módulo de Bluetooth JY-MCU tiene que estar conectado de esta forma:
  • RX: conectado al pin 1 de Arduino (TX)
  • TX: conectado al pin 0 de Arduino (RX)
  • GND: conectado directamente a GND
  • VCC: conectado directamente a 5V

El Led RGB de esta forma:

  • Pin Red: conectado a una resistencia de 330 Ohm y luego al pin 11
  • Pin VCC: conectado directamente a 5V
  • Pin Blueconectado a una resistencia de 330 Ohm y luego al pin 10
  • Pin Greenconectado a una resistencia de 330 Ohm y luego al pin 9

Vídeo




¿Y nuestro código?


Android

Primero tendremos que agregar este jar (AmarinoLibrary_v0_55.jar) a la carpeta "libs" de nuestro proyecto, puede ser que esta carpeta no esté por lo que tendremos que crearla.

El código de Android se basa en el proyecto que podemos encontrar en este enlace. Ese ejemplo tiene un pequeño bug que se soluciona sustituyendo esta línea de código de la clase MultiColorLamp:
colorIndicator.setBackgroundColor(Color.rgb(redgreenblue));
Por esta otra:
colorIndicator.setBackgroundColor(Color.rgb(255 - red, 255 - green, 255 - blue));
Además para hacer que funcione correctamente hay que setear el DEVICE_ADDRESS con el de nuestro módulo.
private static final String DEVICE_ADDRESS = "XX:XX:XX:XX:XX:XX";
Por último también tendremos que instalar estas dos aplicaciones:

Arduino

Este tutorial se basa en el ejemplo que proporciona la librería de MeetAndroid, simplemente vamos a cambiar dos detalles para que funcione correctamente con nuestro módulo. El código es el siguiente:


#include <MeetAndroid.h>

// Declaramos el objeto de MeetAndroid para establecer la comunicación
MeetAndroid meetAndroid;

// Necesitamos 3 pines PWM para controlar los pines del led RGB
int redLed = 11;   
int greenLed = 10;
int blueLed = 9;

void setup()  
{
  // Para nuestro Bluetooth utilizaremos 9600 baudios 
  Serial.begin(9600); 
  
  // Registra las funciones de callback las cuales se llamarán cuando un evento asociado ocurra
  meetAndroid.registerFunction(red, 'o');
  meetAndroid.registerFunction(green, 'p');  
  meetAndroid.registerFunction(blue, 'q'); 

  // Seteamos todos los pines como salidas
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(blueLed, OUTPUT);
  
  // Seteamos todos los pines en HIGH para ver si funcionan correctamente
  digitalWrite(redLed, HIGH);
  digitalWrite(greenLed, HIGH);
  digitalWrite(blueLed, HIGH);

}

void loop()
{
  meetAndroid.receive();  // Necesitamos mantenerlo en loop para recibir eventos
}

/*
 * Cuando se modifique el seekbar de color rojo cambiará el valor del pin rojo
 */
void red(byte flag, byte numOfValues)
{
  analogWrite(redLed, meetAndroid.getInt());
}

/*
 * Cuando se modifique el seekbar de color verde cambiará el valor del pin verde
 */
void green(byte flag, byte numOfValues)
{
  analogWrite(greenLed, meetAndroid.getInt());
}

/*
 * Cuando se modifique el seekbar de color azul cambiará el valor del pin azul
 */
void blue(byte flag, byte numOfValues)
{
  analogWrite(blueLed, meetAndroid.getInt());
}

miércoles, 16 de octubre de 2013

Intel y Arduino forman: Intel Galileo

¿Qué es Intel Galileo?




Es una placa basada en un microcontrolador de Intel, concretamente en el Intel® Quark SoC X1000, con una CPU de 32 bits de un solo núcleo, con un solo hilo y set de instrucciones Pentium que puede llegar hasta los 400 MHz. Su datasheet podemos encontrarlo en el siguiente enlace. Es la primera placa que se diseña bajo la arquitectura de Intel pero dando soporte en cuanto a hardware como software para shields de Arduino Uno R3. La localización de los pines son iguales que en el Arduino Uno R3 por lo que tendremos una placa con un sistema totalmente distinto pero que a la vez nos resultará tan familiar como nuestro típico Arduino.

Con este tipo de placas podemos conseguir desarrollar productos de domótica a bajo coste ya que nos daría toda la potencia de computación de un PC con un consumo mínimo.
 

Especificaciones de Hardware, puertos y pines





En principio se puede conectar mediante un adaptador de 5V que transforma de AC a DC, pero también se puede conectar con un cable micro USB como el caso de Raspberry Pi.

Un detalle a destacar es que las shields de Arduino UNO son compatibles con las de Intel Galileo ya que están diseñadas para soportar 3,3V o 5V. 

A grandes rasgos, en esta placa nos podemos encontrar:

  • Un bus I2C, TWI: Los pines de SDA y SCL que están cerca del pin de AREF.
  • 14 pines digitales de entrada/salida, de los cuales 6 pueden ser usados como salidas PWM. Es importante destacar que estos pines operan entre 3,3 y 5 V con un máximo de 10 mA como salida o recibir como máximo unos 25mA y tienen una resistencia en pull-up (desconectada por defecto) de 5,6k a 10kOhms.
  • 6 pines analógicos que utilizan un conversor analógico/digital, cada pin tiene 12 bits de resolución (0 - 4095). Por defecto las medidas son desde 0 a 5V.
  • UART (puerto serie): A través de los pines 0 (RX) y 1 (TX).
  • ICSP (SPI): Un zócalo de 6 pines para ICSP (In-Circuit Serial Programming), localizado a propósito para conectar shields ya existentes. Estos pines soportan comunicación SPI usando la librería de SPI.
  • VINLa tensión de entrada a la tarjeta Galileo cuando se utiliza una fuente de alimentación externa (por oposición a 5V de la fuente de alimentación regulada que está conectada a la toma de alimentación). Se puede suministrar tensión a través de este pin.
Advertencia: El voltaje aplicado a este pin debe ser una alimentación de 5V regulada de lo contrario podría dañar la placa o provocar un funcionamiento incorrecto.
  • Pin de 5V: Este pin proporciona 5V desde una fuente exterior o desde el conector USB. La máxima intensidad es de 800mA
  • Pin de 3.3V: Un pin que proporciona 3.3V generados por un regulador en la placa. La máxima intensidad es de 800mA.
  • GND: Pin de tierra ó a 0V.
  • IOREFsirve para que la placa reconozca el tipo de alimentación que requieren las shieds (3.3v ó 5v)
  • Botón o pin de RESET: Resetea la placa para la carga de un sketch o cualquier tipo de problema.
  • El AREF no se usa en Galileo. La proporción de una referencia externa de voltage para las entradas analógicas no está soportado. Por tanto la función de analogReference() carece de sentido.

Características soportadas por la arquitectura Intel


  • Set de instrucciones de Intel Pentium compatibles con la arquitectura ISA que puede llegar hasta los 400MHz y con 16KB para un nivel de caché.
    • 512 KBytes de SRAM
    • Programación muy simple: Un único hilo, un único núcleo, velocidad constante
    • Integrado un RTC (Real Time Clock)
  • Conector Ethernet 10/100
  • Un slot de Full PCI Express con PCIe 2.0 con estas características:
    • Trabaja con tarjetas mini PCIe, opcionalmente con un conversor.
    • Proporciona un puerto USB 2.0 en el conector mini-PCIe.
  • Un conector USB 2.0, usado para programar la placa
  • Una socket de 10 pines JTAG Standard para poder hacer debug.
  • Un botón de re-arranque.
  • Un botón de reset para resetear cualquier sketch cargado en la placa.
  • Opciones de almacenamiento:
    • 8MB SPI Flash cuyo principal propósito es el almacenamiento del firmware (o bootloader) y el último sketch. Entre 256KB y 512KB son dedicados para el almacenamiento del sketch. La descarga se hará directamente desde el PC en el que se esté desarrollando.
    • 512KB para una SRAM embebida, habilitada por el firmware por defecto
    • 256MB de DRAM, también habilitada por defecto.
    • Un slot para SD de hasta 32 GB de almacenamiento
    • El almacenamiento a través de USB es compatible con USB 2.0

¿Cómo podemos programarla?


Puede ser programada con el Software de Arduino. Cuando estés preparado para subir tu "sketch" a la placa solo tendrás que seleccionar el tipo de dispositivo que en este caso será "Intel Galileo". Para más detalles sería aconsejable ver la guía de inicio. En ocasiones puede ser que se precise del pulsado del botón de reset antes de la subida del código.


¿Cuando estará disponible?


Estará disponible comercialmente a partir de noviembre, y mientras Intel distribuirá 50.000 Galileos entre 1.000 universidades de todo el mundo durante los próximos 18 meses. De esta forma intentarán extender su uso y convertirse en un nuevo estándar. Su precio es una incógnita todavía.

domingo, 13 de octubre de 2013

Detector de presencia con Ultrasonidos y buzzer

Introducción

En este tutorial vamos a medir la distancia de objetos mediante ultrasonido. Además dicha distancia se mostrará en una pantalla LCD de un Nokia 5110 y cuando sea menor de 10 cm se activará un buzzer como alarma que nos indicará que se ha vulnerado la distancia mínima.

¿Qué necesitamos?

  • LCD de Nokia 5110
  • Buzzer
  • Un Módulo sensor ultrasonidos HC-RS04, se puede encontrar en Dealextreme por unos pocos dólares.
  • Arduino UNO o similar

Librerías necesarias

  • HC-SR04, esta librería ya nos proporciona todo lo necesario para medir distancias y hasta incluso el tiempo que tarda el sonido en ir y volver.
  • Adafruit para LCD de Nokia 5110 y Adafruit GFX, es posible que si utilizáis el IDE 1.0.5 de Arduino la carga de la librería os de problemas. Para solucionarlo simplemente tenemos que borrar la librería de Robot_Control, si tenéis algún tipo de problemas no dudéis en comentarlo en el post.

Montaje


El montaje de la parte de la pantalla LCD lo podemos encontrar en esta entrada del blog: Empezando con Nokia 5110 y Arduino, recordad que la pantalla se alimenta con 3,3V NO con 5V.

El sensor de ultrasonidos solo tiene 4 pines:
  • VCC: colocado directamente a 5V
  • Trig: colocado directamente al pin 10 de Arduino.
  • Echo: colocado directamente en el pin 13.
  • GND: directamente a GND proporcionado por Arduino.
El buzzer:
  • GND: directamente a GND de Arduino.
  • Pin positivo: colocado en el pin 9 con una resistencia de 330 ohm.


Código

Cabecera:

Se incluyen las librerías a utilizar y se definen tanto el display LCD como el sensor de ultra sonido.
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Ultrasonic.h> 
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 3 - LCD reset (RST)
// pin 4 - LCD chip select (CS)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 3, 4);
Ultrasonic ultrasonic(10,13); // (Trig PIN,Echo PIN)
int BUZZER = 9; 

Setup:

Se establece la comunicación, inicialización y se establece el contraste del LCD.
void setup()   {
  Serial.begin(9600);
  display.begin();
  // Inicializacion completada
  // Cambia el contraste para una mejor visualizacion
  display.setContrast(50);
  display.display(); // Muestra el splashscreen de Adafruit
  delay(2000);
  display.clearDisplay();   // Limpia la pantalla y el buffer de comunicaci´n

  pinMode(BUZZER, OUTPUT); // Se establece como salida el pin 9 para el buzzer

  //Sonidos de configuracion del buzzer
  beep(20);
  delay(1000);
}

Funciones de escritura y emisión de sonidos:

  • La función beep(int frec) recibe como parámetro la frecuencia del sonido y simplemente lo escribe en el pin 9 que está conectado al pin positivo del buzzer.
  • La función write(int value) recibe como parámetro el valor en cm que se mostrará por el LCD.
void beep(int frec){

analogWrite(BUZZER, frec);      // Permite cualquier valor entre 0 y 255, donde 0 indica la ausencia de sonido
}
void write(int value) {

  display.clearDisplay();
  String valueString = String(value);
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0);

  if(value < 10) {
 
    display.println("Dist.: " + valueString + "  cm");
    display.println("Peligro!");
    display.display();
    beep(20);
  } else {
 
    display.println("Dist.: " + valueString + " cm");
    display.display();
    beep(0);
  }

Vídeo



sábado, 12 de octubre de 2013

Definición y usos de Raspberry Pi

¿Qué es Raspberry Pi?

Raspberry Pi es un ordenador de placa reducida (SBC) de bajo coste desarrollado en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas.



Un poco de Historia

En 2006 ya existían diseños de esta pequeña placa y portaba un microcontrolador Atmel, concretamente el ATMega644 (familia de microcontroladores que posee Arduino). Estos primeros esquemas están totalmente abiertos y se pueden acceder a ellos sin ningún tipo de problemas.

En mayo de 2009, la Fundación Raspberry Pi fue fundada en CaldecoteSouth CambridgeshireReino Unido como una asociación caritativa que es regulada por la Comisión de Caridad de Inglaterra y Gales. Hay que destacar que esta fundación es totalmente sin ánimo de lucro, y citaré una entrada de su FAQ que habla sobre esto para que veáis hasta donde llega esta comunidad.

Can I buy shares in the Raspberry Pi Foundation?We’re a charity, so you can’t buy shares in the company. If you want to support us, we’d love you to buy one.

Especificaciones de Hardware


  • CPUARM1176JZF-S a 700 MHz (familia ARM11) perteneciente a la versión 6, por lo que puede soportar RISC OS
  • GPU: Broadcom VideoCore IV, es capaz de reproducir vídeos en 1080p a 30fps. Hay reviews sobre esta placa que dicen que hasta puede asimilarse a unos gráficos de la primera XBOX
  • RAM: Tiene una versión de 256MB (modelo A) y una de 512MB (modelo B). Comparte una parte de la memoria con la GPU
  • Salidas de vídeo, HDMI y audio
  • 1/2 Puertos USB dependiendo el modelo
  • Puerto Ethernet (sólo el modelo B)
  • Consumo energético 500 mA y 2,5W en su modelo A y 700mA y 3,5W en el modelo B
  • Alimentación de 5V por el puerto micro USB



Sistemas Operativos Soportados


  • Android, testeada hasta la versión 4.0
  • Arch Linux ARM
  • Debian Whezzy Soft-Float, versión de Debian sin soporte para coma flotante por hardware
  • Firefox OS
  • Gentoo Linux
  • Google Chromium OS
  • Kali Linux

  • Open webOS

  • PiBang Linux , distribución Linux derivada de Raspbian con diferente escritorio y aplicaciones
  • Pidora, versión Fedora Remix optimizada
  • QtonPi, distribución linux con un framework de aplicaciones multiplataforma basado en Qt framework
  • Raspbian, versión de Debian Wheezy para ARMv6 con soporte para coma flotante por hardware
  • Slackware ARM, también conocida como ARMedslack
  • Raspbmc (Media Center)

¿Qué podemos hacer con Raspberry Pi?

Android y XBMC

Lo más típico que podemos hacer con nuestro pequeño ordenador es crear un Media Center con OpenELEC o con Raspbmc con el fin de poder ver nuestras películas desde cualquier sitio y sin la necesidad de tener conectado toda una torre a nuestro TV. Un ejemplo de este uso es el siguiente vídeo:




Raspberry Pi y Ambilight

Otro de los usos que está tomando fuerza es la posibilidad de crear un sistema de luces Ambilight de bajo coste y en sencillos pasos, no tenemos más que crear una malla de LED's conectados a Raspberry Pi, ponerlos detrás de nuestro TV y ya ella se puede encargar del resto. Un ejemplo de este uso es el siguiente vídeo. Si queremos realizar este montaje podemos seguir los pasos proporcionados por los proyectos de PiBob o AmbiPi.


Domótica y Raspberry Pi

Además de todo esto también podemos crear nuestro pequeño servidor para gestionar por ejemplo las luces de casa. Yo recomiendo utilizar una Raspberry Pi y un Arduino y tratar siempre a Arduino como un "Actuador", ya que será el encargado de la parte más electrónica y utilizar a Raspberry como "Servidor" o cabeza pensante. Un ejemplo de esto podemos verlo en el siguiente vídeo basado en PiHome:


¿Dónde podemos comprarla?

Hay distintas webs de venta de componenetes que permiten la distribución de Raspberry Pi, algunas de estas webs son RS Componentes, Farnel, Electan, Cooking Hacks, etc.

El precio puede oscilar entre unos 35$ el modeelo B y 25 $ el modelo A. Además se venden muchos periféricos como GPS, Bluetooth, WiFi, cámaras capaces de grabar en Full HD a 30 fps y hacer fotos con una resolución de 2592x1944, etc.


domingo, 5 de mayo de 2013

Comunicación entre Arduinos mediante XBEE

Montaje

El módulo XBee de MaxStream prevé 2 formas amigables de comunicación: Transmisión
serial transparente (modo AT) y el modo API que provee muchas ventajas. Estos módulos
pueden ser configurados desde el PC utilizando el programa X-CTU o bien desde tu
microcontrolador. Los Xbee pueden comunicarse en arquitecturas punto a punto, punto a
multi-punto o en una red mesh.

Los módulos Xbee son económicos, poderosos y fáciles de utilizar. Algunas sus principales
características son:
  • Buen Alcance: hasta 300ft (100 mts) en línea vista para los módulos Xbee y hasta 1 milla (1.6 Km) para los módulos Xbee Pro.
  • 9 entradas/salidas con entradas analógicas y digitales.
  • Bajo consumo <50mA cuando están en funcionamiento y <10uA cuando están en modo sleep.
  • Interfaz serial.
  • 65,000 direcciones para cada uno de los 16 canales disponibles. Se pueden tener muchos de estos dispositivos en una misma red.
  • Fáciles de integrar.
Los módulos XBee son módulos de radio frecuencia que trabajan en la banda de 2.4
GHzcon protocolo de comunicación 802.15.4 fabricados por Maxstream.

Los módulos tienen 6 convertidores análogo-digital y 8 entradas digitales además de Rx
y Tx. Trabajan a 2.4 GHz y generan una red propia a la que puedes conectarte o
desconectarte. Entre otras características a tener en cuenta hay que decir que son
módulos microprocesados con lo cual tienes solucionados los problemas de fallo de
trama, ruidos, etc. Los módulos, se comunican con un dispositivo RS232 a niveles TTLcon lo
cual la comunicación necesita un adaptador intermedio en el caso de un PC, pero
pueden conectarse directamente a una placa de desarrollo como es Arduino.
Los módulos ofrecen una velocidad de comunicación desde 1200 hasta 115.200
baudios pasando por todos los valores convencionales, también disponen de varias I/O
que pueden ser configuradas para diferentes funciones.
Una vez explicado lo que es cada módulo lo siguiente será acoplarlo a nuestro Arduino
y empezar a configurarlos.

¿Qué es X-CTU?

En la imagen se puede observar la ventana del software X-CTU, con el cual se
programan los módulos XBee y XBee PRO de la manera más fácil, basta con hacer click
sobre cualquiera de los parámetros para introducir el valor deseado.



Para una mayor explicación de X-CTU, seguir el tutorial de Álvaro Neira Ayuso:

Comandos AT y Cómo configurar

A pesar de tener la comodidad del programa X-CTU, hemos decidido programar los
nodos mediante comandos AT.
Hay múltiples parámetros que necesitan ser configurados correctamente para que los
módulos puedan comunicarse entre ellos. Necesitan estar en la misma red (ID), mismo
canal (CH) y conocer la dirección destino de cada módulo (DH y DL). Esto último puede
aparecer de varias formas:
  • Si el DH de un módulo es 0 y su DL es menor de 0xFFF, los datos transmitidos por ese módulo serán recibidos por cualquier módulo cuyos 16 bits de dirección de lparámetro MY sea igual al DL.
  • Si el DH es 0 y el DL es igual a 0xFFFF, las transmisiones del módulo serán recibidas por todos los módulos.
  • Si el DH no es cero o el DL es mayor de 0xFFFF, la transmisión solo será recibida por el módulo cuyo número de serie sea igual a la dirección de destino del módulo transmisor. Por ejemplo. cuyos SH es igual al DH del módulo transmisor y cuyo SL sea igual a su DL).
Todas estas correspondencias sólo funcionaran si los nodos están en la misma red y en el
mismo canal.

Aquí hay algunos de los parámetros más útiles para configurar un módulo. Siempre
antes de cada comando hay que escribir AT antes de enviarlo. Por ejemplo si vamos a
cambiar el ID de un nodo sería:

+++ (Y esperar a que devuelva OK), y luego ATID3332 (volver a esperar a que
devuelva OK, y se habrá cambiado el ID de nuestro módulo.
“0x” indica que los valores son hexadecimales, pero a la hora de indicarlos en los
parámetros no hay que ponerlos.

Comando
Descripción
Valores válidos
Valor por defecto
ID
El ID de la red del módulo Xbee.
0 - 0xFFFF
3332
CH
El canal del módulo Xbee.
0x0B - 0x1A
0X0C
SH y SL
El número serie del módulo Xbee (SH devuelve los 32 bits superiores, SL los 32 inferiores). De solo-lectura
0 - 0xFFFFFFFF 
(para ambos SH y SL)
diferente para cada módulo
MY
La dirección de 16-bit del módulo.
0 - 0xFFFF
0
DH y DL
La dirección de destino para las comunicaciones inalámbricas (DH son los 32 bits superiores, DL son los 32 inferiores).
0 - 0xFFFFFFFF 
(para ambos DH y DL)
0 (para ambos DH y DL)
BD
La velocidad de transmisión usada para las comunicaciones con el Arduino o el ordenador.
0 (1200 bps) 
1 (2400 bps) 
2 (4800 bps) 
3 (9600 bps) 
4 (19200 bps) 
5 (38400 bps) 
6 (57600 bps) 
7 (115200 bps)
3 (9600 bps)


Otros comandos útiles son:

Comando
Descripción
RE
Restaura los valores por defecto (notar que como el parámetro cambia, esto no es permanente a no ser que está seguido por el comando WR).
WR
Escribe un nuevo valor para un parámetro configurado a la memoria no volátil (larga-duración). De otro modo, solo durarán hasta que el módulo sea desconectado de la corriente.
CN
Sale del modo de comandos. (Si no mandas ningún comando a un módulo durante unos pocos segundos, el modo de comandos saldrá tras un tiempo incluso sin el comando CN).

Configuración de cada nodo

Para nuestro desarrollo hemos tenido que configurar únicamente dos nodos. Para ellos hemos introducido los siguientes comandos a través del puerto serie con nuestro Arduino SIN microcontrolador.

Nodo 1:
ATID1111 para configurar que su red ahora será la 1111, y éste devolverá OK.
ATMY1234, cambiará su identificador a 1234 y devolverá OK.
ATDH0 y ATDLFFFF, configurará qué nodo es el destinatario de su información y en este caso será toda la red, ya que el modo es broadcast.
ATWR, para guardar los cambios realizados.
ATCE1, para poner el nodo en modo Emisor.
ATCN para finalizar la configuración.

Nodo 2:
ATID1111 para configurar que su red ahora será la 1111, y éste devolverá OK.
ATMY4567, cambiará su identificador a 4567 y devolverá OK.
ATDH0 y ATDLFFFF, configurará qué nodo es el destinatario de su información y en este caso será toda la red, ya que el modo es broadcast.
ATCE0, el nodo se configura en modo receptor aunque también puede mandar datos.
ATWR, para guardar los cambios realizados.
ATCN para finalizar la configuración.

Todo esto creará este un sistema de comunicación entre los arduinos pudiendo así transmitirse los datos desde un nodo a otro.