Manejando el servo motor con el teclado

Hoy estrené el servo de mi kit básico de Arduino Uno.

Para utilizarlo, seguí instrucciones de varias páginas, pero el ejemplo que más me gustó fue el de www.electroensaimada.com

En él se utiliza la interacción con el puerto serial para enviarle una letra ‘a’ o una letra ‘z’ al robot, y en cada letra se aumenta o disminuye el ángulo del servo.

Programa para hacer funcionar el servo con el teclado

Aquí, el código para copiar y pegar:
#include
Servo mimotor;
int angulo=90;
void setup()

{
mimotor.attach(9);
Serial.begin(9600);
}

void loop() {
unsigned char comando=0;
if(Serial.available()){
comando=Serial.read();
if(comando=='a')angulo+=10;
else if(comando=='z')angulo-=10;
angulo=constrain(angulo,0,180);
}
mimotor.write(angulo);
Serial.print("Angulo: ");Serial.println(angulo);
delay(100);
}

microServo

Ver el video del programa funcionando:
Acceder al video del motor funcionando

Jugando con el buzzer de mi Arduino

Hoy conecté el buzzer que vino en mi kit de Arduino. No hubo que usar resistencia (en varios sitios la indicaban, pero así no me funcionaba), sólo conecté la pata más larga, positiva, al pin 11 y la más corta a tierra (GND).

Conezión del buzzer en la protoboard
La primera prueba que funcionó fue este código propuesto en el blog de Opiron.

void setup()
{
pinMode(11, OUTPUT); // El pin 11 es donde tenemos conectado el Buzzer
}

void loop()
{
ring(); // con este ejemplo hacemos que el buzzer vaya tocando
// tonos de diferentes frecuencias alternativamente
}
void ring (){
analogWrite(11,20); //emite 1 sonido
delay(500); //espera medio segundo
analogWrite(11,120); //emite otro sonido
delay(500); //espera medio segundo
}

Después, continué buscando, y encontré este post de El Cajón de Arduino donde se indica qué tono es para cada nota:

// Introducimos la variable por donde saldrá nuestra señal digital hasta el zumbador
int speakerPin = 11;
 // Definimos una variable con el número de tonos que va a reproducir
int numTones = 10;
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
//                  mid C  C#   D     D#    E     F     F#    G     G#   A
// Arriba se muestran las equivalencias entre frecuencias y Notas de la escala natural, no están todas declaradas pero existen.
void setup()
{
// Generamos un bucle que recorra nuestro vector. Este será el encargado de introducir una determinada frecuencia al zumbador cada vez, conforme hayamos declarado el vector de tonos.
  for (int i = 0; i < numTones; i++)
  {
    tone(speakerPin, tones[i]);
    delay(500);
  }
  noTone(speakerPin);
}
void loop()
{
}

Después, jugué un poco con las distintas notas y los tiempos, para armar melodías.

Aquí,  una muy mejorable versión del “Feliz cumpleaños”, dedicado a Claudio Segovia que cumplió años ayer:

// Introducimos la variable por donde saldrá nuestra señal digital hasta el zumbador
int speakerPin = 11;
// Definimos una variable con el número de tonos que va a reproducir
int numTones = 10;
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
// mid C C# D D# E F F# G G# A
// Arriba se muestran las equivalencias entre frecuencias y Notas de la escala natural, no están todas declaradas pero existen.
void setup()
{

}
void loop()
{
delay(1000);
tone(speakerPin, 261);
delay(180);
noTone(speakerPin);
delay(20);
tone(speakerPin, 261);
delay(100);
tone(speakerPin, 294);
delay(600);
tone(speakerPin, 261);
delay(600);
tone(speakerPin, 349);
delay(600);
tone(speakerPin, 330);
delay(1200);
tone(speakerPin, 261);
delay(180);
noTone(speakerPin);
delay(20);
tone(speakerPin, 261);
delay(100);
tone(speakerPin, 294);
delay(600);
tone(speakerPin, 261);
delay(600);
tone(speakerPin, 392);
delay(600);
tone(speakerPin, 349);
delay(1200);
}

Video del feliz cumple con el buzzer

Taller de Huayra Motion en el Acosta

Mañana, en el colegio Mariano Acosta, nivel primario, vamos a hacer algunas animaciones utilizando Huayra Motion.

Primero, vamos a capturar una imagen cada 5 segundos, escribiendo algo:

Después, podemos hacer una secuencia de dibujos y fotografiarlos. El que se anima, le puede agregar detalles (el pasto y el sol en este ejemplo) usando Gimp u otro programa de edición:

Por último, vamos a animar personajes dibujados en cartulina, u otros objetos que tengamos ganas:

También podemos hacer animaciones con sal, con arroz, y todo lo que se nos ocurra!!

Aquí voy a ir publicando algunas de las animaciones que hicieron los chicos de 4to a 7mo grado

¿Cómo hacer más simple el foro de Moodle?

Esto es algo que me piden siempre: que en el foro de Moodle no se puedan crear nuevos temas, nuevos hilos, que sólo haya un tema planteado arriba y los usuarios respondan a ese tema.

La respuesta es simple: hay que configurar el foro en modo debate sencillo.

Para ello, basta con acceder al foro con un usuario profesor, gestor o administrador, y hacer clic en editar ajustes.

Allí hay un desplegable con los tipos de foro, en el que tenemos que elegir “debate sencillo”.

¿Y qué son las demás opciones?

Haciendo clic en el signo de interrogación al lado de Tipo de foro, encontramos la pantalla de ayuda que explica cada una de las opciones.

Cómo saber si alguien está usando tu wi-fi

Como de costumbre, alguien me preguntó esto, tuve que investigar un poquito para responderle, y lo comparto acá.

Para saber qué dispositivos están conectados a tu wi-fi, con un Android, podés instalarte una aplicación llamada Fing que te muestra todos los dispositivos que están conectados. Para mayor seguridad, podemos desconectar todos los dispositivos wi-fi antes de ejecutar la aplicación, así vemos sólo el celular (en mi caso también apareció en el listado mi impresora que reconocí por el modelo).

Fing, la aplicación para detectar dispositivos conectados

Si vemos que hay equipos conectados que no son de la familia, entonces es hora de cambiar la clave (y podría ser también el nombre) de la red.

Cómo cambiar la clave del Wi-fi

En Speedy: http://www.telefonica.com.ar/atencion-al-cliente/#/pregunta/como-hago-para-cambiar-la-clave-wifi

En Fibertel: http://www.taringa.net/post/hazlo-tu-mismo/17979348/Como-Cambiar-la-contrasena-WIFI-de-Fibertel.html 

 

Crear un cuestionario utilizando Google Form

Hace un tiempo, explicando el uso de Google Form para hacer formularios de inscripción a cursos, noté que existía una nueva opción: la de poner calificaciones.

Entonces ahora, este tipo de formularios sirven para realizar encuestas, y también para realizar evaluaciones.

Para empezar a crearlo, tenemos que acceder a Google Drive, y elegir la opción Nuevo / Más / Formulario de Google:

Crear un formulario

Allí escribiremos las preguntas una a una, que serán de diferentes tipos: casillas de verificación, botones de opción, lista desplegable, etc.

elegir tipo de pregunta

Una vez creada la pregunta, indicaremos si es o no obligatoria, y luego, haciendo clic en el signo + agregaremos otra pregunta.

Obligatorio y nueva pregunta

Cuando ya tenemos todas las preguntas creadas, podemos ir a la opción de configuración y elegir, en la pestaña “Cuestionario”, “Convertir en un cuestionario”.

Convertir en un cuestionario

Ahora volvemos a las preguntas, y veremos una opción nueva: “Clave de respuesta”. Hacemos clic allí y podemos determinar la calificación de esa pregunta, y elegir la respuesta correcta:

Definir respuesta

Por último, podemos utilizar la opción “Enviar” para agregar colaboradores (no son quienes responden sino otros profesores que pueden ver las respuestas y modificar las preguntas), o para obtener el enlace, el código para insertar en una página, etc.

Enviar formulario

Cuando accedas a tu formulario vas a poder ver las respuestas:

Ver las respuestas

Y haciendo clic en el icono verde se puede crear una hoja de cálculo que mientras esté vinculada, se actualice con los resultados obtenidos:

Respuestas en hoja de cálculo

Encender y apagar una lámpara utilizando Arduino

Para poder encender y apagar una lámpara, es necesario contar con el Arduino, y con un módulo Relay o Relé, y experiencia previa en Arduino (encender un led, utilizar algún otro elemento como un sensor de distancia)

Fernando Bordignon, un gran colega con el que me comunico gracias a las redes, me facilitó este tutorial en el que se comprende perfectamente cómo conectar la lámpara. Para eso, es verdaderamente útil tener experiencia reparando interruptores y cosas por el estilo. Vamos a estar manipulando un dispositivo que funciona con 220v, así que hay que tener mucho cuidado.

Una vez leído el tutorial anterior, encontré este videotutorial donde se explica de otra manera cómo hacer las conexiones (mi módulo de relé tiene cuatro pines, como en este ejemplo, pero los hay de tres, como en el video tutorial que está debajo):


En este video explican perfectamente cómo funciona un Relé

Utilizar el sensor ultrasónico de Arduino

Después de algunos pequeños experimentos con un Led, hoy decidí empezar a utilizar el sensor de distancia. El modelo que vino en mi kit Arduino es el HC-SR04, lo cual se puede ver en el sensor:

Sensor ultrasónico

Busqué en la web algún tutorial y encontré este que es impecable, explica absolutamente todo lo que se necesita para poder ver en la pantalla la distancia de un objeto al sensor ultrasónico:

Crear una app para el celular que mueva un objeto en la pantalla

Estoy experimentando programar aplicaciones para el celular que aprovechen los sensores que llevamos todos los días en el bolsillo de la dama o en la cartera del caballero (o al revés).

Para ello, utilizo MIT APP Inventor, una herramienta para crear aplicaciones para Android. Necesitamos instalar en el celular la aplicación MIT AI2 Companion

Nuestros celulares tienen un sensor que permite conocer el grado de inclinación y de rotación horizontal, utilizando estos tres ejes:

Ejes de movimiento del celular

(Fuente de la imagen: www.mathworks.com)

En este primer experimento, mi programa simplemente mueve un circulito a través de la pantalla, según cómo inclinemos el celular en sus ejes X e Y.

¿Cómo se empieza?

El primer paso será comenzar un proyecto nuevo en Mit App Inventor. Una vez creado el proyecto, tendremos una pantalla en blanco, a la cual debemos arrastrar los objetos que vamos a utilizar en el proyecto:

Pantalla diseño

Vamos a empezar por poner dos etiquetas (Label) y renombrarlas como “inclinación X” e “inclinación Y”.

Para poder programar utilizando un sensor, debemos arrastrar el sensor hacia la pantalla. Éste no va a verse en la pantalla, por lo tanto se ubicará debajo, como un componente oculto:

Sensor

Ahora vamos a empezar a programar, haciendo clic en Blocks:

Ir a blocks

Para comenzar vamos a hacer clic en “Orientation sensor 1”, y allí vamos a elegir el bloque que nos permite programar algo “cuando el sensor de orientación cambie”:

programar cuando cambie el valor del sensor

Después, haciendo clic en cada etiqueta (“orientación X” y “orientación Y”), buscamos la asignación de un texto a la etiqueta:

  • set inclinación_X.text to
  • set inclinación_Y.text to

Ahora tenemos que decirle que escriba esas etiquetas con el valor de las variables Roll y Pitch (ver gráfico de los ejes de inclinación). Roll nos devolverá la inclinación en el eje X; Pitch nos devolverá la inclinación del eje Y.

Haciendo clic en el sensor de orientación buscamos los bloques que devuelven esos valores:

Probar el programa

Para probar el app que escribirá en las etiquetas el valor de inclinación X e Y, tenemos que usar en el menú Connect, la opción AICompanion. Nos mostrará un código numérico y un QR Code.

Ejecutamos el programa MIT AI 2 Companion en el celular, y escribimos el código o leemos el código QR.

Una vez que el programa leyó el código, se ejecutará el programa, que simplemente escribirá dos números en la pantalla, que cambiarán cuando uno mueve el celular.

Agregar la parte gráfica

Para completar el programa vamos a arrastrar, en el modo “Designer”, una base para poner una imagen (“canvas”) y luego un círculo:

Elementos gráficosEn las propiedades del Canvas, ponemos en altura (height) y anchura (width), que se complete el tamaño del objeto que lo contiene, para que ocupen todo el ancho y el alto posible en la pantalla.

Volvemos al modo de programación (Blocks), para crear el comportamiento del círculo.

¿Qué debe hacer el círculo?

Cuando cambie el valor del sensor de orientación, debe cambiar la posición del círculo. ¿Pero cómo tiene que cambiar?

A la posición anterior del círculo le vamos a restar el valor del sensor de inclinación. Para eso, en el conjunto de bloques llamados Math, vamos a ubicar el siguiente elemento:

restar dos valoresAhora vamos a buscar, dentro de Ball1, los bloques que determinan su posición X e Y, los pondremos dentro de la estructura anterior (when orientationSensor1.OrientationChanged), y les agregaremos el marco para restar dos valores que sacamos de Math:

Asignar valor X e Y Ahora le vamos a asignar el valor al eje X y al eje Y de nuestro círculo: su valor X actual, su valor Y actual, menos lo que varía la inclinación del celular.

Programa completo