Arduino

Spam Yourself with my Arduino

[Editado] Ya he desconectado el invento, la prueba ha ido relativamente bien, pero no sé porqué he tenido que reiniciarlo varias veces, revisaré el código, y las especificaciones del Ethernet Shield

[Edited] The Arduino is disconnected, the test was relatively succesfull, but I had to reboot it several times, I will review the code, and the Ethernet Shield especifications.

[Editado] Si no funciona darle un tiempo porque puede ser que haya alguien conectado o algún error que remotamente no puedo correguir

[Edited] If It doesn’t work, please wait for a while, it could be that someone is connected or some error that I can’t solve remotely

ENGLISH VERSION BELOW

En esta entrada os propongo que probéis un servidor Telnet que he realizado con Arduino, os mandará un mensaje con el siguiente video:

Es un servidor muy sencillo, que solo responde a unos pocos comandos entre ellos un comando para mandar un Tweet, pero lo he programado para que mande un mensaje directo, para que el Timeline de mis seguidores no se llene del mismo mensaje, con lo que para probarlo tendréis que tener una cuenta en Twitter y haceros seguidores mios para que yo pueda mandaros el mensaje directo (ya sabéis que si no es seguidor tuyo no se puede mandar un mensaje directo), así que ya tenemos definido el primer paso:

1º Paso: Seguidme en Twitter http://www.twitter.com/guardiolajavi

Una vez tengáis la cuenta en Twitter y me sigáis tendreís que realizar una conexión Telnet a la dirección guardiola.dyndns-remote.com

2ºPaso: Realizar una conexión Telnet con guardiola.dyndns-remote.com

3ºPaso: Recuerda cerrar la conexión

Si no tienes windows XP, puede ser que no tengas el comando Telnet, para realizar una conexión Telnet, puedes usar la utilidad gratuito Putty, simplemente introduce la dirección del servidor (guardiola.dyndns-remote.com) y asegurate de seleccionar Telnet (pto. 23).

Como podéis ver en la ayuda también hay un comando para hacer parpadear un led «flash», esto solo lo veré yo y si estoy en mi casa pero os aseguro que funciona ;-).

Un saludo a todos y detalles técnicos se darán después del test en producción.

AND NOW IN ENGLISH

In this post I suggest you to try a Telnet server that I made with Arduino, It will send a message with the following video:

It is a very simple server, which responds only to a few commands including a command to send a Tweet, but I’ve been programmed to send a direct message, in order to no fill my followers Timeline with the same message.

To test it you will have to have an account on Twitter and become my followers for send you the direct message (you know that if you aren’t my followers I can’t send you a direct message, and I’m using my personal account for this project) so,  that define the first step:

Step 1: Follow me on Twitter http://www.twitter.com/guardiolajavi

Once the account you may have to follow me on Twitter and you will have to make a Telnet connection to the address guardiola.dyndns-remote.com

Step 2: Make a Telnet connection to guardiola.dyndns-remote.com

Step 3: Remember to close the connection

If you have Windows XP, you may not have the Telnet command, to make a Telnet connection, you can use the free utility Putty, simply enter the server address (guardiola.dyndns-remote.com) and be sure to select Telnet (port . 23).

As you can see there is also support a command to flash an LED  «flash», this is only can be seen by me if I’m at home, but I can sure you that it works ;-).

Greetings to all, and technical details will be given after this «production test».

Arduino iOS

En este post pretendo presentar una aproximación a la realización de lo que yo he llamado un iOS para Arduino, en realidad no es mas que una programación de una serie de comandos de forma que podamos conectarnos a Arduino, mediante Hyperterminal, de manera que podamos actuar directamente sobre los distintos pines, e incluso leer las entradas analógicas o digitales.

Esto servirá para en futuros proyectos dar un interface mejor definida, de forma que tenemos contemplados una serie de comandos para actuar sobre nuestro diseño, como encender o apagar un motor, realizar la acción que se necesite, leer un sensor de temperatura, etc, facilitando el desarrollo de una interfaz gráfica con nuestro PC.

Una vez depure un poco el código, ya que está en su primera fase, intentaré realizar lo mismo pero mediante Telnet, de forma que se pueda actuar y recibir información de manera remota con el EthernetShield.

En el actual estado responde a los comandos dw(Digital Write), dr (Digital Read), aw (Analog Write), ar(Analog Read), la estructura del comando es la siguiente:

comando Atributo1 Atributo2

De esta forma se le dice a Arduino que debe hacer donde y como, por ejemplo el comando aw 13 128, ejecutará el comando analogWrite (13, 128); que hace uso de la salida pwm a «mitad de potencia», o el comando dw 13 1, encenderá el led de pin 13 (el que tiene la resistencia serie incorporada). Los atributos los distingue mediante el espacio, y los comandos hay que escribirlos correctamente, no funciona el borrado, ya que habría que leerlo e interpretarlo, y dado que está pensado para realizar un interfaz gráfica, no tiene mucho sentido realizar esos controles de errores que se pueden realizar en la aplicación de PC.

En el siguiente video se muestra la conexión y la ejecución de los comandos HyperTerminal.

Agradezco cualquier posible sugerencia, ya que como he comentado está en sus primeras fases de desarrollo, si os interesa el código simplemente poneros en contacto y os lo pasaré, en estos momentos está poco estructurado.

Primeros pasos con Ethernet Shield, y Arduino

Finalmente he podido realizar un pequeño proyecto, apagando y encendiendo un led, mediante un acceso web.

Este proyecto está basado en el proyecto de Jerónimo Avelar, que podéis encontrar aquí:

http://blogdoje.com.br/2010/04/11/teste-do-shield-ethernet-seeeduino/

Que a su vez está basado en el proyecto de Science Prog que podéis ver aquí:

http://www.scienceprog.com/getting-hands-on-arduino-ethernet-shield/

El único problema que me he encontrado para hacer funcionar estos proyectos en el actual entorno de desarrollo de Arduino es que la librería WString.h ya no está disponible, ya que se ha incluido String.h en el entorno de desarrollo, debido a esto, en el proyecto de Jerónimo se han realizado los siguientes cambios, la línea:

linha_de_entrada.append(c) ; que utilizaba append para ir concatenando los distintos caracteres recibidos en un String, con la actual librería se cambia por:

linha_de_entrada= linha_de_entrada + c;

o

linha_de_entrada +=  c;

Es decir que con la nueva librería puede resultar hasta más intuitivo.

Otro método que tampoco existe ya en la actual librería para el tratamiento de cadenas es:

linha_de_entrada.contains(«GET»); utilizado para saber si la línea recibida contiene la cadena GET, con la librería actual se utiliza el método:

linha_de_entrada.indexOf(«GET»); que nos devuelve la posición en el String de dicha cadena «GET», pudiendo de esta forma verificar si una línea comienza por GET, o si nos devuelve una posición sabremos que esa cadena está contenida el String recibido.

Espero que esto pueda ser de ayuda. Aunque ha quedado un la entrada un poco confusa, pero ya ampliaré proyecto y pondré alguna captura, el caso es que se ha conseguido apagar y encender el LED.

As usual, All comments are Wellcome. 😉

Control de Temperatura para Célula Peltier

Dado que esta es mi primera entrada en el blog sobre Arduino, empezaré explicando ¿Qué es esto de Arduino?:

Arduino es una plataforma de hardware libre, es decir los esquemáticos y diseño están a disposición de todo el mundo en www.arduino.cc ; y soportado por un entorno de programación basado en Processing también de libre distribución, además de esto existe una comunidad muy amplia con cantidad de librerías desarrolladas para facilitar la programación del dispositivo. El dispositivo no es ni mas ni menos que una tarjeta con un microcontrolador de ATMEL, donde tenemos accesibles tanto puertos digitales, como puertos con conversor analógico digital, puertos con salida PWM, es decir un montón de posibilidades.

Arduino lo descubrí hace un par de meses, yo había trabajado con hardware muy parecido pero no de libre distribución, y programando en ensamblador, lo que me llevo a utilizar este sistema fue la facilidad de uso, y sobre todo la librería LCD para poder realizar un sistema autónomo para controlar una célula Peltier, de forma que como cualquier sistema de control de temperatura, pudieses elegir la temperatura deseada y el sistema la mantenga.

La dificultad del dispositivo estaba en manejar la corriente que necesita una Peltier que está en torno a los 2.5 A, mucha corriente para un microcontrolador, con lo que se utilizó optoacopladores y MOSFET de potencia para conmutar la aplicación o no de potencia. Como sensor de temperatura se uso un LM35, que mediante el conversor A/D podemos leer la temperatura y tiene una respuesta lineal en todo el rango, la selección de temperatura y la parada del ventilador del radiador (requisito indispensable porque en la aplicación no podemos tener vibraciones) se realizan con unos simples pulsadores y las interrupciones externas del micro.

Este es el montaje final :

Si alguien necesita más detalles puede comentar la entrada y ponerse en contacto conmigo.

Y finalmente el mecanizado:

La verdad es que es un sistema increíblemente fácil de utilizar y con un montón de posibilidades, en este montaje la célula Peltier solo enfría en estos momentos estoy trabajando en uno para que pueda enfriar y calentar según la necesidad.

Por petición de Aarón edito este post, para poner algunas fotos del sistema Disipador-Peltier, la foto está junto a la tarjeta de Arduino para que os podáis hacer una idea del tamaño del disipador, es todo de «reciclaje», pero funciona:

Como sensor de temperatura utilizo un LM35, que es el que se muestra en la siguiente imagen, donde la peltier está unida a una pieza de aluminio similar al objeto que deberá enfriar cuando esté en marcha:

Espero que esto ayude a aclarar algunas dudas.

Para poder realizar la inversión de polaridad que permite enfriar y calentar, solamente hay que montar el siguiente circuito:

En el circuito se pueden obviar los diodos para los transitorios.

Un saludo a todos y lo dicho, feel free to comment.

Web 2.0

En este blog también se hablará de web 2.0 y nuevas tecnologías, no solo software o en red si no también de hardware.
La tecnología evoluciona muy deprisa, a mi está intentando dejarme atras, procuraremos preocuparnos de mantenernos actualizados, si puedo ayudar a alguien será un placer.
Supongo que en algún sitio seguro que lo pone automáticamente, pero este post está editado y publicado desde un teléfono con Android, seguiremos comentando dentro de poco un post sobre arduino.