Servos de rotación continua en Arduino.

Aunque muy poco a poco, voy avanzando con el robot. He decidido cambiar el chasis del coche teledirigido que compré en los chinos, por un chasis de plástico hecho con una impresora 3D, que, gracias a la UC3M tengo la posibilidad de usarla. Debido a ello, los motores que tengo que usar son unos servos. Los servos más baratos y los que se suelen usar, son los FUTABA S3003 que en ebay, tienen un precio de 3€ aproximadamente. Estos servos se caracterizan por tener un rango de acción de 180º por lo tanto, tendremos que modificarlos para poder usarlos como un motor normal.

Tenemos dos opciones de trucaje; convertir el servo en un motor de DC de 5v, lo cual, en la mayoría de los casos, deberíamos usar una etapa de potencia para poder usarlo con arduino, y otra aprovecharnos de la etapa de potencia del servo.

El primer caso es realmente sencillo Juan Gonzalez nos lo explica en el blog de iearobotics de la UC3M. Tener en cuenta que, de este modo, necesitaremos una etepa de potencia adicional para activar el motor. Es recomendable usar un puente H para poder tener inversión de giro.

El segundo caso, un poco más laborioso pero más efectivo, está explicado en este PDF, es muy importante seguir todos los pasos, incluido el de la calibración.

Básicamente, el funcionamiento de un servo es según una señal cuadrada que reciba a la entrada. El servo al recibir una señal cuadrada de 1,5ms de tiempo activo, se posicionará en el centro y en función de si ese tiempo es mayor o menor girara a derecha o izquierda.Por lo tanto, es muy importante el calibrarlo correctamente. En el PDF, el último paso, el número 8 nos indica que es necesario mandar una señal de 1,5ms al motor. Yo al usar arduino, tengo la posibilidad de usar las señales PWM que vienen integradas en la placa. Como no sabía muy bien cómo establecer una señal de esos 1,5ms, lo he hecho de una manera más artesanal. Este es el código que he usado.

void setup()
{
  pinMode(9, OUTPUT);
}

void loop()
{
  digitalWrite(9, HIGH);
  delayMicroseconds(150); // Approximately 10% duty cycle @ 1KHz
  digitalWrite(9, LOW);
  delayMicroseconds(1000 - 150);
}
De este modo, mantenemos la salida 9 activada ese 1,5ms que necesitamos. Es decir la manera de actuar es la siguiente:
  1. Conectamos el servo a la patilla 9 de arduino y a alimentación
  2. Cargamos el programa en arduino.
  3. El motor empezará a girar, no sabemos hacía que lado, en este momento, debemos girar el potenciómetro hasta que ser quede quieto del todo.
  4. Bloqueamos el potenciómetro para que se quede fijo en esta posición
Si no realizamos esto, el motor sólo girará hacía un lado, perdiendo la inversión de giro que queremos.
Una vez que ya tenemos nuestro servo operativo, podemos usar el código que nos facilita Discovery en su blog:
#define SERVO1 9
#define SERVO2 10
#define CEN 0

void setup()
{
}

void loop()
{
throttle(100,-100);
}

// Maneja el avance o retroceso, recibe la velocidad desde -100 a 100 %
void throttle(int Mot1, int Mot2)
{
  analogWrite(SERVO1,(Mot1> CEN || Mot1<-CEN) ? map(-Mot1,-100,100,135,225):0);
//Giro al contrario
  analogWrite(SERVO2,(-Mot2> CEN || -Mot2<-CEN) ? map(Mot2,-100,100,135,225):0);
}

Así podremos controlar varios motores, su velocidad y su sentido. Y esto es todo para poder tener un servo, os añado un video para que veáis cómo funcionan.

Servos de rotación continua en Arduino.

Usar gmail en lugar del webcartero de UC3M

Si soléis usar el webcartero de la UC3M habréis podido comprobar que la interfaz de usuario deja mucho que desear, sobre todo si lo comparamos con servicios como Gmail.

Otro de los inconvenientes de usar webcartero es que, obviamente, tienes que meterte en la página para ver si tienes algún correo, y en muchos casos puede pasar días hasta que te acuerdes de meterte.

En este artículo vamos a explicar cómo usar todas las funcionalidad de webcartero en nuestra cuenta de gmail. Son bastantes los pasos que hay que realizar, pero realmente merece la pena la comodidad que se tiene una vez configurado.

Lo primero que hacemos es meternos en la web de preferencias del correo. Nos aparecerán dos textos para meter nuestro NIA y la contraseña. Los introducimos y aceptamos.

A continuación nos aparecerá una página con dos opciones, una de ellas es Redireccion de la cuenta de correo. Al activarla nos pedirá a qué dirección de correo queremos reenviar los correos electrónicos. Aquí usamos una característica de gmail, que es el crear una cuenta de correo virtual. En el texto de email, pondremos nuestra cuenta de gmail añadiento “+uni”.

Ejemplo: si nuestra dirección en gmail es pepito@gmail.com, en el texto pondremos pepito+uni@gmail.com


Una vez hecho esto, nos vamos a nuestra dirección de gmail. En la parte superior de gmail, donde la barra de búsqueda, pulsamos en Crear un Filtro:

Y nos saldrán las opciones para configurar el filtro que vamos a crear, lo único que tenemos que rellenar es el campo: De: Ahí pondremos @uc3m.es. De este modo todos los correos que lleguén de los servidores de la UC3M los podremos filtrar. Y pulsamos Paso siguiente.

Nota: si quisiéramos añadir más direcciones de correo para que las filtre, sólo tendríamos que poner: @uc3m.es OR usuario@servicio.com

Ahora elegiremos qué queremos hacer con los correos filtrados.

Tendremos que marcar las opciones que se muestran en esta imagen. Lo que hacemos es, archivarlo, ponerle el email en la etiqueta Universidad y decir que nunca vaya a Spam. De este modo tendremos todos los correos organizados en la etiqueta universidad.

De este modo hemos conseguido recibir los correos de la uni en nuestra cuenta de gmail. Hay que tener especial cuidad por que  los correos en webcartero se borran y la única copia disponible es la que tenemos en gmail, así que mucho cuidado con borrar los correos electrónicos, por eso se marca la opción de nunca manda a spam.

Ahora vamos a configurar gmail para poder Enviar correos con la dirección de @alumnos.uc3m.es. Nos vamos a preferencias de gmail en la parte superior derecha. Nos dirigimos a la pestaña Cuentas e importación. Y nos centramos en el apartado Enviar Mensaje Como:

Pulsamos en el botón Enviar correo desde otra dirección y nos aparecerá un asistente para meter nuestro nombre y la dirección de correo. Metemos nuestro nombre y la dirección de correo TUNIA@alumnos.uc3m.es y pulsamos siguiente. Este paso el más importante de todos, tenéis que poner los datos tal cual en la imagen, a excepción del Nombre de Usuario que será el NIA y Contraseña que cada uno pondrá el suyo. Para terminar pulsamos Añadir cuenta.


A continuación recibiremos un mail con un código de confirmación que deberemos añadir.Ahora a cada uno ya le debería a parecer la cuenta de @alumnos.uc3m.es disponible para mandar correos. Marcamos la opción de Responder desde la misma direccion a la que se ha enviado el mensaje.

Si ahora creamos un nuevo email, gmail nos da la posibilidad de elegir desde qué cuenta queremos enviar el correo. Tendremos que fijarnos bien cuando mandemos un mail a un profesor que la cuenta sea la de @alumnos.uc3m.es

Un valoir añadido de esta configuración es que si tenemos un móvil con Android podremos enviar correos con la dirección de la uc3m desde el movil:

El último paso que queda,pero no explico, sería el de añadir las direcciones de email de los profesores a nuestros contactos en gmail.

Espero que os haya servido de ayuda, llevo usando este sistema desde que entré en la uni y ví que webcartero no me gustaba. De este modo siempre recibirás los correos de la universidad y tienes la opción de, si tienes un móvil android, poder enviar los correos más rápidamente. Si tenéis cualquier duda o problema no dudéis en dejar un comentario.

Usar gmail en lugar del webcartero de UC3M

Subir fotos desde android a Google +

Si habéis intentado subir alguna foto desde la aplicación de Google + de android a la página, la única opción que tenemos es la de Instant Upload, que lo que viene a significar es que en cuanto se hace una foto con el móvil, se sube a un albúm privado de Google+ y luego tú ya la compartes como quieras. El problema viene, que la aplicación únicamente mira en el directorio de la cámara del móvil, si estás haciendo fotos con otra aplicación o es una captura de pantalla, esas fotos no se podrán subir a Google+. La solución viene en usar Picasa, que es el servido de Fotos de Google que está sincronizado a su vez con Google+ y por suerte la aplicación de Picasa sí permite subir cualquier foto.

Una vez que lo tengamos instalado, primero nos vamos a Ajustes> Cuentas y sincronización>NUESTRA CUENTA DE GOOGLE>y deseleccionamos Sincronizar Picasa Web. Con esto evitamos que en la aplicación Galeria nos aparezcan todas las fotos de picasa lo cual lo hace molesto.

Lo siguiente, es mediante la aplicación galería ir a la foto que queramos subir y pulsar en el botón de opciones del móvil para que nos aparezca el menú compartir:
SC20110813 201736

Y seleccionamos picasa
SC20110813 201746

Al ser la primera foto que vamos a subir, tenemos que crearnos un albúm que llamaremos por ejemplo: Fotos Movil. En este nuevo albúm iremos subiendo todas las fotos que queramos ir metiendo en google+

Y con eso ya nos aparecerá en google+ para hacer lo que queramos con ella. Realmente la aplicación de Google+ funciona bien, no le hace falta el subir fotos a un album, por que google para eso ya tenemos picasa. Pero por ejemplo si yo quiero poner en un comentario una foto, me hace falta seguir este método, por que google no implementa el compartir una foto en un comentario nuevo.

Espero que haya servido de ayuda si tenéis cualquier duda dejar un comentario.

Subir fotos desde android a Google +

Programar Arduino desde consola

Siguiendo con los post de programación sobre arduino, hoy voy a explicar como programar arduino desde la linea de comandos.
El IDE de arduino es bastante básico y en algunos casos los editores de texto que usamos, ya puede ser VIM, Textmate o similares, son mejores a la hora de programar.

Para escribir este artículo, me he basado en el que escribió Syvic que explicaba cómo usar arduino desde un sistema linux. Prácticamente es lo mismo, lo único que cambia es la manera de instalar los programas que necesitamos.

Requisitos

1. pyserial
Módulo que añade comunicaciones con el puerto serie para python. Para instalarlo, lo descargamos nos vamos al directorio donde lo hayamos descomprimido y desde consola ejecutamos

sudo python setup.py install

2. scons
Son unas herramientas para compilar programas. Para instalarlo actuamos igual que con pyserial. Descargamos, descomprimimos y desde el directorio en el terminal ejecutamos

sudo python setup.py install

3. arcsons
Para terminar nos tendremos que descargar el fichero SConstruct. Este fichero lo tendremos que tener siempre a mano. Es necesario que lo pongamos siempre en el directorio donde tengamos el fichero .pde del programa.
Este fichero necesitamos editarlo para indicarle qué arduino tenemos. Para ello lo abrimos y en la linea 62

ARDUINO_BOARD = ARGUMENTS.get(‘ARDUINO_BOARD’, ‘atmega328’)

le indicaremos que placa tenemos, escribiendo alguno de los siguientes modelos: pro328 mini pro5v328 mega atmega328 bt328 atmega8 atmega168 pro diecimila lilypad pro5v lilypad328 uno bt fio y mega2560

Creando el proyecto
Una vez que tengamos los programas instalados, es hora de crear el primer proyecto. Para ello creamos el directorio donde guardaremos el fichero .pde y el SConstruct.

$mkdir Blink

y creamos el fichero PDE dentro de ese directorio. Es necesario que la carpeta y el fichero pde se llamen de igual forma.

$mate Blink/blink.pde

NOTA: yo uso textmate si usas otro editor como por ejemplo vim, en el comando anterior se sustituye ‘mate’ por ‘vim’ o el comando que uses habitualmente.

Escribimos en el fichero el programa que queramos cargar al arduino y guardamos los cambios.
Una vez que ya tenemos el fichero preparado copiamos el fichero SConstruct en el directorio actual, y ejecutamos scons

$scons

En este momento scons, compila el fichero .pde en un fichero .hex listo para ser cargado en arduino.Al terminar nos devolverá el siguiente mensaje:

scons: done building targets.

El paso siguiente será cargar el fichero .hex en el arduino.

$scons upload

Cuando termine, scons devolverá el mismo mensaje que antes.
Si en nuestro programa estamos trabajando, mandando información al puerto serie, para leelar en el ordenador, podemos verla en consola con el comando:

$screen /dev/tty.usbserial*

Programar Arduino desde consola

Crear Filtros en Gmail

Una de las características más potentes de gmail son los filtros. Podemos crearnos un filtro para cualquier tipo de correo que nos llegue a nuestro correo. Por poner un ejemplo: Todos los correos que nos lleguen de Facebook, les podemos aplicar una etiqueta ‘facebook’, marcar cómo leidos y archivar para que no nos aparezca en el Inbox. Ya que, aunque de esto no voy a hablar, debemos intentar que el inbox de nuestra cuenta esté siempre vacío.

Nos vamos a nuestra cuenta de gmail. Y pichamos en Create a Filter

Captura de pantalla 2010-12-27 a las 21.31.48.png

Y nos aparecerán las opciones de los filtros

Captura de pantalla 2010-12-27 a las 21.33.21.png

En el apartado From: pondremos de dónde viene el correo electrónico. Podemos poner la dirección completa tipo pepito@gmail.com. Este filtrado es útil cuando el correo siempre va a venir de la misma dirección. Pero cuando recibimos correos de distintos usuarios pero de un mismo servidor, por ejemplo de Facebook, lo que podemos hacer es un filtrado por servidor. En el mismo apartado de From: podemos poner @facebook.com y todos los correos que nos lleguen de Facebook, sin importar lo que haya delante de @, serán filtrados. Si queremos poner varías cuentas de correo tendremos que usar el operador booleano OR. Si queremos filtrar todos los correos que nos manden nuestros amigos usaremos una cadena parecida a esta: pepito@gmail.com OR juanito@yahoo.com OR carlos@hotmail.com.

La siguiente casilla es To: Otra de las características algo ocultas de gmail es la
creación de cuentas de correo dinámicas. Si nuestra cuenta de correo es pepito@gmail.com
podemos dar una dirección del estilo pepito+palabra@gmail.com para que nos manden correos.
Un caso práctico.
Yo tengo re-direccionado el correo de la universidad a mi cuenta gmail para poder leerlo asiduamente. Como los correos que voy a recibir van a ser muy variados y nunca sabré que formato siguen, lo que hice en la página de la universidad fue, que dirigieran todos los emails recibidos a la cuenta santiago.lopez.pina+universidad@gmail.com Y en gmail puse esa misma dirección en la casilla To: del filtro. De ese modo todos los correos que vayan a esta cuenta dinámica serán filtrados.

El resto de apartados Subjetc:, Has the words: y Doesn’t have: no tienen mucha mayor complicación.

Una vez que hemos puesto las direcciones que queremos filtrar pinchamos en Next Step

Captura de pantalla 2010-12-27 a las 22.10.21.png

Aquí configuraremos lo que queremos hacer con el email que nos llegue.

  • Skip the inbox Lo seleccionaremos cuando queramos que los correos no aparezcan en nuestra carpeta de inicio.
  • Mark as read Cuando queramos marcar como leidos los correos entrantes. (muy útil cuando queremos filtrar correos de alguna página de publicidad. En plan vodafone, telepizza, etc.)
  • Start it Para aplicar una estrella al correo y marcarlo como importante.
  • Apply the label: Esta es sin duda la más útil, aplica al correo la etiqueta que le indiquemos. las etiquetas son como carpetas dentro de nuestro correo.
  • Forward it: Para reenviar el correo a otra cuenta.
  • Delete it: Borrar directamente el correo que nos llegue.
  • Never send it to Spam Si alguna vez hemos recibido un correo importante y gmail lo ha puesto en Spam podemos decir que nunca más lo meta en esa carpeta seleccionando esta opción.

Para finalizar pulsamos en Create Filtery ya tendremos creado el filtro.

Crear Filtros en Gmail

Instapaper y Kindle

Este es un artículo para enlazar los documentos que tengamos guardados en instapaper con el kindle.
Para el que no lo conozca, instapaper es una página en la que vas guardando artículos para su posterior lectura. Lo bueno del servicio es que ha incorporado recientemente la posibilidad de mandar los artículos diariamente a nuestra cuenta del kindle. Y vía WIFI descargarlos automáticamente en el ebook de amazón.
Lo primero que debemos hacer es hacernos una cuenta en instapaper y añadir los artículos a ella. La manera más cómoda es usando un bookmarklet que está disponible en la web
extras-bookmarklet.png

Lo siguiente es irnos al apartado Account en instapaper y pinchar en Manage My kindle Settings
Captura de pantalla 2010-12-26 a las 20.05.25.png
Configuramos cada cuanto queremos que nos manden los artículos e indicamos nuestra dirección de kindle
un poco más abajo de esto nos aparece una dirección de correo (del tipo kindle.xxxxx@instapaper.com), que es desde la que nos mandaran los artículos y tenemos que copiarla.

El siguiente paso es permitir que instapaper nos mande correo al kindle. Amazon, por seguridad, tiene una lista blanca para indicar qué direcciones de correo pueden enviarnos documentos.
Nos vamos a la página de configuración de nuestro kindle y en el apartado Your Kindle Approved E-mail List, agregamos la dirección que acabamos de copiar

Captura de pantalla 2010-12-26 a las 20.12.49.png

Y con esto ya estaría todo configurado, ahora sólo tendríamos que irnos al kindle y esperar a que instapaper nos mande los documentos todos los días, aparecerá en nuestro kindle de la siguiente manera:

screen_shot-15064.gif
al abrir el documento nos apareceran todos los artículos que hayamos guardado y podremos elegir el que queramos.
screen_shot-15065.gif
Una de las ventajas de Instapaper es que mantiene los links del artículos original, de manera que con el kindle y su wifi podríamos acceder a ellos en cualquier caso.
screen_shot-15066.gif

Esta es la manera de la que leo ahora mismo los artículos con el kindle, se puede acceder desde el kindle via wifi a Greader, pero la verdad no la recomiendo mucho, el navegador para visitar una página puntual está bien, pero para usarlo de manera continua deja mucho que desear.

Instapaper y Kindle