A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Refactorizando código Arduino

Configuración SprinterSi hay algo bueno de impartir cursos es la posibilidad de aprender con todo lo que hacen los alumnos. Hoy en el curso Avanzado de Arduino hemos estado viendo como optimizar y refactorizar código arduino.

Vamos a ver el ejemplo que no es otro que el código que permite hacer que un led se encienda o apague al plusar un pulsador. La parte que nos interesa es esta, donde se hace el enclavamiento, usando una variable Estado_Led que guarda el valor de este.

if (Estado_Led==0) // Y el Led esta apagado...
{
     digitalWrite(Pin_Led,HIGH); //Encendemos el Led
     Estado_Led=1; //Ponemos un 1 a la variable del Led conforme está encendido
     delay(tiempo); //Tiempo prudencial para evitar falsos contactos o lectoras del pulsador
}
else // Y el Led esta encendido...
{
     digitalWrite(Pin_Led,LOW); //Apagamos el Led
     Estado_Led=0; //Ponemos un 0 a la variable Led conforme esta apagado
     delay(tiempo); //Tiempo prudencial para evitar falsos contactos o lectoras del pulsador
}

 

Tanto en el código del  if como en el del else hacemos lo mismo. Voy a cambiarlo lévemente (o por LOW y 1 por HIGH

if (Estado_Led==LOW) // Y el Led esta apagado...
{
      Estado_Led=HIGH; //Ponemos un 1 a la variable del Led conforme está encendido
      digitalWrite(Pin_Led,HIGH); //Encendemos el Led
}
else // Y el Led esta encendido...
{
      Estado_Led=LOW; //Ponemos un 0 a la variable Led conforme esta apagado
      digitalWrite(Pin_Led,LOW); //Apagamos el Led
}
// Se hace delay en los 2 casos y lo sacamos fuera
delay(tiempo); //Tiempo prudencial para evitar falsos contactos o lectoras del pulsador

Si ahora nos fijamos loo que estamos haciendo es un digitalWrite del nuevo valor de Estado_Led, con lo que podemos sacar el digital write porque también es común.
Quedaría así:

if (Estado_Led==LOW) // Y el Led esta apagado...
{    Estado_Led=HIGH; }
else // Y el Led esta encendido...
{    Estado_Led=LOW;  }
digitalWrite(Pin_Led,Estado_Led); //Apagamos el Led
delay(tiempo); //Tiempo prudencial para evitar falsos contactos o lectoras del pulsador

Todavía se puede reducir más pues aplicando las léyes de la lógica booleana lo que estamos haciendo es invertir el valor de Estado_Led y eso se hace con el operador !
Lo dejamos así

Estado_Led=!Estado_Led;
digitalWrite(Pin_Led,Estado_Led); //Apagamos el Led
delay(tiempo); //Tiempo prudencial para evitar falsos contactos o lectoras del pulsador

JAVACASM

Usar S4A (scratch for arduino) en ubuntu (linux) de 64 bits

Scratch es un entorno de programación visual que permite crear programas interactivos de forma sencilla. Se le ha dotado de un interface muy amigable donde se puede programar sin  introduzcir comandos ni código, sino que los programas se construyen añadiendo bloques que tienen su propio significado, lo que lo hace muy adecuado para que lo utilicen personas que no están acostumbradas a programar e incluso niños.

Dado que internamente funciona como un entorno de ejecución de máquinas virtuales, se pueden utilizar distintas máquinas virtuales lo que le da una gran versatilidad. Existe una versión S4A  (scratch for arduino) que permite la interacción con arduino, permitiendo que lo programemos de la misma manera sencilla.

Vamos a ver cómo ejecutar S4A (scratch for arduino) en una máquina Linux (Ubuntu) de 64 bits.

Si intentamos instalar el paquete que proporcionan los creadores de S4A obtenemos un error de que la arquitectura i386 no está instalada

El problema viene de que S4A está necesita las librerías de 32bits … Siempre me ha parecido una chapuza añadir la arquitectura de 32 bits y las librerías necesarias para que un programa funcione.

La solución que vamos a usar aprovecha que scratch es un entorno de ejecución de máquinas virtuales. S4A contiene el entorno de ejecución (de 32bits) y la máquina virtual.

Lo que haremos será usar la máquina virtual que tiene el paquete scratch  con la imagen de S4A. Veamos como hacerlo:

Instalamos la version de 64 bits de scratch

sudo apt-get install scratch

Descargamos el paquete de S4A y lo descomprimimos en nuestra carpeta

Copiamos el script que ejecuta scratch y lo modificamos para que arranque la imagen de S4A

cp /usr/bin/scratch ./S4A

Lo editamos y cambiamos

IMAGE="/usr/share/scratch/Scratch.image"

por

IMAGE="/home/javacasm/Descargas/s4a/S4A.image"

Con esto podremos utilizar sin problema S4A en nuestra máquina de 64bits

JAVACASM

Arduino cumple 10 años

Mi referencia más antigua sobre arduino es del 20 de enero del 2006, lo he buscado en gmail con la búsqueda “arduino before:2007/1/1″

No son los 10 años que hoy cumple Arduino, sólo son 8 años y unos meses… durante estos 10 años son muchas las horas dedicadas a aprender a usarlo y también muchas las dedicadas a enseñar a usarlo.

Son muchos los post sobre el tema, primero en e-interiores y luego en el cacharreo, explicando lo que había aprendido

Deben ser varios cientos de alumnos en las distintas ediciones de los distintos cursos. Gracias a todos por vuestro interés

También son muchos los amigos que esta afición/oficio me ha dado. Un abrazo a todos ellos :)

Para festejarlo acabo de subir las presentaciones del curso básico de arduino a slideshare

Podéis ver los actos del día de hoy en la siguiente web

Hapy Arduino Day 2014

Curso presencial de Arduino Práctico en Granada

Arduino Práctico A primeros de julio, del 7 al 11 tendré el honor de impartir  un curso de 20 hoas de Arduino Práctico organizado por Fundación General UGR-Empresa y la OSL.

Empezaremos el día 7 y durante 20 horas, hasta el día 11 de julio, aprenderemos a realizar proyectos con Arduino, comenzando por aprender conceptos de programación y de electrónica para realizar los mismos.

El curso se realizará en la Facultad de Ciencias de la Universidad de Granada en horario de tarde.

No son necesarios conocimientos previos, puesto que empezaremos desde 0.

No es la primera vez que montamos un curso sobre Arduino presencial. Se han realizado 4 ediciones del mismo con distintos niveles. El año pasado hicimos un curso de arduino avanzado y anteriormente un curso de introducción de arduino.

Si quieres ir practicando sólo tienes que descargar el entorno con todo lo necesario que ha montado Arduino y ver los ejemplos que contiene. A partir de ahí seguiremos con el resto de material y con los ejercicios online.

Más información sobre matrículas en la página de curso, el Poster y el Tríptico. Por supuesto puedes contactar conmigo

Curso presencial de Introducción a la programación en Android en Granada

Cartel_Android_presencial_2014_grande

Cartel Android presencial 2014

El próximo mes de Abril, tendremos un curso de Introducción a la programación en Android organizado por Fundación General UGR-Empresa y la OSL. Empezará el 30 de Junio y en las 20 horas presenciales de que consta, hasta el 4 de Julio, y aprenderemos todo lo necesario para programar aplicaciones Android. Se trata de un curso presencial que se realizará en la Faculta de Ciencias en Granada.

No son necesarios conocimientos previos, puesto que empezaremos desde 0.

No es la primera vez que montamos un curso sobre Android. Ya el año pasado lo hicimos con muy buena acogida.

La creación de aplicaciones Android se ha demostrado como una de mejores salidas en estos tiempos de crisis. Muchos son los casos de éxito y las aplicaciones que lo demuestran, sólo hay que recordar el caso de flappy bird.

Se trata, como ya hemos dicho,  de un curso de 5 días (20 horas) donde aprenderemos a hacer aplicaciones Android, desde el principio, ¡¡quizás alguien haga el próximo Angry Birds!!.

Si quieres ir practicando sólo tienes que descargar el paquete con todo lo necesario que ha montado Google (dueño y señor del mundo Android) y ver los ejemplos que contiene. A partir de ahí seguiremos con el resto de material y con los ejercicios online.

Para matricularte usa la página del curso.

Más información en el poster y un triptico con más detalles. Y por supuesto puedes contactar conmigo.

JAVACASM