lunes, 28 de noviembre de 2011

Arduino Ethernet shield y TelnetClient

Como primera aplicación con el shield "oficial" de Arduino, voy a comentar uno de los ejemplos básico que el IDE de programación de Arduino te proporciona, es el sketch TelnetClient.
Con este programa podemos acceder al ordenador donde esté alojado el servidor Telnet, crear y modificar sus ficheros. Estoy convencido que se os ocurrirá alguna aplicación en la que esto os resulte útil.
Sin más demora, voy a describir, paso a paso, lo que hay que hacer para probarlo con el sistema operativo Windows.
Básicamente tenemos tres piezas en este juego:
Arduino con el shield de Ethernet
PC al que conectamos el puerto USB de Arduino. Lo llamo PCArduino
PC donde corre el servidor telnet. Lo llamo PCTelnet
No se me ocurre ninguna razón por la que PCArduino pueda ser PCTelnet, pero me parece más divertido sin son distintos, a mí me da una mejor idea de la verdadera función de la aplicación, el control remoto de un PC a través de Ethernet.

Configuración de Arduino

Una vez hayamos conectado el shield Ethernet en Arduino, el puerto USB al PCArduino y arrancado el IDE de programación, debemos seleccionar el sketch TelnetClient:


Tomamos nota del COM al que se conecta Arduino, después necesitaremos esa información para abrir una sesión con hypeterminal.


Modificación sketch

Este sketch consta de tres partes, una primera de inicialización de variables globales, una función de setup, y por último, una función de loop.
Variables globales. En este sketch las variables globales son:
MAC y la IP que le queremos dar a Arduino. En los últimos shields de Ethernet se indica la MAC en una pegatina. En cuanto a la IP, teniendo en cuenta que nos vamos a comunicar dentro de la intranet de nuestra casa, elegimos una que sepamos que no utilizamos en ninguno de los PCs que tenemos. Yo, por defecto, pongo 192.168.1.177.
IP del PCTelnet, en el que corre el servidor Telnet y donde queremos conectarnos a través de Arduino. Para saber la IP de ese ordenador ya sabéis: linea de comando DOS y ejecutamos ipconfig. En mi caso 192.168.1.35
Puerto del servidor telnet. Normalmente es el puerto 23.
Función de setup.
Inicializa la conexión a Ethernet y el puerto serie a 9600bps.
Se ejecuta la conexión al servidor telnet
Función loop
Traza por el puerto serie todo lo que recibe del servidor y viceversa
Detecta si el cliente telnet se mantiene conectado, en caso de no estarlo, saca el mensaje de desconexión.
Así pues, sólo tenemos que modificar el programa con los datos de las variables globales. En mi caso:

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {
192,168,1,177 };
// Enter the IP address of the server you're connecting to:
byte server[] = {
192,168,1,35 };
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 23 is default for telnet;
// if you're using Processing's ChatServer, use port 10002):
Client client(server, 23);
Una vez lo hayamos hecho, compilamos el programa y lo bajamos a Arduino.

Servidor Telnet

¿Tenemos disponible un servidor Telnet en el PCTelnet al que queremos conectarnos?. En mi caso no era así, por lo que me bajé el servidor Telnet KpyM. Dudo que sea el mejor, sencillamente fue el primero que encontré.
El servidor telnet nos exige tener un usuario y un password para Windows. Si no lo tenéis, tendréis que crearlo, ¿cómo?: Panel de control > Cuentas de usuario.
Telnet dejó de utilizarse a través de la red, a nivel profesional, porque es un protocolo muy primitivo, sin ninguna seguridad, los nombres de usuario y los passwords van por la red en caracteres, sin ningún tipo de codificación. Para nuestro propósito está bien, ya que hacemos una conexión punto a punto, pero desde luego, esta conexión a través de Internet no es segura.
No os olvidéis de abrir el puerto 23 en el PCTelnet. Para hacer esto: Propiedades de conexión de área local > Opciones avanzadas > Configuración > Excepciones > Agregar Puerto ... > Nombre: telnet / Numero puerto: 23 / TCP.

KpyM crea una aplicación para configurar el servidor telnet, no es necesario modificar nada, en todo caso, en caso de tener algun problema, echadle un vistazo, ejecutad la opción start service para comprobar que el servidor está efectivamente corriendo.


Sesión hypeterminal
Una vez hemos conectado con el cable de Ethernet el shield con el PCTelnet, abrimos una sesión de hypeterminal del PCArduino con el COM de Arduino, en mi caso COM4, con 9600bps:


Si todo es correcto, al abrir la sesión de hypeterminal, Arduino intenta conectarse con el servidor telnet alojado en el PCTelnet. Las siguientes pantallas son las que obtenemos en el hypeterminal:









Una vez hayamos introducido el usuario y el password para Windows, accederemos al PC remotamente. Podemos controlar el PCTelnet a través de la sesión hypeterminal del PCArduino.

lunes, 21 de noviembre de 2011

Entendiendo las conexiones de cable entre arduino y un protoboard para encender un led con un botón.

Seleccionamos este Ejemplo de codigo creyendo que se adecuara a nuestras necesidades entre el arduino y la cerradura para cerrar o abrir  utilizando una protoboard, conexiones de cables y resistencias.
A continuación veremos el ejemplo de utilizar un pulsador desde una protoboard.

   const int botonPin = 2;
   const int ledPin = 13;
int botonestado = 0;
void setup(){
pinMode(botonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
botonestado = digitalRead(botonPin);
if (botonestado == HIGH){  // si esta presionado es encendido(HIGH), tambíen puede ser contrario.
  digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
}

jueves, 10 de noviembre de 2011

Que es Ethernet Shield y como utilizarlo a nuestro proyecto?.|

Etherner shield es un tipo de arduino parecido al arduino en dimensiones de tamaño sirviendo como complemento para nuestro proposito del proyecto, se monta ethernet shield sobre arduino uno y asi poder trabajar con arduino uno y el ethernet sincronizadamente. (Ver figura N°1).
                                                                   Fig N°1 Ethernet shield

 Cual es la funcionalidad de Ethernet shield:
-Se usa para tener acceso a internet.
-Controlar Perifericos externos y mostrar resultados por web.
-Se puede ahorra el servidor para almacenar datos.(Ver figura N°2  Ethernet sobre  arduino uno).

 
                                               Fig n°2 Ethernet shield montado sobre Arduino Uno.



domingo, 6 de noviembre de 2011

Adquisición de Materiales

 Se ha adquirido los primeros materiales para empezar a desarrollar nuestro proyecto, los materiales que se han adquirido son:

- Placa Arduino UNO
- Transformador y Cargador
- Led Color Azul

















El Arduino UNO fué Comprado a travéz por Internet a la Empresa Olimex (www.olimex.cl), y el Led fué sacado de un lector de DVD antiguo que no servía.

Estos materiales son los primeros que tendremos al finalizar el año, con estos y el Software principal de Arduino nos basta para empezar a Conocer códigos y a Manipular el Microcontrolador.

Encendido de un led en secuencia.(utilizando función fade).

A continuación veremos la función fade para utilizar en led para encendido y apagado aumentando el brillo del leds por secuencia de milisegundos.

int brightness = 0;
int fadeAmount  = 5;


void setup() {
pinmode(9, output);
}

void loop() {
   digitalWrite(9, OUTPUT);

brightness = brightness + fadeAmount;
if( brightness == 0 || brightness == 255) {
 fadeAmount= -fadeAmount;
}
 delay(30);
}

Codigo de encender un Led y apagar el led (Blink) utilizando función delay.

El Codigo que se mostrara a continuación es para encender un led y apagarlo en determinados tiempos utilizando el software Arduino alpha v022 para tal proposito.

Codigo del Blink.
Void setup() {
pinmode(13, output);  //13 vendria siendo el numero de pin
 }

Void Loop() {
  digitalWrite(13, HIGH);
  delay(1000); // seria el tiempo de encendido del led
  digitalWrite(13, LOW);
  delay(1000);
}