Microbit + car
Curso de Microbit con la posibilidad de usar un cochecito (sensor distancia y siguelineas) Se trabajan distintas marcas
- Introducción
- Microbit
- ¿Qué es la microbit?
- Aprender pensando y aprender haciendo
- Descripción de la placa micro:bit
- Accesorios para micro:bit
- El entorno de trabajo de MakeCode
- Nuestro primer programa
- Jugando con los LED: bloques básicos de código
- Interacción con micro:bit por medio de los pulsadores
- Bloques de entradas: sonómetro, magnetómetro y acelerómetro con una sola línea de código
- Bucles y eventos de tiempo: un termómetro
- Bloques condicionales: luz crepuscular
- Brújula digital
- Nivel de burbuja usando el giroscopio
- Música y sonido con micro:bit
- Retos con microbit
- Panel LED
- Sensor temperatura
- Sensor luminosidad
- Pulsadores
- Acelerómetro
- Brujula
- Radio
- Pines entrada y salida
- cars para microbit
- Maqueen
- Retos Maqueen
- Introducción
- Control de Motores
- Neopixel
- leds frontales
- Distancia con US
- Reconocimiento de teclas mando IR
- maqueen teledirigido con mando IR
- lectura sensor IR de suelo
- seguidor de líneas
- evita-obstáculos
- seguidor de luz
- Control remoto desde otra micro:bit con radio
- persigue-objetos
- Cutebot
- Smartcar
- Créditos
Introducción
Objetivos y contenidos
CONTENIDOS:
-
- Introducción
- La placa Microbit
- Conocer la placa Microbit
- Retos con la placa Microbit
- Cars para Microbit
- MAQUEEN
- Primeros pasos con Maqueen
- Retos Maqueen
- CUTEBOT
- Primeros pasos y retos con Cutebot
- SMARTCAR (obsoleto)
OBJETIVOS
Conocer la placa MICROBIT, sus posibilidades didácticas junto con la gamificación de añadir la placa a un robot tipo suelo, (en el curso se llama CAR por hacerlo genérico independientemente de la marca de robot a utilizar), ampliando las posibilidades de la MICROBIT con movimiento y con la interacción de obstáculos y sigue líneas además de otras posibilidades (luces, sonido, expansión....) realizando un completo conocimiento de la didáctica del pensamiento computacional y de la robótica para nivel de primaria-secundaria usando programación por bloques accesible a un amplio alumnado.
Pensamiento computacional
¿Dónde se encaja este robot? ¿Se puede comparar este robot con otros robots de otros cursos que hacemos desde CATEDU?
Esta es la hoja de ruta que proponemos, no se tiene que tomar al pie de la letra, pero intenta ayudar al profesorado que tenga una visión global de tanta oferta robótica:
Como se puede ver MICROBIT+CAR tiene la ventaja de ser una buena relación calidad/precio de los robots de suelo, con muchas posibilidades.
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.
Muro Microbit+car
Este muro es para que puedas poner ejemplos interesantes del uso de la microbit con un robot tipo coche
Microbit
¿Qué es la microbit?
La placa micro:bit
Micro:bit es un pequeño ordenador del tamaño de media tarjeta de crédito creado inicialmente por la BBC (British Broadcasting Corporation) en 2015 con el fin de promover el desarrollo de la robótica y el pensamiento computacional entre la población escolar de entre 11 y 15 años del Reino Unido.
Actualmente su uso está extendido entre 39 millones de escolares de más de 60 países (Micro:bit Educational Foundation, 2023) con más de 5 millones de tarjetas distribuidas por todo el mundo (Microes.org, 2023).
Placa BBC micro:bit. Micro:bit Educational Foundation CC BY-SA 4.0
El hardware es 100% libre, y está gestionado por una fundación sin ánimo de lucro fundada en 2016, la micro:bit Educational Foundation.
Micro:bit no es el primer proyecto de alfabetización informática de la BBC. Ya en 1981 produjo el BBC Micro, un ordenador de 8 bit programable mediante varios lenguajes de programación, entre ellos un lenguaje BASIC muy avanzado para la época. De este ordenador llegaron a venderse 1,5 millones de unidades, principalmente en el Reino Unido. Fue el ordenador con el que las escuelas británicas comenzaron la enseñanza de la informática.
Volviendo a micro:bit, el desarrollo del proyecto ha sido llevado a cabo por 29 socios tecnológicos de primera línea. Por ejemplo, la implementación del Bluetooth corrió a cargo de la fundación propietaria de la marca, Bluetooth SIG, asociación privada sin ánimo de lucro.
Micro:bit es económico; tanto las placas como los accesorios producidos por terceras empresas tienen un precio muy contenido.
El sistema 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.
Programación de micro:bit
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. Dado su carácter abierto, existen múltiples soluciones de programación, aunque las más común es MakeCode.
El sitio 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. Nuestros programas se guardan en el servidor de MakeCode siempre que no utilicemos nuestro navegador de Internet en modo incógnito o que no tengamos activado el borrado automático de cookies.
Sitio web de Make Code. Captura de pantalla
Los programas también pueden guardarse descargados en el ordenador compilados en código de máquina. Al subir de nuevo el programa en el 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 aparece como una simple unidad 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 en varios idiomas.
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.
Ejemplo de programa con MicroCode. Captura de pantalla
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.
Características de micro:bit
Características de micro:bit V2:
• 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.
• Pulsador táctil en el logotipo.
• Micrófono y altavoz.
• Acelerómetro y compás.
• Sensores de luz y de temperatura.
• Bluetooth de bajo consumo.
• Alimentación a 3 V o por USB.
• 25 pines de entradas y salidas.
• GPIO, PWM, I2C y SPI.
• 200 mA disponibles en las salidas para alimentar accesorios.
La placa micro:bit que se encontraba disponible en el mercado antes de la introducción de la V2 era la denominada V1.5. Se distingue de la V2 en que carece de micrófono, de altavoz y de pulsador táctil en el logo. Internamente tiene un procesador menos potente y menos memoria RAM. Tampoco tiene piloto de encendido ni puede apagarse desde el pulsador de reset.
Aprender pensando y aprender haciendo
La introducción del pensamiento computacional en los currículos es tan reciente que no existe una definición precisa ni del concepto ni de su alcance. Esta cuestión comentada por Serrano (2022) es resuelta por el mismo autor, quien proporciona una definición operativa generada desde una perspectica histórica:
El pensamiento computacional está compuesto por un conjunto de procesos de pensamiento involucrados en la formulación de problemas para que sus soluciones puedan representarse como pasos computacionales y algoritmos.
Según esta definición el pensamiento computacional tiene como propósito resolver problemas. Un problema parte de una situación nueva en la que el proceso de resolución es desconocido. Es por ello que la simple memorización de procedimientos para automatizar una tarea, no pone en juego los procesos mentales propios del pensamiento computacional.
Los procesos mentales básicos involucrados en el pensamiento computacional son:
- Descomposición. Se analiza y se fragmenta el problema en subproblemas más simples.
- Identificación de patrones. Los patrones son situaciones ya experimentadas cuya solución es previamente conocida o bien situaciones que se presentan repetidamente en el problema.
- Abstracción. Se pasan por alto los detalles que carecen de importancia.
- Diseño del algoritmo. Se secuencian los pasos necesarios para llegar a la solución.
Fases del pensamiento computacional. Elaboración propia
Si la computación permite aprender pensando, la robótica educativa contribuye a aprender haciendo. Por este motivo, la robótica es denominada computación física. La robótica materializa el algoritmo, que puede de esta forma interactuar con el mundo real.
Más complicado resulta determinar para qué introducir el pensamiento computacional en el aula. Serrano (2022) cita dos corrientes principales, la que limita su desarrollo al ámbito del desarrollo de la competencia digital del alumnado y la que sostiene que el pensamiento computacional puede ser trabajado en todas las disciplinas con el objetivo de contribuir a la mejora global de los aprendizajes.
La fundación micro:bit sigue el primer enfoque, basando su visión en el riesgo de perpetuación y de profundización de las desigualdades sociales que producen las tecnologías digitales. Con su Teoría del Cambio (Micro:bit Educational Foundation, 2023c) pretende que todas las personas desarrollen habilidades digitales que les permitan comprender, participar y trabajar en el mundo moderno. Para ello ha desarrollado productos como micro:bit, alianzas con socios tecnológicos, contenidos y programas educativos con el objetivo de llegar a 100 millones de estudiantes en 2025.
Alegoría de BBC micro:bit generada con IA de Bing.
El segundo enfoque tiene en cuenta el perfecto encaje del pensamiento computacional en las metodologías activas que se derivan de la corriente pedagógica construccionista, que postula que el sujeto construye su conocimiento a través de la acción orientada a la creación. Dos metodologías muy adecuadas para introducir el pensamiento computacional son el aprendizaje basado en problemas y el aprendizaje basado en juegos.
Por otro lado, las actividades de robótica y de pensamiento computacional contribuyen a desarrollar toda una serie de habilidades secundarias o periféricas que no conviene desdeñar. Estas habilidades comunes a todas las metodologías activas son, entre otras, la creatividad, el espíritu crítico, la autonomía personal y las capacidades comunicativas.
Dado el gran número de personas y países involucrados en los programas de micro:bit, diversas organizaciones han realizado estudios de impacto desde los primeros años. Por ejemplo, un estudio de la BCC (2017) encontró que tras un año con micro:bit, la mayoría del alumnado de 11 años de edad consideraba que programar era fácil y que cualquiera podía hacerlo. Además se produjo un incremento significativo de estudiantes que consideraban que las TIC podían ser una opción profesional para su futuro. Este incremento fue del 70% entre las chicas. En cuanto al profesorado, alrededor de un 80% valoró muy positivamente la introducción de micro:bit en el aula.
Descripción de la placa micro:bit
Presentación de micro:bit
Micro:bit es una pequeña placa de circuito impreso de 52 mm x 42 mm, dimensiones que corresponden aproximadamente al tamaño de media tarjeta de crédito. El circuito dispone sus componentes electrónicos al aire, sin ninguna carcasa, y se encuentran soldados por las dos caras de la placa.
La placa micro:bit es segura para su uso con el alumnado de 8 a 14 años (Micro:bit Educational Foundation, 2023b). Ha sido ampliamente probada y cumple con todos los requisitos de seguridad y compatibilidad medioambiental exigibles. En el siguiente enlace se muestran todas las normas y estándares que cumple la tarjeta: https://microbit.org/compliance/
El siguiente vídeo, pensado para personas sin conocimientos de robótica, proporciona una primera idea acerca de las posibilidades y del manejo de la placa micro:bit.
Kits
Micro:bit se encuentra disponible comercialmente como placa simple (micro:bit single) o como parte de un kit. El coste medio en el año 2023 de una placa es de unos 22 €. Por un precio un poco más elevado se puede adquirir un kit más completo, cuyo contenido está pensado como un equipo de iniciación.
Contenido de un kit de inicio. Elaboración propia
El kit presentado en la imagen contiene:
- Una placa micro:bit versión 2. El color de la decoración de la placa puede ser magenta, azul, verde o amarillo.
- Una pequeña guía icónica de inicio rápido.
- Una hoja con recomendaciones de seguridad en varios idiomas.
- Un cable corto micro USB para conectar la placa al ordenador.
- Una cajita portapilas con conector JST.
- Dos pilas alcalinas IEC LR03 (AAA).
Componentes electrónicos integrados en la placa
El anverso de la placa en su versión 2 tiene el aspecto mostrado de la figura.
Anverso de la placa BBC micro:bit. Elaboración propia
La parte marcada con el número 1 es una fila de contactos o pines que permiten conectar la placa a múltiples accesorios, como altavoces, robots, sensores o actuadores. Dispone de 25 pines, 5 de ellos de anillo. Estos últimos están pensados para conectar cables por medio de pinzas o bananas.
El número 2 corresponde al pulsador A. En el lado derecho de la placa existe otro pulsador B. Ambos pulsadores son programables y permiten al usuario comunicarse con micro:bit.
El número 3 apunta al pulsador táctil. Se trata de una novedad de la versión 2 de micro:bit. El pulsador puede distinguir entre pulsaciones rápidas y pulsaciones prolongadas.
El sensor marcado con el número 4 es un micŕofono. Es otra novedad de la versión 2 de la placa. Aunque puede grabar sonido, las grabaciones resultan de una calidad muy pobre. Es por ello que el micrófono se usa sobre todo para medir el ruido ambiental. Un diodo LED de color rojo indica que el micrófono está en funcionamiento.
La matriz de 25 LED rojos está marcada con el número 5. Se usa para representar mensajes de texto e iconos. Su intensidad es ajustable. Sirve también como sensor del nivel de luz ambiental.
El reverso de la placa es un poco más complejo. Aquí se encuentran soldados los dispositivos que permiten el funcionamiento de micro:bit. Se trata del procesador, de los sensores y de los circuitos integrados que proporcionan funcionalidades como la comunicación USB o Bluetooth.
Reverso de la placa BBC micro:bit. Elaboración propia
El circuito número 6 es un acelerómetro y un compás. Este dispositivo permite medir aceleraciones y giros, así como campos magnéticos.
El componente 7 es un pequeño zumbador que puede reproducir tonos y sonidos. Su potencia es muy baja, pero micro:bit puede también conectarse a un altavoz externo.
El procesador es el circuito marcado con el número 8. Además contiene un sensor de temperatura.
La antena Bluetooth se indica con el número 9. Gracias al Bluetooth incorporado, micro:bit puede enviar y recibir datos por radio a cortas distancias.
Cuando el LED de color rojo 10 está encendido indica que la placa está conectada a una fuente de alimentación. Micro:bit puede ser alimentado por un ordenador o por una batería externa través de un cable USB o bien por un par de pilas.
La placa puede comunicarse con un ordenador mediante el conector micro USB 11. Mediante esta conexión micro:bit puede ser programado y también puede enviar al ordenador los datos que recoja con sus sensores.
El LED ámbar 12 parpadea cuando la placa está conectada a un ordenador y se encuentra emitiendo o recibiendo datos.
El pulsador 13 se usa para reiniciar el programa contenido en la placa. Una pulsación prolongada apaga micro:bit, pero sólo si la placa es de la versión 2.
El conector JST 14 permite conectar el portapilas para alimentar la placa con dos pilas alcalinas de 1,5 V. También se pueden usar pilas recargables; las clásicas pilas recargables de NiMH o níquel-hidruro metálico que se venden en algunos supermercados hacen que tanto micro:bit como sus accesorios funcionen sin problemas.
Accesorios para micro:bit
Micro:bit puede ser expandida con múltiples accesorios fabricados por empresas asociadas. Los sensores, las placas de expansión o los robots se acoplan a la tarjeta y se programan de forma simple e intuitiva. También es posible conectar micro:bit a dispositivos no pensados específicamente para la placa, como altavoces o sensores autofabricados, al estilo de Makey Makey. En estos casos es muy conveniente disponer de cables de conexión con pinzas de cocodrilo. Las pinzas se conectan a los pines circulares números 0, 1 y 2 y a los pines GND (masa de alimentación) y 3V (salida de alimentación de 3 volt).
Pinzas de cocodrilo conectadas a micro:bit V2. Elaboración propia
Debemos tener cuidado de no cortocircuitar los pines GND y 3V.
Las fundas de plástico tienen un precio muy bajo y protegen la placa eficazmente, pero hay que tener cuidado de adquirirlas de color transparente, o el sensor de luz podría no funcionar.
Funda para micro:bit V2. Elaboración propia
Quizás los accesorios más potentes sean las placas de expansión. En la figura se muestra una placa IoT (Internet de las Cosas) del fabricante Elecfreaks. La tarjeta micro:bit se inserta directamente en la ranura azul. La placa dispone de un reloj de cuarzo alimentado por una pila de litio de larga duración, de un módulo de comunicación wifi y de conectores de pines (GVS) para añadir sensores. El precio de la placa ronda los 20€ en 2023.
Los terminales GVS se emplean para conectar sensores y actuadores. La G se refiere al terminal de masa (polo negativo, marcado en negro), la V al terminal de alimentación (polo positivo, marcado en rojo) y la S (marcada en amarillo) al terminal que recoge la señal del sensor o del actuador.
Placa IoT de Elecfreaks. Elaboración propia
Los sensores vienen generalmente agrupados en kits. La figura es un kit de Elecfreaks orientado a actividades relacionadas con la agricultura. Además de una placa IoT para monitorizar a distancia nuestros cultivos, también hay sensores de humedad del suelo, de humedad ambiental, de lluvia, de luz y de temperatura, además de un servo para abrir y cerrar ventanas, un sensor de ultrasonidos para detectar intrusos y una pantalla OLED para mostrar información. El precio del kit es de unos 60€ en 2023.
Kit de agricultura de Elecfreaks. Elaboración propia
Algunos accesorios añaden grandes funcionalidades, como el reproductor de audio mp3 de la fotografía. Incorpora un altavoz de más calidad y un lector de tarjetas micro SD. La cantidad de archivos reproducibles sólo está limitada por la capacidad de la tarjeta.
Reproductor de audio en formato mp3. Elaboración propia
Los robots como Cute Bot, disponen de dos ruedas controlables individualmente para ajustar la velocidad y la dirección. Además incorporan sensores para el seguimiento de líneas, luces de colores, sensores de distancia para evitar obstáculos y sensores de infrarrojos para el control con mandos a distancia. Su precio en 2023 es de unos 35€.
Robot Cute Bot de Elecfreaks. Elaboración propia
El Maqueen es también muy parecido ver comparativa en https://libros.catedu.es/books/microbit-car/page/cars-para-microbit
El brazo manipulador de la fotografía se conecta a pines GVS como los de una placa de expansión o como los de un robot. Abre y cierra las pinzas gracias a un servo incorporado y es compatible con juegos de construcción de bloques.
Brazo manipulador. Elaboración propia
Es posible encontrar achivos para imprimir accesorios en 3D en repositorios como Thingiverse. En la fotografía se muestra una cajita de plástico para proteger la placa micro:bit y contener la caja portapilas.
Caja impresa en 3D para micro:bit según diseño de University of Bristol. CC BY-NC. Elaboración propia
El entorno de trabajo de MakeCode
El punto de partida para el estudio de un lenguaje de programación pasa inevitablemente por los lenguajes gráficos o de bloques que facilitan su estudio al mostrar de forma visual las instrucciones del algoritmo programado. (Morales, 2023)
Aunque micro:bit dispone de 12 lenguajes de programación, la mayoría de ellos textuales, parece apropiado iniciar al alumnado en la codificación con bloques. Generalmente, la realización de programas con bloques es el paso siguiente a los juegos desconectados de codificación, a los robots de suelo y los paneles de programación desenchufados.
MakeCode ofrece un entorno integrado, simple e intuitivo de codificación por bloques. Hay que decir que en el entorno de MakeCode también están disponibles los lenguajes Java y Python, con la ventaja de que un programa desarrollado mediante bloques puede ser traducido instantáneamente a cualquiera de los otros dos lenguajes. También es posible realizar la operación inversa, es decir, traducir un programa en Java o Python a bloques.
Pulsando sobre el botón de continuar aparecerá la ventana principal de MakeCode. Para iniciar el entorno de programación habremos de pulsar sobre el botón de nuevo proyecto:
MakeCode nos pedirá seguidamente dar un nombre cualquiera al proyecto y pulsar el botón de crear, tras lo cual se abrirá la ventana del editor.
Entorno Microsoft MakeCode. Captura de pantalla
Para trabajar con MakeCode no se requiere registro. No obstante, pulsando sobre el icono de la esquina superior derecha, situado en la barra de herramientas, es posible acceder a MakeCode desde una cuenta de Google o de Microsoft. Esta característica permite guardar en la nube los diseños realizados y acceder a ellos desde cualquier ordenador.
Podemos ajustar el idioma de la interfaz pulsando sobre la rueda dentada de la esquina superior derecha. Están disponibles 33 idiomas, incluyendo el español.
El panel de la izquierda representa el anverso de una placa micro:bit. Se trata de un simulador, que mostrará en tiempo real el efecto del programa en desarrollo. Nótese que no es necesario disponer de una placa real para realizar los primeros pasos en programación con micro:bit.
Con el puntero del ratón se puede interactuar con la placa y pulsar sus botones, agitarla o cambiar las condiciones simuladas de luz o de ruido. Por otro lado, los controles situados bajo la placa nos permiten:
- Apagar o encender el simulador.
- Reiniciar el simulador, es decir, el programa en ejecución.
- Entrar en modo de depuración para localizar y solucionar errores.
- Activar o desactivar el altavoz del ordenador.
- Tomar una fotografía de la placa.
- Mostrar el simulador en pantalla completa.
El panel central es una caja de herramientas en forma de menú desplegable con todos los bloques de programación disponibles. Los bloques pueden ser arrastrados directamente con el ratón desde el menú. Cada color del menú se identifica con un tipo de acción o de estructura de control. Por ejemplo, el color verde se reserva para los bloques que permiten ejecutar acciones repetitivas o bucles.
La caja de búsqueda colocada sobre el menú desplegable es muy útil para encontrar rápidamente el bloque más adecuado para realizar la acción deseada en cada momento.
El panel de la derecha es el área de programación. Aquí se escriben los programas arrastrando y encajando los bloques de código. Cuando se abre el navegador aparecen por defecto dos bloques azules de eventos del menú básico:
- Al iniciar, es la estructura que contendrá el algoritmo que será ejecutado por la placa sólo una vez, tras ser encendida o reiniciada.
- Para siempre, es el bucle que contendrá el algoritmo que se ejecutará indefinidamente, una y otra vez, cuando acabe la ejecución del algoritmo de inicio.
Pulsando con el botón derecho del ratón sobre un bloque se desplegará un menú contextual que dará varias opciones, como duplicar, borrar u obtener ayuda sobre el uso del bloque.C
Al colocar el puntero del ratón sobre un bloque, el editor mostrará una etiqueta de ayuda con una breve explicación sobre la función del bloque.
https://makecode.microbit.org/reference contiene explicaciones detalladas de los bloques de MakeCode.
En la parte inferior de la ventana de MakeCode se dispone la barra de herramientas, con botones para realizar acciones como descargar el programa en un placa micro:bit conectada al ordenador, guardar el programa en nuestro ordenador o en un repositorio en línea, hacer y deshacer y ampliar o reducir la imagen.
Nuestro primer programa
El primer programa que se realiza cuando se comienza a aprender un nuevo lenguaje consiste casi siempre en presentar un saludo por pantalla. Micro:bit es más original, puesto que propone como primer programa un corazón palpitante.
Vamos a combinar el saludo inicial con el corazón. De esta forma ilustraremos el funcionamiento de los bloques de eventos al inicio y para siempre.
Se trata de seguir los pasos explicados en la página anterior y crear un programa llamado Hola. Tras la apertura del editor pulsaremos sobre el menú Básico y arrastraremos y encajaremos los bloques para configurar el siguiente programa:
Para escribir el texto ¡Hola! basta con hacer clic sobre la caja blanca del bloque mostrar cadena. De igual forma, los iconos de los bloques mostrar icono y los números de los bloques pausa (ms) pueden seleccionarse pulsando sobre las flechas, acción que despliega menús de selección.
Como en el caso de la caja de texto, también puede teclearse directamente el número de milisegundos del bloque pausa (ms).
¿Qué hace el programa? Cuando se enciende la placa, el algoritmo de inicio mostrará una vez mediante la matriz de LED la cadena de texto "¡Hola!". Como la pantalla es muy pequeña, micro:bit deslizará el texto horizontalmente, de derecha a izquierda.
Seguidamente, el algoritmo principal mostrará en pantalla el icono de un corazón grande y entrará en pausa 500 milisegundos, es decir, medio segundo. Pasado este tiempo, micro:bit mostrará un corazón pequeño y esperará otro medio segundo. Este algoritmo se ejecutará indefinidamente hasta que se apague la placa, se pulse el botón de reinicio o se acaben las pilas. El efecto visual será el de un corazón palpitante.
Nada más terminar de colocar el último bloque, el simulador de MakeCode mostrará en pantalla el resultado del programa en ejecución. Para reiniciar el programa hay que pulsar sobre el icono de reinicio, situado justo bajo el dibujo de la placa micro:bit.
Cargar el programa en micro:bit
Hay que conectar primero la placa al ordenador por medio del cable USB. Después de unos instantes, el sistema operativo, (Linux, Windows o MacOS) reconocerá a la tarjeta micro:bit conectada como si se tratase de una unidad USB con el nombre MICROBIT.
La unidad Micro:bit en el escritorio de Linux Mint
Si la tarjeta es nueva, llevará cargado de fábrica un programa de demostración que empezará a ejecutarse nada más ser conectada al puerto USB. El programa mostrará mensajes, iconos en movimiento y sonidos y pedirá al usuario que calibre el compás magnético.
Seguidamente hay que pulsar sobre el botón Descargar, acción que abrirá el diálogo de guardado de archivos del sistema operativo. Bastará con seleccionar la unidad MICROBIT y confirmar la descarga.
Si tienes Vitalinux, te recomendamos visitar esta página.
Mientras dure la transferencia de datos, el LED ámbar situado junto al conector USB de micro:bit parpadeará rápidamente, quedando fijo cuando el programa haya sido transferido.
La transferencia de archivos a micro:bit lleva algo de tiempo, especialmente si el programa es largo. Tras la transferencia, el programa empezará a ejecutarse inmediatamente sobre la tarjeta micro:bit.
Sólo es posible cargar un programa a la vez en micro:bit, por lo que cada nuevo programa se reescribe sobre el anterior.
Si se desea que micro:bit funcione desconectado del ordenador, simplemente hay que alimentarlo por medio de la caja de pilas o mediante una batería externa o un cargador USB. El programa se ejecutará de igual forma, pues se encuentra guardado en la memoria de la placa.
Jugando con los LED: bloques básicos de código
El menú Básico contiene los bloques más usados para programar micro:bit. En la página anterior se han visto los bloques de eventos al iniciar y para siempre. También se han utilizado los comandos mostrar icono, pausa (ms) y mostrar cadena.
El bloque mostrar LEDs sirve para dibujar iconos personalizados. Basta con hacer clic en los puntos para dibujar la figura deseada como en el caso del gato de la figura.
El menú contiene además los bloques borrar la pantalla, mostrar flecha y mostrar número, cuyos nombres son lo suficientemente indicativos de sus funciones.
El menú LED posibilita el control individual de los 25 LED de la pantalla.
Graficar enciende el LED de coordenadas x e y. La coordenada 0, 0 corresponde al LED situado en la esquina superior izquierda de la pantalla, mientras que la coordenada 4, 4 es la del LED de la esquina inferior derecha. El LED central es el de coordenadas 2, 2.
Ocultar apaga el LED de coordenadas x e y.
Invertir cambia el estado del LED de coordenadas x e y. Si estaba apagado lo enciende; si estaba encendido lo apaga.
Punto informa sobre si el punto de coordenadas x e y está encendido o apagado. Este tipo de bloques se explicará en la sección de variables, lógica y matemáticas.
Plot bar graph of crea una barra vertical para representar un parámetro. Resulta un bloque muy útil para visualizar gráficamente las medidas de los sensores de micro:bit. En la sección siguiente se verá con más detalle aplicado a un ejemplo.
El siguiente programa crea una animación con los bloques básicos. Las animaciones son una excelente forma de introducir al alumnado de menor edad en los fundamentos de la programación a través de secuencias simples y en las imágenes digitales.
Nótese que al inicio se ha ajustado el brillo de la pantalla. La función ajustar brillo se encuentra pulsando sobre los tres puntos suspensivos bajo el menú LED. El brillo máximo es de 255, por lo que 128 representa un valor medio.
Interacción con micro:bit por medio de los pulsadores
Pulsadores mecánicos
El menú Entradas contiene los bloques que permiten captar datos de los sensores integrados en micro:bit. Para que la placa lleve a cabo acciones al pulsar los botones A, B ó A y B a la vez, disponemos del bloque de eventos denominado al presionarse el botón:
Al arrastar el bloque anterior desde la caja de herramientas hasta el área de programación y seleccionar la opción de pulsación A+B, la imagen de la tarjeta cambia para mostrar la posibilidad de pulsar con el ratón sobre un nuevo botón virtual que simula la pulsación simultánea de los botones A y B.
Para que micro:bit realice alguna acción específica al pulsar un botón, bastará con introducir los bloques de código necesarios dentro de un bloque de evento de pulsación. El siguiente programa mostrará una flecha apuntando hacia la izquierda al pulsar el botón A, una flecha apuntando hacia la derecha al pulsar el botón B y dos flechas al pulsar los botones A+B. Transcurrido 1 s, se borrará la pantalla.
Los eventos al iniciar y para siempre han quedado vacíos simplemente porque no hemos previsto que se lleve a cabo ninguna acción inicial ni permanente.
Pulsador táctil
Desde la versión 2 de la tarjeta el logo situado en el anverso es un sensor táctil. El menú Entradas dispone de un bloque específico que puede ajustarse mediante un menú desplegable para capturar el evento deseado.
Como puede verse, los eventos asociados al logo son pulsar, tocar, soltar y mantener pulsado. Cada vez que se toque el logo se producirán tres eventos:
- Evento al tocar el logotipo en el instante en que se toca el logo.
- Evento al soltar el logotipo justo en el momento en el que se levanta el dedo del logo.
- Evento al pulsar el logotipo justo en el momento en el que se levanta el dedo del logo siempre que la pulsación haya sido corta.
- Evento al mantener pulsado el logotipo justo en el momento en el que se levanta el dedo del logo siempre que la pulsación haya sido larga.
El siguiente programa simula una luz temporizada.
Mada más tocar el logo, el evento al tocar el logotipo hará brillar la pantalla con una luz tenue. Al levantar el dedo, el evento al soltar el logotipo iluminará la pantalla a plena potencia. Si la pulsación ha sido corta, el evento al pulsar el logotipo mantendrá la luz encendida durante 3 s. Si la pulsación ha sido larga, el evento al mantener pulsado el logotipo mantendrá la luz encendida durante 15 s.
Bloques de entradas: sonómetro, magnetómetro y acelerómetro con una sola línea de código
Sensor de sonido
Para usar los sensores integrados de micro:bit no es necesario cargar ni inicializar bibliotecas de código. Las medidas de los sensores se encuentran disponibles en el menú Entrada en forma de variables. En el lenguaje de bloques las variables se representan mediante rectángulos de extremos redondeados.
La versión 2 de micro:bit dispone de un micrófono que además de grabar sonidos puede medir el nivel de ruido. La variable nivel de sonido nos dará lecturas entre 0 (nivel mínimo de sonido) y 255 (nivel máximo). Estos niveles no se corresponden con ninguna unidad física, como el dB por ejemplo, y deben usarse con fines comparativos.
La razón de que algunos sensores de micro:bit proporcionen medidas entre 0 y 255, es que con un byte (8 bits) sólo se pueden representar 28 = 256 números distintos, es decir, el 0 y los 255 primeros números naturales.
El bloque plot bar graph of del menú LED permite construir un sencillo medidor de sonido ambiente. Como 255 es un valor muy alto de intensidad de sonido, ajustamos el rango de medida de la barra, up to, a la mitad, es decir, a 128. Así la barra reflejará mejor el sonido de una voz o el sonido ambiental normal.
La variable nivel de sonido debe arrastrarse desde el menú Entrada. En el momento en el que la variable haya sido introducida en el programa, el simulador de micro:bit cambiará, mostrando una barra ajustable que simulará el nivel de sonido captado por el micrófono. El valor numérico del nivel de sonido simulado también será mostrado al lado del LED del micrófono.
Tras descargar el programa en la placa real, la matriz de LED representará continuamente el sonido recogido por el micrófono en forma de barra vertical. El LED del micrófono iluminado indicará que micro:bit está captando sonido.
Una tarjeta micro:bit ejecutando este programa puede agotar un par de pilas alcalinas IEC R03 (AAA) en unas 40 horas (Frost 2018). Para ahorrar energía y prolongar la autonomía del medidor podemos reducir tanto el brillo de la pantalla como el número de medidas por segundo que realiza el sensor. Para conseguir esto último introduciremos en el bucle para siempre un bloque pausa (ms). Si el bloque se ajusta a 100 ms, el sensor sólo realizará 10 mediciones del nivel de sonido cada segundo.
Magnetómetro y acelerómetro
Con una mínima modificación, el código anterior puede usarse para monitorizar aquellas magnitudes que puedan variar rápidamente. Por ejemplo, podemos usar el sensor integrado de campo magnético (magnetómetro) para medir el campo magnético de la Tierra, el de una imán o el de una masa de hierro.
Podemos acceder al sensor mediante la variable fuerza magnética (µT), que proporciona la inducción magnética medida en microtesla. Al cargar el programa, micro:bit comenzará a medir el campo magnético terrestre que varía, según la localización, entre 25 y 65 µT. Nótese que el magnetómetro no limita sus medidas al valor de 255.
Otra medida interesante es la de la aceleración de la placa. La variable de acceso al acelerómetro se llama aceleración (mg) y proporciona las aceleraciones medidas en milésimas de g. Cuando la placa esté en reposo medirá la aceleración de la gravedad terrestre, que es de 1 g. Los movimientos bruscos de la placa en cualquier dirección deberían alterar el valor medido.
Bucles y eventos de tiempo: un termómetro
Programación del termómetro
El siguiente programa proporcionará el valor numérico de la temperatura ambiente en grados Celsius cada vez que se pulse el botón A. La variable temperatura (ºC) se encuentra disponible en el menú Entrada.
El evento al iniciar comienza encendiendo un punto de la matriz de LED a modo de piloto de funcionamiento. El brillo de la pantalla se ajusta a un valor bajo para conseguir un bajo consumo de energía.
Por otro lado, cada vez que se pulse el botón A, ocurrirá un evento del tipo al presionarse el botón A que subirá el brillo de la pantalla al máximo (255) y mostrará la temperatura mediante una cadena de texto deslizante, para volver más tarde a dejar encendido el piloto de funcionamiento a bajo brillo.
La temperatura indicada será algo superior a la ambiental. Esto ocurre porque el sensor de temperatura se encuentra en el microprocesador y éste se calienta ligeramente cuando la placa está en funcionamiento. Martínez de Carvajal (2019) establece el error medio en 3ºC, por lo que habrá que restar 3 al valor mostrado en pantalla para obtener la temperatura real. La manipulación de la placa con los dedos también contribuye al calentamiento y al error en la medida de la temperatura.
Podemos añadir un evento de tiempo para que el termómetro muestre la temperatura cada cierto tiempo. Para ello debemos usar el evento cada ms, dentro del menú Bucles.
Cada 30000 ms, o cada 30 segundos, el programa mostrará la temperatura aunque no haya sido pulsado el botón A. Dentro del bucle de tiempo no se sube el brillo, así que los dígitos se mostrarán con bajo brillo para ahorrar batería.
Es posible mejorar un poco más el programa haciendo que micro:bit muestre tres veces la temperatura cada 30 segundos. Podríamos repetir sin más la sentencia mostrar cadena temperatura (ºC) tres veces dentro del bucle de tiempo, pero en su lugar vamos a usar un bucle del tipo repetir veces , que también se encuentra en el menú Bucles.
Nótese que el programa ejecuta un bucle cada 30 segundos, y que dentro de ese bucle se ejecuta otro bucle que muestra la temperatura tres veces seguidas. Al hecho de introducir un bucle dentro de otro se le llama anidar bucles.
Mejorando la lectura del sensor de temperatura
Para corregir el error de 3 grados Celsius en la lectura del sensor, bastará con restar 3 al valor de la variable temperatura (ºC). El menú Matemática contiene bloques para realizar operaciones aritméticas. Si se usa el bloque de resta - dentro de los bloques mostrar cadena resulta sencillo realizar la corección necesaria. El código del termómetro completo quedará:
Los dos bloques mostrar LED han sido sustituidos por dos bloques graficar x y para conseguir que el código sea algo más compacto.
Bloques condicionales: luz crepuscular
Brillo adaptativo
La matriz de LED de micro:bit es también un sensor que puede captar tanto la luz visible como la invisible. En este último caso se encuentra la luz infrarroja emitida por los mandos a distancia.
Los valores de la variable nivel de luz del menú Entrada se encuentran comprendidos entre 0 y 1023. Como en el caso del sensor de sonido, estos valores no tienen correspondencia con ninguna unidad física, como el lux.
Para poder obtener buenas medidas de luz, la matriz de LED debe estar descubierta. Las fundas para micro:bit, especialmente las de color oscuro, pueden alterar las medidas del sensor de luz.
De acuerdo con Martínez de Carvajal (2019), el sensor de luz arrojará aproximadamente las siguientes medidas:
- 0 en condiciones de oscuridad absoluta.
- 100 en una habitación con luz artificial.
- 400 en un día muy nublado.
- 1023 a pleno sol.
Podemos retomar el proyecto del sonómetro y acompañarlo de una pantalla con brillo adaptativo, como la de los teléfonos móviles. La pantalla debe iluminarse con más brillo cuanto mayor sea la luz ambiental.
El evento al presionarse el botón A medirá el nivel de sonido y lo mostrará gráficamente con la ya conocida barra.
Usaremos un evento de tiempo cada ms para medir la luz ambiental cada segundo y así poder ajustar el brillo de pantalla al nivel de luz medido. De esta forma, a mayor luz ambiental, mayor brillo de pantalla. Como el brillo máximo es de 255 y el nivel de luz máximo medible es de 1023, dividiremos la lectura del nivel de luz entre 4 usando un bloque aritmético / del menú Matemática.
Luz crepuscular
Vamos a dar solución a un reto propuesto por Muñoz (2022) programando un automatismo que encienda la pantalla de LED cuando la luz ambiental caiga por debajo de un cierto valor, por ejemplo 100.
Todos los algoritmos programados hasta este momento se ejecutan linealmente desde el primer bloque colocado en la parte superior hasta el último situado abajo. Sin embargo, para solucionar el reto de la luz crepuscular necesitaremos que el flujo del programa siga caminos distintos según se cumpla o no una determinada condición.
Empezaremos evaluando la luz ambiental cada segundo mediante un evento de tiempo cada ms. Esto significa que el automatismo tendrá un tiempo de reacción de un segundo.
Dentro del evento de tiempo, usaremos la estructura si entonces si no, disponible en el menú Lógica , para encender con el máximo brillo la luz de la matriz de LED si la luz ambiental es inferior a 100 o para apagar la matriz en caso contrario. Tras el apagado de la pantalla dejaremos un pequeño punto en el centro iluminado a baja intensidad como piloto de funcionamiento.
El bloque comparador < (menor que) usado dentro de la estructura si entonces también se encuentra dentro del menú Lógica.
Semáforo del ruido en el aula
Make Code permite construir sentencias condicionales más complejas. El código del semáforo del ruido emplea un bloque si entonces si no, si entonces si no. Para construir este bloque se ha utilizado la estructura si entonces si no del ejemplo anterior y se ha añadido una condición suplementaria pulsando sobre el pequeño círculo con el símbolo +. De igual manera, pulsando sobre los círculos con los signos - podremos eliminar condiciones.
Así pues, si el nivel de sonido es inferior a 64, la pantalla mostará un icono sonriente. En caso contrario, si el nivel de sonido es alto pero todavía inferior a 128, se mostrará una cara triste. FInalmente, si el sonido es igual a superior a 128, se mostrará una cara enfadada.
Brújula digital
Una brújula numérica
El sensor de campo magnético integrado en micro:bit también puede usarse para medir el campo magnético terrestre. De esta forma es posible determinar la dirección del norte magnético y programar así una brújula.
De acuerdo con la esencia de micro:bit bastan unas pocas líneas de código para realizar una brújula digital. El código mostrado a continuación indica en pantalla la dirección a la que apunta el logotipo cada vez que se presiona el botón A.
Como el resto de bloques de sensores, el bloque dirección de la brújula (º) se encuentra disponible en el menú Entrada.
La dirección será mostrada en grados sexagesimales. Conviene recordar que el valor de 0º corresponde al norte y el de 180º al sur. La siguiente rosa de los vientos puede servir para clarificar la correspondencia entre los puntos cardinales y los rumbos asociados:
Por ejemplo, y de acuerdo con la rosa de los vientos, una lectura de 340º indicará que el logotipo de micro:bit apunta en dirección casi norte, concretamente nornoroeste.
La brújula funcionará mejor en exteriores, ya que el sensor magnético puede ver alteradas sus lecturas por la presencia de masas metálicas en el interior de los edificios, como las de los electrodomésticos o las armaduras de pilares y forjados.
Es posible que al encender micro:bit, aparezca un mensaje en inglés solicitando agitar la tarjeta para calibrar el sensor. Esta cuestión se trata en el apartado siguiente.
Calibrando el compás
Al igual que la brújula de un teléfono móvil, el compás de micro:bit necesita ser calibrado para proporcionar medidas fiables. Los puntos suspensivos ... más bajo el menú Entrada despliegan otro menú que contiene el bloque calibrar brújula.
Añadiendo el evento mostrado, nuestra brújula digital permitirá ser calibrada cada vez que se pulse el botón B.
El proceso de calibración es muy simple, ya que sólo requiere mover la placa en todas las direcciones hasta que todos los LED de la pantalla estén iluminados.
Una brújula analógica
Vamos a completar la funcionalidad de la brújula añadiendo un cursor que marque continuamente la dirección del norte. Usaremos un evento de tiempo para leer el sensor y actualizar el dibujo del cursor cada medio segundo.
Dentro del evento de tiempo, el código dibujará una flecha hacia arriba cuando la dirección de micro:bit sea mayor que 315º o menor que 45º, es decir, cuando el logotipo apunte aproximadamente al norte. Los bloques condicionales y los comparadores usados en el código se encuentran en el menú Lógica.
Sin embargo, este programa sólo mostrará la flecha cuando el logo apunte al norte, borrando la pantalla en caso contrario. Para que haya una flecha en pantalla apuntando permanentemente al norte, habrá que pulsar sobre el signo + para añadir líneas al bloque condicional.
Nótese que cuando el logo de micro:bit apunta al este, dirección de la brújula (º) < 135, hay que dibujar la flecha apuntando a la izquierda (flecha oeste), y que cuando el logo apunta al oeste, hay que mostrar una flecha apuntando a la derecha (flecha este). Sólo de esta forma la flecha apuntará siempre al norte.
Nivel de burbuja usando el giroscopio
Mediante el sensor de fuerza, micro:bit puede determinar para cada uno de los tres ejes coordenados las proyecciones de la aceleración de la gravedad y, a partir de ellas, el giro de la placa con respecto al plano horizontal.
Vamos a usar la medida del giro de la placa para programar un sencillo nivel de burbuja. La burbuja será un punto luminoso en la pantalla LED de micro:bit. Cuando el punto se encuentre en el centro de la pantalla, cuyas coordenadas son (2,2), micro:bit estará nivelado. Si micro:bit está desnivelado hacia la izquierda o hacia la derecha, el punto se dibujará desplazado en esas direcciones.
La estructura del código, compuesto por múltiples sentencias condicionales, es muy similar al de la brújula analógica presentada en el apartado anterior.
El código consta de un único evento temporal dentro del cual se evalúa el giro de la placa cada 250 ms y que, en función del ángulo de inclinación, enciende el punto correspondiente. Por ejemplo, si la placa se inclina hacia la izquierda con una rotación inferior a -5º, se encenderá el punto situado más a la izquierda, cuyas coordenadas son (0,2). En caso contrario, si la placa está incilinada hacia la izquierda menos de -2º, se encenderá el siguiente punto, de coordenadas (1.2), y así sucesivamente.
Música y sonido con micro:bit
Una pequeña melodía
Secuencias
By pressing down a little key, it plays a little melody.
Kraftwerk, "Pocket Calculator", 1981
El menú Música de MakeCode contiene muchos bloques para producir sonidos y melodías. La forma más rápida de generar una pequeña melodía es introducir en el código el bloque play melody. En el ejemplo siguiente, al pulsar el botón A sonará una melodía pregrabada elegida de una lista desplegable.
La melodía suena en el fondo, in background, por lo que el resto del código que haya sido introducido en micro:bit seguirá ejecutándose mientras suene la música.
La opción hasta que termine detiene la ejecución del código hasta que finalice la melodía.
La opción looping in background hace sonar la música continuamente mientras se ejecuta el resto del código programado en micro:bit.
También es posible programar pequeñas melodías usando el bloque play melody at tempo. En el monento de programar, el bloque despliega un secuenciador gráfico de ocho notas y una octava, en el que las notas están codificadas por colores. Además, el bloque permite elegir el tempo de reproducción en bpm o pulsos por minuto. Vamos a usar el bloque play melody at tempo para codificar un arpegio que suene a 240 bpm al pulsar el botón B:
Adicionalmente, el bloque play melody at tempo dispone de varias secuencias programadas, a las que se accede pulsando sobre el botón Galería.
Melodías y efectos de sonido
El bloque play contiene varias melodías pregrabadas, que pueden seleccionarse mediante una lista desplegable.
Con la versión 2 de micro:bit podemos añadir efectos de sonido por medio del bloque play. De nuevo, al pulsar sobre el bloque se desplegará una lista de los efectos disponibles.
El programa de la figura usa play para hacer que suene el efecto misterioso cuando micro:bit sea agitado.
Grabadora de sonidos
La versión 2 de micro:bit tiene la capacidad de grabar sonidos gracias a su micrófono integrado. El sonido grabado puede reproducirse con el altavoz de la placa aunque, debido a su pequeño tamaño, la calidad es algo pobre. A pesar de ello, experimentar con la grabación del sonido siempre producirá resultados interesantes.
El sonido grabado se guarda en la memoria RAM de la placa, por lo que se borrará cuando se desconecte la alimentación.
Cuando se accede al entorno de MakeCode no aparece ningún menú de bloques relacionados con la grabación o con la reproducción del sonido. Resulta por lo tanto necesario cargarlo como una extensión del lenguaje de bloques de micro:bit. Para ello hay que pulsar sobre el menú Extensiones de la caja de herramientas de MakeCode y seleccionar audio-recording. Tras unos instantes, aparecerá en la caja de herramientas un nuevo menú llamado Record.
Con la nueva extensión ya cargada, podemos pasar a codificar un sencillo grabador y reproductor de sonido.
El programa debe grabar un sonido cuando se pulse el botón A y debe reproducirlo al pulsar el botón B. Durante la grabación mostraremos en pantalla el icono universal record (algo parecido a un círculo) y durante la reproducción mostraremos el icono universal play (un triángulo apuntando hacia la derecha). Cuando el programa termine de grabar o de reproducir, debe mostrar el icono pause (dos barras verticales). El programa puede ser algo parecido a esto:
Una vez introducido el código, el simulador de MakeCode nos ofrecerá la posibilidad de probar el funcionamiento del programa sin necesidad de descargarlo previamente en la placa. Para ello usará el micrófono y el altavoz de nuestro ordenador.
La duración del mensaje grabado es de unos 6 segundos.
Adicionalmente, podemos usar el evento al iniciar para ajustar al máximo la calidad y la sensibilidad del micro.
Set sample rate to 22000 for everything indica que tanto la grabación como la reproducción del sonido se realizarán tomando 22000 muestras o lecturas de la onda sonora por segundo.
Fray Santiago
Por medio del bloque play tone, del menú Música, micro:bit puede reproducir melodías algo más complejas. Hay que recordar que para poder reproducir la melodía es necesario disponer de una tarjeta de la versión 2, ya que la primera versión de micro:bit no dispone de altavoz integrado.
A modo de ejemplo vamos a codificar la melodía Fray Santiago, cuya partitura se muestra a continuación:
De acuerdo con la partitura, las notas musicales que hay que reproducir son:
Do-Re-Mi-Do (2 compases)
Mi-Fa-Sol (2 compases)
Sol-La-Sol-Fa-Mi-Do (2 compases)
Re-Sol-Do (2 compases)
El bloque play tone da la posibilidad de ajustar la duración de las notas en pulsos. Algunas de las notas de Fray Santiago son negras, por lo que durarán un pulso. Otras son corcheas y deben durar la mitad de una negra, es decir, medio pulso. Las blancas tendrán una duración de dos pulsos.
Usaremos un evento si agitado para que la música se inicie al sacudir la tarjeta. Como cada compás se repite dos veces, deben usarse varios bucles repetir 2 veces para ahorrar líneas de código. Aplicando todo lo expuesto, el programa tendrá el siguiente aspecto:
Cuando el programa esté completo, el simulador de micro:bit dará la opción de agitar la placa con el puntero del ratón para reproducir la melodía desde el ordenador, sin necesidad de descargarla en la placa física.
Por otro lado, la imagen del simulador muestra la posibilidad de conectar la tarjeta a un altavoz externo por medio de unas pinzas de cocodrilo y del jack de 3,5 mm del altavoz. Esta es la solución para reproducir sonidos cuando no se dispone de una tarjeta de la versión 2.
Controles de volumen, tempo y tono
Ajustando el volumen y el tempo
La potencia del altavoz de micro:bit no es muy alta, pero puede regularse con el bloque específico establecer volumen a. Por medio de este bloque el nivel sonoro puede ajustarse entre valores de 0 y 255. El ajuste del volumen puede realizarse en cualquier momento de la ejecución del programa. En el caso de la melodía de Fray Santiago, podemos fijar el volumen dentro del evento al iniciar. Además, aprovecharemos este evento para mostrar permanentemente en pantalla una corchea.
De nuevo, tras modificar el programa de Fray Santiago, el simulador de micro:bit nos mostrará cómo conectar la tarjeta a un altavoz externo.Al conectar la placa a un altavoz, puede ser deseable desconectar el altavoz interno. Esta función la realiza el bloque llamado configurar altavoz interno, que puede adoptar los estados activado y desactivado.
La melodía se reproduce por defecto a un tempo de 120 pulsos por minuto. El bloque ajustar tempo a (bpm) admite tempos de entre 40 y 500 pulsos por minuto. Para reproducir Fray Santiago a una velocidad menor que 120 bpm, daremos al tempo un valor de 90 bpm dentro del evento al iniciar.
Sonidos estocásticos
El bloque tono de timbre (Hz) produce un sonido continuo cuya frecuencia en hertz (Hz) puede ser ajustada. El tono generado por micro:bit no tiene una duración determinada, así que sonará hasta que sea apagado mediante el bloque para todos los sonidos.
Usando estos dos bloques podemos programar un generador de notas aleatorias. Para producir números aleatorios se utiliza el bloque escoger al azar de, disponible en el menú Matemática.
De acuerdo con el código presentado, cada vez que se pulse el botón A, la placa generará al azar entre 16 y 32 sonidos, cuyas frecuencias variarán entre 262 Hz y 440 Hz, y que durarán entre 125 ms y 250 ms.
Retos con microbit
Panel LED
La tarjeta consta de 25 LEDs de color rojo, estos se pueden programar de forma independiente. Permite mostrar números, letras e imágenes. El sistema está preparado para desplazarse de forma automática en el supuesto de que no quepan los caracteres a mostrar.
By Ugopedia [CC BY-SA 4.0 ], from Wikimedia Commons
Reto Hola Mundo.
Cuando se aprende a programar, se llama “Hola Mundo” al primer programa que se crea. Este código imprime el texto «¡Hola Mundo!» en un dispositivo de visualización.
Objetivo.
Al conectar la micro:BIT, se debe mostrar el texto «¡¡¡Hola Mundo!!!» en el panel LED de la tarjeta.
Descripción del código.
Se propone usar el evento al iniciar, situado en la categoría Básico. Este bloque permite ejecutar el código introducido, cuando se inicia la micro:BIT
A continuación se usará el bloque mostrar cadena, también localizado en la categoría Básico e introducir el texto “¡¡¡ Hola Mundo !!!”. Este bloque permite mostrar caracter a caracter, el texto introducido.
El código quedará de la siguiente manera.
De forma inmediata comenzará a leerse en el panel LED la cadena de texto introducida. El texto no cabe en su totalidad por lo que este se desplazará de forma automática.
Simulador
Lo bueno que tiene el editor es que permite compartirlo y embeberlo en una página web. Aquí tienes el resultado de embeber el anterior código:
Propuesta.
Modificar el código, para que se muestre el nombre del programador.
Reto Animando los iconos.
La animación es una técnica que logra crear sensación de movimiento a imágenes estáticas. Se consigue mediante una secuencia de imágenes ordenadas, que al ser mostradas consecutivamente, consiguen generar la ilusión visual de movimiento.
Objetivo.
Se propone, que al conectar la micro:BIT, se muestre en el panel LED un corazón que late.
Descripción del código.
Se usará el evento “para siempre”, situado en la categoría Básico..
Situar en el interior el bloque anterior la instrucción mostrar icono, usar el llamado corazón.
Agregar el bloque pausa ms (100) localizado en la categoría Básico.
Repetir los dos bloques anteriores, pero seleccionando el icono “corazón pequeño”.
De forma inmediata se visualiza en el simulador un corazón que simula latir.
Simulador
Propuesta.
Hacer un código que muestre la animación de una tijera cortando.
Reto 3 Diseñando iconos.
MakeCode permite diseñar de forma gráfica los iconos a mostrar en el display LED. Para este menester dispone de un bloque específico situado en la categoría Básico. El bloque se llama “mostrar LEDs” y permite al usuario diseñar sus propios iconos marcando de forma independiente los LEDs que se quieren iluminar.
Objetivo.
Diseñar un icono con forma de Indalo. Se trata de una figura rupestre encontrado en una cueva de la provincia de Almería y que representa una figura humana con los brazos extendidos y un arco sobre sus manos. Actualmente se considera un símbolo de la provincia de Almería.
Descripción del código.
Se usará el evento al iniciar, situado en la categoría Básico..
Situar en el interior el bloque anterior, la instrucción “mostrar LEDs”, este se localiza en la categoría Básico. Este bloque permite marcar de forma independiente los LEDs que se quieren encender.
Pulsar sobre los LEDs que se quieren iluminar hasta conseguir el icono deseado.
Deberá aparecer en el simulador el icono con la forma diseñada.
Propuesta.
Diseñar un código que muestre un logotipo diseñado por el programador.
Sensor temperatura
El sensor de temperatura integrado en la placa detecta la temperatura ambiente en grados Celsius.
By Celsius_kelvin_estandar_1954.png: Homo logosderivative work: kismalac (Celsius_kelvin_estandar_1954.png) [CC BY-SA 3.0 or GFDL], via Wikimedia Commons
Reto Termómetro digital.
Un termómetro es un instrumento que sirve para medir la temperatura; el más habitual consiste en un tubo capilar de vidrio cerrado y terminado en un pequeño depósito que contiene una cierta cantidad de mercurio o alcohol, el cual se dilata al aumentar la temperatura o se contrae al disminuir y cuyas variaciones de volumen se leen en una escala graduada.
Los termómetros digitales son aquellos que, valiéndose de dispositivos transductores, utilizan circuitos electrónicos para convertir en números las pequeñas variaciones de tensión obtenidas, mostrando finalmente la temperatura en un visualizador.
Objetivo.
Mostrar en el panel LED la temperatura detectada por el sensor de temperatura integrado en la micro:BIT.
Descripción del código.
Se propone iniciar el programa usando el evento “para siempre”. Añadir el bloque, localizado en la categoría Básico, mostrar número. Este bloque muestra en la pantalla LED el número introducido, desplazándose si es mayor de 1 cifra.
Sustituir el número “0” por el valor obtenido del sensor de temperatura. Este bloque se localiza en la categoría Entrada.
A continuación se borra la pantalla y se introduce una pausa de 1000 ms. Quedando el programa de la siguiente forma:
En el simulador aparecerá una barra vertical que permite modificar la temperatura, siendo la temperatura marcada la mostrada en el panel LED.
Propuesta.
Hacer un programa que al pulsar el botón A muestra la temperatura en grados celsius y al pulsar el botón B la temperatura mostrada sea en grados Fahrenheit.
Reto Aviso de placas de hielo.
La mayoría de coches incorporan en el salpicadero, junto a la pantalla que marca la temperatura exterior, un testigo con forma de copo de nieve, que avisa de la posibilidad de que haya placas de hielo en la carretera. Este testigo se suele iluminar cuando la temperatura baja de 3 grados centígrados.
Objetivo.
Mostrar en el panel LED de la micor:BIT un icono con forma de copo de nieve cuando la temperatura esté por debajo de 3 grados.
Descripción del código.
Para iniciar el programa, se propone usar el evento para siempre. Posteriormente se debe añadir el operador lógico si … entonces situado en la sección Lógica. Este bloque verifica si es verdad que se cumple una condición, si es así, ejecuta las instrucciones introducidas.
Para comprobar si la temperatura está por debajo de los 3º centígrados se usará el operador que devuelve verdadero siempre que 3 sea mayor que el valor reportado por el sensor de temperatura. El bloque se localiza en la categoría Lógica.
Para mostrar un icono con forma de copo de nieve se usará el bloque mostrar LED, también se debe añadir el bloque borrar la pantalla para que no se quede encendido el panel LED cuando suba la temperatura de 3º centígrados
Una vez terminado el código, aparecerá el símbolo de hielo, cuando la temperatura sea menor de 3º centígrados.
Propuesta.
Añadir un aviso sonoro cuando la temperatura sea inferior a 3 grados celsius.
Reto Temperatura óptima de una nevera
La temperatura óptima de un frigorífico es de 7ºC, mientras que la temperatura de un congelador debe estar entorno a los -18ºC. Algunas neveras incorporan un avisador acústico que se activa cuando la temperatura no es la óptima.
Objetivo.
Mostrar en el panel LED de la micro:BIT la temperatura del frigorífico y activar una alarma cuando la temperatura esté por encima de 7ºC
Descripción del código.
En este reto se incorpora un altavoz como actuador externo. Se conectará uno de los polos al GND y el otro al PIN 0.
Para iniciar el programa se usará el bloque “para siempre”. Dentro se situará el condición “si entonces”. La condición a verificar será: si la temperatura es mayor de 7 grados.
Si el valor es verdadero entonces se reproducirá un tono de aviso.
También se muestra la temperatura medida.
En el simulador se puede variar la temperatura para comprobar el correcto funcionamiento del programa.
Propuesta.
Modificar el código para monitorizar el congelador.
Sensor luminosidad
Los LEDs de la placa micro:BIT también pueden actuar como entrada haciendo que detecten la luz ambiente.
By Photo Credit: Keith Drake [Public domain], via Wikimedia Commons
Reto Interruptor crepuscular.
Cuando la intensidad de la luz cae por debajo de un nivel de iluminación predeterminado y ajustado con anterioridad, el interruptor crepuscular enciende la iluminación. Por el contrario, si la intensidad de la luz es mayor que el nivel prefijado, los interruptores apagan la iluminación.
Objetivo.
Crear un programa que mida el nivel luminoso existente, para ello usará el sensor de luz de la micro:BIT. Posteriormente se comprobará si este valor es inferior a 50, si es así, se encenderán todos leds de la placa a su máxima intensidad.
Descripción del código.
Se usará el evento para siempre, para iniciar el programa. Se introducirá la condición si … entonces, si no, para comprobar si se está por encima o por debajo del valor teórico tomado como límite en esta ocasión 50. Si el valor es inferior a 50, se fijará la intensidad de los LEDs al máximo usando el bloque ajustar brillo 255. Si el valor es superior a 50 se usará el bloque borrar la pantalla para, de esta forma, apagar todos los LEDs.
El código quedaría de la siguiente forma, se podrá comprobar su funcionamiento variando la intensidad en el simulador de la tarjeta.
Propuesta.
Una variante de este reto sería hacer que el brillo de los LED se adapte a la intensidad de la luz media por el sensor. A mayor intensidad recibida por el sensor, menor intensidad de
iluminación y a menor intensidad medida, mayor luminosidad de los LED.
Pulsadores
Hay dos botones en la cara frontal de micro:bit (etiquetados como A y B). Puedes detectar cuando son pulsados de forma independiente o a la vez y ejecutar una acción en cada caso.
Reto ¿Qué botón has pulsado?
A veces puede interesar usar un pulsador para iniciar, pausar o detener un código o subrutina. Algunos robots incorporan botoneras para esta finalidad.
Objetivo.
Crear un programa que muestre en pantalla la letra del pulsador que se ha accionado.
Pruébalo aquí:
Descripción del código.
Se usará el bloque al iniciar para que al principio se muestre el texto “Pulsa un botón”. La micro:BIT no muestra caracteres acentuados, por lo que dejará un hueco si se pone la tilde en la palabra botón.
Posteriormente se usará el evento al presionar el botón A y se introducirá el bloque mostrar cadena donde se sustituirá el texto por defecto por la letra “A”.
Esto mismo se repetirá cuando se pulsa el botón B y la pulsación combinada de A+B.
El código quedaría de la siguiente forma:
Propuesta.
Crear una caja de música. Al pulsar el botón A haga hará sonar una melodía. El bloque necesario para hacer sonar una melodía se encuentra en la categoría Música.
Reto 9 Medir la intensidad de la luz ambiente
Los sensores de luz se usan para detectar el nivel de luminosidad y producir una señal de salida representativa de la cantidad de luz detectada.
En algunas ocasiones puede ser interesante conocer el nivel lumínico que hay en diferentes situaciones y así poder calibrar un dispositivo que dependa del valor de la intensidad luminosa, como puede ser una cámara fotográfica.
MakeCode dispone del bloque nivel de luz en la categoría Entrada, que lee el valor de luz aplicado en la pantalla LED. Este valor se mueve en un rango de 0 (oscuro) a 255 (luminoso).
Objetivo.
Al presionar sobre el pulsador A se mostrará el valor numérico de la intensidad de la luz ambiente. Al pulsar sobre B, se mostrará gráficamente la intensidad lumínica. Al pulsar A y B de forma simultánea, se apagará la pantalla.
Descripción del código.
Se propone crear tres programas diferentes y que cada uno se inicie según el botón o combinación de botones presionados.
Al pulsar sobre el botón A se mostrará el valor numérico de la intensidad luminosa. Se usará el bloque mostrar número introduciendo el bloque nivel de luz como valor a presentar.
Al pulsar el botón B se encenderán los LEDs necesarios, para mostrar de forma gráfica el valor del nivel de luz. Se usará el bloque plot bar graph of ... up to ... localizado en la sección LED. En primer lugar se introduce el bloque nivel de luz y en el segundo término se sustituye el valor por defecto por 255, valor máximo que detecta el sensor de luz.
Para terminar se usará la pulsación combinada de los botones A y B para borrar y apagar la pantalla LED.
Propuesta.
Crear un código que permita encender todos los LEDs del panel de la micro:BIT al pulsar el botón A y apagarlos al pulsar el botón B, pero no se encenderá si el valor del sensor de luz es superior a 175.
Reto Modificar el brillo de los LEDs
La mayoría de los teléfonos móviles incorporan la posibilidad de modificar la luminosidad de la pantalla, para adaptarse a la luz ambiente.
Objetivo.
Diseñar un programa que permita modificar la luminosidad de los LEDs, si se pulsa el botón A la luminosidad aumentará, si se acciona el botón B la luminosidad disminuirá. Si se pulsan A+B la luminosidad se situará a un valor intermedio (128).
Descripción del código.
Para iniciar el programa se definirá una variable que se llamará “brillo”. En la categoría Variables se podrá crear una nueva variable o renombrar la que sale por defecto.
Se establecerá un valor inicial de 128 para la variable creada.
Se propone usar pasos por valor de 32 unidades para evidenciar el cambio de brillo en los LEDs, pero se puede usar cualquier otro valor.
Al accionar el pulsador A se aumentará la variable “brillo” en 32 pasos. Al pulsar el botón B se disminuye el valor de la variable “brillo” en 32 pasos. Por último si se pulsa a la vez las teclas A y B se establece el valor inicial de la variable “brillo”.
Ya para terminar faltaría mostrar en el panel LED un icono que muestre los cambios en el brillo de los LEDs. Se debe usar la variable “brillo” como valor que toma el bloque ajustar brillo
Propuesta.
Se propone como reto hacer un código que ajuste el brillo de forma automática, a mayor luminosidad medida por el sensor de luz, mayor valor del brillo de los LEDs.
Acelerómetro
El acelerómetro mide la aceleración de tu micro:bit. Se activa cuando tu placa se mueve y también puede detectar otras acciones como agitar, girar y hasta soltar tu micro:bit en caída libre!
By Ugopedia [CC BY-SA 4.0 ], from Wikimedia Commons
Reto Dado electrónico.
Un dado es un objeto cúbico usado en juegos de azar. En las caras del cubo aparecen puntos que representan distintos números.
Se propone crear un dado electrónico que, usando el panel LED, muestre el resultado de obtener un número al azar entre 1 y 6.
Objetivo.
Tras agitar la micro:BIT, se deberá calcular un número aleatorio cuyo valor esté entre 1 y 6. Posteriormente, se mostrará en el panel LED el valor obtenido.
Pruébalo ¡¡lo puedes sacudir pulsando en Shake!! este simulador es genial !!
Descripción del código.
Como evento de inicio del programa se usará el bloque si agitado, se mostrará un número escogido al azar entre 0 y 5, al que se le sumará 1. Se suma 1 dado que el bloque escoge al azar, tiene como valor fijo de inicio el 0.
Tras una pausa de 1 segundo se borra la pantalla, quedando a la espera de que se vuelva agitar la micro:BIT.
Propuesta.
Diseñar un programa que permita jugar a la ruleta además se deberá indicar si es rojo o negro o si gana la banca.
Reto Cara o cruz.
El juego de cara o cruz es un juego de azar en el que se emplea una moneda. Gana quien acierte qué lado de la moneda (de los dos posibles) caerá cara arriba. Cada uno de los dos lados tiene un nombre distintivo y son mencionados como opciones para ser elegidas por los participantes. Por lo tanto, los participantes pueden ser dos equipos o dos personas y así cada bando tiene el 50% de probabilidades de acertar.
Este juego es frecuentemente empleado como un mecanismo para tomar decisiones o sortear, ya sea entre amigos o en forma informal, pero también es completamente aceptado en ciertas circunstancias, por ejemplo al inicio de un partido de fútbol profesional.
Objetivo.
La micro:BIT se situará con el panel LED hacia abajo. Al posicionarlo hacia arriba, se mostrará una cara o una cruz, ganando el que haya escogido la opción mostrada.
Descripción del código.
En primer lugar se creará una variable que se puede llamar “azar”.
Se usará como evento de inicio el bloque si pantalla hacia arriba. A continuación se asigna a la variable “azar”, un valor al azar entre 0 y 1.
Usando el operador lógico si entonces si no se elige como opción es la ganadora. Se asigna la carita feliz si la variable “azar” toma un valor de cero y en caso contrario ganará la cruz. Se mostrará la opción ganadora usando el bloque mostrar icono.
Tras una pausa de un segundo se borra la pantalla.
Para volver a repetir el proceso se deberá poner la micro:BIT con el panel hacia abajo y al volver a poner el panel hacia arriba se repetirá el código programado
.
Para ver el funcionamiento del programa se recomienda volcar el código a una micro:BIT. En el simulador, el proceso no es tan intuitivo.
Propuesta.
Hacer un programa que permita jugar a “Pares o Nones” contra la micro:BIT
Brujula
La brújula detecta el campo magnético terrestre por lo que se puede saber en qué dirección está orientada la micro:bit. (Necesita ser calibrada para asegurar un resultado preciso.)
By PedroDiazS [CC BY-SA 3.0 ], from Wikimedia Commons
Calibrar la brújula
La primera vez que grabamos un programa sale este mensaje por la pantalla:
Tilt to Fill Screen Inclinar para llenar la pantalla
Luego lo que tenemos que hacer después de que aparezca el texto anterior, sale un punto que irá rellenando la pantalla a medida que lo vas inclinando.
Objetivo: que se llene toda la pantalla de leds.
Con un vídeo se ve mejor
Pagina oficial de calibración.
Reto Conocer la orientación
El norte magnético es la dirección que señala la aguja imantada de una brújula, dirección que no coincide con la del Polo Norte geográfico. Se puede conocer la orientación si se conocen los grados de desviación respecto el Norte Magnético.
Objetivo.
Tras calibrar la brújula, nos dirá la desviación en grados respecto al Norte Magnético de la micro:BIT.
Descripción del código.
Usar el evento para siempre, para iniciar el programa.
Mostrar el valor del sensor dirección de la brújula (º) que ofrece el ángulo de desviación respecto el Norte Magnético.
Esperar 1 segundo y borrar la pantalla.
Propuesta.
Cuando la brújula apunte al norte magnético deberá aparecer una flecha apuntando hacia arriba. En caso contrario solo aparecerá el valor numérico.
Reto Aviso sonoro de orientación Norte.
Cuando se necesita orientarse con un mapa, lo que primero que hay que hacer, es situar el mapa con orientación norte. Para ellos se debe usar una brújula.
Objetivo.
Crear un programa que mediante un aviso acústico se advierta de que la micro:BIT está orientada al Norte.
Descripción del código.
Usar el evento para siempre, para iniciar el programa.
Crear una variable donde se almacenará el valor del sensor obtenido por el bloque dirección de la brújula (º).
Se introduce el condicional si entonces si no para comprobar en qué intervalo se encuentra el valor obtenido por el sensor.
Si el valor se encuentra entre 315º y 45º la micro:BIT se encuentra orientada al Norte, por lo que se mostrará una N y se reproducirá una nota. Si no se cumple la hipótesis, se borra la pantalla.
Propuesta.
Hacer un código que ubique de forma más precisa el Norte Magnético.
Radio
La radio te permite comunicar tu micro:bit con otras micro:bit. Por ejemplo, puedes conectar todas las tarjetas dentro de un aula a una misma emisora, usarla para enviar mensajes entre ellas y mucho más!.
By Iron Bishop [GFDL, CC-BY-SA-3.0 or CC BY-SA 2.5 ], from Wikimedia Commons
By Libraries Taskforce (Micro:bits) [CC BY 2.0 ], via Wikimedia Commons
Reto Sensor inalámbrico.
En algunas situaciones se puede dar el caso de que no se pueda tener conectado el sensor con la unidad receptora de datos mediante cable. Cuando esta situación se presenta una opción es usar sensores inalámbricos.
Usar sensores inalámbricos aporta numerosas ventajas. Entre ellas destacan la seguridad, la centralización de la monitorización y el ahorro de costes por no tener que cablear la instalación.
Un sensor inalámbrico está compuesto por el sistema recolector de datos, un sistema de emisión de datos y una fuente de alimentación. Lo más habitual es que la transmisión de datos sea mediante radiofrecuencia. Por otro lado, se encuentra un sistema receptor de datos conectado al sistema de almacenamiento y procesado.
Objetivo.
Diseñar un sistema inalámbrico de recolección de datos. La micro:BIT emisora se situará en el interior de una nevera y emitirá la temperatura. La unidad exterior mostrará el valor de la temperatura.
Descripción del código.
Se deberán crear dos códigos, uno para la micro:BIT emisora y otro para la receptora.
Para que las tarjetas se puedan comunicar entre sí, ambas deben estar en el mismo grupo de comunicación. También se debe emitir con la máxima potencia para evitar la atenuación que sufre la tarjeta emisora al encontrarse dentro de la nevera. Por este motivo, se deberá usar el bloque radio establecer potencia de transmisión situado en la categoría Radio y usar el máximo valor que es 7. Se recomienda usar el evento al iniciar para establecer el grupo de comunicación y asignar la potencia de transmisión.
micro:BIT emisora:
Tras establecer el grupo de emisión en 1 y poner la potencia de emisión al máximo, se enviará el valor de la temperatura mediante el bloque radio send number.
micro:BIT receptora:
La cadena enviada se guarda en la micro:BIT receptora en una variable que por defecto se llama “receivedNumber”. Se usará el bloque mostrar número, para visualizar la temperatura medida en la nevera. Tras un segundo se apagará el panel LED. No olvidar establecer al inicio el grupo de comunicación.
El código de la tarjeta receptora quedaría de la siguiente forma:
Propuesta.
Se propone mostrar una animación en el panel de la micro:BIT emisora, que confirme que el programa está en marcha.
Pines entrada y salida
La micro:BIT dispone de 25 conectores situados en el borde inferior . A través de ellos se podrán programar motores, LEDs o cualquier otro componente o sensor externo.
~ Biografía del autor ~
Reto ¿Hay continuidad?
En algunas ocasiones interesa conocer si un cable tiene continuidad en toda su longitud. Para comprobar la continuidad se suele usar un multímetro, midiendo la resistencia del conductor. Una lectura de resistencia infinita indicaría una interrupción en alguna parte del interior del cable.
Objetivo.
Diseñar un programa que permita comprobar si un cable tiene continuidad. Si no está cortado, mostrar una cara feliz.
Descripción del código.
Se usará el bloque pin (P0) está presionado de la categoría Entrada para comprobar la continuidad. Se propone emplear el evento para siempre y usar un condicional que verifique si el P0 está presionado. Si se cumple la condición se muestra una carita feliz, en caso contrario, el panel permanece apagado. El código podría quedar de la siguiente forma:
Para comprobar el funcionamiento se puede usar un cable con bananas conectados al GND, si se conecta con el P0 y el cable tiene continuidad, deberá aparecer una carita feliz en el panel LED.
Propuesta.
Modificar el código para que cuando el cable a comprobar tenga continuidad haga sonar la melodía “jump up” y si no tiene continuidad que se emita la melodía “jump down”.
Reto Música
Se puede añadir música utilizando unos cascos o altavoces de PC.. conectandolo al puerto P0 (pon sonido a tu ordenador y lo oirás):
Conexión con el "minijack"
Para la conexión se puede utilizar unas pinzas de cocodrilo (ver conexión)
Si no se tienen pinzas de cocodrilo, haciendo un poco DYC (lease mañoso) con papel de aluminio y celo (ver cómo se hace)
Descripción del código
El código es muy fácil:
Hay que tener cuidado con lo de repitiendo una vez prueba no ponerlo y verás que se van mezclando melodías cada vez que ser repite el bucle y al final no se sabe qué es lo que está sonando
No intentes relés directamente
A pesar de que microbit parece que se puede poner directamente, no tiene suficiente energía para mover un motor, aunque sea un servo sencillo:
La única manera es:
- O utilizar una placa de expansión, hay muchas en el marcado, un ejemplo es Microbit y Smartcar
- O sin placa, hacerlo manualmente, dando energía con unas pilas, lo tienes explicado aquí y este es el resultado https://youtube.com/shorts/Hx3_5GM-umc
También venden tarjetas para hacer intermediarias entre estos elementos y la microbit, el Smartcar es un ejemplo.
Reto libre
Ahora te retamos a lo siguiente: Entra en Makecode https://makecode.microbit.org y ELIGE UN PROYECTO EL QUE QUIERAS DE LOS QUE APARECEN Y HAZLO
Tendrás que hacerlo si quieres contestar a la pregunta test del curso correctamente !!!
cars para microbit
Cutebot
- Muy compacto y muy bien conseguido (⁓56€ placa microbit incluida 2023)
- Versión avanzada Cutebot plus
- Manual English
Características
-
Sensor de ultrasonidos de distancia SR04
-
Sigue-líneas
-
Sensor de IR para usar con mando a distancia (incluido)
-
Zumbador
-
2 x LEDs RGB
-
2 x LED Neopixel (debajo del chasis)
-
2 x Motores de 300 RPM de potencia variable
- Conexión I2C para extensiones
- En caja de cartón
Maqueen
- Muy compacto y muy bien conseguido (⁓70€ placa microbit incluida 2023)
- Versión avanzada Maqueen plus
- Manual (English)
Características
-
Sensor de ultrasonidos de distancia SR04
-
Sigue-líneas
-
Sensores de IR para usar con mando a distancia (incluido)
- 2 x sensores IR
-
Zumbador
-
4 x LEDs RGB
-
2 x LED Neopixel (debajo del chasis)
-
2 x Motores de 133 RPM de potencia variable
- Conexión I2C para extensiones
- Borde de conectores para entradas y salidas
- En caja de plástico
INSTRUCCIONES EN MAKECODE
Hay diferencias de variedad de instrucciones en https://makecode.microbit.org/#editor en cada extensión
Maqueen
Montaje del kit
La primera vez que se usa el kit viene sin montar, el ensamblaje es muy sencillo, mira este vídeo solo los primeros 30 segundos.
La parte más importante que no hay que saltar es la conexión de las baterías con la placa antes de poner el soporte de baterías encima de los motores, pues una vez puesto, es difícil llegar al conector:
Primero esto
Y luego esto
Primeros pasos
Mira este ve vídeo para que veas:
- Características de Maqueen minuto 0:00 a 3:48
- Como programar Maqueen minuto 3:48
- Aplicación propia de Dfrobot (sólo para windows)
- Incluir la extensión Maqueen en Makecode de microbit https://makecode.microbit.org/
Resumiendo para programar la maqueen con makecode:
1.- Ir a la página web del editor de Makecode https://makecode.microbit.org/#editor
2.- En Extensiones buscar la extensión Maquecode
3.- Ya tenemos las herramientas necesarias para manejar MAQUEEN y también otra sección IR para el mando infrarrojos
Retos Maqueen
Introducción
Agradecimientos al autor Pedro Ruiz por la publicación de estos retos en https://pedroruizf.github.io/maqueen_retos/index.html licencia Licencia Creative Commons Reconocimiento Compartir igual 4.0
Este sitio plantea una serie de retos basados en los que se muestran en la wiki de dfrobot sobre el robot maqueen, y otros de cosecha propia del autor.
Los retos pueden descargarse en formato zip en este enlace
Otros posibles retos con maqueen podrían ser:
- Persigue-objetos.
- Control remoto de maqueen con otra micro:bit.
- Control de servos en maqueen aprovechando pines de extensión.
- etc.
Control de Motores
Se trata que el robot haga la siguiente secuencia de movimiento de forma indefinida:
- Adelante durante 1 segundo.
- Derecha durante 1 segundo.
- Izquierda durante 1 segundo.
- Atrás durante 1 segundo.
Neopixel
El robot maqueen posee cuatro Leds RGB (Red, Green, Blue) en su parte inferior, en realidad son tres leds de colores encapsulados. En ellos puedo realizar una adición de colores luz indicando la intensidad de los tres colores luz para formar el color deseado.
Existen webs para componer colores muy útiles para conseguir colores RGB concretos: https://htmlcolorcodes.com/es/
RETO
Se trata de conseguir que el robot maqueen represente en sus leds RGB colores aleatorios, cambiando el mismo cada segundo.
RETO
Se trata de hacer gradación de colores con los LEDs RGB Neopixel que tiene nuestro robot.
leds frontales
Este reto consiste en hacer una intermitencia con los dos leds rojos frontales del robot. El tiempo de encendido de cada led es de medio segundo.
Distancia con US
Este reto consiste en mostrar la distancia a la que están los obstáculos en los leds de micro:bit (matriz de 25 leds).
Reconocimiento de teclas mando IR
Esta tarea consiste en determinar el valor numérico que tienen las teclas de un mando a distancia cualquiera.
maqueen teledirigido con mando IR
Este reto consiste en asignar a cuatro teclas de una mando a distancia por infrarrojos (IR), los cuatro movimientos básicos del robot. Cuando se pulsen provocarán respectivamente movimientos como: adelante, atrás, izquierda y derecha por un tiempo.
lectura sensor IR de suelo
La tarea consiste en visualizar en la pantalla de micro:bit (matriz de 25 leds) el estado de los sensores de infrarrojos de suelo. El sensor dará valor 1 a blanco y 0 a negro.
seguidor de líneas
El reto consiste en hacer un siguelíneas negras, las líneas del circuito deben ser más anchas que la distancia entre los sensores infrarrojos de suelo del robot.
Si no tienes las líneas del circuito, y quieres imprimirlas o si quieres ver una versión más sofisticada aquí
evita-obstáculos
El reto consiste en que el robot evite obstáculos que estén a menos de 20 cm del mismo. Además cuando los evita lo hará aleatoriamente a derechas o izquierdas.
seguidor de luz
El reto consiste en que le robot persiga una fuente luminosa a partir de cierto umbral de luz. Recordamos que el sensor de luz de la micro:bit se encuentra en la matriz de leds.
Control remoto desde otra micro:bit con radio
Se trata de controlar el robot maqueen con otra micro:bit a través de la radio y con el acelerómetro. Jugando con las aceleraciones en el eje x (izquierda o derecha) controlamos a maqueen con los giros en los mismos sentidos. Modificando las aceleraciones en el eje y (adelante o hacia atrás) controlamos los movimientos del robot en esos sentidos.
Con este reto conseguimos un control remoto de maqueen a través del acelerómetro de otra micro:bit.
persigue-objetos
El reto consiste en que maqueen rastree a derechas o izquierdas (al azar), si hay objetos en un radio menor a 20 cm, si lo encuentra lo persigue.
Cutebot
Montaje del kit
a primera vez que se usa el kit viene sin montar, el ensamblaje es muy sencillo, mira este vídeo sobre todo a partir del minuto 2:00
Dos prácticas con Cutebot
Agradecimientos a Guillermo Medrano gmedranotic.wordpress.com @GmedranoTIC autor de Logros en Educación https://gmedranotic.wordpress.com/2023/05/15/iniciacion-robotica-basica-dos-practicas-con-cutebot/ Licencia CC-BY-NC-SA
0:00 Introducción
1:37 Descripción Cutebot – Encendido
2:02 Descripción Cutebot – Pines e IR
2:15 Descripción Cutebot – Motores CC
2:47 Descripción Cutebot – Alimentación y Slot
3:21 Descripción Cutebot – LED RGB, IIC y SR04
3:51 Descripción sensor ultrasonidos
4:19 Descripción Cutebot – LED y sensores guiado
5:04 Descripción giro Cutebot
5:21 Software – Makecode
5:42 Cargar extensión Cutebot
6:12 Práctica 1 – luces y motores
8:24 Práctica 1 – Download y test
9:19 Práctica 2 – Ultrasonidos
10:48 Práctica 2 – Download y test
11:44 Práctica 2 – Demo darkmode
12:10 Reflexiones finales
Puedes descargar los dos archivos .hex que se tratan en la práctica en https://github.com/GmedranoTIC/Microbit, directamente seleccionando el archivo y pinchando con el botón derecho, «guardar enlace como»
Más prácticas con Cutebot
En la wiki de la empresa de Cutebot: Elecfreaks https://elecfreaks.com/learn-en/microbitKit/smart_cutebot/index.html encontrarás 14 prácticas muy interesantes, que no podemos reproducir en este libro por tener los derechos reservados :
- Case 01: Move Forward or Reverse at the Full Speed
- Una práctica sencilla que según el botón que aprietas en en microbit ejecuta una velocidad u otra
- Case 02: Speed Up Gradually
- El cutebot va ganando velocidad
- Case 03: Dance in Figure-of-eight
- El cutebot hace el recorrido de un 8
- Case 04: Run at Random
- El cutebot danza de forma aleatoria
- Case 05: Automatic Headlights.
- Si es de noche, se encienden las luces
- Case 06: Steering&Clearance Lamps.
- Según los botones, las lámparas flashean 5 veces
- Case 07: Fall-arrest Cutebot.
- En la wiki pone que el propósito es que cuando detecta el borde de la mesa, vuelve atrás y gira. ATENCIÓN no aconsejable hacerlo en una mesa, por el peligro de caída, se recomienda hacer una figura cerrada con cinta negra y el cutebot no saldrá del recinto.
- Case 08: Run Along the Black Line.
- El típico siguelíneas
- El típico siguelíneas
- Case 09: Autonomous Obstacle Avoidance.
- El típico salva-obstáculos
- Case 10: Car Following with A Fixed Distance.
- Cutebot se mueve siguiendo tu mano, manteniendo una distancia fija.
- Case 11: micro:bit Remote Control.
- coche teledirigido con otro microbit y los botones
- coche teledirigido con otro microbit y los botones
- Case 12: Remote Control the Cutebot with micro:bit Accelerometer.
- el mismo ejemplo pero usando el acelerómetro (inclinación) en vez de los botones
- (omitimos este ejemplo pues requiere un joystick no proporcionado en el kit)
- Case 14: IR Remote Control Car.
-
- coche teledirigido pero con el mando IR
-
- Case15: Seeking the Light.
- Cutebot sigue la luz
Hay más retos pero con accesorios que no se proporciona en el kit básico
Smartcar
Smartcar (desfasado)
ATENCIÓN: ESTE ROBOT YA NO SE ENCUENTRA EN EL MERCADO. SE MANTIENEN LOS TUTORIALES POR SI ALGÚN CENTRO TIENE ESTE EQUIPO
Micro:BIT se queda un poco triste si no se "mueve", pero hay que tener en cuenta que en la robótica el movimiento se paga:
- Adición de motores, chasis, ruedas...
- Necesitas una electrónica añadida de potencia y control de los motores.
- Necesitas unos sensores de lo contrario el movimiento se queda insípido sin reacción al mundo exterior.
La placa de micro:BIT no incorpora movimiento, por eso cuesta tan poco, pero si quieres este extra tienes que pagar (unos 40€ casi el doble de lo que cuesta micro:BIT, ver este enlace). Aún así el conjunto sale más barato que mBot.
Este kit viene con sensor de ultrasonidos, sensor de sigue-lineas y la placa motorbit que se inserta la micro:BIT además de tener altavóz y salidas a puertos por si se quiere añadir servos por ejemplo. Para más información de esta placa consultar esta web.
Sensor distancia
Al poner la extensión micromotor se añade la instrucción de sonar que está en otro apartado Sonarbit:
Este sensor, en nuestro kit lo conectaremos en PIN 10 aunque puede estar conectado en cualquier otro. Además recomendamos crear una variable (por ejemplo "distancia") y poner las unidades de medida en cm que son más intuitivas. Esta instrucción se pone al principio del bucle y sólo hay que utilizar la variable distancia:
El sensor de distancia funciona igual que los sónares: Uno "ojo" es realmente un altavóz que emite un sonido con frecuencia alta (ultrasonido, por eso no lo oímos) y el otro "ojo" es un micrófono que recibe ese pulso. El circuito electrónico calcula la distancia con la diferencia de tiempo en emisión y la recepción del eco, igual que los rádares, sónares...
O incluso los murciélagos, delfines...
Sigue-lineas
El sigue-lineas son dos sensores que están colocados debajo del robot
Por unificar criterios, los conectaremos en P3 y P4
Cada sensor tiene dos leds, uno emisor y otro receptor. El receptor recoge la luz reflejada, si hay debajo algo que no refleja la luz (por ejemlo una línea negra) entonces manda OFF en caso contrario ON
OJO VA AL REVÉS es decir * cuando hay linea negra es OFF * cuando no hay linea es ON
por lo tanto queremos:
- Que cuando sea OFF sea un 1 lógico (línea)
- Que cuando sea ON sea un 0 lógico (no hay línea)
Esto se llama CONFIGURACIÓN PULL-UP (pincha aquí para saber más) luego lo primero que tenemos que hacer es configurar estos sensores como PULL-UP con estas instrucciones (han traducido UP como subir):
Están un poco escondidas:
Y luego crear unas variables por ejemplo izquierda y derecha dentro del bucle que lean esos sensores. El resto del código sólo utilizaremos estas variables:
Si tuviera DOS micro:bits
Si existe la posibilidad de tener un segundo micro:BIT uno de ellos puede hacer funcionar el Smartcar y el otro de MANDO A DISTANCIA gracias a su función de radio
By Raspberry Pi Foundation - https://www.raspberrypi.org [CC BY-SA 4.0 ], via Wikimedia Commons
Descripción del programa
Microbit que hace de mando
Este microBIT hay que alimentarlo con pilas o utilizando una batería típica de móvil.
El mando se inicia en un grupo (en este caso el 222) y simplemente realiza lo siguiente:
- Si se pulsa A manda un 1 y lo visualizo
- Si se pulsa B manda un 2 y lo visualizo
- Si se pulsa A+B manda un 3 y lo visualizo
El programa te lo puedes descargar aquí:
Microbit que está en SmartCar
Al iniciar el programa asigna este microbit al mismo grupo de radio que el mando y además asigna una nueva variable con valor 0
Al recibir un número lo asigna a esa variable y además lo muestra:
Y establecemos un bucle por siempre que :
- Si no ha recibido nada, es por lo tanto dato=0 luego que siga hacia delante
- Si recibe 1 que gire hacia la derecha y hacia atrás
- Si recibe 2 igualmente pero al otro lado
- Si recibe 3 que pare
- En los tres casos anteriores damos un tiempo para que ejecute la instrucción con una pausa y luego reseteamos dato para que siga el robot su camino
El proyecto te lo puedes descargar aquí :
Nota:
Intenté también hacer un mando a distancia que funcionase con la brújula interna de microbit, es decir:
- Si pulsaba A entonces se ponía en marcha
- Si giraba el mando a distancia, el robot giraba en el mismo sentido
- Si pulsaba B entonces se paraba
No conseguí que funcionase fino, por lo que he dedicido quitarlo del curso, pero si alguien lo quiere probar, aquí está el programa del mando y aquí el del coche.
Muro micro:BIT
MURO proyectos MICROBIT
Colabora en este muro https://padlet.com/CATEDU/microbit añadiendo proyectos que veas interesantes:
Créditos
Autoría y licencias
Cualquier observación o detección de error en soporte.catedu.es
Los contenidos se distribuyen bajo licencia Creative Commons tipo BY-NC-SA excepto en los párrafos que se indique lo contrario.