IA sobre ruedas (Mblock + Machine Learning)
- Marcos
- 3 dic 2025
- 3 Min. de lectura
Actualizado: hace 2 días
Hace poquito me puse a investigar “Mblock”. Un IDE de programación en bloques, muy parecido a Scratch, que nos da la posibilidad - entre otras cosas - de trabajar con IA y modelos de “machine learning”. Recuerdo que un amigo (Alejandro) me lo mostró durante una reunión en su casa, combinándolo con la “Teachable Machine” y Arduino. Hicimos una máquina que reconoce objetos cotidianos y que, en virtud del objeto identificado, se encienda un determinado led. Simple, pero divertido. ¡No nos pidan más! ¡Era sábado y estábamos en una reunión entre amigos! Lo primordial era tomar mate, comer facturas y ponernos al tanto de la vida del otro (aunque siempre los profes terminamos hablando de la escuela) 😂.
Bueno. Como yo no tengo mi Arduino UNO a mano, me propuse a armarles una cosita un poco diferente. ¿Qué tal si hacemos que un personaje de Mblock realice diferentes acciones según lo que la webcam de la computadora esté viendo?
¡Bienvenidos a una nueva actividad!

“IA sobre ruedas” es un proyecto desarrollado con Mblock, en donde haremos que una combi/kombi avance y frene, según determinados movimientos que haremos con la mano. Para esto necesitaremos, sí o sí, una webcam. De lo contrario, profe de mi corazón, puedo sugerirte que realices un proyecto similar en "TM2 Scratch" utilizando, justamente, la extensión "TM2 Scratch" que sé que tiene la posibilidad de incorporar modelos de machine learning basados en audio (lo cual te permitiría sustituir los gestos de la mano por comandos de voz). Acá tendrías que usar también la "Teachable Machine" de Google parar poder armar el modelo.
Armando el modelo:
Perfecto. El modelo ya tiene identificados cuales son los gestos de “AVANZAR”, “FRENAR” y “NADA”. “¿NADA?” ¿Para qué querés un “NADA”, profe? Bueno… El “NADA” tiene un rol crucial en todo esto. Si no existiese ese “NADA”, el sistema siempre se decantará por “AVANZAR” o “FRENAR”; dependiendo de lo que se esté viendo a través de la webcam (osea, pese a que yo no esté haciendo ninguno de los dos gestos, el modelo siempre le dará más chance a alguno de los dos y lo ejecutará). Así, el “NADA”, el no-gesto, me permite que el personaje no interprete cosas que no le estoy ordenando. ¿Se entiende?
El modelo en acción:
¿Vieron? Avanza con el gesto de “avanzar”, frena con el gesto de “frenar” y no interfiere (no hace “NADA”) con las acciones previas ya iniciadas cuando yo paro de hacer alguno de dichos gestos (“avanzar” o “frenar”).
Código:

Pueden acceder al código ACÁ (Google Drive)
Cuando tocamos la banderita verde, situamos la combi/kombi en el inicio de la calle (coordenadas x e y), fijamos el estilo de rotación a "izquierda-derecha" (para que no se dé vuelta la combi/kombi al rebotar con el borde) y seteamos una variable que controlará si el vehículo está en movimiento o no ( 1 - Sí, 0 - No).
Si se detecta el movimiento de "avanzar", la combi/kombi se empieza a mover y, en caso de que ésta llegue a tocar el borde de la pantalla, rebotará en la otra dirección. A su vez, marcamos la variable "AVANZAR_ON" (el "ON" es por "encendido") en '1' para indicar que el vehículo se está moviendo. A este tipo de variables se les llama "flags".
Si se detecta el movimiento de "frenar", frenamos el vehículo y marcamos la variable "AVANZAR_ON" en '0' dado que un vehículo frenado, lógicamente, no está en moviento.
Si se detecta "NADA", osea que nosotros no estamos dando instrucciones explícitamente, vamos a preguntar: ¿Estaba el coche en movimiento cuando me puse a hacer "nada"? (¿AVANZAR_ON = 1?) Si la respuesta es sí, vamos a dejar que se siga moviendo dado que, explícitamente, no le pedimos al automovil que se frene. Caso contrario, si estaba frenado, lo dejaremos frenado dado que, explícitamente, tampoco le pedimos que avance.
Les mando un cálido abrazo, profes. ¡Qué estén bien!
¡Viva MBlock! ¡Viva Scratch! 💪🐼🐱
~ Marcos.


