miércoles, 30 de mayo de 2012

Ayuda! Mi arduino se reinicia solo...


En éste caso, y ya que la temática actual lo venía exigiendo, vamos a solucionar un pequeño problema con nuestro Arduino, que nos trae de cabeza desde hace unos días. Si observas que tu arduino hace cosas raras como reiniciarse sin previa orden, o parpadeos del led integrado en el pin 13 inesperados, etc, sigue leyendo, porque puede ser que termines tirándote de los pelos...

En primer lugar, para descartar otros errores, guarda el sketch en el que estés trabajando en lugar seguro dentro del PC. Y a continuación crea uno nuevo con el siguiente código y grábalo en tu arduino. Éste código está pensado para ser lo más simple posible, y está comprobado que falla en las circunstancias adecuadas. ;)

const int led = 13;

void setup(){
   pinMode(led, OUTPUT);
   digitalWrite(led, HIGH);
}

void loop(){

}

Parece obvio, ¿verdad? Según éste código ponemos el pin 13 (led de la placa) como salida, y a continuación enviamos un nivel alto. Lo que supone que el led se encienda. Observa la placa con atención y si el led parpadea de vez en cuando, comprueba lo siguiente:

  • Si tu PC es de escritorio, probablemente dejará alimentados los USB tras apagarlo. Prueba a apagar el PC y dejar tu Arduino conectado. Asegúrate de si ahora el funcionamiento es correcto. Así descartaremos un problema de interferencia entre SW.
Si una vez apagado, Arduino funciona bien, estamos ante un caso de interferencia con otro software. Check this:
  • Arranca de nuevo tu PC.
  • En primer lugar, si tienes un smartphone, que utilice un programa de sincronización en el equipo, prueba a cerrarlo. En mi caso era el PC-Companion de los XPERIA, pero puede ser cualquier otro.
  • Reinicia la placa Arduino con el botón de reset y vuelve a observar.
  • Si sigue fallando, abre el administrador de tareas y trata de buscar algún proceso que esté enviando mensajes al USB a modo de "polling". Si encuentras algo sospechoso, ciérralo también y de nuevo el paso anterior.
Si tu aún no se ha solucionado, prueba lo siguiente:
  • Desinstala el controlador de la placa Arduino y vuelve a instalarlo siguiendo los pasos de la página oficial.
  • Comprobaremos que el usb del PC funciona correctamente, y si es así, probaremos otro cable.
  • Si finalmente el problema persiste (y conste que se me están acabando las ideas) hay quien ha tenido problemas con algo llamado "AutoResetOnSerialConnection", pásate por aquí.
Seguidos éstos pasos, el 99% de los problemas deberían solucionarse. Sin embargo, en ocasiones la informática es caprichosa. También puedes plantearte probar otro Arduino en tu máquina, y así sabremos si se trata de un defecto en la placa.

Espero que os haya servido de ayuda.

Un saludo,

MarcosRgz.

domingo, 20 de mayo de 2012

Vistazo al proyecto Arduino

Fotografía extraída de la página oficial de arduino

Después de éste largo tiempo fuera del cable, volvemos para hablar de un aparato que lo está petando en el mundillo de la electrónica. Ni mas ni menos que Arduino. Open hardware con denominación italiana. El objetivo de éste maravilloso componente es facilitar en cierto modo el desarollo de aplicaciones electrónicas y digitales. Pero, ¿Como es eso posible? Lean y tomen nota...

Para hacernos una idea un poco pijamera de lo que tenemos entre manos, se trata de una placa con un microcontrolador similar a un PIC (concretamente uno de la casa Amtel Systems Co.), 28 pines hembra cada uno de ellos con su respectiva función impresa en dicha placa, un micropulsador de reset, unos cuantos condensadores, diodos, resistencias y leds (todo SMC), un conector de alimentación, pines para programación en circuito (ICSP), y un conector USB estándar hembra de tipo B. Un buen batido de componentes.

En cuanto a software, en la sección de descargas de la página oficial del proyecto arduino podemos encontrar un paquete que contiene, desde los drivers del aparato, hasta un IDE propio de la casa, bastante minimalista, pero que cumple su función. Todo ello, claro está, pasando por gran cantidad de ejemplos funcionales para diferentes aplicaciones y las librerías necesarias para llevar a cabo vuestros proyectos.

Bueno, todo esto no termina de sonar bien del todo. Seguro que muchos conoceréis más o menos el mundo de los PICs y lo complicado que es realizar un proyecto completo. Arduino nos facilita la vida enormemente, poniendo a nuestra disposición numerosas librerías de alto nivel. Para que os termine de quedar claro, pasaros por aquí y echadle un vistazo al ejemplo de la página oficial. Veréis como transcurridos 5 minutos desde que sacásteis vuestro arduino de su envoltorio tenéis una aplicación funcionando, y lo mejor de todo: ¡Entendéis hasta el último detalle de la misma!

Finalmente debemos comentar un par de cosas derivadas de la experiencia. En primer lugar arduino es uno de los pocos hardwares libres que existen. Es realmente económico, pero podéis compraros una copia china más barata en eBay. No obstante, la diferencia de precio va a ser menospreciable, y en el primer caso estaréis contribuyendo a uno de los proyectos  socio-tecnológicos más interesantes para la comunidad de la que formamos parte.

En segundo lugar, y en una tónica menos profunda, vuestro arduino vendrá sin cable, probablemente un sábado cuando justamente las tiendas estén cerrando por una festividad extraña que aún no se ha inventado. Asique buscad por casa uno de éstos cables o id a vuestra tienda preferida a por uno. És el tipo de USB cuadrado que suelen utilizar las impresoras modernas.

Y ésto es todo por el momento.

Próximamente, megatutorial de conexión arduino-PC mediante USB, e interfacing con mi amado C#. No te lo puedes perder!

Un saludo, MarcosR.