domingo, diciembre 30, 2012

Apoya a la Free Software Foundation

Como suele ser habitual por estas fechas la Free Software Foundation suele montar una campaña para recaudar fondos para financiarse. Uno de los objetivos del año que viene (2013) es conseguir parar el proyectos como el "Restricted Boot" de Microsoft que pretende llegar a un acuerdo con los fabricantes de hardware para que diseñen BIOS que no permitan la instalación de otro sistema operativo que no se el Windows 8 para salvaguardar, según ellos, la seguridad de los equipos. O sea que si no es suficiente que al comprar un ordenador te obliguen a pagar la licencia de MS-Windows, ahora te será imposible instalar otro sistema operativo. Además parece que este asunto se va a hacer extensivo a tablets y móviles. Un asco, vamos.
Si hay una organización con peso y legitimidad suficiente para hacer ruido mediático en contra de abusos de los lobbies tecnológicos ésta es la Fundación por el Software Libre (www.fsf.org), pero obviamente, como cualquier organización sin ánimo de lucro depende de las donaciones de empresas y particulares así es que, si puedes aportar algo de dinero o directamente hacerte socio, colaborarás por una buena causa en pro de la libertad de uso de los medios tecnológicos. Como se puede ver en su web, además de la mencionada campaña "Stop restricted boot" y muchas otras, la FSF mantiene los repositorios de todo el software GNU. Gracias a ellos podemos disfrutar de multitud de utilísimos programas. Algunos ya los estás usando sin darte cuenta cuando te conectas a internet, están en tu router y servidores en la nube que te dan servicio usando programas libres GNU. Además la FSF es el garante del cumplimiento de la licencia libre GPL v3 evitando que se cometan abusos y que nadie se apropie de forma indebida de la autoría del software libre.

En fin, si puedes echar un cable a la causa del software libre contribuirás a construir un mundo mejor.


sábado, octubre 27, 2012

Plataforma de formación del profesorado de Castilla La Mancha con Firefox

La formación de los docentes de Castilla La Mancha se va a realizar a partir de ahora mediante cursos online. Se ha habilitado una plataforma para poder seguir dichos cursos pero su acceso presenta problemas si quieres entrar con el navegador Firefox. He preparado un video-tutorial para ilustrar el procedimiento para importar los certificados necesarios una vez que has accedido a la intranet, ahí va:




jueves, junio 07, 2012

Udacity: Democratización de la enseñanza.


Hace unos meses descubrí la plataforma de formación gratuita online www.udacity.com. Ya conocía sus antecedentes con el curso de inteligencia artificial publicado por la universidad de Standford e impartido por el profesor Sebastian Thrun, ahora co-fundador de Udacity, pero no tenía una opinión formada al respecto. Esta vez, con Udacity, decidí enrolarme en uno de los cursos para probar el método de enseñanza y la experiencia ha sido muy positiva. Es la máxima expresión de la democratización y universalización del conocimiento de nivel universitario. Cuando entras en la plataforma, simplemente echando un vistazo al resumen de los cursos y el índice de contenidos te entran unas ganas locas de seguirlos ¡TODOS!.


    Los cursos están muy bien planteados. La metodología consiste en usar el aprendizaje por tareas, es decir, se centran en un objetivo inicial como por ejemplo diseñar un vehículo autónomo (sin conductor), programar un buscador de internet, diseñar un navegador web, etc... y así, en base a esa tarea, se va construyendo el conocimiento. Los cursos se desglosan en capítulos audiovisuales de corta duración (no sobre pasan los 4 minutos en general) de nivel progresivo con muchos ejemplos y ejercicios. Todo está en inglés pero la mayoría de los vídeos permiten añadir subtítulos. Si eres capaz de leer inglés se pueden seguir bastante bien, además puedes matar dos pájaros de un tiro y practicar el idioma. Los profesores son de primer nivel y eso se percibe desde el primer momento. Además se nota que hay una buena planificación, un buen equipo detrás y un buen sponsor (Google).
    La duración de cada curso, cuando yo lo hice, era de siete semanas y la última semana se empleaba en hacer el examen final. Este examen es el que te da acceso (si lo superas) al certificado del curso. Yo decidí matricularme en el curso "Intro to Computer Science: Building a Search Engine (CS101)" para conocer mejor la plataforma y la verdad es que no quedé nada decepcionado, todo lo contrario. El curso te atrapa de principio a fin. Utiliza el lenguaje Python para programar el motor de búsqueda y, a pesar de ser un curso de introducción a la programación, aparecen conceptos de profundidad en cuanto a buenas prácticas en programación (el capítulo dedicado a tablas hash y diccionarios me pareció sublime). La única pega que le vi al curso en su momento es que los objetivos semanales me parecían difíciles de cumplir si compatibilizas el curso con trabajo y familia. Una semana se quedaba corta a pesar de tener experiencia como programador. A mí el examen me pilló en vacaciones de Semana Santa. Ahora el sistema ha cambiado y puedes llevar tu ritmo de aprendizaje sin miedo a que el curso caduque. Cada 8 semanas se plantea un examen para poder tener la oportunidad de obtener el certificado.
     Bueno, éstas han sido mis impresiones de esta magnífica plataforma. Si eres autodidacta como yo, Udacity te va a parecer un filón. En un principio todos los cursos están relacionados con la programación pero ya se están abriendo a otras disciplinas. En el momento de redactar este artículo ya han colgado un curso de introducción a la Física y otro de Estadística. También, por las últimas noticias, se intuye que van a ampliar los cursos para proporcionar material de nivel de enseñanza secundaria.
En fin, el futuro de la formación está en este tipo de plataformas. Yo como profesor cada día lo tengo más claro, las nuevas tecnologías nos han abierto una puerta a otra dimensión donde el buen material para formarse está accesible para todos. A partir de ahora los límites los pones tú.

Si estás en esta onda, yo no me lo perdería.

Este es el bonito certificado que te envían si pasas el curso:


miércoles, mayo 23, 2012

Tacómetro para proyecto de aerogenerador (Arduino y Tecnologías para educación secundaria).

Hace tiempo que quería hacer un proyecto que integrara y reutilizara algún tipo de maqueta con partes móviles, la placa Arduino y algún elemento transductor sencillo para alumnos de ESO y no se me fuera mucho tiempo en ello. En casa tenía una maqueta didáctica distribuida por CEBEK y en el aula una compañera estaba haciendo un proyecto con los alumnos para trabajar el tema de mecanismos que consistía en la fabricación de un aerogenerador con distintos elementos mecánicos. Así decidí montar un tacómetro para medir las revoluciones por minuto del rotor utilizando un relé Reed, la controladora Arduino y uno de los programas de ejemplo que vienen en el IDE de Arduino que detectan el cambio de estado en una entrada digital... así de sencillo. Paso a describir e ilustrar el proyecto por si alguien le interesa montárlo en casa o en el aula:

PROYECTOS DE TECNOLOGÍAS CON ARDUINO:
"Tacómetro para maqueta con elementos rotativos de bajas revoluciones"

Aprenderás a : 

Medir las revoluciones por minuto de tus proyectos de Tecnologías que incluyan partes rotatorias. Como ejemplo de esta práctica se ha utilizado un aerogenerador pero el principio de funcionamiento hace que sea aplicable a cualquier otro proyecto similar como norias, tiovivos, etc…


Necesitarás: 
  • Placa Arduino.
  • Placa protoboard.
  • Imán ligero y de pequeño tamaño (similar a los que se adhieren en las neveras).
  • Relé Reed. 
  • Resistencia 10 K. Cable rígido de conexión protoboard.
  • Ordenador personal para monitorizar la salida.
  • Proyecto de tecnologías ya montado y funcional (en nuestro caso la maqueta de un aerogenerador). 
Descripción del proyecto: 

 Mediante esta práctica se pretenden medir las revoluciones por minuto (RPM) del rotor de una maqueta que simula el movimiento de un aerogenerador. Se han utilizado dos modelos para realizar las pruebas. Uno es el modelo didáctico comercial de CEBEK y el otro aerogenerador corresponde a un modelo construido por alumnos de tercero de ESO con materiales del aula taller. Hay que tener en cuenta que la maqueta no realiza la función de generación de energía mediante la fuerza de viento, como corresponde a un aerogenerador, sino que simplemente provoca el movimiento del rotor para simular el efecto del viento. Para ello se suministra la corriente necesaria al motor eléctrico bien mediante una una placa solar o bien mediante una pila en cada caso. Para realizar la detección de cada vuelta se utiliza un imán adherido a una de las palas que gira solidario a ella y un detector magnético, en este caso un relé Reed. Cada vez que el imán se posiciona frente al relé, debido a su campo magnético, provoca el contacto de los terminales del relé poniendo en conexión un canal de lectura digital de la tarjeta Arduino con una tensión de 5 voltios. Esta acción provoca que la tarjeta reconozca un nivel lógico alto que, mediante la un sencillo programa, realizará un conteo de vueltas y la medida de las revoluciones por minuto del rotor.

 Montaje:

 Se ubica el relé Reed sobre la parte superior y el imán se pega a una de las palas del aerogenerador, de forma que cuando pase la pala por la parte superior del aerogenerador, imán y relé queden enfrentados. Así el campo magnético del imán permite cerrar los contactos del relé Reed.


Figura 1 (detalle cabeza aerogenerador relé -imán)

Las conexiones eléctricas se realizarán con el apoyo de la placa protoboard según el esquema que se adjunta. Se conecta la resistencia en configuración “pull-down”, es decir, cuando el imán está enfrentado al relé éste se cierra (ON) y conecta la entrada digital a una tensión de +5 V. En ausencia de imán el relé permanece abierto (OFF) y la entrada digital quedará conectada a masa (GND) a través de la resistencia de 10K.

 Figura 2 (esquema eléctrico - www.circuitlab.com )

Figura 3 (detalle conexiones protoboard)

 Programa:

Una vez configurados el pin 2 como entrada digital y la comunicación serie para poder monitorizar la salida, realiza de forma cíclica una lectura del puerto de entrada. Mediante una sentencia condicional comprueba si el estado ha cambiado. En el caso de que el cambio sea a un nivel alto (HIGH) incrementa en una unidad la variable que cuenta las vueltas. Con el apoyo de la instrucción millis() se puede calcular el tiempo que trascurre el rotor en dar una vuelta completa (tiempo_una_rev), por lo que mediante un sencillo cálculo podremos conocer la velocidad en revoluciones por minuto, como se indica en la siguiente línea del programa: rpm = 60000 / tiempo_una_rev;
A continuación se incluye el programa completo:

  /*
Programa basado en http://arduino.cc/en/Tutorial/ButtonStateChange (Examples ->; Digital ->; StateChangeDetection).
Tildes omitidas.
Detecta la conexion de los terminales de un rele Reed.
Se aplica para contar las vueltas de una maqueta aerogenerador mediante un
iman ubicado en una de las palas.
Circuito:


+5 V
o
|
|
|
o
  /
/ Reed Rele
|
|
|------> Pin 2 (Digital)
---
| |
| |  R = 10 KOhmios
| |
---
|
|
|
GND


created  27 Sep 2005
modified 30 Aug 2011
by Tom Igoe
modificado por Jorge Muñoz 15 Mayo 2012

This example code is in the public domain.

http://arduino.cc/en/Tutorial/ButtonStateChange

*/

const int  releReedPin = 2;
int vueltas = 0;
int estadoRele = 0;        
int ultimoEstadoRele = 0;  
long tiempo_anterior = 0;
long tiempo_una_rev = 0;
unsigned long tiempo_ahora;
long rpm;
void setup()
{
  pinMode(releReedPin, INPUT);
  Serial.begin(9600);
}


void loop() {
  // Lee el estado del rele
  estadoRele = digitalRead(releReedPin);
  // Compara el estado del rele con el estado previo
  if (estadoRele != ultimoEstadoRele) {
    // Si el estado ha cambiado incrementa el contador
    if (estadoRele == HIGH)
    {
      vueltas++;
      tiempo_ahora =millis();
      tiempo_una_rev = tiempo_ahora - tiempo_anterior;
      rpm = 60000 / tiempo_una_rev; // 1 minuto = 60000 ms
      Serial.println("Rele ON");
      Serial.print("vuelta ");
      Serial.println(vueltas);
      Serial.print("Tiempo por revolucion: ");
      Serial.println(tiempo_una_rev);
      Serial.print("Revoluciones por minuto: ");
      Serial.println(rpm);
    }
    else {
      // Si el estado actual es LOW pasa de ON a OFF
      Serial.println("Rele OFF");

      tiempo_anterior = tiempo_ahora;
    }
  }
  // Guarda el estado actual como ultimo estado
  ultimoEstadoRele = estadoRele;

}




 Práctica en funcionamiento:

domingo, enero 01, 2012

Feliz 2012

.-.   
                         .'   '.                   
              *         ( 2012! ) 
              /\         \     /
      /\     /o \   /\    '- -'
     / /    /_ _o\  \ \     "
     \ \__.'  '   './ /      '
      \___.---'---___/        )
         /    @    @_     __.'
        /  )     _   '   /_/
       ;_-'    _(,\__,) / /
         / \   \'uuuu' / /
       ,'   "", '---' ' /
      /       """,--, ,/
     /  /       '"\\\ ' 

         *************
         * HAPPY GNU *
         *   YEAR!   *
         *************



¡qué nos deparará este 2012! (the answer is blowing in the wind)
----------------
"Happy GNU Year" is copyright © 2011 Chris Webber. It is also licensed as a separate work under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
----------------