Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas

sábado, 28 de septiembre de 2013

Taller de Introducción a Arduino en Altea

Dentro de dos semanas, entre el 9 y el 13 de Octubre de 2013, tendrá lugar la primera edición de Altea Energy Lan Party. Esta será la primer Party LAN donde podremos reunirnos todos los aficionados a la informática, la electrónica y los videojuegos de la provincia de Alicante y por supuesto todo aquel que viva más lejos pero dese pasar unos días entre amigos. La Altea Energy LAN Party ofrece una oportunidad única para conocernos, aprender unos de otros y pasarlo bien.

Altea Energy Lan Party

Dentro de este evento, GoShield impartirá una charla/taller introducción a Arduino. La presencia en dicha charla es gratuita para todos los asistentes al evento, y tras la charla de introducción se realizará un taller donde se podrán hacer una serie de prácticas que perseguirán enseñar a utilizar los conceptos más básicos de Arduino, el uso de salidas digitales moduladas en PWM, el uso de las entradas analógicas y como conectar sensores analógicas a estas  y el uso de pantallas LCD paralelas basadas en caracteres. Todo esto tendrá lugar la tarde del Viernes 11 de Octubre entre las 17:30 y las 21:00. Aquellos que dispongan del material podrán llevárselo de casa y seguir el taller libremente, y para aquellos interesados que no dispongan del material podrá adquirir el kit para la realización del taller allí mismo. El máximo de kits disponibles es de 10 y es posible realizar la reserva pagando 10 euros a través de nuestra web, para aquellos que estén interesados y no quieran quedarse sin plaza, por supuesto para participar en el taller hay que estar inscrito al evento el día de su realización.
Espero que sea de vuestro interés y veros allí a todos.

lunes, 19 de agosto de 2013

Continua la fiebre de los microcomputadores: Iteaduino PLUS

Desde la aparición de Raspberry Pi, han sido muchas las alternativas que han ido apareciendo, ofreciendo mayor capacidad de computo, mayor velocidad y otras mejoras. Hoy os traigo el último competidor que se apunta a la carrera. En este caso se trata de Iteaduino PLUS que incorpora un microprocesador A10 con arquitectura ARM Cortex-A8. Su precio es muy interesante en este momento ya que se encuentra en lanzamiento con su campaña IndieGoGo, por lo que ahora es posible conseguirlo por un precio muy inferior al que saldrá al mercado el próximo año.

El sistema recuerda bastante a CubieBoard dado que sus componentes son similares, incluso la distribución de los mismos sobre la placa es muy parecida. Incorpora un conector SATA y un conector de alimentación para disco duro, conector HDMI, Ethernet 10/100, 2 USB, audio de entrada y salida, 1GB de RAM DDR3 a 480Mhz, GPU Mali400 y conector para tarjetas microSD con soporte de hasta clase 10. Una de las principales ventajas es que en ITEAD han aprovechado su experiencia en el desarrollo de productos para Arduino y han diseñado esta placa de forma que presenta una amplia compatibilidad con los módulos diseñados para Arduino. Para potenciar esta compatibilidad, han dedicando un conector especifico para la expansión utilizando un Shield que ofrece un interfaz de conexión como el de Arduino.
Os invito a que descubráis todas sus ventajas y que participéis en su campaña de IndieGoGo, yo estoy ya deseando que tengamos el nuestro para comenzar con las pruebas y comprobar hasta donde podemos llegar con Iteaduino PLUS.


sábado, 1 de junio de 2013

GBoard: Conectando a un servidor TCP a través de GPRS

En una entrada anterior os hablé de la placa GBoard que incorpora un microcontrolador Atmega328 con el Bootloader de Arduino y un módulo GSM/GPRS Sim900. En ella dejé disponible una librería que incluía funcionalidades como el envío de mensajes SMS, llamadas telefónicas y algunas funcionalidades más del módulo GSM.
En esta ocasión os traigo la versión 1.5 de la librería para Arduino de GBoard que incorpora la posibilidad de conectar en modo transparente a un servidor TCP ó UDP, esto significa que se conecta a dicho servidor y todo lo que enviemos por el puerto serie lo recibirá el servidor en paquetes TCPIP y lo que el servidor responda nos llegará de igual modo a través del puerto serie. Además de esto, la librería incluye varios ejemplos, entre ellos hay un ejemplo para conectar a un servidor de correo a través de telnet y por comandos SMTP permite enviar correos electrónicos.

Todos los detalles y comandos AT utilizados para las funcionalidades de GPRS pueden consultarse en el documento de notas de aplicación del módulo Sim900 para TCP/IP. En este documento, no solo encontraremos los comandos sino que también se pueden encontrar ejemplos de uso de los diferentes modos TCP/IP que pueden ser utilizados con este módulo.

jueves, 16 de mayo de 2013

¿Conoces GBoard?: GSM/GPRS + ARDUINO todo en uno


En muchas ocasiones tenemos en mente realizar un proyecto en el que queremos monitorizar
algunos sensores y enviar la información a través un módulo GSM/GPRS, bluetooth, XBEE o sencillamente almacenarla en una tarjeta SD a modo de datalogger. Si lo hacemos con Arduino
necesitaremos como mínimo una placa base Duemilanove/UNO/MEGA/Due más el shield de comunicaciones GSM/Bluetooth/XBEE, si además queremos conectar sensores necesitaremos añadir otro Shield más. Si además queremos almacenar la información capturada por estos sensores
en una tarjeta SD necesitaremos añadir un nuevo Shield adicional.

El resultado será una torre de shields que probablemente funcione, pero cuya estética y control se complicaría al tener que trabajar con las diferentes señales de control empleadas por cada una de estas placas. Además sería necesario realizar un estudio previo para comprobar la compatibilidad entre las diferentes placa, ya que si dos o mas de ellas utilizan el mismo pin no podríamos usarlas al mismo tiempo de forma correcta. 

Para estos casos tenemos una solución económica y sencilla de utilizar, se trata de la placa Gboard, un sistema que integra un ATMEGA328P con bootloader de Arduino, un módulo GSM/GPRS SIM900, zócalo para tarjeta MicroSD, XBEE/Bluetooth/nRF24L01 y pines de conexión para sensores o actuadores, y todo esto en una placa de tan solo 89 x 61mm. La programación del microcontrolador ser realiza a través de un convertidor USB/RS232 y se programa igual que se programa un Arduino. Está preparada para realizar la interacción con el módulo GSM/GPRS a través del puerto serie hardware o bien utilizando otros pines y la librería para Software serial pudiendo tener así disponible el puerto serie hardware para enviar datos de DEBUG a nuestro PC.

Es posible realizar la gestión del módulo SIM900 utilizando comandos AT, para conocer la lista de comandos AT disponibles hay que basarse en la lista detallada en la documentación del módulo SIM900. También puedes programarla directamente con la librerías para entorno Arduino, en este enlace puedes decargar la librería para GBoard adaptada por GoShield a las versiones del IDE 1.0 o superior de Arduino.

Si estas pensando realizar un proyecto que utilice GSM/GPRS la Gboard es una buena opción a tener en cuenta, pero si además tu proyecto ha de integrar los diferentes periféricos que hemos comentado, entonces es la opción idónea.

Con esta misma filosofía existen otras placas que integran un ATMEGA328P +  Dispositivo/Actuador/Módulo. Entre las más interesantes te presentamos las siguientes:


Puedes encontrar todos estos artículos y la información adicional están disponibles en nuestra tienda online.

sábado, 23 de marzo de 2013

Electrónica para dummies 1: ¿Que es el Voltaje?

En esta nueva serie de entradas pretendo ilustrar conceptos básicos de electrónica, de forma que sean fáciles de comprender por cualquiera, independientemente de los conocimientos en electrónica que posea. Esto no significa que vaya a ser fácil, sino que comenzaremos por el principio. Estos conceptos son importantes y necesarios para aquel  que quiera realizar  cualquier proyecto de electrónica de forma autónoma, por sencillos que sean. Además, dominar estos conceptos, le permitirá reconocer problemas en sus circuitos, que de otra forma no sería capaz de detectar. Para comenzar, hoy vamos a hablar del voltaje. Aunque parezca raro, no siempre se tiene un concepto adecuado del término voltaje y eso impide entender el funcionamiento de los sistemas electrónicos. Como he dicho antes, voy a intentar explicarlo desde el principio, ciñéndome a los principios físicos fundamentales del fenómeno.
En la figura anterior, se muestra una resistencia $R1$ y conectada entre dos valores, por un lado el valor $+5$ y al otro $GND$. Para comenzar habría que definir que significan estos valores. Como explicaré mas adelante, el símbolo $GND$ se refiere al punto de referencia de nuestro circuito, es lo que vendríamos a definir como el valor de voltaje 0 de nuestro circuito, aunque como veremos un poco más adelante esto no es del todo así. Para ser estrictos, $GND$ es la referencia sobre la que debemos medir el voltaje de cualquier punto en nuestro circuito, por lo que se debe entender que en el punto donde está escrito el valor $+5$ hay 5 voltios más que en el punto $GND$. Particularizando esto, para el caso de una placa arduino, el pin marcado como $+5$ es la salida del regulador de tensión, esto significa que hay un elemento en la placa, que se ocupa de garantizar que en entre $GND$ y ese punto siempre hayan $5V$ de diferencia. Pero cuidado, un regulador de tensión, será capaz de garantizar esto, hasta un limite, si le pedimos demasiada energía, en este caso está limitado por la corriente, esta tensión ya no serán $5V$ sino que podría caer, pero a esto le dedicaremos una entrada mas adelante. Para lo que vamos a explicar, supondremos que nuestro regulador es capaz de darnos una corriente infinita, tanta como le exijamos.

El primer concepto que debemos corregir es, el de pensar en la tensión como un valor único en un punto. Cuando decíamos en el caso anterior, que a un lado de la resistencia hay $0V$ o $GND$ y en el otro $+5V$ lo que estamos diciendo que es que están cayendo $5V$ en la resistencia que hemos puesto entre esos dos puntos, o lo que es lo mismo, que entre los dos bornes de la resistencia hay una diferencia de tensión de $5V$.
Para ver esto, en mas detalle, veamos el ejemplo siguiente:

En este caso, la diferencia de tensión entre los bornes exteriores sigue siendo de $5V$, pero ¿Que tensión hay en el punto intermedio?. Pues para responder a esta pregunta habría que establecer que la tensión será igual a la tensión que hay entre los bornes exteriores, menos la que caiga en la resistencia R1. Si por ejemplo, establecemos que $R1=R2$, la tensión que caerá en cada resistencia será de aproximadamente $2,5V$, es decir la diferencia de tensión entre sus bornes será de $2,5V$ y por lo tanto si medimos la tensión del punto $P1$ respecto a $GND$ veremos ese valor de tensión. Esto es lo que se llama, divisor de tensión, y le dedicaremos una entrada mas adelante. Este comportamiento, tiene su explicación en el fundamento físico que explica el voltaje y que se basa en la energía potencial. Para explicar lo que viene a continuación introduciremos la conocida formula que define la tensión como $V=IR$. Si analizamos detenidamente esta formula, podremos darnos cuenta, que viene a decir que para que exista voltaje entre dos puntos, debe haber una intensidad y una resistencia, ya que si la intensidad es cero, el voltaje sería cero y de igual modo si la resistencia fuese cero la diferencia de tensión entre los dos puntos sería cero. Es muy importante, tener claro que no tiene sentido hablar de tensión en un punto concreto de un circuito, la tensión o voltaje es una forma de energía potencial, y la energía potencial se define como energía almacenada que puede ser usada para realizar un trabajo, por ejemplo el trabajo que se realiza al ir de un sitio a otro o en el caso de un circuito electrónico el trabajo necesario que es preciso realizar para atravesar una resistencia. 

Podríamos imaginar que sujetamos una pelota en el aire, como es lógico, si la soltamos caerá a suelo. Esto ocurre porque al sujetar la pelota en el aire, ésta almacena energía que contrarresta la fuerza que la tierra ejerce sobre ella atrayéndola. Esta energía, mide la capacidad del sistema para realizar un trabajo, en este caso el trabajo consiste en caer al suelo y el sistema mano-pelota-suelo la contiene, nuestra mano es lo único que impide que este trabajo se realice.

En este símil, la energía potencial de la pelota se corresponde con la energía que almacena el sistema al estar la pelota en este punto, respecto a la que almacenaría el sistema si la pelota se encontrase en el suelo. Por tanto la energía potencial es la energía que el sistema tiene almacenada y que liberará en forma de energía cinética si soltamos la pelota mientras esta realiza el trabajo de ir desde nuestra mano al suelo. Según lo comentado, hay que fijarse que no tiene sentido hablar de energía potencial sin tener un punto de referencia, en este caso la energía potencial de la pelota en nuestra mano es mayor a la energía potencial que tendría en el suelo, esto es lo que se traduce en que si nada se opone a este recorrido lo recorrerá irremediablemente ,o lo que es lo mismo, si la soltamos caerá.

Cuando la pelota se encuentra en el suelo, no cae, pero esto no significa que su energía potencial sea cero ya que su energía potencial habría que medirla respecto a otro punto de referencia. Si la medimos con respecto al propio suelo, su energía potencial es cero, pero si la medimos con respecto a un punto 100 metros por debajo del suelo, la energía potencial será mayor en la superficie del suelo que en dicho punto, esto explica porqué si hacemos rodar la pelota por el suelo hasta un barranco, la pelota se precipitará por éste, liberando la energía potencial almacenada en forma de energía cinética. Esto también explica porqué la energía potencial siempre debe medirse como relación entre dos puntos, y por eso siempre se debe hablar de diferencia de potencial. Partiendo de esta explicación y teniendo en cuenta que el potencial o voltaje es un tipo de energía potencial, se puede explicar el fenómeno del que partimos al comienzo del post. Si no existe diferencia de potencial, no habrá circulación de electrones, es decir intensidad, que viene a ser como la caída de la pelota al suelto. Pero en este caso, además existe otra variable a tener en cuenta que es la resistencia, si no existe una resistencia entre el punto de mayor potencial y el de menor potencial, los electrones serán atraídos por completo y por tanto no habrá diferencia de potencial, ambos puntos tendrán el mismo potencial, pero si interponemos una resistencia, esta retendrá parte de los electrones al igual que nuestra mano retenía la pelota. Esto hará que se acumule energía entre ambos lados de la resistencia en forma de energía potencial, y con este razonamiento se llega a la conclusión de que la energía potencial en un punto $V1$ respecto a la energía potencial en otro punto $V2$ es igual a $V1-V2=IR$.
Para finalizar, se puede aprovechar esta explicación para describir un nuevo fenómeno que ocurre cuando la energía potencial entre dos puntos es mayor a cero y la resistencia es cercana a cero, es decir, si $(V1-V2)>0$, y la resistencia entre esos dos puntos es cero, llegaríamos a una incongruencia matemática ya que tendríamos $(V1-V2)=I0$ y al mismo tiempo que $(V1-V2)>0$. Esto vendría a significar que $I={(V1-V2)\over 0}$, lo que solo se podría resolver si la intensidad fuese infinita. Esto es lo que comúnmente se conoce como cortocircuito, y es lo que ocurre cuando conectamos dos puntos que contienen diferente energía potencial sin poner una resistencia de por medio.

En este caso el de mayor potencial tiene capacidad de liberar energía para emitir corriente hasta el de menor potencial, de forma que al estar conectados directamente sin una resistencia, se liberaría esta energía en forma de intensidad sin freno alguno, lo que podría provocar que se caliente el circuito en ese punto llegando a quemarse o estropeando algún componente. Por este motivo siempre debemos evitar que esto ocurra en nuestros diseños, y para evitarlo nunca debemos conectar dos puntos con diferente energía potencial sin poner una resistencia por medio.

sábado, 2 de marzo de 2013

Como instalar en Windows 8 los drivers para Arduino UNO, Arduino Mega 2560 y Arduino DUE

Mucha gente me ha comentado que tiene problemas al instalar los drivers de Arduino en Windows 8. Estos sobre todo puede ocurrir con las nuevas versiones de arduino como UNO, Mega 2560 o DUE ya que las versiones anteriores utilizaban el conocido chip FTDI ó FT232RL para la conversión de los niveles lógicos del USB a los niveles TTL de la UART de comunicaciones serie del microcontrolador de nuestra placa Arduino. Las nuevas placas de Arduino utilizan el chip Atmega16U2 como programador, tal y como se puede ver en los esquemas de Arduino UNO, Arduino Mega y Arduino DUE.



En estos esquemas se puede ver dicho integrado como en la imagen que se muestra a continuación:


Si comparamos con el esquema original de Arduino Duemilianove, podemos ver que abajo a la izquierda  se encuentra el chip FT232RL. Este es el integrado con el que se enviaban los programas al puerto de la UART, RX y TX del microcontrolador Atmega. Por tanto, comprobando el esquema ya podéis saber si estáis en el primer, en el que necesitaréis seguir los pasos descritos a continuación para instalar el driver, o en el segundo en el que no tendréis problema.


Para poder instalar los drivers de Atmel en Windows 8 tenéis que seguir los siguientes pasos. Antes de continuar, tened en cuenta que el segundo paso reiniciará el ordenador, por lo que antes de continuar debéis guardar toda el trabajo que hayáis realizado.

  1. Presionar la tecla Windows y 'R' de forma simultanea.
  2. Copiar en en el cuadro de texto de la ventana de ejecutar el comando entre comillas "shutdown.exe /r /o /f /t 00" y a continuación pulsa"Aceptar".
  3. Selecciona la opción "Solucionar Problemas"
  4. Selecciona "Opciones Avanzadas"
  5. Selecciona "Configuración de Inicio" y pulsa "Reiniciar".
  6. Una vez reinicie el sistema aparecerá un menú donde se pueden elegir diferentes opciones como:  Habilitar Depuración, Habilitar el registro de arranque, Habilitar modo seguro, etc. Hay que elegir la opción 4 "Deshabilitar el uso obligatorio de controladores firmados".
  7. Cuando reinicie el sistema ya podremos instalar normalmente los drivers necesarios para programar nuestros nuevos arduinos.
Gracias a Javier Perez por reportar el link al post original con la solución.

domingo, 13 de enero de 2013

Arduino Shield List: Lista de placas para Arduino

Arduino se ha convertido en una de las plataformas más populares para el desarrollo de electrónica en el hogar a nivel aficionado. Muchas universidades han incluido esta placa de hardware y software libre en sus clases prácticas, por la facilidad de programación que ofrece su entorno, donde es posible programar directamente en C ó C++ y cargar los programas a través del USB.

Pero esto no es todo, hay infinidad de posibilidades para la creación de nuevas ideas a partir de una placa Arduino. Una de las formas más fáciles de añadir nuevas funcionalidades a la placa Arduino es a través de las Shields de Arduino. Pero, ¿que es un shield?. Pues un shield no es más que una placa electrónica que puede ser conectada en la parte superior de Arduino y que normalmente permite a su vez conectar más placas encima de ella y que incorpora una determinada funcionalidad.

Jonathan Oxer ha creado y mantiene desde hace tiempo Arduino Shield List una interesante página sobre este tema. Su cometido, creo entender, que consiste en recopilar toda la información de utilización de los pines originales de Arduino de cada placa, a modo de poder determinar fácilmente que shields son compatibles con que otros.

Diferentes Arduino Shields Apiladas


Entre otras muchas cosas, muestro a continuación algunas de las funcionalidades más populares de los Shields de Arduino que pueden encontrarse por ahí:


  • Módulo de Relés: Un relé permite controlar con una salida de Arduino, la activación de dispositivos que tengan altos consumos de corriente. Cada salida de Arduino no puede emitir más de 20mA por lo que ciertos elementos como por ejemplo motores u otros elementos actuados con bobinas, no pueden ser activados directamente desde una salda de Arduino. En estos casos es util utilizar un modulo de Relés para poder activar dichos elementos. A continuación podéis ver un vídeo donde se utiliza un Módulo de relés para encender una bombilla, aquí tened cuidado ya que hay relés de características diferentes, por lo que esto no se debe hacer con cualquier tipo de relé, comprobad antes que el relé es capaz de conducir la intensidad correspondiente.

  • Módulo Ethernet: Con estos módulos es posible conectar Arduino a nuestra red local de cada. De manera que podemos hacer que acceda a cualquier información o bien que actúe como un pequeño servidor Web o de directorios, aunque su uso más útil es poder conectar a Arduino un dispositivo actuador o sensor, y acceder a su control o monitorización a través de la red local de casa. En este otro vídeo se muestra como controlar un módulo de relés a través de un PC utilizando para ello un módulo Ethernet para publicar el servicio.

  • Expansores de I/O: En muchas ocasiones, nos encontramos con determinados tipos de aplicación, donde podemos encontrar que Arduino no tiene suficientes entradas o salidas para controlar todos los elementos necesarios. En estos casos, se puede recurrir a Shields específicos para aumentar la cantidad de entradas salidas de nuestro Arduino. Generalmente estos Shields utilizan un bus de comunicaciones I2C o SPI para controlar desde el Arduino las nuevas I/O por lo que hay que fijarse en que bus utiliza el shield en concreto ya que según cual sea dejará sin poder utilizar unas determinadas entradas de Arduino. En el vídeo incluido a continuación, se muestra como con uno de estos expansores de entradas, es posible utilizar hasta 8 entradas como entradas de interrupción. Esto se consigue ya que cada puerto del expansor (8 entradas/salidas) tiene asociada una patilla de generación de interrupción (de manera que si hay un cambio en cualquier entrada del puerto se genera una señal de interrupción). Por lo tanto, es tan sencillo, como conectar esta salida de interrupción a una entrada de interrupción de Arduino y cuando se produzca una señal leer el puerto completo para detectar cual ha sido la que cambió. Trabajar de esta forma, con interrupciones  evita tener que chequear el puerto en cada ciclo de programa.


jueves, 2 de agosto de 2012

IOExpander un nuevo Shield de Arduino que permite manejar 32 I/O mediante I2C

El nuevo Shield IOExpander permite manejar 32 pines de I/O configurables a través I2C. Esta placa se basa en el en el chip de Microchip MCP23017. Este chip incorpora 2 puertos, un puerto A y un puerto B, cada uno de ellos de 8 I/O configurables, cada pin de estos puertos se puede configurar como entrada o como salida. Además este chip incorpora la funcionalidad para generar una señal de interrupción en un pin INTA/INTB adicional, uno por cada puerto, de forma que si se produce un cambio en una entrada del puerto A, se genera una señal de interrupción en el pin INTA y de igual forma ocurre con el puerto B.


Siguiendo esta funcionalidad, las 32 I/O que incorpora este Shield, están organizadas en 4 puertos ya que incorpora 2 chips. Es decir, un chip A incorpora un puerto A y un puerto B de 8 I/O y a su vez el chip B incorpora otro puerto A y otro puerto B. Para el control de este Shield se ha desarrollado una librería compatible con el IDE de desarrollo de Arduino 1.0.1. Esta librería incorpora funciones para realizar las funciones principales de forma sencilla, entre ellas se encuentran configurar el modo de los pines, escribir en un puerto o pin determinado, leer de un puerto o pin determinado, habilitar la interrupción desde un determinado pin de un puerto dado.


El Shield, está preparado para poder ser apilado, de forma que se pueden emplear varios de estos al mismo tiempo, gracias a un dipswitch incluido que permite configurar la dirección I2C de cada chip. Posteriormente, a través de el método begin de la librería es posible configurar la dirección de cada uno de los chips en el software.


jueves, 5 de abril de 2012

Blue Tooth con Arduino

Alberto Bordonado, ha realizado un estupendo trabajo en el que ha desarrollado un sistema donde se realiza la comunicación bidireccional de una placa Arduino con un PC a través de un interfaz BlueTooth. La imaginación me llena la cabeza de ideas... un dataloger inalámbrico, control de dispositivos remotos en casa a través de tu PC o móvil... en fín son miles las cosas que me vienen a la mente, es cuestión de dejarse llevar un poco, cosa que se me da muy bien, jejeje.

Aquí os dejo la referencia al foro donde se ha desarrollado el proyecto, por cortesía de Alberto Bordonado.