Robótica educativa con Mbot Introducción Objetivos y contenidos Para hacer este curso hay que saber previamente unos contenidos mínimos de SCRATCH. No confundas mBot objetivo de este curso, basado en Arduino unos 125€ con matriz LED  https://www.robotix.es/es/mbotmBot2 basado en Cyberpi unos 200€ https://www.robotix.es/es/mbot-2 Objetivos Conocer el robot mBot de Makeblock, sus características y posibilidades Empezar a programar el robot dentro del entorno de software típico de programación educativa de Scracth Conocer los diferentes elementos de interacción del robot, tanto internos como externos y crear proyectos utilizándolos Realizar procesos de gamificación educativa Contenidos M1 Preparados... Programación basada en SCRATCH (mBlock) Amplia gama de sensores y actuadores Posibilidades de ampliación Comparativa con otros robots para educar el pensamiento computacional: calidad precio posibilidades Conexión con el ordenador, cuestiones técnicas y configuraciones antes de empezar. M2 Listos Módulos electrónicos integrados en la placa: Botón, LED RGB, Sensor luz, Sensor IR, Buzzer. Módulos electrónicos exteriores: Sigue-líneas, Sensor ultrasónico, Matriz Led M3 YA !!! Evitar obstáculos Seguir una línea Más cosas !! Pensamiento computacional Puedes ver que este robot tiene un un margen de edad y como su programación es por bloques (Scratch) su curva de aprendizaje es rápida y apropiada para muchas situaciones. Oferta de formación en Pensamiento computacional del Centro Aragonés de Tecnologías para la Educación. Tenemos un grupo Telegram Robótica Educativa en Aragón, si estás interesado en unirte, envía un mensaje por Telegram (obligatorio) a CATEDU 623197587 https://t.me/catedu_es y te añadimos en el grupo Robótica y accesibilidad 1.- Introducción Durante mucho tiempo la robótica fue patrimonio de personas y/o instituciones con alta capacidad económica (podían adquirir las placas con microcontroladores comerciales) y capacidad intelectual (podían entender y programar el funcionamiento de las mismas) siempre dentro de los límites establecidos por las marcas comerciales y lo que pudieran “desvelar” de su funcionamiento, vigilando siempre que la competencia no “robara” sus secretos y “copiara” sus soluciones. Todo esto saltó por los aires en torno a 2005 con la irrupción de un grupo de profesores y estudiantes jóvenes, que decidieron romper con esta dinámica, tratando de poner a disposición de su alumnado microcontroladores económicamente accesibles y que les permitieran conocer su funcionamiento, sus componentes, e incluso replicarlos y mejorarlos. Nacía Arduino y el concepto de Hardware Open Source. Detrás de este concepto se encuentra la accesibilidad universal. En un proyecto Open Source todo el mundo puede venir, ayudar y contribuir, minimizando barreras económicas e intelectuales. Arduino traslada al hardware un concepto ya muy conocido en el ámbito del software, como es el software open source o software libre. Software libre Cuando los desarrolladores de software terminan su creación, tienen múltiples posibilidades de ponerlo a disposición de las personas, y lo hacen con condiciones específicas especificadas en una licencia. Esta licencia es un contrato entre el creador o propietario de un software y la persona que finalmente acabará utilizando este software. Como usuarios, es nuestro deber conocer las condiciones y permisos con las que el autor ha licenciado su producto, para conocer bajo qué condiciones podemos instalar y utilizar cada programa. Existen muchas posibilidades de licencias: software privativo, comercial, freeware, shareware, etc.. Nos centraremos aquí en la de software libre. GNU (https://www.gnu.org) es una organización sin ánimo de lucro que puso una primera definición disponible de lo que es software libre: Software libre significa que los usuarios del software tienen libertad (la cuestión no es el precio). Desarrollaron el sistema operativo GNU para que los usuarios pudiesen tener libertad en sus tareas informáticas. Para GNU, el software libre implica que los usuarios tienen las cuatro libertades esenciales: 1. ejecutar el programa.2. estudiar y modificar el código fuente del programa.3. redistribuir copias exactas.4. distribuir versiones modificadas. En otras palabras, el software libre es un tipo de software que se distribuye bajo una licencia que permite a los usuarios utilizarlo, modificarlo y distribuirlo libremente. Esto significa que los usuarios tienen libertad de ejecutar el software para cualquier propósito, de estudiar cómo funciona el software y de adaptarlo a sus necesidades, de distribuir copias del software a otros usuarios y de mejorar el software y liberar las mejoras al público. El software libre se basa en el principio de la libertad de uso, y no en el principio de la propiedad. Esto significa que los usuarios tienen la libertad de utilizar el software de la manera que deseen, siempre y cuando no violen las condiciones de la licencia. El software libre es diferente del software propietario, que es el software que se distribuye con restricciones en su uso y modificación. El software propietario suele estar protegido por derechos de autor y solo se puede utilizar bajo los términos y condiciones especificados por el propietario del software. Recomendamos la visualización de este video para entender mejor el concepto. Más adelante, entorno a 2015, en Reino Unido, surgiría también la placa BBC Micro:bit, con la misma filosofía de popularizar y hacer accesible en este caso al alumnado de ese país la programación y la robótica. También hablaremos de ella. 2.- ARDUINO o LA ROBÓTICA ACCESIBLE Arduino es una plataforma de hardware y software libre. Hardware libre Esto significa que tanto la placa Arduino como el entorno de desarrollo integrado (IDE) son de código abierto. Arduino permite a los usuarios utilizar, modificar y distribuir tanto el software como el hardware de manera libre y gratuita, siempre y cuando se respeten las condiciones de las licencias correspondientes. El hardware libre es un tipo de hardware cuya documentación y diseño están disponibles de manera gratuita y libre para su modificación y distribución. Esto permite a los usuarios entender cómo funciona el hardware y adaptarlo a sus necesidades, así como también crear sus propias versiones modificadas del hardware. Arduino surge como solución al elevado precio de los microcontroladores allá por el año 2005. En el ámbito de la educación, los microcontroladores solo se utilizaban en la etapa universitaria, y su coste era tan elevado que muchos proyectos de fin de carrera se quedaban únicamente en prototipos virtuales ya que las universidades no podían proveer a cada estudiante con un microprocesador, contando además que en el propio proceso de experimentación lo más habitual era que una mala conexión hiciera que se rompieran. Otro gran inconveniente era la dificultad de la programación. Cada fabricante entregaba su manual de programación, lo que hacía que de unos a otros no hubiera un lenguaje estándar, y la consecuente dificultad de interpretación. Además, su programación era a bajo nivel en lenguaje máquina. Generar una simple PWM requería una ardua y minuciosa secuenciación que podía llevar varias horas hasta conseguir el resultado deseado. Por este motivo, el enfoque de Arduino desde el principio fue ser Open Source tanto en hardware como en software. El desarrollo del hardware fue la parte más sencilla. Orientado a educación, sufre algunas modificaciones frente a los microprocesadores existentes para hacer más fácil su manejo y accesibilidad a cualquier sensor o actuador. El mayor esfuerzo se entregó en todas las líneas de código que hacían posible que ya no hubiera que programar a bajo nivel gracias al IDE de Arduino que incluía bibliotecas y librerías que estandarizaban los procesos y hacían tremendamente sencillo su manejo. Ahora el alumnado para mover un motor, ya no tenía que modificar las tramas de bits del procesador una a una, sino que bastaba con decir que quería moverlo en tal dirección, a tal velocidad, o a equis grados. Acabábamos de pasar de unos costes muy elevados y una programación muy compleja a tener una placa accesible, open source y de bajo coste que además hacía muy accesible su programación y entendimiento, características fundamentales para su implantación en educación, hasta tal punto que su uso ya no era exclusivo de universidades, sino que se extiende a la educación secundaria. Este hecho es fundamental para el desarrollo del Pensamiento Computacional en el aula observándose que su accesibilidad y beneficios son tales, que alcanzan a centros con alumnado de toda tipología como la aplicación del pensamiento computacional y robótica en aulas con alumnos de necesidades especiales. Una vez más, aparece el concepto de accesibilidad asociado a esta filosofía Open Source. A este respecto, recomendamos la lectura de este interesante blog, que tiene por título: ROBOTIQUEAMOS...” Experiencia de aproximación a la robótica en Educación Especial (CPEE ÁNGEL RIVIÈRE). También recomendamos los trabajos robótica en Educación Especial (CPEE ÁNGEL RIVIÈRE):  http://zaragozacpeeangelriviere.blogspot.com/search/label/ROB%C3%93TICA Igualmente, la aparición de Arduino supone una gran facilidad para la aplicación de la robótica y la programación en la atención temprana, donde son numerosas sus aplicaciones desde ayudar a mitigar el déficit de atención en jóvenes autistas, hasta ayudar a socializar a los alumnos con dificultades para ello, o ayudar a alumnos de altas capacidades a desarrollar sus ideas. Por otro lado su accesibilidad económica lo ha llevado a popularizarse en países de todo el mundo, especialmente en aquellos cuyos sistemas educativos no disponen en muchas ocasiones de recursos suficientes, lo que supone en la práctica una democratización del conocimiento y superación de brecha digital. Filosofía del Arduino ver vídeo Arduino y su IDE son la primera solución que aparece en educación con todas las ventajas que hemos enumerado, y esto hace que todos los nuevos prototipados y semejantes tengan algo en común, siempre son compatibles con Arduino Para entender bien la filosofía de Arduino y  el hardware libre, os recomendamos este documental de 30 minutos. Arduino the Documentary Scratch: software libre para el desarrollo del pensamiento computacional Scratch es un lenguaje de programación visual desarrollado por el grupo Lifelong Kindergarten del MIT Media Lab. Scratch es un software libre. Esto significa que está disponible gratuitamente para todos y que se distribuye bajo una licencia de software libre, la Licencia Pública General de Massachusetts (MIT License). Esta licencia permite a los usuarios utilizar, modificar y distribuir el software de manera libre, siempre y cuando se respeten ciertas condiciones. Entre otras cosas, la licencia de Scratch permite a los usuarios utilizar el software para cualquier propósito, incluyendo fines comerciales. También permite modificar el software y distribuir las modificaciones, siempre y cuando se incluya una copia de la licencia y se indique que el software ha sido modificado. En resumen, Scratch es un software libre que permite a los usuarios utilizar, modificar y distribuir el software de manera libre y gratuita, siempre y cuando se respeten las condiciones de la licencia. De hecho, gracias a que está licenciado de esta forma, han surgido decenas de variaciones de Scratch para todo tipos de propósitos, eso sí, siempre educativos y relacionados con las enseñanzas de programación y robótica 3. BBC micro:bit y la Teoría del Cambio BBC micro:bit, a veces escrito como Microbit o Micro Bit, es un pequeño ordenador del tamaño de media tarjeta de crédito, creado en 2015 por la BBC con el fin de promover el desarrollo de la robótica y el pensamiento computacional entre la población escolar del Reino Unido. Actualmente su uso está extendido entre 25 millones de escolares de 7 a 16 años de más de 60 países. Tarjeta BBC micro:bit V1. Fuente: https://microbit.org. CC BY-SA 4.0. Aunque el proyecto fue iniciado por la BBC, su desarrollo fue llevado a cabo por 29 socios tecnológicos de primera línea. Por ejemplo, la implementación del Bluetooth integrado en la tarjeta corrió a cargo de la fundación propietaria de la marca, Bluetooth SIG, una asociación privada sin ánimo de lucro. El hardware y el software resultantes son 100% abiertos, y están gestionados por una fundación sin ánimo de lucro que comenzó a funcionar en el año 2016, la Micro:bit Educational Foundation. La fundación basa sus actuaciones en su Teoría del Cambio, Teoría del cambio y más sobre microbit Teoría del cambio puede resumirse en tres principios: El convencimiento de que la capacidad de comprender, participar y trabajar en el mundo digital es de vital importancia para las oportunidades de vida de una persona joven. La necesidad de emocionar y atraer a las personas jóvenes por medio de BBC micro:bit, especialmente a  las que podrían pensar que la tecnología no es para ellas. Diversificar a los estudiantes que eligen las materias STEM a medida que avanzan en la escuela y en sus carreras, para hacer crecer una fuente diversa de talento, impulsando la equidad social y contribuyendo a crear una tecnología mejor. Para desarrollar sus principios, la fundación trabaja en tres líneas de acción: El desarrollo de hardware y software que contribuyan a despertar el entusiasmo en las personas jóvenes hacia la tecnología y hacia las oportunidades que presenta. La creación de recursos educativos gratuitos y fáciles de usar que permitan al profesorado enseñar de forma atractiva y creativa. La colaboración con entidades asociadas que compartan una misma visión para ofrecer programas educativos de alto impacto en todo el mundo. Uno de los objetivos de la Micro:bit Educational Foundation es llegar a 100 millones de escolares en todo el mundo. En correspondencia con las líneas de acción y con los principios expuestos, el sistema resultante es muy económico: tanto las placas como los accesorios producidos por terceras empresas tienen un precio muy contenido. Además, dado el carácter abierto del proyecto, están disponibles algunos clones totalmente compatibles, como Elecrow Mbits o bpi:bit. Estos clones son incluso más potentes y económicos que la placa original. El universo micro:bit destaca por su alta integración de software y hardware: basta un clic de ratón para cargar las librerías necesarias para que funcione cualquier complemento robótico, como sensores, pantallas, tarjetas de Internet de las Cosas, robots, casas domóticas, etc. La programación de la placa se realiza desde un ordenador a través de un navegador cualquiera, estando disponibles 12 lenguajes de programación. De nuevo, por ser un sistema abierto, existen múltiples soluciones de programación, aunque las más común es MakeCode. Captura de pantalla del editor MakeCode, https://makecode.microbit.org/#. El sitio web MakeCode permite programar con bloques y también en Python y en Java, traduciendo de un lenguaje a otro instantáneamente. No se necesita ningún registro en la plataforma para poder programar. Los programas también pueden guardarse descargados en el ordenador compilados en código de máquina. Al subir de nuevo el programa al editor, se realiza una decompilación automática al lenguaje de bloques, Python o Java. Los programas guardados en código de máquina se pueden cargar directamente en micro:bit, que en el escritorio de un ordenador se maneja como una simple unidad de memoria USB. MakeCode contiene además múltiples recursos como tutoriales, vídeos, fichas de programación, cursos para el profesorado, ejemplos y propuestas de proyectos y experimentos, todo ello en varios idiomas y clasificado por edades desde los 7 años. Otra solución muy usada para programar micro:bit es MicroPython, creada por Python Software Foundation, otra organización sin ánimo de lucro. MicroCode permite que los más pequeños, a partir de los 6 años de edad, programen micro:bit mediante un sistema de fichas dispuestas en líneas de acción. Están disponibles un tutorial introductorio en 20 idiomas, una guía del usuario y muchos ejemplos. El proyecto es de código abierto. Micro:bit también es programable en Scratch con sólo añadir una extensión al editor. Todos los entornos de desarrollo descritos disponen de un simulador de micro:bit, por lo que ni siquiera resulta necesario disponer de una tarjeta física para aprender a programar. Una vez realizada la programación, la placa y sus complementos pueden funcionar desconectados del ordenador por medio de un cargador de móvil, una batería externa o un simple par de pilas alcalinas. Versiones y características de micro:bit A pesar de su pequeño tamaño, micro:bit es un sistema potente. Existen dos versiones de la placa. La más moderna, llamada micro:bit V2, tiene las siguientes características: Procesador de 64 MHz. 512 KB de RAM Flash y 128 KB de RAM. Matriz de 5 x 5 LED rojos. Dos pulsadores mecánicos y un tercer pulsador de apagado y reset. Un pulsador táctil. Micrófono y altavoz. Acelerómetro y brújula. Sensores de luz y de temperatura. Comunicación con otras placas por Bluetooth de bajo consumo. Alimentación a 3 V o por USB. 25 pines de entradas y salidas para conectar motorcitos, sensores, placas de Intenet de las Cosas, robots y, en general, cualquier otro tipo de accesorio. 200 mA de intensidad de corriente disponibles en las salidas para alimentar accesorios. 4.- LA IMPORTANCIA DEL OPEN SOURCE / CÓDIGO ABIERTO EN EDUCACIÓN La creación, distribución, modificación y redistribución del hardware y software libre así como su utilización, están asociados a una serie de valores que deberían ser explicados en la escuela a nuestros alumnos para dar una alternativa a la versión mercantilista de que cualquier creación es creada para obtener beneficios económicos. En GNU, pusieron especial énfasis en la difusión del software libre en colegios y universidades, promoviendo una serie de valores fundacionales: Valores GNU  Compartir    El código fuente y los métodos del hardware y software libre son parte del conocimiento humano. Al contrario, el hardware software privativo es conocimiento secreto y restringido. El código abierto no es simplemente un asunto técnico, es un asunto ético, social y político. Es una cuestión de derechos humanos que la personas usuarias deben tener. La libertad y la cooperación son valores esenciales del código abierto. El sistema GNU pone en práctica estos valores y el principio del compartir, pues compartir es bueno y útil para el progreso de la humanidad. Las escuelas deben enseñar el valor de compartir dando ejemplo. El hardware y software libre favorece la educación pues permite compartir conocimientos y herramientas. Responsabilidad social      La informática, electrónica, robótica... han pasado a ser una parte esencial de la vida diaria. La tecnología digital está transformando la sociedad muy rápidamente y las escuelas ejercen una influencia decisiva en el futuro de la sociedad. Su misión es preparar al alumnado para que participen en una sociedad digital libre, mediante la enseñanza de habilidades que les permitan tomar el control de sus propias vidas con facilidad. El hardware y el software no debería estar bajo el poder de un desarrollador  que toma decisiones unilaterales que nadie más puede cambiar. Independencia       Las escuelas tienen la responsabilidad ética de enseñar la fortaleza, no la dependencia de un único producto o de una poderosa empresa en particular. Además, al elegir hardware y software libre, la misma escuela gana independencia de cualquier interés comercial y evita permanecer cautiva de un único proveedor. Las licencias de hardware y software libre no expiran Aprendizaje         Con el open source los estudiantes tienen la libertad de examinar cómo funcionan los dispositivos y programas y aprender cómo adaptarlos si fuera necesario. Con el software libre se aprende también la ética del desarrollo de software y la práctica profesional. Ahorro         Esta es una ventaja obvia que percibirán inmediatamente muchos administradores de instituciones educativas, pero se trata de un beneficio marginal. El punto principal de este aspecto es que, por estar autorizadas a distribuir copias de los programas a bajo costo o gratuitamente, las escuelas pueden realmente ayudar a las familias que se encuentran en dificultad económica, con lo cual promueven la equidad y la igualdad de oportunidades de aprendizaje entre los estudiantes, y contribuyen de forma decisiva a ser una escuela inclusiva. Calidad         Estable, seguro y fácilmente instalable, el software libre ofrece una amplia gama de soluciones para la educación. Para saber más En los años 90, era realmente complicado utilizar un sistema operativo Linux y la mayoría de la cuota del mercado de los ordenadores personales estaba dominada por Windows. Encontrar drivers de Linux para el hardware que tenía tu equipo era casi una quimera dado que las principales compañías de hardware y de software no se molestaban en crear software para este sistema operativo, puesto que alimentaba la independencia de los usuarios con respecto a ellas mismas. Afortunadamente, y gracias a la creciente presión de su comunidad de usuarios, estas situaciones pertenecen al pasado, y las compañías fabricantes de hardware han tenido que variar el rumbo. Hoy en día tenemos una gran cantidad de argumentos en los que nos podemos basar para dar el salto hacia cualquier sistema operativo basado en Linux. Tal y como podemos leer en educacionit.com, podemos encontrar las siguientes ventajas: Es seguro y respeta la privacidad de los usuarios: Aunque hay compañías linuxeras, como Oracle, Novell, Canonical, Red Hat o SUSE, el grueso de distribuciones y software Linux está mantenido por usuarios y colectivos sin ánimo de lucro. De esta forma, podemos confiar en que una comunidad que tiene detrás millones de usuarios, pueda validar el código fuente de cualquier de estas distribuciones, asegurándonos la calidad de las mismas, compartir posibles problemas de seguridad, y sobre todo, estar bien tranquilos con la privacidad y seguridad de nuestros datos e información personal, aspecto que debería ser crítico y determinante a la hora de trabajar con los datos de menores de edad en las escuelas y colegios. Es ético y socialmente responsable: La naturaleza de Linux y su filosofía de código abierto y libre hace posible que cualquier usuario con conocimientos pueda crear su propia distribución basada en otras o probar las decenas de versiones que nos podemos encontrar de una distribución Linux. Este es el caso de Ubuntu por ejemplo. Gracias a esta democratización de los sistemas operativos, incluso han podido aparecer en nuestras vidas nuevos dispositivos basados en software y hardware libre como Arduino y Raspberry Pi. Es personalizable: el código abierto permite su estudio, modificación y adaptación a las necesidades de los diferentes usuarios, teniendo así no un único producto sino una multiplicidad de distribuciones que satisfacen las necesidades de los diferentes colectivos a los que se dirijan. Especialmente útiles son las distribuciones educativas libres, que pueden ser adaptadas a las necesidades de las escuelas. Está basado en las necesidades de los usuarios y no en las de los creadores de hardware y software Es gratis. La mayoría de las distribuciones Linux son gratuitas y de libre descarga Es fácil de usar. Una de las barreras que durante años ha evitado a muchos usar Linux es su complejidad. Las distribuciones orientadas al consumo doméstico cumplen los estándares de simplicidad y necesidades que cualquier usuario sin conocimientos de tecnología pueda necesitar. El entorno gráfico es sencillo, intuitivo, e incluso se puede customizar para que se pueda parecer a los más conocidos como Windows y MacOS. Además, vienen con la mayoría de aplicaciones que cualquier usuario puede necesitar: ofimáticas, edición de audio y vídeo y navegación por Internet. Es suficiente. Tiene su propio market de aplicaciones. Como el resto de sistemas operativos ya sea para ordenadores o dispositivos móviles, también podemos encontrar un lugar único donde poder descargar cientos de aplicaciones para todos los gustos y necesidades. Por estas razones, el software libre se ha expandido por toda la comunidad educativa en los últimos años de manera exponencial. Un buen ejemplo de lo que estamos hablando es Bookstack, este sistema de edición de contenidos para cursos que utiliza Aularagón así como el uso de Moodle como plataforma de enseñanza y aprendizaje. En cuanto a sistema operativo para ordenadores, en Aragón disponemos de nuestra propia distribución Linux: Vitalinux EDU. Tal y como podemos leer desde su página web: Vitalinux EDU (DGA) es la distribución Linux elegida por el Gobierno de Aragón para los centros educativos. Está basada en Vitalinux, que se define como un proyecto para llevar el Software Libre a personas y organizaciones facilitando al máximo su instalación, uso y mantenimiento. En concreto Vitalinux EDU (DGA) es una distribución Ubuntu (Lubuntu) personalizada para Educación, "tuneada" por los requisitos y necesidades de los propios usuarios de los centros y adaptada de forma personalizada a cada centro y a la que se ha añadido una aplicación cliente Migasfree. De ésta forma, obtenemos: Un Sistema Ligero. Permite "revivir" equipos obsoletos y "volar" en equipos modernos. Esto garantiza la sostenibilidad de un sistema que no consume recursos de hardware innecesariamente ni obliga a la sustitución del hardware cada poco tiempo en esa espiral de obsolescencia programada en la que se ha convertido el mercado tecnológico. Facilidad en la instalación y el uso del sistema mediante programas personalizados. Un Sistema que se adapta al centro y/o a cada aula o espacio, y no un centro que se adapta a un Sistema Operativo. Gestión de equipo y del software de manera remota y desatendida mediante un servidor Migasfree. Inventario de todo el hardware y software del equipo de una forma muy cómoda. Soporte y apoyo de una comunidad que crea, comparte e innova constantemente. 1. Preparados ¿Qué es mBot? No confundas mBot objetivo de este curso, basado en Arduino unos 125€ con matriz LED  https://www.robotix.es/es/mbotmBot2 basado en Cyberpi unos 200€ https://www.robotix.es/es/mbot-2 mBot es un robot educativo de la empresa Makeblock, que persigue los siguientes objetivos: El objetivo principal es desarrollar el pensamiento computacional en el alumnado motivado por la ejecución de órdenes en algo físico como es el robot. El robot está diseñado para su uso escolar: resistente y económico Basado en hardware libre y software libre El objetivo 1 da como resultado que el kit de mBot sólo permite una configuración posible más los complementos que tiene el kit que proporciona el kit de CATEDU, no hay tiempos en construcción, sólo en programación, esto es otra filosofía diferente frente a otras alternativas como los robots de LEGO, que el tiempo en construcción y creatividad es importante. No queremos defender qué alternativa es buena y cual mala, sino que el docente tiene que decidir qué objetivos quiere perseguir, según lo que quiere tiene que decidir qué producto es el adecuado. El objetivo 2 No podemos hablar de este objetivo pues actualmente este equipo no se fabrica Las características y precios de mBot 2.4G se puede ver en este enlace. El objetivo 3 el hardware libre está materializado en que se basa en la placa ARDUINO, que lo han personalizado con más sensores y conexiones rápidas RJ11 (la clavija de teléfono fijo). El software libre en este robot está en el programa mBlock que está basado en el software de programación Scracth, diseñado para desarrollar el pensamiento computacional en los niños, ampliamente usado en todo el mundo, el cual le añaden unas librerías propias del robot, dando como resultado mBlock. El software mBlock es el resultado de instalar el firmware de la placa Arduino, instalar las librerías del robot en el Scracth, actualizar, etc... recomendamos lo práctico: Descargar el mBlock directamente que lo tiene todo ya preparado.Dentro de esta filosofía de libertad, los agujeros son compatibles con LEGO ampliando las posibilidades. Fuente: http://makeblock.es/ ¿Se puede uno fabricar un "mBot"? SI, pues prácticamente es un Arduino con motores y sensores bastante estándares, y encima el programa mBlock es gratis, lo único es que no te saldrá tan perfecto. ¿Cómo se hace? para esto ya hay un curso en Aularagon MCLON https://libros.catedu.es/books/mclon-con-nanoarduino y un grupo en Twitter: @mClonRobot ¿Se puede simular? ¿Qué no tienes robot? no pasa nada, hay buenos simuladores https://scratch.mit.edu/projects/788113358/editor/mBot y mBlock Requisitos de conceptos previos Es necesario haber realizado una FORMACIÓN BÁSICA EN SCRATCH la formación exclusiva de Scratch en Aularagón es suficiente. Requisitos de material Necesitas el kit de robótica mBot de MakeBlock que presta CATEDU : mBot con mochila de comunicación 2.4G. (actualmente solo ser vende la versión con Bluetooth) Matriz de LEDS 8x16 donde aumentaremos la capacidad de interacción de nuestro simpático mBot. Requisitos de software y Hardware Instalar el mBlock en la página oficial de descarga mBlock http://www.mblock.cc/. Disponible en diversos sistemas operativos y su instalación no presenta ningún problema. mBlock for PC: aconsejado para el aula, y recomendamos conexión 2.4G: Windows, Mac, Linus, ChromeOS,. mBlock for Mobile, que no aconsejamos para el aula porque necesita Bluetooth y se produce interferencias: Android, iPad . Recomendamos usar la versión descargada y así no usar Internet, tenemos versión Windows y versión Mac, para Linux ver Robótica con Vitalinux Hay que destacar que en Windows, la primera vez que se quiere comunicar con el robot salta el Firewall de Windows bloqueándolo, pero mostrando un diálogo si se permite o no esta comunicación externa, clickar en PERMITIR. Se actualiza muy a menudo, mejorando cada vez más sus prestaciones, lo que implica que su descarga es cada vez más pesada, más de cien megas, pero después prescinde de Internet. El programa es muy sencillo si estás acostumbrado al SCRATCH : Fuente: http://makeblock.es/ Qué curioso ! mBlock está basado en Scratch y simplemente ha añadido extensiones para trabajar mBot, pero también ha añadido extensiones para trabajar Arduino, no es capricho, es porque mBot es un Arduino con dos motores y sensores. En CATEDU hemos experimentado distintas formas de programar el Arduino de forma sencilla para alumnos de primaria y encontramos mBlock como el mejor programa para hacerlo. Nuestros cursos de -Arduino utilizamos mBlock. Un vistazo a mBlock en la página de Robotopia : Arduino: El corazón de mBot El kit es fácil de montar (instrucciones), pero si nos fijamos el corazon es la placa de Arduino: Fuente: http://makeblock.es/ Nos tenemos que fijar en estos componentes de la placa: Fuente: http://makeblock.es/ Los R25 donde montaremos los diferentes componentes externos, tienen colores para indicar qué componentes son compatibles. Transmisor de Infra Rojos para interactuar con el mando a distancia, un elemento de interacción, pero ojo: común a todos los robots que estén en el aula Botón que permitirá interactuar Puertos de motor, donde conectaremos los motores de las ruedas. Buzzer o pequeño altavoz, no puede hacer maravillas, sólo tonos simples RGB Led o luces de los tres colores básicos. Light Sensor o sensor de luz, que nos servirá como otra vía de interacción. También tiene una conexión USB para conectarse con el ordenador con un cable. Esta conexión USB a la vez  puedes usarse como alimentación. Es una opción a considerar si se nos ha agotado las pilas y queremos seguir programando. O si quieres que se mueva el robot sin cable, y te has quedado sin baterías y no tienes pilas, pon un powerbank en ese puerto y a funcionar. La conexión USB funciona también como cargador si en vez de pilas usamos la batería de litio que hay debajo de la placa Para que entiendas qué diferencia hay entre una placa Arduino y esta placa de mBot, esta placa es un Arduino con ... Algunos elementos integrados: sensor luz, botón, transmisor IR, buzzer, leds... Tiene puertos RJ25 para conectar elementos exteriores fácilmente. Componentes exteriores Los componentes exteriores no importantes a la hora de programar del Kit son: Dos motores 200rpm 6V conectados a las ruedas. Mochila de comunicación 2.4G que permite conectarse con el ordenador de forma inalámbrica. Componentes exteriores importantes a la hora de programar y que trataremos en este curso son: Sensor de Línea para utilizarlo por ejemplo como sigue líneas. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 2. Sensor de distancia por ultrasonidos para utilizarlo por ejemplo como evita-obstáculos. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 3. Matriz de leds 8x16 para expresar símbolos y caracteres. Este componente no está en el kit standard mBot, pero sí en el que presta CATEDU. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 1. Puedes elegir montar estos componentes en otros puertos, simplemente tienes que tenerlo en cuenta en la programación. Si utilizas el kit de Catedu TE PEDIMOS NO MODIFICAR LOS PUERTOS PARA NO TENER PROBLEMAS CON LOS SIGUIENTES COMPAÑEROS QUE UTILICEN EL EQUIPO. Fuente de las imágenes: http://makeblock.es/Programación mBlock mBlock es un programa especializado en el manejo de los robots de Makeblock (ver cursos de mBot en Aularagon), estos robots al principio estaban basados en Arduino por lo tanto este programa permitía programar Arduino. Actualmente permiten muchas arquitecturas de placas. Se puede descargar gratuitamente en https://www.mblock.cc/en/download/, actualmente esta la versión 5, aunque verás que algunos vídeos de este curso enseñan la versión 3 pero las capturas se realizan en la versión actual Dos formas de programar mBlock OPCIÓN Programación en vivo mBlock (y los otros S4A, Snap4Arduino... también) permite la programación en vivo Es decir, que el programa reside en el ordenador, y en la placa hay instalado un Firmware para ir escuchando y ejecutando lo que manda el ordenador.  VENTAJAS Te permite interactuar el Arduino y el ordenador, por ejemplo podemos hacer que cuando el detector de humedad detecte agua, que salga por pantalla un fondo acuático, o que pulsando una tecla del teclado se encienda un LED en la placa... DESVENTAJAS hay que cargar dentro del Arduino el Firmware exclusivo de mBlock para que Arduino haga caso a mBlock Hay que tener nuestro ordenador como intermediario, se come los recursos y puede que nuestro programa ne la placa vaya lento Por supuesto necesita tener ordenador conectado al Arduino, o sea, trabaja como un esclavo del ordenador. OPCIÓN Programación cargar a la placa Todos los programas editores de Arduino (tanto los que programan con código como el Arduino IDE) como los editores de programas gráficos en bloque (mBlock, Snap4Arduino, Arduinoblocks, ...) permiten cargar el programa en la placa.  Las ventajas y desventajas son las opuestas de trabajar en vivo. MÉTODOS PARA INTERACTUAR CON LOS OBJETOS En mBlock 3.0 la comunicación era inmediata, fíjate en este script de una alarma: Mezcla en el mismo script: órdenes específicas de la placa arduino (set digital...) órdenes específicas del objeto que exista en mBlock (por defecto el oso panda) say .... switch costume to .... órdenes del fondo switch backdrop to ... Con mBlock 5.0 YA NO SE PUEDE, pero tenemos unos trucos MÉTODO UTILIZAR VARIABLES GLOBALES                                                                           Se pueden crear variables, en cualquier objeto, y las lee cualquier objeto, Este método se utiliza con la opción EN VIVO De esta manera si creamos una variable frase para todos los objetos: Podemos usarla en el robot y el programa del objeto que queramos, en este caso el oso panda lo puede visualizar MÉTODO UTILIZAR MENSAJES                                                                                   Cualquier objeto tiene a su disposición enviar mensajes a los otros Este método se utiliza con la opción EN VIVO MÉTODO EXTENSIÓN BROADCAST = TRANSMITIR MENSAJES                                   Es parecido al anterior, hay que ir al + que hay abajo para instalar extensiones Buscar la extensión "Broadcast" e instalarla  Se instala primero descargándola con el + aquí Y luego añadir una vez descargada Entonces aparecen unas nuevas instrucciones Este método se utiliza con la opción EN CARGA y se instalan unas instrucciones extras parecidas a las anteriores pero más potentes En el mismo mensaje podemos transmitir valores asociados Funciona EN MODO CARGA Esto es muy útil pues hay instrucciones que sólo se pueden utilizar en modo CARGA, de esta manera podemos pasar valores de la placa electrónica a los objetos del ordenador (oso panda o lo que sea) simplemente teniendo conectado la placa con el ordenador. El resto de objetos trabajan en modo vivo, es decir, si cambias un bloque, automáticamente se ven los efectos A lo otros objetos TAMBIÉN hay que instalar la extensión BROADCAST DESVENTAJA no se pueden transmitir mensajes de objetos a la placa. Sólo de la placa a los objetos Preparando mBlock Descargamos y ejecutamos mBlock desde la página de descargars de mBlock https://www.mblock.cc/en/download/ Podemos configurar el lenguaje Vamos a Dispositivos, vemos pues como mBlock esta preparado para controlar distintos tipos de robot, destacamos Microbit, Arduino, .... bueno, al grano, vamos a añadir mBot Podemos quitar los dispositivos que no sean mBot pues no vamos a trabajar con ellos Si lo marcamos mBot pulsando en la estrella, ya saldrá predeterminado. IMPORTANTE: ACTUALIZAR FIRMWARE P.-Enciendes tu mBot, y de repente ¡¡se pone a hacer cosas !!! pero si no le programado aún  nada!!! ¿Cómo es posible?R.-Seguramente tu equipo mBot, el anterior alumno ha dejado un programa dentro del mBot ACTUALIZAREMOS EL FIRMWARE SIEMPRE QUE MBOT NO RESPONDA A MBLOCK ¿Cómo se hace? Conectamos mBot con el cable USB al ordenador y encenderloFuente el autor Pulsamos en mBlock "CONECTAR" En el diálogo seleccionamos USB y de todos los puertos USB seleccionamos el que esta conectado (suele ser el que propone) y CONECTAR Una vez que la conexión ha sido un éxito, le damos a ACTUALIZAR Sale un diálogo para elegir qué firmware quieres, si el de fábrica o el que existe en Internet, no hay mucha diferencia de versiones Sale un mensaje de que se ha actualizado y advierte que SE VA DESCONECTAR EL DISPOSITIVO Volvemos a conectar el dispositivo, es decir, repetimos los pasos PASO 2 Y PASO 3 PROBARLO vamos al dispositivo mBot, nos aseguramos que esta en modo EN VIVO, elegimos una instrucción sencilla, por ejemplo vamos a LUZ Y SONIDO elegimos ENCIENDE LED TODOS EN ROJO DURANTE 1 SEGUNDO damos DOS CLICKS en esa instrucción y mBot tiene que responder EN VIVO ¿Eso qué es? DOS MODOS DE FUNCIONAR MBOT Hay que tener en cuenta que mBot tiene dos formas de funcionar: EN VIVO Dependiendo del ordenador, es decir, el programa reside en el PC y obedece mBot al PC y dos formas de conectarte: Conexión inalámbrica 2.4G (también puede ser Bluetooth, red.. pero no lo vamos a dar aquí) Conexión por cable USB CARGAR o sea, trabajar Independiente del ordenador, el programa está cargado en el mBot Sólo por Conexión por cable USB ¿Qué hace mBot EN VIVO dependiendo del ordenador? En el modo EN VIVO, mBot obedece a un programa interno (Firmware) que es el que hemos puesto al ACTUALIZAR EL FIRMWARE Este Firmware lo que le ordena a la placa Arduino es: Haz caso a las instrucciones del mando de IR ver figura de abajo Haz caso a la conexión con el ordenador y a las instrucciones que vengan por ahí Esto tiene su importancia: El punto 1 te dice que no puedes hacer un programa con el Mando IR pues prevalece el del Firmware, por lo tanto no se puede utilizar en tu programación el mando IR en el modo "dependiendo del ordenador" pero sí en el modo "independiente del ordenador". El punto 2 te dice que tus programas se ejecutan en el ordenador y se lo comunica al robot luego: Si desconectamos el ordenador o la conexión, dejan de funcionar, o mejor dicho se mBot se queda atascado en la última instrucción ejecutada. Tus programas van un poco lentos, pues dependen del ordenador. El mismo programa lo pasas al modo "independiente del ordenador" y va mucho más rápido. Instrucciones del mando IR en el firmware que viene por defecto (modo dependiendo del ordenador): Fuente de las imágenes: http://makeblock.es/ AL ACTUALIZAR EL FIRMWARE ESTAS DICIENDO AL MBOT QUE TRABAJE EN VIVO EN VIVO conexión 2.4 Bluetooth o cable Tenemos dos opciones de comunicarnos con mBot, inalámbrica 2.4G o con cable, aconsejamos la primera: Conexión inalámbrica 2.4G La conexión inalámbrica se realiza a través de la mochila 2.4G. Insertamos el pincho USB de la mochila (no necesita ningún driver, el ordenador lo interpreta como un ratón inalámbrico). Pincho USB 2.4G fuente Makeblock.es Cada pincho va asociado a un robot (o mejor dicho: a la mochila 2.4G están emparejados, si el led de la mochila parpadea es que ha perdido conexión, podemos emparejarlo haciendo una pulsación larga en el botón que hay en la mochila 2.4G. Mochila 2.4G fuente makeblock.es y conectamos el robot con el programa en Conectar- 2.4G Serial- Conectar Si sale que esta conectado 2.4G ya podemos trabajar SOLO EN VIVO Podemos probarlo haciendo dos clicks a la instrucción de encender led rojo durante un segundo Conexión por cable Existe la posibilidad de conexión por cable, útil por ejemplo si se ha perdido el pincho, seguir programando hasta la espera de la compra de otro, o por ejemplo si se agotan las pilas, por cable el robot puede seguir funcionando. Evidentemente con la pérdida de libertad de movilidad. No hay que olvidar que si optamos por la conexión Serial por el puerto USB, TENEMOS QUE DESCONECTAR LA OTRA CONEXIÓN INALÁMBRICA: CARGAR La opción de cargar tu programa en el mBot se hace simplemente Conectar el mBot por CABLE como lo hemos visto anterirormente Realizas tu programa Pulsa CARGAR Pulsa SUBIR y el programa va al mBot ATENCION, UNA VEZ CARGADO EL PROGRAMA, TE HAS "CARGADO" EL FIRMWARE por lo tanto si quieres volver a trabajar con el mBot EN VIVO tienes que volver a ACTUALIZAR EL FIRMWARE tal y como lo hemos vistoEN VIVO vs CARGAR VENTAJAS EN VIVO Se trabaja y se programa MUY FÁCILMENTE  simplemente se ponen instrucciones en la pantalla de bloques y se van ejecutando en vivo una ventaja muy considerable PUEDES INTERACTUAR CON EL ORDENADOR Y CON LOS OBJETOS esto da mucha libertad puedes con el teclado, ratón dar órdenes al robot puedes visualizar en la pantalla del ordenador lo que lee mBot (por ejemplo la distancia del sensor US) puedes que los objetos (el panda o lo que sea...) interactúe con la opción CARGAR puedes interactuar con los objetos si utilizas la extensión BROADCAST ver https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock DESVENTAJAS EN VIVO Dependes del ordenador, es decir, el ordenador tiene que estar encendido lentitud, las órdenes van y vienen, no es lo mismo que si se ejecuta desde el mismo mBot, programas que implican rapidez, como el sigue líneas no funcionan bien en vivo, al menos que bajes la velocidad de los motores. Cargar un programa tiene las ventajas y desventajas al revés de en vivo OJO una vez que le das a CARGAR si quieres trabajar EN VIVO tienes que ACTUALIZAR EL HARDWARE A JUGARRRRR !!!! ¿Lo probamos? venga!!! monta este sencillo programa. Las flechas te indican dónde está cada instrucción : Lo tienes aquí https://planet.mblock.cc/project/2999030 y como decía Joaquín Prat en el precio justo A jugaaarr !! Fuente http://lossesentas-mispersonajes.blogspot.com.es/2015/08/joaquin-prat.html (si entiendes esto último, es que tienes la edad óptima para aprender a programar ;) PONLE MÁS DIVERSIÓN Pega en el mBot con cinta aislante una varilla sujeta globos, pon en un extremo un globo y en el otro extremo una aguja de coser también con cinta aislante Se lo pasan genial !!! 2. Listos Módulos electrónicos En esta sección vamos a aprender los módulos que están integrados en la placa: Botón Led RGB Buzzer Sensor Infrarrojos Sensor de luz Fuente : Modificado de http://makeblock.es Botón RETO Realizar un programa que salga un mensaje al apretar el botón de mBot. Solución Con mBlock5 puedes utilizar o el código de la derecha o el de la izquierda Utilizaremos la técnica VARIABLES GLOBALES, creamos una variable global MENSAJE, ver https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock Y en el objeto oso panda Con mBlock3 era Pregunta tonta: ¿por dónde sale el mensaje?El botón es un elemento de interacción a tener en cuenta, aunque como veremos más adelante es más útil usar el teclado del PC.Siempre es típico que el primer programa en un curso de programación sea un "Hola Mundo" pero lo hemos personalizado LED RGB Los LED que hay montados en la placa permiten poner los 3 colores básicos a distintas tonalidades, desde 0 hasta 255, que podemos mezclar RETO Realizar un programa que al apretar en el teclado.. * 'a' se encienda el rojo * 's' se encienda el verde * 'd' se encienda el azul Solución En mBlock5 lo tienes aquí https://planet.mblock.cc/project/3261360 En mBlock3Ahora usa el teclado de tu ordenador, pulsa las teclas a s y d¿No funciona?Puede ser que mBot se quede enganchado con algún código anterior, y no lo tengas en modo VIVO Buzzer Este simpático zumbador nos da algo de juego, podemos cambiar la nota como la duración, vamos a probarlo: Reto Realizar una sirena, es decir, que suene un tono un segundo por ejemplo, y otro tono diferente durante otro segundo, y así sin parar. Para complicarlo más, sólo hará la sirena si pulsamos la tecla espacio. Para pararlo hay que pulsar el círculo rojo que hay al lado de la bandera. Solución En mBlock5 lo tienes aqui https://planet.mblock.cc/project/3261365 En mBlock3Aquí podemos conseguir un tono creciente Y para los más frikis ;) ... De http://juegosrobotica.es/musica-con-mbot/ Si alguien lo hace, por favor que lo cuelgue en el muro ! Mando a distancia y sensor IR El sensor de IR puede recibir del mando números, letras A-D, flechas y el botón configuración. Ojo: El mando no es exclusivo de un robot, es decir, los demás robots del aula reciben las misma información, lo importante es apuntar el mando a los sensores del robot y no a otro: Fuente: Tutorial de http://makeblock.es Para comprobar si tu mando funciona, es muy fácil (válido para todos los mandos, incluso el de TV) enfoca con tu móvil y aprieta a ver si se enciende la luz. La cámara de los móviles es sensible al IR Reto Vamos que puedes hacerlo bailar !! con el mando a distancia, tienes que controlar sus movimientos, flecha arriba adelante, flecha atrás retrocede.... botón central (el de la rueda dentada) que pare. Solución Con mBlock 5 se puede en vivo o cargar. Lo tienes aquí https://planet.mblock.cc/project/3263253 Con mBlock 3 sólo se puede cargar, no en vivo Sensor Luz El sensor Luz está situado al lado de los de IR, detecta la luz ambiente, pero también hemos experimentado que detecta la infrarroja, por lo que es sensible a la calefacción, y falsea su medida. Fuente: Tutorial de http://makeblock.es Reto que el panda diga la luz que hay Vamos a creare un programa donde el objeto Panda diga la cantidad de luz que lee. La intención es ver cual es el umbral para realizar el siguiente reto En mBlock5.0 Puedes utilizar la técnica de VARIABLES GLOBALES, que es muy fácil y lo hemos visto y explicado aquí https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock y que sería el programa como este https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/el-ldr-en-a5 pero vamos a utilizar en este caso la técnica más sofisticada BROADCAST El programa lo tienes aquí https://planet.mblock.cc/project/3263369 El programa en el dispositivo MBOT (hay que ir al + de abajo, e instalar la extensión BROADCAST) El programa en el dispositivo OSO PANDA (hay que ir al + de abajo, e instalar la extensión BROADCAST) RETO MARCHA NOCTURNA Realizar un programa que si se apaga la luz, el robot ¡¡se pone a dar vueltas!! sino, se queda quieto: Solución Utilizaremos el programa anterior para saber el UMBRAL es decir, qué valor determinamos que hay luz y no hay luz, en nuestro caso por las características del aula, lo fijamos en 500, en tu caso puede ser distinto. En mBlock5.0 lo tienes aquí https://planet.mblock.cc/project/3263444 En mBlock 3.0 Es muy espectacular hacerlo con los alumnos, se deja el aula a oscuras, se encienden todas las luces y todo baila ! No te quedes sólo con darle vueltas El pobre tiene ganas de salir de marcha por la noche: RETO Robot polilla Ya sabemos que las polillas van a la luz: Realizar un programa que si hay luz entonces que vaya recto, si no hay luz que de vueltas Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3263452 Se ha optado por dar un poco de potencia a la otra rueda cuando no hay luz, para que de la vuelta un poco más abierta. Puedes poner simplemente la instrucción girar (a la derecha o a la izquierda) pero si hace la vuelta abierta, va mejor. En mBlock3, y de paso que nos diga el oso la luzComponentes exteriores Componentes exteriores importantes a la hora de programar y que trataremos en este curso son: Sensor de Línea para utilizarlo por ejemplo como sigue líneas. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 2. Sensor de distancia por ultrasonidos para utilizarlo por ejemplo como evita-obstáculos. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 3. Matriz de leds 8x16 para expresar símbolos y caracteres. Este componente no está en el kit standard mBot, pero sí en el que presta CATEDU. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 1. Por favor no cambies los puertos del equipo de préstamo de Catedu Fuente de las imágenes: http://makeblock.es/ Sensor de línea El sensor de líneas está situado en la parte inferior de mBot: Fuente: Tutorial de http://makeblock.es Y tiene los siguientes valores: 0 si detecta todo negro (en binario 00) 1 si detecta blanco derecha pero negro a la izquierda (01) 2 al revés (10) 3 si detecta los dos blancos (11) Fuente: Tutorial de http://makeblock.es Reto, la oveja en su redil Ponemos a mBot en un recuadro blanco con el borde negro, queremos que hagas un programa que no salga nuestro robot del "redil". Consejo: Poner velocidad baja pues si va rápido se salta la línea. Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3263664 Fíjate que se ha puesto NINGUNO NEGRO de esta manera, en el momento que uno de los sensores detecte negro, dará la media vuelta En mBlock3.0 Si no funciona bien, se salta la línea.. no trabajes en vivo, carga el programa Sensor distancia El sensor de distancia por ultrasonidos nos devuelve por eco la distancia en cm del objeto que se encuentra enfrente, hasta un máximo de 400 cm Fuente: Tutorial de http://makeblock.es Reto huir Queremos que hagas un programa que si pongo la mano delante, que se vaya atrás. Por ejemplo a menos de 10cm. Solución En mblock5.0 lo tienes aquí https://planet.mblock.cc/project/3264009 Se ha utilizado una instrucción de MATRIZ LED que veremos a continuación para visualizar la distancia En mBlock 3 Para calibrar, se ha utilizando el Panda que diga la distancia que lee (Instruccion Decir...). Está realizado el programa con mBlock3. Fuente: Captura de pantalla mBlock. Programa: el autor. Intenta cogerlo !!! (por delante claro) via GIPHY Matriz Led Con este simpática matriz, tenemos mucho juego, podemos hacer un dibujo, texto, valores numéricos ... y si hacemos dos clicks nos permite poner el gráfico que queramos, incluso guardarlo en favoritos! Reto Realizar un programa como en anterior pero en vez de huir, que sonría. Es decir, si pongo la mano delante sale una cara sonriente. Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3264027 En mBlock3 Qué simpático ¿no? via GIPHY También puede ser que se ponga triste si no se pone la mano ¿No funciona? Puede ser que mBot se quede enganchado con algún código anterior, la solución como siempre ACTUALIZAR FIRMWARE Podemos enviar un texto, con la instrucción show face: Esto envía en las coordenadas 0,0 la palabra CATEDU pero.... ¡¡SALE CAT!! Claro ! no cabe!! ¿cómo lo hacemos? esto requiere más programación, hay que crear una variable X e ir ¿incrementando o decrementando la coordenada x? vamos a probar decrementando Y ahora incrementando ¿cómo salen las letras CATEDU? A pesar de que las capturas están con mBlock 3.0 con mBlock 5.0 es igual Enviar la hora .... este curso es largo ¿qué hora es? que nos lo diga: El robot no tiene reloj .. entonces ¿Quién le dice la hora? mBot lo gobierna un Arduino, por lo tanto un micro atmel128 con reloj interno, que puede utilizarse, pero no es este caso, pues es una instrucción azul que es propio de Scratch, por lo tanto del ordenador, que no puede usarse con Upload Arduino o Cargar sino EN VIVO 3. Ya!!! Evitar obstáculos Programa al mBot para que sea capaz de evitar cualquier obstáculo, paredes... usando el sensor de ultrasonidos, aunque el del vídeo le ha puesto sirena!! Solución Con mBlock 5.0 te vamos a proponer que lo obtengas de los programas ejemplo Y te proponemos que lo modifiques Que vaya rápido Que funcione en vivo RETO que no se atasque Se ataca a veces, ¿y si le haces estas mejoras? (la captura está en mBlock3 pero para mBloc5 es igual) RETO que salga de un laberinto Una opción es salir de un laberinto, página descarga piezas 3D Siguelíneas El sensor sigue-líneas no le hemos sacado potencial, pide a gritos que siga un circuito, en el kit impreso hay una propuesta de circuito, también te lo puedes descargarlo aquí pero otra opción es con cinta negra adhesiva hacer en el suelo (tonos claros) el circuito que queramos, pero recomendamos poner doble grosor, sobre todo si mBot va rápido, pues se lo salta, y no hacer curvas muy cerradas. Si ves que hay problemas, no trabajes en vivo, carga el programa. ¿Cómo harías el programa? Ten en cuenta que el sigue líneas, si devuelve 3 es que va por buen camino, si devuelve 1 habría que girar hacia la ... si devuelve 2 habría que girar hacia la ... y si devuelve 0 es que se ha ido, lo mejor es que des marcha atrás. Solución fácil Esta captura está con mBlock 3 con mBloc5 es parecido Pero tiene un problema: a veces se salta la línea, esto es debido a que se necesita un giro más suave que una rueda gire y la otra quita, no que una gire en un sentido y la otra en sentido inverso. SOLUCIÓN BUENA Para ello hay que instalar la extensión PLATAFORMA DEL FABRICANTE y puedes mejorar el programa de esta manera con giros más suaves pues ya tienes el control de las ruedas El programa lo tienes predeterminado aquí Puedes hacer puentes y todo Flappy bird Un ejemplo de interactuar con objetos es hacer que estos se muevan utilizando los sensores de mBot Vamos a jugar al Flappy Bird, pero para que suba el pájaro que sea cuando el sensor de ultrasonidos detecte nuestra mano Primer paso, descargar el programa Flappy Bird No vamos a realizar el videojuego desde cero, aprovecharemos el código que hay en Internet. Vamos al proyecto https://planet.mblock.cc/project/1328490 y en Sourcecode nos descargamos en nuestro ordenador el código (se abrirá mBlock online, y damos a descargar el código en nuestro ordenador) (este paso te lo puedes saltar si quieres trabajar diréctamente en Internet) Segundo paso abrir el código en tu programa mBlock Abrimos este código en nuestro mBlock (este paso te lo puedes saltar si quieres trabajar diréctamente en Internet) Tercer paso, que mBot envíe un mensaje que se ha puesto la mano Añadimos el dispositivo mBot, conectamos y ponemos este código También podríamos haber usado UNA VARIABLE GLOBAL MANO de tal manera que por ejemplo cambie a 1 si se pone la mano y sea 0 si no se pone la mano Cuarto paso que Flappybird suba al poner la mano Vamos al código del objeto BirdySprite y vemos que sube si O se pulsa clic O se pulsa espacio O se pulsa flecha arriba, copiamos ese código y que suba si recibe el mensaje MANO Si usamos variables globales se pondría dentro de la instrucción O la condición MANO=1 Resultado Valeee... ya sé que soy muy malo Publica tus construcciones Aquí para verlo más grande Publica cosas de otros 4-Inteligencia Artificial SmartCamera - Qué es Esta cámara se vende como accesorio de los robots de Makeblock por unos 140€ , ATENCIÓN, ESTE SENSOR NO SE SUMINISTRA CON EL KIT DE PRÉSTAMO DE CATEDU Atención ESTA ESPECIALMENTE DISEÑADO PARA mBot1, no esta muy bien ajustado para mBot2 Por dentro es un PIXCAM https://pixycam.com/ que tiene integrado un firmware con las siguientes características: Modo reconocer colores. Reconoce con IA hasta 7 colores distintos Salida I2C que facilita las coordenadas X e Y con respecto a un punto determinado (suele ser el centro) y por lo tanto servos o motores pueden realizar el seguimiento de color reconocido. Modo seguimiento de líneas Reconocimiento de líneas Con IA toma decisiones de rumbo en las intersecciones Modo lectura códigos de barras Reconoce 15 códigos de barras verticales definidos de fábrica Se ve mejor con un video: El kit para Makeblock es la misma cámara pero encapsulado, y se añade batería cables de conexión para mbot1 cable de conexión para mbo2 pelotas de colores los códigos de barras que hemos comentado SmartCamera - conexión con mBot Hardware Para conectarlo con mBot1 hace falta la batería que se suministra en el pack, con su cable de conexión (punto 3 al 4 de la figura( y el cable de conexión del puerto I2C (punto 2) al RJ45 (punto 1). Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón, Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón, Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Si tenemos la placa de Leds, es interesante conectarla pues nos puede decir valores en tiempo real Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón, Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ En mBot2 En este robot, no tenemos puertos con clavija RJ45 pero sí puertos I2C que permiten comunicación de los diferentes módulos de sensores y actuadores en serie, en la figura vemos como se conectan el sensor sigue líneas con el sensor distancia ultrasonidos en serie. Podemos no perder el sensor a distancia de ultrasonidos y conectarlo desde este sensor (1) al smartcamera (2) con el cable I2C que se suministra en el pack de smart cámera. Por supuesto puedes prescindir el sensor de distancia de ultrasonidos y conectarlo al sensor sigue líneas. O incluso directamente a la placa y prescindir también del sigue líneas. Con mBot2 NO hace falta conectar la batería. Smart cámera ya se alimenta a través del cable I2C. Pero si se pone no pasa nada, internamente las masas están conectadas. Software En mBlock Tenemos que ir a bloques e instalar la extensión SMART CAMERA Smart camera - seguimiento color - sencillo Configuración reconocimiento de color Método por software (recomendado) Una forma de configurar la cámara en este modo, es insertar estas instrucciones al inicio del programa La explicación es : Encenderemos el led para ser un poco independientes de la luz ambiental, esto es optativo. Iniciar smart cámera en el modo de seguimiento de color Luego le diremos a la cámara que aprenda el color. Para ello ponemos la pelota que queramos ENFRENTE DE LA CÁMARA, LO MOVEREMOS SUAVMENTE HASTA QUE EL LED TENGA EL MISMO COLOR QUE LA PELOTA. En ese momento pulsamos el botón LEARN. Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Se ve mejor con un vídeo Método por hardware Otro método es: pulsar en el botón de LEARN Y NO SOLTARLO el led empieza a parpadear en diferentes clores el led pregunta qué color quieres que aprenda, el código es el siguiente Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Ojo: NO SIGNIFICA QUE HAY QUE PONER ESOS COLORES es decir, si el led está en rojo, no significa que tienes que poner una pelota roja, sino que pregunta por el color 1 Cuando está en el color que deseas (por ejemplo, queremos grabar el color número 1, entonces esperamos a que el led se ponga rojo) entonces en ese momento LO SOLTAMOS Ahora igual que antes: Ponemos la pelota del color que deseamos que aprenda, y cuando coincide hacemos una pulsación corta en LEARN Programa en mBlock El programa es sencillo Si el color se detecta arriba, avanza Si el color se detecta abajo, retrocede Si el color se detecta a la izquierda, gira a la izquierda Si el color se detecta a la derecha, gira a la derecha Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Lo añadimos en un bucle junto con el script anterior de configuración de la cámara, y se añaden unos avisadores de led para saber en qué estado está la cámara El programa lo tienes aquí https://planet.mblock.cc/project/projectshare/3664760 Si no quieres poner lo accesorio https://planet.mblock.cc/project/projectshare/3719420 Aclárate ¿Qué potencia le doy? 50% o 90%?R: Pues el que quieras, cuanto menos potencia, lo sigue mejor, pero si la bola va deprisa, lo "pierde"Si la das más potencia, no lo sigue tan bién, hay a veces "oscilaciones" que no se estabilizan. Ver este vídeo Smart camera seguimiento color avanzado Kp, velocidad diferencial del motor.... ¿Eso qué es? En la extensión CAMARA INTELIGENTE ESPECÍFICA PARA EVENTOS Encontramos estas dos instrucciones ¿Qué significan? Vamos a definir dos sistemas de coordenadas Las coordenadas del fondo de PixiCam Las coordenadas de la SmartCam asociadas al evento (en este caso el seguimiento del color) que en la instrucción se llama velocidad diferencial (no puedo llamarlo velocidad pues son coordenadas espaciales, como físico lo siento, no puedo 😫) Las coordenadas de fondo de Pixicam son fijas, y van desde 0,0 a 320,240 y se pueden ver en la pantalla de PixiMon moviendo el ratón: Las otras coordenadas "Las coordenadas de la SmartCam asociadas al evento" están asociadas al evento y están escalados según el valor de 100*Kp donde Kp tiene que ser un número de 0 a 1 por lo tanto el máximo es 100 y el centro de coordenadas lo fija el usuario en el número de la siguiente instrucción, ese número está referido a las coordenadas del fondo de Pixicam Para entendernos mejor, si ponemos El origen será 160,120, o sea lo normal, el centro del fondo de Pixicam, pero puede interesarte "acercar" la bola al robot por lo tanto ¿subirías y a más de 120 o bajarías de 120? Para entenderlo mejor un dibujo,: Las coordenadas del fondo de PixiCam en rojo Las coordenadas de la SmartCam asociadas al evento en azul Y para entenderlo mejor, vamos a ejecutar el siguiente programa test https://planet.mblock.cc/project/projectshare/3657404 Al ejecutarlo vemos que muestra las coordenadas de la pelota roja (asociada al evento) y como Kp es 0.3 va desde -30 a +30 tanto para X como para Y Kp, velocidad diferencial del motor.... ¿Eso para qué sirve? Pues como son las coordenadas de lo que se "separa" la bola de tu origen, puedes darle velocidad a los motores según esas coordenadas Desde el punto de vista de las Y (avanzar o retroceder) si hay más Y más tienen que ir los dos motores (hacia delante) si la Y es negativa los dos motores tienen que retroceder, luego desde el punto de vista de las Y : Velocidad motor izquierdo = Y Velocidad motor derecho = Y Desde el punto de vista de las X (girar) si la X es positiva, tiene que girar a la derecha por lo tanto motor izquierdo avanzar (positiva) y el derecho retroceder (negativo) y si es negativo al revés por lo tanto Velocidad motor izquierdo = X Velocidad motor derecho = -X Juntando los dos, tenemos: Velocidad motor izquierdo = Y + X Velocidad motor derecho = Y - X Seguimiento del color utilizando Kp, velocidad diferencial Podemos aumentar en un factor de 3 para darle más caña pues el máximo sería 30% al multiplicarlo por 3 conseguimos llegar al 90%. Ese factor de multiplicación de la potencia del motor tendría que ser más o menos 10*Kp Cuánto más Kp, se sigue mejor a la pelota pero se consigue peor estabilización. El programa https://planet.mblock.cc/project/3613286 ¿Por qué el seguimiento del color utilizando Kp, velocidad diferencial es mejor que el simple? Piénsalo bien, cuanto más se aleja, más potencia, mientras que el simple, si la pelota estaba en una zona determinada, va a una potencia fija. + Información En estos PDFs tienes una explicación más formal de Kp y las velocidades diferenciales: En Inglés https://www.a4telechargement.fr/mBot/MB-P1100022_SmartCamera_StudentsBookSmartCamera_ANG.pdf En Español https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf Smart camera Piximon INSTALACIÓN DE PYXMON V2 No es un software obligatorio, pero viene muy bien qué está pasando y qué esta viendo la cámara. Además nos permite opciones avanzadas y configurar con más detalle sus posibilidades. El software está en la página de https://pixycam.com/ ATENCIÓN NO CONECTAR LA CAMARA CON EL CABLE USB ANTES DE LA INSTALACIÓN DE PIXIMON Pues Windows instalará unos drivers erróneos o dejará marcado como desconocido la cámara. Instalaremos PixyMon v2 y después conectaremos el cable USB del ordenador a l a cámara. En el caso de que hayamos metido la pata, ir a Windows-Administrador de dispositivos, quitar a cámara, instalar PixyMon y conectar la cámara. PARA QUE NOS SIRVE PIXIMON: PARA SABER QUÉ OCURRE EN LA DETECCIÓN DE COLOR Si algo falla, podemos conectar la Smart Camera al ordenador y Piximon nos enseña qué vé y cómo lo hace, por ejemplo el siguiente vídeo se ve que está en modo de detección de color, y vemos que ha detectado el verde Más información En inglés https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:pixymon_index En español https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf PARA QUE NOS SIRVE PIXIMON: CONFIGURAR EL SIGUE-LINEAS Podemos entrar en configuración y determinar el grosor de la línea, brillo, contraste... Para más información de la configuración del sigue líneas En inglés https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:line_pixymon En español https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf Smart Camera Código de barras En el modo de detección de código de barras, puede detectar 15 códigos de barras ya definidas. Las puedes descargar aquí https://drive.google.com/file/d/1K28cD6o5csGg1_h7cnmsZ5Box02NTdUC/view?usp=sharing Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Y las tiene que detectar en la posición correcta, excepto la 15 que es simétrica, el resto no son invariantes bajo rotación Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ En mBlock las detecta desde el número 1 al 15. Pero observa que del 1 al 9 tiene ya unos nombres predefinidos Esto no quiere decir que estés obligado a ejecutar la acción acorde al nombre de la etiqueta, puedes elegir perfectamente que si detecta la etiqueta 5(parar) que haga girar Si quieres cambiar de nombres, dentro del software Piximon puedes renombrar estas etiquetas en Configure-Barcode labels Un programa ejemplo sería Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ También puede detectar dada una posición, por ejemplo este programa Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/SmartCamera - sigue líneas mBot ya tiene un sigue-lineas https://libros.catedu.es/books/robotica-educativa-con-mbot/page/siguelineas pero no trabaja la inteligencia artificial. Es un sensor que nos detecta el brillo del suelo y sobre esa respuesta programamos la potencia de los motores para que sigan la línea. Pero en este caso será la cámara la que detectará la línea y tomará la decisión de qué rumbo tomar, para ello montaremos la cámara con una visión horizontal utilizando la pieza de ángulo recto: Y conectaremos la batería con la SmartCam y el puerto I2C con el Puerto 4 por ejemplo. En este modo, la SmartCam reconoce las líneas que ve, y con el programa Piximon las marca con diferentes colores y decide de forma óptima el camino a seguir. El color rojo marca la decisión Si el fondo,, contraste o grosor de las líneas no es el adecuado, con el programa PixiMon podemos cambiar la configuración para que lo detecte correctamente: Si cargamos el programa siguiente https://planet.mblock.cc/project/3715899 El resultado es : Explicado paso a paso La decisión en una intersección con programación Si queremos que no decida automáticamente, sino que por ejemplo el ángulo del cruce es menor de 45 que gire a la derecha, el código sería https://planet.mblock.cc/project/3716895 También podríamos hacer la decisión en función si el cruce está más a la derecha o más a la izquierda, recuerda que las coordenadas x van desde el extremo izquierdo 0 al extremo derecho 320. Una opción sería : Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ La decisión de una intersección por código de barras El modo sigue-lineas es también modo de etiquetas : Esto nos permite que podemos utilizar las etiquetas para las decisiones de las intersecciones Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,Licencia CC-BY-NC https://juegosrobotica.es/smart-camera-makeblock/ Extraído de https://arduiblog.com/2022/05/01/smart-camera-de-makeblock/  autor JCQuetin, licencia BY-NC-SA 3.0Creditos