Inteligencia artificial, creatividad y miedo

9 abril 2019

Fuente: Wikipedia

La inteligencia artificial provoca muchos miedos infundados mientras, curiosamente, se dejan de tomar precauciones para situaciones peligrosas más que predecibles.

Hay personas, algunas científicos reputados, que advierten de que si/cuando las máquinas tomen autoconciencia y capacidad de autorreplicación pasarán a eliminarnos porque somos un competidor en recursos que no les aportará nada que les interese.

Otros creen que nuestros propios algoritmos (mal programados) podrían llevar a hacerles pensar que acabar con nosotros es la mejor opción. Por ejemplo: Si el objetivo a conseguir de nuestro algoritmo es reducir el gasto sanitario sin más consideraciones, podría empezar a valorar matar enfermos.

En muchos artículos ya se nos cuenta que hoy, ahora, en estos momentos, los algoritmos de decisión resultan sesgados por los datos con los que se les entrena y que eso a veces nos pasa desapercibido. De esto habla mucho @HelenaMatute

También tenemos en el horizonte los vehículos autónomos, su fiabilidad, su capacidad de decidir en situaciones complicadas. Por ejemplo: un peatón entra en la calzada y dar un volantazo salvará su vida, pero comprometerá la del conductor. ¿Qué debe hacer?

Pero yo quería hablaros de otro miedo, menos tangible, que tiene que ver con que el desarrollo de la inteligencia artificial nos plantea preguntas inquietantes sobre qué es lo que somos.

Para empezar, digamos que no tenemos una definición concreta y detallada  de la IA, y no os creáis que es por la “A”… es por la “I”. El problema es que tampoco tenemos una teoría satisfactoria sobre la mente, qué es la inteligencia o qué es ser inteligente.

Se suele asumir como “prueba de IA” lo que se conoce como el Test de Turing, que podría resumirse en que si te estás escribiendo mensajes con “algo” y es capaz de hacerse pasar por una persona, siendo una máquina, sin que puedas detectarlo, diremos que es una inteligencia artificial.

Como ves, un “desastre” de definición: subjetiva, poco detallada…

Nuestras tradicionales definiciones de inteligencia solían tener que ver con diferenciarnos del “resto de animales” y ponernos en una situación superior: autoconsciencia, uso de herramientas, cultura… pero, la verdad es que se han ido encontrando animales cuyo comportamiento difería más en grado que en algo cualitativamente diferente de nosotros, respecto de estas categorías.

Hoy creo, y ese el miedo del que os quería hablar, que nos preocupa sentirnos inferiores a las máquinas.

– Oye, que hay un bicho que corre más rápido que tú.

– Ya, pero correr rápido no es lo que me hace humano.

Y así con muchas características en animales y máquinas: la capacidad sensorial, la fuerza, la resistencia, la capacidad manipulativa, la rapidez de cálculo, juegos como el ajedrez o el Go…

Uno de los últimos bastiones de la “humanidad superior” es la creatividad, y a mí se me junta con mis cosas de profes… ya sabéis que los profesores nos dedicamos a matarla. (Me niego a enlazar al listillo que dice esto, pero es la charla TED más vista… grrrr).

Primer problema… el de siempre, ¿qué es la creatividad? ¿Qué es hacer algo nuevo? ¿Es posible la novedad? ¿Es sólo un remix? ¿Quién “valida” esa novedad? ¿Con qué criterio?

Preguntas no resueltas para humanos, así que imagina cómo conseguir saber si una máquina ha sido creativa en alguna tarea.

En educación se invoca constantemente la creatividad, sobre todo desde fuera del aula, porque desde dentro del aula sabemos bien que no puede crearse sin tener “elementos” para crear, sin tener conocimientos concretos sobre las técnicas, los objetos y procedimientos del campo en el que quiere uno ser creativo.

Es el problema de las cosas abstractas, se aprenden a través de lo concreto y se expresan a través de lo concreto. Por eso también es tan difícil medir la inteligencia, porque resulta inseparable, en la práctica, del lenguaje, de las matemáticas, de conceptos de otras disciplinas. Estudiando esas cosas desarrollamos la inteligencia y preguntándolas la evaluamos. Para algunos que sólo escuchen a gurús educativos supongo que esto será un descubrimiento.

Por lo tanto, cuando me pregunto si la música que compone una IA ha sido un acto creativo, debería ser capaz de responder primero si la música que compone un humano lo es.

Si pienso que una IA sólo reconoce patrones, extrae “leyes” de su experiencia, y las recombina y que eso no es crear, debería ser capaz de explicar si mi proceso creativo de entrenamiento de mi red neuronal de mi encéfalo y mi desempeño no puede explicarse de una manera similar.

En un artículo que leí recientemente apelaba a algún músico revolucionario de principios del siglo XX y fundamentaba su defensa de la creatividad humana en que cambió la estructura y la forma de pensar la música, que no se limitaba a escribir una “partitura más”. Si aceptáramos eso, aunque triste defensa me parece, date cuenta de que no marca como superior la creatividad de todos, sino sólo la de grandes genios reformadores. Fíjate también que deja en el saco de los “remezcladores”, además de a ti y a mí, a exponentes relevantes que se desenvolvieron dentro de movimientos artísticos ya iniciados. Me hizo recordar que en la película “Yo, robot”, un personaje interpretado por Will Smith le decía a un robot que él era sólo “relojería” que no podía escribir una sinfonía, y el robot le contestó: ¿puedes tú?

Al leer el artículo no podía dejar de acordarme de aquel programa que jugaba al Go, y que en lugar de aprender de partidas humanas, jugaba con versiones anteriores de sí mismo (AlphaGo Zero) de forma que “dedujo”, sólo a partir de las reglas del juego, estrategias ganadoras. Un comentario muy curioso de los jugadores de Go es que jugaba de una forma “diferente”, ejem, ejem… otro mito que se nos cae. Si este programa pudiera enseñarnos ahora a nosotros, lo haría con un estilo diferente, nuevo, rompedor. Entonces, ¿ha sido creativo?

Quizá deberíamos asumir nuestra limitada condición mental, emocional, artística y vivir tranquilos con eso. Todos sabemos que no tenemos el genio de Mozart, y que eso no nos hace menos humanos ni menos personas. Ya hemos asumido que no hacemos cálculos con la fiabilidad o la rapidez de un ordenador, ¿somos menos por eso? ¿Tenemos que ser más en algo para considerarnos “valiosos?

Hay que tener mucho ojo con esto, porque a veces se infiltra en nuestras creencias sin que nos demos cuenta y, efectivamente, estemos “midiendo” el valor de las personas por lo que son capaces de hacer, haciendo “rankings” y, disculpadme, pero me da casi tanto asco hacer una lista de gente por sueldo que por cociente intelectual. No olvidemos que no tenemos mayor título que ser humano y que esto es lo único y necesario para hacernos acreedores de respeto.

Siguiendo con la creatividad, si entendemos que dar pinceladas al azar no es un acto creativo porque tenemos un sistema de “validación” que tiene que ver con conceptos como “belleza”, “provocar una emoción”, etc., recordad momentos en los que habéis visto tocar con emoción cosas escritas sin ella, o viceversa, y a algunos os ha provocado emoción y a otros no. Es perfectamente posible emocionarse con una composición artificial que ejecute un humano o una composición humana ejecutada por una máquina. Mucho ojo aquí también que es muy fácil empezar a asumir una forma de dualismo “alma”/cuerpo, que es una postura filosófica respetable, pero entonces asúmase también que ya no se habla desde la perspectiva científica del asunto, que es eminentemente materialista y en la que “la mente” es la consecuencia de la fisiología.

Es muy probable que nos veamos de nuevo “descentralizados” de la creación como en tantas revoluciones científicas (copernicana, darwiniana, etc.) y no pasará nada, porque quizá nos estamos equivocando y, como en tantas cosas en la vida, no se trata tanto de ser “el mejor de tu portal” como de la experiencia que vives y de cómo la vives. Qué sientes TÚ al cantar esa canción, cómo aprendes TÚ a dibujar, cómo es tu viaje…

Somos habitantes de La zona intermedia cuyos logros quizá no sean reseñables en los libros de Historia del Universo, pero cuyas aventuras fueron apasionantes. Así que, tranquilos: Vivan, disfruten, quiéranse, permiten que les quieran… y dejen que ganen otros.

Anuncios

Life hack para personas con movilidad reducida

1 marzo 2019

Voy a compartir con vosotros un apaño “cacharrista” al que he llegado pensando en una necesidad que nos contaba una persona con serios problemas de movilidad.

(Ya sabéis que llamamos cacharrimo a esos experimentos que hacemos con material casero pero con estupendos resultados)

En este caso en particular tenía que ver con la posibilidad de limpiarse de manera autónoma en el baño.

Buscando por la red se pueden encontrar muchos artilugios que pueden sujetar de manera sencilla papel higiénico o toallitas húmedas, y soltarlas con facilidad evitando tener que mancharse.

Para algunos casos hay un problema añadido, la falta de fuerza, amplitud de movimientos o miembros de longitud reducida. Aquí la física nos impone una limitación.

Energía generada = Fuerza x Distancia

¿Qué quiere decir esto? Que yo puedo tener la misma energía, por ejemplo 10 unidades, de infinitas maneras distintas. Sólo por poneros números sencillos.

10 = 1 · 10

10 = 2 · 5

10 = 5 · 2

10 = 10 · 1

Interpretemos esto. En el primer ejemplo tengo una fuerza muy pequeña pero que se mueve una distancia larga, mientras que en el último ejemplo tengo una fuerza grande pero que se desplaza una distancia pequeña.

Con mecanismos más o menos sencillos (sin motores, ni aportes de energía extra) podemos cambiar un tipo de movimiento en otro.

Por ejemplo, con el gato del coche podemos cambiar un movimiento de poca fuerza y mucho recorrido (un montón de vueltas de manivela) y transformarlo en un movimiento de mucha fuerza (levantar el peso del coche) con poco recorrido. Aquí tenéis un ejemplo visual con un cascanueces, de nuevo poca fuerza y más recorrido, por más fuerza y menos recorrido.

Es el mismo principio que usamos en las marchas de las bicicletas o los automóviles, en las palancas, los mecanismos con engranajes, etc.

Pero claro, ¿qué pasa si no tenemos ni fuerza ni amplitud de movimientos en las manos? Pues que no disponemos de energía para conseguir el movimiento necesario para limpiarnos. Es como si te dan cinco manzanas para comer una semana e intentas arreglarlo con “organización”. No es posible.

Una manera de solventar esto consiste en sujetar alguno de estos elementos en algún lugar de tu cuarto de baño de manera que sea tu cuerpo el que muevas, en lugar del aparato, para poder limpiarte. Esto puede ser suficiente para solucionar la necesidad en tu casa, pero, ¿cómo lo hacemos si queremos usar otros baños: en el trabajo, casas ajenas, locales de ocio?

Aquí nos vienen a la mente la falta de limpieza de muchos de esos lugares, así como las enormes diferencias constructivas y de organización de objetos en estos lugares.

Así que tenemos que buscar un modo de sujeción, que resulte “universal” y que evite lugares potencialmente sucios como la tapa de los váteres.

De las primeras ideas que se le ocurren a uno son ventosas, imanes, pero no me acaban de convencer porque lo que bien se agarra, difícil se suelta. Quiero decir que poner un aplique en una pared con una ventosa suficientemente fuerte para que aguante que te frotes contra ella, necesitaría de cierta fuerza para ponerla y quitarla, como hemos visto en estanterías y agarraderas de baño.

He llegado a una solución que me gusta bastante, a ver qué os parece.

  • No necesita mucha fuerza
  • Puede ponerse con una sola mano
  • Se pone en una puerta con pomo o picaporte, bastante universal
  • Es mecánicamente muy estable en todas direcciones
  • Usa elementos comunes y baratos

Son dos perchas de las que se colocan en la parte superior de las puertas.

He puesto sólo un listón de madera sujeto con bridas, pero ahí iría lo que se quisiera sujetar o bien un anclaje para poder poner y quitar lo que se quisiese.

¿Cómo se coloca?

1. Se apoya sobre el pomo o picaporte

2. Se mueve para colocarlo en el ancho de la puerta

3. Se cierra la puerta

Con la presión que hace la puerta sobre los ganchos, más el apoyo sobre el pomo (o el picaporte) se queda bastante rígido para esfuerzos tanto verticales como horizontales.

Aquí os pongo un vídeo para que veáis que efectivamente es muy sencillo de poner con una sola mano y que no requiere fuerza ni especial habilidad.

La unión entre las perchas y el aparato que queráis (el listón en mi caso) podríais pensar en hacerlas móviles para que se pudiera plegar juntándose al listón moviéndose hacia abajo. Estas uniones deberían tener en este caso un tope para que al desplegarse no subieran más de noventa grados y así todo el conjunto podría guardarse en una bolsa recta como las que se usan para planos o trípodes.

Espero que os sirva, tanto para la aplicación que contábamos al principio como para cualquier otra, y me encantaría que nos lo contéis por aquí y que mandéis vídeos o fotos de vuestras aplicaciones.

Juntos somos más.


Control de Arduino por reconocimiento de voz

21 febrero 2019

Allá, vamos, ¡HABLAREMOS Y LAS COSAS NOS OBEDECERÁN!

No se trata de dar palmadas y que se enciendan o apaguen luces, de reaccionar al volumen, sino de reconocer PALABRAS CONCRETAS y responder según cuáles sean.

EL DETECTOR

La madre del cordero es, claro, el cacharrito que te escucha y reconoce lo que dices. Podéis acceder a sus características aquí.

Y esto es lo primero que quería contaros, LA GENTE HACE COSAS, hacen cacharros que detectan, gases, presencia, distancia, luz… o que incluso me reconocen el habla. Y no hace falta que sepáis el detalle de la construcción del aparato para poder usarlo. Si no tienes tiempo/ganas/capacidad de adentrarte en el detalle, puedes tomarlo como una caja negra.

Si lo tratamos con una caja negra necesitamos saber dos cosas:

  1. ¿Cómo conectarlo?
  2. ¿Como hacer que funcione?

Para ambas cosas tenemos que consultar documentación o los mil tutoriales que hoy en día hay en Internet.

1. ¿Cómo conectarlo?

           a) Alimentación

Generalmente necesitará alimentación, así que habrá alguna manera de darle energía. Lo más habitual es que encuentres unos pines que pongan Vcc y GND, que corresponden al “polo positivo” y al “polo negativo” (ground = tierra).

Estos cacharrines normalmente trabajan a 5V o a 3,3V que pueden tomarse de una fuente exterior o de la propia placa controladora que usamos (Arduino).

La alimentación la tenemos a la izquierda, los pines de la derecha son para conectar un micrófono si no se quiere usar la típica conexión jack.

          b) Datos

Ya tiene “chicha” para funcionar, pero ¿cómo me va a llegar la información del sensor?

Es muy habitual que haya un pin y que por ahí llegue un valor binario (0,1), “analógico” (0-255, p.ej.), un carácter (una “letra”), etc.

En este caso hay dos pines y se puede establecer una comunicación BIDIRECCIONAL con el sensor. Podemos mandarle órdenes en TIEMPO DE EJECUCIÓN y variar su comportamiento. TX y RX representación transmisión y recepción.

Si te fijas, esta estructura de alimentación-datos es común a muchos aparatos, aunque en los últimos años nos estamos acostumbrando a usar un sólo cable porque el conector USB hace “trampa” y además de transmitir datos es capaz de alimentar pequeños dispositivos.

2. ¿Cómo hacer que funcione?

EL CONTROLADOR

Hace años cuando queríamos que un circuito hiciera una función, teníamos que diseñar el circuito específicamente para eso, y podía ser terriblemente difícil según lo complejo de la función. Hoy en día, tenemos un controlador programable, así que tenemos TODO EL PODER de programar las barbaridades más enrevesadas que queramos: Cuando la entrada1 sea menor que 200 pero mayor que 125 y siempre que sea jueves por la tarde y que en la entrada2 se detecte que hay una persona cerca queremos que… Este disparate es tan sencillo de implementar como escribir el programa.

En nuestro caso vamos a usar una variante de Arduino que compramos en Elecfreaks.

Como podéis ver es un Arduino con algún apañín majo, como tener tomas de Vcc y GND para cada puerto y posibilidad de conectar como macho o hembra, un botón de encendido y selección de voltaje y otras cosillas, pero para lo que vamos a usar valdría cualquier Arduino que tengáis.

Para programarlo usaremos el IDE, no me detendré en el detalle de la programación general de Arduino, pero tenéis los comentarios para vuestras dudas.

Puede que en este momento tengáis una sensación de horror: ¿Cómo lidiar con el sensor en concreto que estamos usando? NO IMPORTA (Demasiado…)

Quiero decir la dificultad se la ha zampado el fabricante y los programadores por ti, o bien, la circuitería interna del cacharro ya te da un valor manejable (binario, analógico, etc.), o bien tendrás LIBRERÍAS, conjunto de funciones que sólo tendrás que usar para tener tus resultados.

En nuestro caso en particular no necesitaremos una librería, pero recuerda, que en sensores complejos sí las tendrás. Búscalas, instálalas… y, normalmente, tendrás programas añadidos en la sección ejemplos del IDE para aprender cómo funcionan. FACILÍSIMO.

Aquí veis, por ejemplo, que para usar la pantalla de cristal líquido tengo ya unos ejemplos hechos para ver cómo se baja de manera automática, parpadea, etc.

Así que, el sensor (por complejo que sea) o bien me da un valor fácil de usar, o bien vendrá acompañado de librerías con funciones que podré usar de manera sencilla.

PROGRAMACIÓN DE LOS COMANDOS DE VOZ

Ya hemos dicho que nuestro cacharrillo quiere comunicarse de manera bidireccional con la tarjeta controladora, igual que ella también lo hace con el ordenador cuando la conectamos con el cable USB, Bluetooth o WIFI.

En Arduino hay dos pines con los que se puede uno comunicar con la tarjeta o acceder a la comunicación con el ordenador a través de ella. Están identificados con T y R.

Para poder acceder al sensor desde el ordenador, vía la placa controladora, pondremos el cable TX al T y el RX al R para que lo que “oiga” la placa, lo pueda “oír” el sensor. (Esto podría hacerse con otro dispositivo, pero ya que tenemos la tarjeta, podemos usarla).

En este modelo de tarjeta tenemos la facilidad de poder usar Vcc y GND en cualquiera de los pines rojos y negros, respectivamente. En un Arduino corriente, tendríamos que ir a los pines 5V y GND o conectarlos a una protoboard y cablear allí.

Bien, ahora conectamos con el cable USB de la placa al ordenador, y así podremos acceder a la configuración del sensor para los comandos que deseemos.

Mirando el manual podemos ver cuáles son. Aquí tenéis algunos.

La cuestión es que necesitamos un programa para poder enviar estos comandos. Yo he usado este que se recomendaba en algunos tutoriales http://www.sudt.com/en/ap/index.html

IMPORTANTE: En la controladora no puede estar cargado un programa que “estorbe” a las comunicaciones. Así que asegúrate cuando vas a programar los primeros comandos, como cuando luego vayas a programar más (que ahí va a ser cuando se te olvide) de que has subido un programa en blanco antes de conectarte con AccessPort.

Es importante la configuración adecuada. Resalto que pongáis el puerto en el que se haya configurado la tarjeta controladora al conectarla, la velocidad de conexión y que los comandos se enviarán en hexadecimal.

Los comandos se han elegido de una manera bastante amigable, en mi opinión.

Mirad, este aparato es capaz de almacenar tres grupos de cinco comandos, pudiendo tener activo sólo un grupo a la vez (cinco comandos), aunque el grupo activo puede cambiarse mediante comandos si lo programas adecuadamente.

Los comandos se escriben AA 0x..

Para borrar empiezan por 0, así que 01 borra el primer grupo, 02 el segundo, 03 el tercero y 04 todos.

Para escribir empiezan por 1, así que 11 graba el primer grupo, etc.

Para activar empiezan por 2, así que 21 activa el primer grupo, etc.


En los dos botones de arriba tenéis, la configuración y el botón para activar y desactivar la conexión.

Abajo deberéis escribir los códigos y a la derecha tenéis el botón de enviar (imagen penosa, I know).

Si queréis, por limpieza, podemos empezar por borrar todos los grupos, así que pondremos AA 04, damos a enviar y esperamos la confirmación en pantalla.

Ahora grabemos un grupo de cinco instrucciones. En el manual podéis leer que nos pedirá confirmación de cada comando de voz, que debemos esperar a que diga START para hablar y que hay que grabar el grupo seguido.

Me dice START para que diga el comando, AGAIN para prevenirme de que va a pedirme que lo repita y START para que lo repita. Si todo va bien, me dice Finish one, que quiere decir que ha grabado el comando con éxito. Si no hay sonido, es demasiado alto, la repetición no concuerda, etc. te da mensajes y te pide de nuevo que lo hagas. Cuando terminas de grabar el grupo, recibes el mensaje Group1 finishi!. Todas estas acciones y los diferentes estados del sensor se acompañan con señales luminosas que podéis leer descritas en el manual.

Ahora se trataría de probar que efectivamente reconoce los comandos si se los decimos, y eso se puede hacer desde aquí mismo, algo muy conveniente. Recordad que cuando probamos algo debemos acotar las fuentes de error y separarlas lo más posible para poder identificarlas. Si espero a que esté todo montado y no funciona, ¿qué es lo que ha fallado?

Para probarlo, insisto, desde la misma aplicación, debemos cargar ese grupo de comandos, para eso usamos la instrucción AA 21 (recuerda, empieza por cero para borrar, por 1 para grabar y por 2 para cargar).

He repetido los comandos en orden (he dicho los números del uno al cinco, por simplicidad) y los distingue sin problemas unos de otros. Aunque si digo otras cosas a veces las reconoce como instrucciones, por ejemplo, SEIS lo reconoce como TRES, CIRCO como CINCO… quizá esto pueda mejorarse con comandos más largos (para ver el límite, consultar manual). Se supone que, como es de esperar, entornos poco ruidosos, buenos micrófonos, líneas cortas hasta el micro, etc., son favorables.

PROGRAMACIÓN

En los diversos tutoriales que podéis encontrar por ahí hay ejemplos de código, yo os pondré el que he usado para probar con mi placa, una modificación de ellos.

/*Este es un programa para controlar un LED y un zumbador
* medicante el módulo de reconocedor de voz de geetech.
* Javier Fernández Panadero feb 2019
* @javierfpanadero htttp://lacienciaparatodos.wordpress.com
*/
byte com = 0; //variable que recoge la respuesta del sensor
int LED =10; //pin en el que conectaremos el LED
int zumbador =11; //pin en el que conectaremos el zumbador

void setup() {

Serial.begin(9600); //inicia la comunicación a esa velocidad
pinMode(LED, OUTPUT); //configura el pin del LED como salida
pinMode(zumbador, OUTPUT); //configura el pin del zumbador como salida

delay(1000);
Serial.write(0xAA);
Serial.write(0x00); //pone el sensor en espera

delay(1000);
Serial.write(0xAA);
Serial.write(0x37); //las respuestas del sensor “compactas”, 11 en lugar de Result:11

delay(1000);
Serial.write(0xAA);
Serial.write(0x21); //carga el primer grupo de cinco comandos
}

//aquí el bucle de arduino que se repite constantemente

void loop() {

//este while se activa cuando haya alguna respuesta del sensor

while(Serial.available()){

com = Serial.read(); //toma la respuesa y la mete en com

/*según sea la respuesta hará una y sólo una de las acciones
* saldrá del while y volverá a quedar mirándolo una y otra vez
* hasta que haya otra respuesta disponible desde el sensor
*/

switch(com){
case 0x11:
digitalWrite(10,HIGH); //enciende el LED
break;
case 0x12:
digitalWrite(10,LOW); //apaga el LED
break;
case 0x13:
analogWrite(11,440); //hace sonar el zumbador
break;
case 0x14:
analogWrite(11,0); //silencia el zumbador
break;
case 0x15:
analogWrite(11,0); //silencia el zumbador
digitalWrite(10,LOW); //apaga el LED
break;
}
}

}

Ahora tendríamos que subir el programa… pero esto de las comunicaciones es bastante delicado para el principiante. Fíjate que hay mucha gente enviando y recibiendo información: el ordenador, la placa y el sensor.

De momento, para poder cargar el programa, necesitamos que el programa con el que estábamos grabando los comandos “suelte el puerto” y lo deje libre para que enviemos el programa desde el IDE a la placa. Así que vamos al programa y le damos al botón de desactivar la conexión que está en la parte superior izquierda de la ventana. Si no lo hicierais así el IDE os dará un error al intentar subirlo. Insisto que esto es frecuente entre principiantes, así que si estáis con estas cosas y os da un error de comunicación, mirad a ver si tenéis tomado el puerto en el AccessPort, con el Monitor Serie de Arduino, no está bien seleccionado el puerto en alguna de las dos aplicaciones, etc.

Como he tenido varios percances, probablemente no le haga daño a nadie que desconectéis el sensor mientras subís el programa… Si queréis ser precavidos, apagad la placa antes de estas conexiones y desconexiones.

Si habéis llegado hasta aquí no deberíais haber tenido problema en subirlo.

FUNCIONAMIENTO

Ya sabéis que una vez que el programa está cargado en la placa podéis desconectaros del ordenador y alimentar la placa a través de una batería, pilas, etc. El sensor toma su energía de la placa, a través de Vcc y GND, así que tampoco habrá problema. Para mis pruebas no la voy a desconectar, pero el cable USB estará funcionando sólo como alimentación.

Importante. CABLEADO

Apago la placa y voy a conectar el sensor… pero… ATENCIÓN… porque este error me ha tenido parado durante horas. Prestemos atención a quién se comunica con quién.

Antes queríamos que el sensor se conectase con el ordenador a través de Arduino, por lo que poníamos sus cables de transmisión TX y recepción RX directamente a los de la placa, para que lo que el ordenador le dijera a la placa (y fuera recibido por RX de la placa) le llegase también al sensor, y lo que el sensor quisiera decir, fuera del cable TX del sensor al pin TX de la placa y el ordenador lo escuchara como si lo dijera Arduino.

Pero ahora queremos que lo que diga el sensor lo escuche Arduino y lo que diga Arduino lo escuche el sensor. Por lo tanto TENEMOS QUE CAMBIAR EL CABLEADO, poniendo el TX de uno con el RX del otro y viceversa.

Así que, cambiamos el cableado, volvemos a conectar y encendemos la placa.

Ya podemos probar nuestros comandos y deberían funcionar correctamente. Probad con otras palabras, hablando más lento o más rápido… aunque todo esto lo podíais hacer mejor directamente en el paso anterior, donde no teníais el resto de fuentes de error.

Aquí tenéis un cutre-vídeo del asunto .Veis que le cuesta reconocer el CINCO, aunque también entiende CINCO cuando le digo CIRCO…

¿Y TO’ ESTO PA’ QUÉ?

Tienen ustedes toda la razón. Si la cosa es que me pongo a dar voces y se encienden lucecitas y se oyen pitidos desagradables… no podemos decir que haya sido un gran paso para la humanidad.

Es cierto que tiene su sentido como “ejercicio”, pero de una manera muy sencilla podíais aplicarlo para AUTOMATIZAR VUESTRA CASA, la tan repetida DOMÓTICA.

Para esto necesitamos a un cacharrito que os va a encantar. El relé.

Relay principle horizontal new

Como podéis ver en este magnífico gif, cuando le aplicamos un voltaje a la bobina se convierte en un imán, que mueve esa pieza grande de metal (la armadura) y hace que los contactos amarillos se muevan. De manera que si conecto OTRO circuito a través de los contactos puedo hacer que este se abra o cierre según le pase corriente o no a la bobina. Así que mediante UN circuito, controlo OTRO circuito.

Este sería el símbolo

Rele 1c
Lo de la izquierda es la bobina y lo de la derecha los contactos. La línea discontinua simboliza esa acción magnética, NO es un cable. Por lo tanto esos dos circuitos están aislados eléctricamente y podrían funcionar a voltajes diferentes.

Lo que vamos a hacer es controlar la bobina con la baja tensión de 5V de nuestra placa, pero poner en los contactos un circuito enchufado a la electricidad de casa, a 220V.

Así, cuando con nuestra voz activemos el relé, este activará o desactivará a su vez un dispositivo doméstico cualquiera: una luz, el aire acondicionado, la lavadora, etc.

Ojo, que esto es muy sencillo, lo único que haremos será DARLE CORRIENTE a ese aparato, así que no podremos configurar sus funciones ni nada. Para la bombilla será suficiente, pero en el caso de la lavadora por ejemplo, sólo será útil si, al recibir la corriente, empezase directamente a funcionar.

De los tres contactos, usaremos sólo dos, porque queremos que esté desactivado cuando el relé está desactivado y viceversa, así que los contactos que debemos usar son el “común” y el “normalmente abierto (NO)” que en la animación serían el central y el de la derecha.

Aunque hay módulos que agrupan muchos relés para poder controlar varios aparatos a la vez y ahí habría que ver cómo se hace la comunicación con ese módulo y cómo se mandan las instrucciones para que se active un réle en particular, nosotros usaremos uno sólo que sirve para ilustrar lo que queremos contar.

Así que procedo a cambiar el LED por un relé, y compruebo que funciona. Por un lado se enciende un indicador rojo y por otro se oye un “click” (el choque de la armadura con la bobina).

Ahora sería el momento de conectar el aparato que quisiera, pero sin eliminar el control manual. Para eso tenemos que usar conexiones en paralelo. Así se hacía antiguamente la lógica con interruptores, si ponías dos en serie simbolizaba la función AND (Y), si los ponías en paralelo, la función OR (o).

Hecho con CircuitLab (no me hagáis caso a los valores, es sólo para que veáis las conexiones).

Esta sería la configuración de una lámpara normal.

Para poder seguir usando el interruptor normal y el controlado por voz, debemos poner los interruptores en paralelo, para que la corriente pueda llega a la bombilla POR UNO O POR EL OTRO.

RLY1 sería el relé que tenemos conectado con nuestra placa.

La activación de uno es independiente de la del otro, ambos sirven por separado para alimentar la bombilla, ninguno impide que el otro le dé corriente, y en caso de estar activados los dos, serán simplemente redundantes.

Os he abierto un interruptor de esos que venden con un cable para poner a una lámpara sencilla.

Se aprecia con dificultad en la foto pero, aunque los dos cables pasan por el interruptor, hay una chapa continua que conecta los dos cables azules, de forma que el único que se interrumpe es el marrón. (Si se interrumpieran los dos habría que proceder de otra manera).

Así que sería en los marrones donde habría que poner los cables que llevaremos al relé.

OJO QUE LA FOTO ES SÓLO INDICATIVA, NI ESTÁN CONECTADOS, NI SOLDADOS, NI ASEGURADOS…

Ahora nos llevaríamos esos cables al relé, como dijimos en los contactos común y normalmente abierto (NO)

Y ya estaría… como dicen los chavales.

Os preguntaréis que por qué no lo monto todo y os hago otro vídeo, dos razones.

  1. Con todo esto ya está suficientemente claro…
  2. No tengo muchas ganas…
  3. NO DEBO…

Y, ¿¿por qué no debo??

Pues porque hay que mirarse las características de los cacharrines, queridos lectores. Si miramos la parte superior de la “cajita negra” que es mi relé, vemos que, como está comprado fuera, lo han diseñado para 120V, así que paso de quemarlo para daros a vosotros un gusto 😉

CONCLUSIÓN Y RESUMEN

Hemos visto que:

Podemos usar sensores para responder a las situaciones del mundo real con facilidad porque, o bien me darán salidas sencillas para programar, o tendrán sus propias librerías.

Podemos programar con toda libertad el comportamiento que deseemos gracias a la potencialidad de los controladores, como Arduino.

Podemos activar aparatos sencillos como LEDs o zumbadores, pero que, a través de relés podemos acceder al control de sistemas de potencia en nuestra propia casa. Con la salvedad que sólo les estamos dando o quitando corriente (encendido o apagado).

Por lo tanto, tenéis la domótica a un paso y por muy poco precio, si tenéis el tiempo y las ganas…

QUEDA PENDIENTE…

Si en lugar de activarlo con voz, conectamos la placa Arduino por Bluetooth o WIFI a un móvil, por ejemplo, o a una web… ya tenéis el famoso Internet de las cosas (IoT) “up and running” para vuestro disfrute. Una plataforma sencilla de programación por bloques es MQTT, por si queréis cotillear.

AHORA, SINCERÉMONOS

Estas cosas pueden ser más o menos divertidas según el carácter o las inclinaciones de cada uno, en mi caso tienen más interés docente y divulgativo que para aplicaciones en mi vida diaria.

Todos los que trabajan con “cacharritos” ya sabéis lo jorobada que es la robótica porque junta todas las fuentes de error de muchas disciplinas:  te puede fallar la electrónica, te puede fallar la interacción de la electrónica con el MundoReal, te puede fallar la programación.

En mi caso, para este asunto, perdí tiempo porque un Arduino Nano no me funcionaba, lo descarté sin llegar a saber por qué, perdí tiempo porque no me di cuenta de que tenía que cambiar los cables para ponerlo a funcionar y, para colmo, a medio post, me dejó de funcionar el sensor sin que haya sido capaz de arreglarlo, así que, gracias a que había comprado dos, he podido terminar este artículo para vosotros.

Ays… me duele la vida.

Así que recordamos a Fernando de la Cuadra, cuando dijo “La informática no es fácil”, para decir… La robótica, tampoco.

Espero que os sirva.


Manual de Scratch. Especial para Profes y Principiantes.

2 abril 2018

Aquí os dejo el manual de Scratch que he preparado, explicando las funcionalidades con ejemplos, partiendo desde cero y haciendo cosas bastante sofisticadas. Creo que es muy buen trabajo tanto si lo usáis para aprender, como si se lo dejáis a vuestros alumnos, o si lo leéis para tomar ideas como formadores.

Se comparte con Licencia Creative Commons de atribución, no comercial y sin obra derivada.

Estoy muy a favor de compartir mi trabajo y de que quien no tenga recursos suficientes pueda acceder a material de calidad (una alegría y por eso se publica), por otra parte, tampoco hay nada malo que a quien le parezca pueda hacer una contribución de la cuantía que os parezca, para ayudar y compensar el trabajo que lleva… que ya os digo que no es poco.

Estaré encantado de escuchar vuestros comentarios y sugerencias, tampoco dudéis en contactar conmigo para cualquier problema que os surja.

Y muchas gracias a Teresa por su ayuda 😉

 


Hacer exámenes con los Formularios de Google. Especial profes

9 febrero 2018

Algunas pruebas necesitan de un humano para evaluarlas, como una redacción, pero otras pueden automatizarse, como comprobar que se ha puesto la palabra correcta en un hueco o sumar los puntos de un examen tipo test y así liberar trabajo para el que sí somos imprescindibles.

Aquí os dejo el tutorial, creo que está muy detallado y que cualquiera puede seguirlo, en todo caso me tenéis a vuestra disposición para cualquier aclaración.

Aprovecho para contaros que yo dispongo sólo de 15 ordenadores para 30 alumnos, pero que me da tiempo a hacerlo en dos “tandas” en una misma clase.

No es una quimera y te ahorrará mucho trabajo mecánico.

Sé que otros usan Moodle, Edmodo y otras plataformas, esta aproximación tiene la ventaja de que no depende de ningún sistema externo, basta un navegador, ni de manejar los usuarios en ninguna plataforma. Pero vaya, si estás en un entorno donde te lo hacen todo más fácil, mejor.

Estoy muy a favor de compartir mi trabajo y de que quien no tenga recursos suficientes pueda acceder a material de calidad (una alegría y por eso se publica), por otra parte, tampoco hay nada malo que a quien le parezca pueda hacer una contribución de la cuantía que os parezca, para ayudar y compensar el trabajo que lleva… que ya os digo que no es poco.


Impresión 3D para profesores… y principiantes

8 octubre 2017

Esto de la impresión 3D no es fácil…

Pero puede serlo mucho más si te lo explican.

En este manual recojo de manera sencilla y directo al grano lo que necesitas saber para iniciarte en este mundo o para usarlo con tus alumnos, si eres profe.

Se agradecen mucho comentarios y sugerencias que podamos añadir.

Juntos somos más.

Documento actualizado el 08-10-2017

 


Lo Mejor Que Te Puede Pasar 17-05-2017

17 mayo 2017

¿Qué podemos hacer para mejorar nuestra seguridad informática?

Básico y sencillo… pero quizá aún no lo haces.


A %d blogueros les gusta esto: