31 dic 2009

Nuestros avances

Durante este mes hemos aprendido:

1.- Un poco de Duinos.

2.- Funcionamiento de Servomotores.

15 dic 2009

recursos para arduino

diferentes recursos para arduino: freeduino

mbed vs arduino

placa mbed

Basándose en el éxito de arduino están apareciendo otros proyectos muy similares y con la misma filosofía que éste. Por poner sólo dos ejemplos podemos nombrar a Xduino y Maple.

Pero hoy me ha llamado especialmente la atención mbed, que si bien no es compatible con arduino, las caracteríscas de esta placa son muy superiores a las de arduino, tanto por el microcontrolador LPC1768 (arquitectura de 32 bits a 100 Mhz ) como con las posibilidades de interconexionado que incorpora.
  • 4 puertos serie asíncronos (1 de ellos usado para la conexión USB con el PC)
  • 2 puertos I2C
  • 1 puerto SPI
  • 1 puerto CAN
  • 1 puerto USB maestro
  • 1 puerto Ethernet
  • 6 salidas PWM
  • 6 entradas analógicas de 12bits
  • 1 salida analógica de 10 bits
  • 26 entradas/salidas digitales
¡y todo esto por un precio similar al de una arduino nano!

Otra gran diferencia es que al entorno de desarrollo se accede a través de una página web de mbed con lo que no se precisa de ninguna instalación (multiplataforma por tanto). Obviamente se requiere conexión a internet para poder programarlo.

Que haya tantos proyectos compitiendo es algo bueno, porque de ello nos beneficiamos todos.

9 dic 2009

Captura de video en openSuse con Kino.

Hacía mucho tiempo que no usaba la camará de video, y como hace cosa de un año decidí eliminar definitivamente Windows de nuestros ordenadores e instalar openSuse, no había tenido la oportunidad de capturar video en GNU/linux. Ahora necesitaba grabar los resultados de nuestros proyectos con arduino. Así que me puse a buscar software que capturara video por el puerto ieee 1394 y me topé con Kino.
Me bajé el paquete desde http://software.opensuse.org/search y lo instalé sin problemas, pero al exportar el fichero capturado a mpeg me dió un error porque faltaba el paquete mjpegtools. Lo instalé sin problemas desde yast, pero al ir a exportar de nuevo me dijo Kino que no encontraba un script que ahora mismito no recuerdo.
Busqué información en la red y parare ser que en opensuse han quitado el script que le hacia falta a Kino del paquete mjpegtools (¿problemas de licencias quizás?). La solución que daban era desinstalar el paquete que proporciona openSuse e instalar el paquete desde los repositorios de Packman. Así lo hice y ya puedo capturar video.

7 dic 2009

Test Servo Motor (II)

He comprobado que no me funcionaba la libreria "Servo" en Test Servo Motor I por la alimentación. Con 6V en Vin funciona correctamente el ejemplo que viene en el entorno de desarrollo (file-examples-Servo-Knob).

4 dic 2009

Test Servo Motor (I)




Hoy hemos recibido 2 servomotores que encargamos en bricogeek y que vamos a probar.
Se trata de un servo miniatura HD-1160A de la marca Power HD.

Mi primer intento ha sido probar con los ejemplos que trae el entorno de desarrollo arduino.

¿Resultado? Un fiasco. No sé muy bien si ha sido debido a que alimentaba la placa con el puerto USB y éste no tenia suficiente energía, o por las librerías que controlan los servos de arduino que no funcionan bien, el caso es que el servo iba a trompicones y cuando quería. ¡Lo que hubiera dado por tener disponible un osciloscopio en esos momentos! (Depejada la duda)

Así que he tenido que buscar algo de teoría de servomotores ya que desconocía como funcionaban.

Aprendida la lección he programado este test simple (Lo importante es que los pulsos deben ser aproximadamente de 1ms. para todo a la derecha, 1.5 ms. en el centro del recorrido y 2 ms. para que el servo esté todo a la izquierda) . Con una alimentación externa de 6 V conectado al pin VIN ha funcionado correctamente.

Test DuinOS


Tenía pendiente probar DuinOS, un sistema operativo de tiempo real (RTOS) que agrega multitatera preventiva al entorno Arduino (esto quiere decir que cada tarea hace uso del procesador durante un tiempo determinado de antemano hasta que otra tarea con prioridad superior necesita ejecutarse; el orden y el reparto del tiempo es responsabilidad del S.O.)

Me he bajado el software, y la instalacion de DuinOS ha sido muy simple (está bien documentada en un archivo leeme.txt)

Una vez realizada la instalación hay que ir al menu de arduino "Tools-Board" y cambiar la placa que uno tenga seleccionada por la "placa + DuinOS" en nuestro caso "Duemilanove or Nano w ATmega328 + DuinOS"

Como el ejemplo que trae DuinOS me ha resultado "engorroso" he querido simplificar lo más posible el test; son dos leds que se encienden y se apagan a distinta frecuencia. Cada led lleva asociada una tarea.


Mi primera impresión de DuinOS es que es sencillo de programar, muy intuitivo y además no ocupa mucho espacio en memoria: el programa binario que ha generado ocupa poco más de 3KB. Mi enhorabuena a RGLabs por este trabajo.

Nota: Para el proyecto " estrella de navidad 2009" quiero emplear DuinOS ya que me simplificará mucho la programación: Una tarea será la canción y otra el movimiento de la estrella a izquierda y derecha. Quizás la dificultad esté en la sincronización (Jesús quiere que la estrella se mueva al ritmo de la canción).

3 dic 2009

Código de colores

No recuerdo el código de colores de las resistencias. ¡Menos mal que aún nos queda internet!

30 nov 2009

Editores de esquemas

Buscando por la red editores de esquemas y capas PCB me encuentro con:
Eagle y con geda. Tambien observo que arduino proporciona el esquema y placa de arduino nano 3.0 en ficheros Eagle.

27 nov 2009

Nuestra web de arduinoland

Creamos un website con la idea de guardar documentos.

http://sites.google.com/site/arduinoland/

Estrella Navidad 2009

Hemos decidido crear un proyecto para esta navidad 2009. Por ahora lo que tenemos pensado es hacer una estrella que se mueva al ritmo de una canción navideña cuya partitura tiene Jesús de sus clases de flauta.

Lo primero que hemos hecho ha sido trastear con un zumbador piezoeléctrico para hacer la música.

Nuestros avances

Durante este mes de Noviembre hemos estado aprendiendo a hacer cosas muy básicas con arduino.

1.- Hemos visto como activar las salidas digitales, hicimos un semáforo con leds.

digitalWrite(ledPin, HIGH);



2.- Hemos aprendido a manejar las entradas digitales: lectura de un pulsador

buttonState = digitalRead(buttonPin);



3.- Entradas analógicas. Probamos la lectura de un potenciómetro. Para mi sorpresa las entradas analógicas se representan con 10 bits de resolucion (1024 valores)

sensorValue = analogRead(sensorPin);




3.- Hemos aprendido a enviar vía puerto serie un dato desde arduino al PC.

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(0);
Serial.println(sensorValue, DEC);
}





DuinOS. Sistema Operativo con multitarea preventiva.

DuinOS: Lo tenemos que probar para nuestros proyectos.

11 nov 2009

Arduino nano desde cero en openSUSE 11.1

Por fin esta tarde hemos recibido la Arduino nano w/ ATmega328 que encargamos, y estamos muy emocionados con hacer nuestro primer prototipo, así que manos a la obra.

Existe en Arduino un ejemplo que sirve para hacer parpadear un led en intervalos de 1 segundo, y que es como el "hello world" de cualquier lenguaje de programación. Lo usaremos para comprobar que la placa funciona (en vez de usar el pin D13 del ejemplo usaremos el pin D2 con una resistencia de 220 Ohms porque estamos tan impacientes que no encontramos el pin D13...)

ESQUEMA:



PROTOTIPO:



ENTORNO DE PROGRAMACION Y PROGRAMA:

PASO 1.- Instalar el software Arduino en nuestro portatil con openSUSE 11.1:
En http://arduino.cc/en/Main/Software bajamos la version linux 32 bits
Se nos descarga el fichero "arduino-0017.tgz" y lo descomprimimos

Como arduino requiere el jre 6 de sun accedo a la pagina web de sun lo descargo e instalo.

PASO 2.-
Configurar Arduino:
Ejecutamos el fichero arduino y seleccionamos nuestra placa:
menú Tools-Board-"Arduino Duemilnove or nano w/ ATmega328"


PASO 3.- Cargar programa en la placa
menú File-Examples-Digital-Blink

modificamos la siguiente linea:
int ledPin = 13;
por
int ledPin = 2;

Pulsamos el boton Play para Verifir y Compilar: OOOPS! NO COMPILA

Cannot run program "avr-gcc": java.io.IOException: error=2, No existe el fichero o el directorio.




Despues de googlear un poco, concluimos que es necesario instalar cross-avr-gcc44 y avr-libc:
accedemos a http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_11.1/ y copiamos "CrossToolchain:avr.repo" en /etc/zypp/repos.d
ejecutamos como root:

zypper install cross-avr-gcc44
zypper install avr-libc

Pulsamos el boton Play para Verificar y Compilar el programa: OK

Conectamos arduino al portatil mediante el cable usb.

Pulsamos el boton Upload: OOOPS!

processing.app.SerialException: Serial port 'COM1' not found. Did you select the right one from the Tools > Serial Port menu?

Parece que no reconoce el puerto USB, y el menu "Tools-Serial Port" está deshabilitado.
Busco en Google por el error y veo que para que Arduino reconozca el puerto USB en openSUSE el usuario debe pertenecer al grupo uucp así que desde yast editamos el usuario y lo añadimos a ese grupo.

Salimos de la sesion de usuario de GNOME y entramos de nuevo.

Ahora si aparece habilitado el menu "Tool-Serial" y podemos seleccionar "/dev/ttyUSB0"

Cargamos de nuevo el programa Blink

Pulsamos el boton Upload: los leds de Arduino TX y RX se encienden indicando actividad de carga del programa... vamos por buen camino...

PASO 4.- El led que hemos conectado al pin D2 parpadea tal y como esperabamos en intervalos de 1 segundo. !Brujeríaaaaa!

10 nov 2009

Wireless Sensor Networks (WSN)

Googleando y yutubeando sobre arduino me topo con libelium y las redes sensoriales. Muy interesante.

Preparados... listos... YA!

Me entero de Arduino gracias a este video y después de visitar la página de éste interesante proyecto, me decido por comprar una placa con la idea de recordar mis viejos estudios y de paso enseñar a Jesús algo de electrónica, un poco de programación o que al menos entienda un mínimo de esa "brujería".
Digo yo que con casi 8 años quizás sea un poco pronto... pero ya veremos.
Decido crear este blog para que nos haga de cuaderno de bitácora y así guardar nuestros avances.