MakeCode
Aqui encontrarás diferentes actividades para aprender y practicar. Ve hacia abajo y las encontrarás wxplicación de como funciona y como se programa.
- Actividad 1. Hola mundo
- Actividad 2. Imágenes
- Actividad 3. Botones
- Actividad 4. Pines
- Actividad 5. Botón pulsador
- Actividad 6. Barra de LEDs
- Actividad 7. Diodo LED RGB
- Actividad 8. Diodos LEDs RGB direccionables
- Actividad 9. Zumbador o buzzer
- Actividad10.Comunicación serie
ACTIVIDAD 1.
El programa de la actividad lo vamos a hacer utilizando los bloques descritos y comentando algunas de las líneas para que se entienda mejor. El programa es el siguiente:
Programa de la actividad A01 en MakeCode
En la animación vemos el funcionamiento en el simulador.
Funcionamiento del programa
El programa lo podemos descargar de:
MicroBlocks¶
Se explican los bloques utilizados de los menús de bloques por defecto y de la libreria añadida. Referencia a Blocks Reference.
El programa de la actividad lo vamos a hacer utilizando los bloques descritos. El programa es el siguiente:
Programa de la actividad A01 en MicroBlocks
En el caso de MicroBlocks no disponemos de simulador pero los botones Iniciar/parar nos permiten estar viendo en la placa real todo lo que ocurre mientra elaboramos nuestro programa.
El programa lo podemos descargar de:
Imágenes¶
Vamos a entrar en las posibilidades artísticas que nos puede ofrecer una matriz cuadrada de 5x5 LEDs.
El programa de corazon latiendo es el siguiente:
Programa de la actividad A02 en MakeCode
En la animación vemos el funcionamiento en el simulador.
Funcionamiento del programa
El programa lo podemos descargar de:
Botones on board¶
Los ejemplos vistos hasta ahora han permitido que la micro:bit nos muestre algo. Esto es lo que se conoce como salida. Ahora bien, es evidente que necesitamos también que la micro:bit reaccione a cosas externas, y estas cosas se denominan entradas. Para que sea fácil de recordar:
- Salida es lo que micro:bit nos muestra
- Entrada es lo que recibe la micro:bit para procesarlo
Aunque existen otros sistemas, por ahora nos vamos a centrar en los botones de la micro:bit. Si trabajamos con versiones anteriores a la V2 disponemos de dos botones etiquetados como A y B. Si trabajamos con alguna versión V2 disponemos además de un tercer botón, en este caso tactil, que está en el logo de la placa. En la imagen vemos estos botones.
Botones en las micro:bit V1 y V2
El programa que vamos a crear como ejemplo nos va a mostrar en la pantalla el botón que estamos pulsando mientras lo mantengamos accionado. El programa es el siguiente:
En la animación vemos el funcionamiento en el simulador.
Funcionamiento del programa
El programa lo podemos descargar de:
Pines de entrada/salida¶
En el borde inferior de la BBC micro:bit hay unos pads (tiras o pines) de color dorado, metálicos que constituyen los pines de entrada/salida (E/S para abreviar).
Pines de E/S para las micro:bit versiones V1 y V2
Como podemos observar, las patillas serigrafiadas (0, 1, 2, 3V y GND) son más grandes que las otras. Esto se hace así para poder sujetar en las mismas cables con pinzas de cocodrilo. Para poder acceder al resto de patillas será necesario conectar una placa de extensión de conectores al dispositivo micro:bit, y así hacer posible la conexión de cables a esos pines más pequeños. Describiremos estas placas mas adelante en este apartado
En la micro:bit V2 el logo también se puede utilizar como entrada táctil, es decir, es un pin de entrada, en concreto el 26.
Información técnica¶
Fuente: Edge Connector & micro:bit pinout.
El conector de borde del micro:bit se utiliza para conectar circuitos y componentes externos.
Hay en total 25 pads o pines que incluyen 5 orificios para usar con conectores tipo banana de 4mm o pinzas de cocodrilo. Tres de estos pines son para E/S de propósito general y también pueden ser entradas analógicas, PWM y sensores táctiles, estándo dos de ellas conectadas a la fuente de alimentación de micro:bit.
Las tiras más pequeñas están distanciadas a 1,27 mm (50 mils) en el conector de borde y algunas están utilizadas por la micro:bit, mientras que otras quedan libres para su utilización.
Aunque los pines están en ambas caras realmente sólo los de la cara frontal están conectados a señales. Los agujeros si conectan ambas caras entre si pero no así los pines mas delgados.
Pines del conector de borde¶
La imagen siguiente muestra la asignación de los pines de la micro:bit para ambas versiones de placa. En las placas V2, el pin 9 ya no se comparte con la pantalla LED. Aunque la característica está dfesactivada por defecto, los pines 8 y 9 pueden configurarse para NFC (Near-field communication) o comunicación de campo cercano, que es una tecnología de comunicación inalámbrica, de corto alcance y alta frecuencia que permite el intercambio de datos entre dispositivos. Esto es lo que se conoce como comunicaciones por radio en placas micro:bit.
Pinout micro:bit V2 y V1
Hay disponible un recurso externo fantástico para obtener más información sobre los pines de la micro:bit y cómo los utilizan algunos accesorios, se trata de microbit.pinout.xyz.
En la imagen siguiente se muestran mas datos sobre cada uno de los pines del conector de borde de la micro:bit V1.
Información de pines micro:bit V1
En la imagen siguiente se muestran mas datos sobre cada uno de los pines del conector de borde de la micro:bit V2.
Información de pines micro:bit V2
Las siguientes notas están referidas a las dos figuras anteriores:
- Las resistencias de pull-up o pull-down se especifican, por ejemplo como e10Mu que significa: externa de 10Mohm en pullup o bien i12Kd, que significa: interna de 12K en pulldown.
En las figuras del borde de placa se espcifican los valores y tipos de resistencia disponibles en el caso de micro:bit.
- Los anillos para 0, 1, 2, 3V y GND también están conectados a los respectivos anillos de la parte posterior del conector de borde.
- Los anillos de 3V y GND tienen unos pines protectores a ambos lados de los mas grandes, para evitar cualquier degradación del rendimiento del dispositivo debido al deslizamiento de las conexiones de las pinzas de cocodrilo. Se debe tener precaución en los anillos 0, 1 y 2 para evitar cortocircuitar las pinzas de cocodrilo con los pines adyacentes.
- Los pines de entrada digital están configurados por defecto con resistencias pull down internas.
- El pin marcado como Accesibilidad se utiliza para activar/desactivar el modo de acceso a configuraciones de fábrica y no debe ser utilizado para otra cosa, a pesar de que puede ser utilizado como un GPIO para pruebas.
- En cuanto a la alimentación de la placa existe un punto clave a tener en cuenta, que son los dos diodos BAT60A que hay, uno de la alimentación de 3,3V del chip de interface y otro del conector de la batería externa. Hay que tener en cuenta que el anillo de 3V en el conector de borde es V_TGT, que significa que está conectado al suministro en bruto proporcionado a todos los chips de la placa.
Cambiar la funcionalidad por defecto¶
- pines P3, P4, P6, P7, P9, P10
Estos pines están dedicados a la pantalla matriz de LEDs, y también a su modo asociado de detección de luz ambiental. Para desactivar la función de controlador de pantalla (que automáticamente desactivará la función de detección de luz) se invoca a la función 'display.enable(false)'. Para volver a activar el controlador de pantalla, se invoca a la función 'display.enable(true)'.
- pines P5, P11
Estos pines están asignados a los dos botones A y B de la placa. En su configuración por defecto con todos los lenguajes de alto nivel estándar, hay una instancia uBit global que contiene: uBit.buttonA, uBit.buttonB y uBit.buttonAB.
Los botones están conectados con al temporizador del sistema en su construcción. Sin embargo, si necesitamos eliminar completamente esta característica y utilizar los pines físicos para otros fines, se pueden eliminar uBit.buttonA llamando al destructor de C++. Hay que tener en cuenta, sin embargo, que hay resistencias pull-up externas de 10K instaladas en la placa micro:bit.
- pines P19, P20
Estos pines están asignados al bus I2C, que es utilizado tanto por el sensor de movimiento integrado. Se recomienda evitar el uso de estos pines para cualquier función que no sea I2C.
Alimentación¶
A la micro:bit se le puede suministrar alimentación por:
- USB a través del chip de interface que incorpora su propio regulador en la placa.
- Una batería conectada al conector tipo JST que está junto al botón de reset.
- Los pines de 3V y GND en el conector de borde.
- Los dos pads ovalados (rectangulares redondeados) en la parte posterior derecha de la placa.
- La micro:bit puede suministrar alimentación desde los pines 3V y GND a pequeños circuitos externos.
Es importante respetar los parámetros máximos para los que está diseñada la placa:
- Cuando se alimenta desde USB, el chip de interface de la placa, en V1 la versión (KL26) utiliza su regulador para proporcionar la energía, y este chip puede entregar como máximo 120mA.
- El consumo de corriente de la placa variará en función del uso de la pantalla, el Bluetooth, el micrófono, el altavoz y otros periféricos. En el peor de los casos, tenemos que prever una demanda de 30 mA cuando se utilizan todos los periféricos integrados, dejando para el conector de borde 90 mA en el caso de V1 y 270 mA en el de V2.
- Cuando se alimenta desde una batería, el chip KL no interviene y el LED indicador de USB no se ilumina.
- Se utiliza un diodo de baja tensión directa o Vf para conmutar entre fuentes. El diodo evita la retroalimentación de cualquier fuente desde otra fuente, lo que significa que se puede tener un cable USB y un pack de baterías conectados simultáneamente.
El rango de tensiones de alimentación depende de la versión concreta, vienen impuestas por la circuitería que utilizan, y son:
- Variantes de V1.3: 1.95V min y 3.6V max
- Variantes de V1.5: 1.8V min y 3.6V max
- Revisión V2.00: 1.7V min y 3.6V max
- Revisión V2.2x: 1.7V min y 3.6V max
A continuación se dan algunos detalles prácticos sobre alimentación por USB:
- Cuando alimentamos desde USB V1 entrega los 3.3V a través de un regulador integrado en la interface. La última revisión de V2 utiliza un regulador separado.
- Para tener un margen de seguridad adecuado, en placas V1 no debemos superar los 90 mA de consumo mientras que en V2, al tener su propio regulador, podemos alcanzar los 190 mA. Si necesitamos corriente mayores podemos retroalimentar la micro:bit a partir de los pads 3V y GND, pero asegurando que la alimentación es regulada y utilizando un diodo de protección. Para esto no se recomienda el uso de baterias USB ya que pueden generar tensiones fuera del rango permitido y dañar a la micro:bit.
En el caso de alimentación con baterias:
- Cuando se alimenta desde una batería conectada al JST, el chip de interface y el de sistema en la versión V1 no se encienden. En la micro:bit V2 la energía de la batería pasa a través del regulador y alimenta también el chip de interface. Si la placa micro:bit no está en modo reposo, el LED rojo (a la izquierda del conector USB) debería estar encendido.
- Una batería LiPo de una celda completamente cargada está especificada para entregar 4,2V Esto es más de los 3,6V máximos indicados.
La micro:bit puede ser alimentada desde los pads 3V/GND del conector de borde. También hay dos pads en la parte derecha de la cara posterior de la PCB que se pueden utilizar para suministrar energía, por ejemplo, desde un soporte con pilas 2xAAA o 2XAA que podemos soldar en esos pads. En la imagen se destacan estos pads.
Extension board de Freenove
Vamos a practicar¶
Para hacer el ejemplo de parpadeo de un LED externo utilizamos el mismo circuito que el visto en Python. El programa es el siguiente:
Programa pardeo de LED externo
El programa lo podemos descargar de:
Realizamos la ampliación del programa controlando el encendido y apagado progresivo por PWM.
Programa pardeo de LED externo
Dos cosas a observar:
- El contador hacia atrás se realiza restando al valor inicial de cuenta la variable en un bucle de 0 a xx
- Como hemos establecido el valor máximo posible analógico como límite, el retardo lo hemos puesto de 3ms para que tarde aproximadamente 3 segundos (3ms x 1023 = 3069ms = 3,069s) en realizar la cuenta (o decontaje) completo.
El programa lo podemos descargar de:
Resulta interesante observar el funcionamiento del programa en el simulador, donde se aprecia a la perfección tanto la cuenta ascendente como la descendente. En la animación lo vemos.
Simulación del programa pardeo de LED externo
Botón pulsador¶
En esta actividad vamos a realizar el control de un diodo LED externo mediante un pulsador también externo. Este circuito, aunque sencillo, es lo que se conoce como sistema de control y lo vamos a definir en este momento.
Lo mas simple como sistema de control automático es considerar que tiene tres partes esenciales que se denominan: Entrada, Salida y Control. Hasta ahora hemos estado utilizando dos de ellos, como sistema de control la micro:bit y como sistema de salida el LED. En la práctica lo habitual es que algún dispositivo detecte variables del entorno, que el sistema de control detecte los cambios y decida la acción que tiene que realizar con la salida. Si consideramos a estas tres partes como cajas que contienen los elementos de cada uno de ellos, un diagrama en bloques de un primer sistema de control automático es:
Diagrama de un sistema de control automático
Circuito¶
Como elemento de entrada vamos a utilizar un pulsador, lo que nos obliga a escoger uno de los dos circuitos posibles para obtener una señal de control a partir del mismo. Vamos a trabajar escogiendo el que por defecto nos entrega un nivel alto y cuando pulsamos un nivel bajo y lo vamos a conectar al pin P0 que actuará como entrada. Vamos a realizar un pequeño cambio respecto al circuito genérico visto y es que vamos a colocar una resistencia en serie con el pin P0, para de esta forma no conectar el pin directamente a GND cuando accionemos el pulsador. El circuito de salida es el del diodo LED que lo conectaremos en el pin P1.
Esquematico del circuito
El montaje puede ser similar al siguiente:
Montaje del circuito
El programa es el siguiente:
A05-pulsador_LED
Aunque es bastante sencillo se ha explicado paso a paso en los comentarios.
El programa lo podemos descargar de:
Matriz de de barras de LEDs¶
Vamos a hacer un proyecto sencillo que haga que los LEDs se enciendan y apaguen simulando un desplazamiento del LED encendido. Jugaremos un poco con el valor de los retardos para dar sensación de aceleración.
Lo primero que tenemos que hacer es recurrir al pinout del borde de placa y realizar una asignación de pines de borde a cada diodo y así saber en que orden trabajar con los mismos. Esto nos permitirá, en el caso de Python y MicroBlocks, crear una lista con los pines de borde de placa elegidos y ordenados como nos interese. En el caso de MakeCode lo haremos de manera manual. En la imagen vemos el orden asignado.
Asignación de pines a diodos de la barra de LEDs
Circuito¶
El esquema del circuito que tenemos que montar con esa asignación de pines es:
Esquema del circuito
El montaje en protoboard tendrá un aspecto similar al siguiente.
Montaje del circuito
El programa lo hemos dividido en tres sectores para ponerlo en horizontal y que se vea en una sola imagen. El bloque 'activar led' hay que ponerlo en False
para poder utilizar como pines de salida los que están asignados por defecto a los LEDs de la pantalla. El pin P5 se ha asignado a P0 porque en P5 está el botón A de la placa y por tanto es una entrada.
LED que se desplaza con barra de 10 LEDs
El programa lo podemos descargar de:
Diodo LED RGB¶
Utilizaremos un LED RGB de ánodo común para desarrollar la actividad, lo que significa que los LED se iluminarán cuando llevemos el pin de cada color a GND y tengamos el ánodo a 3.3V. La actividad va a consistir en hacer que el LED parpadee a intervalos de un segundo entre un color aleatorio y estar apagado.
Circuito¶
El esquema del circuito que vamos a utilizar es el siguiente:
Esquema del circuito
Los pines van a trabajar como pines de salida analógicos.
¿Hay que colocar una resistencia para cada diodo? La respuesta es que SI, porque internamente son tres diodos individuales que lo único que tienen en común es el encapsulado y que se han unidos sus ánodos en un solo pin.
El montaje a realizar es el siguiente:
Montaje del circuito
En la animación tenemos una captura del programa y del simulador, donde podemos apreciar como cambian los números aleatorios cada segundo y como también como todos los pines toman el valor máximo que equivale a LED apagado.
Parpadeo color aleatorio LED RGB
El programa lo podemos descargar de:
Diodos LEDs RGB direccionables¶
En el apartado correspondiente de teoría se han visto muchos ejemplos para MakeCode, vamos a trabajar con un ejemplo sencillo en los tres programas que estamos viendo.
La actividad va a consistir en encender, progresivamente el tono del color, los 8 LED en los colors base RGB, después hacer que se enciendan uno a uno en un color aleatorio y finalemente hacer que cambien de color de forma aleatoria durante un tiempo.
Circuito¶
El esquema del circuito que vamos a utilizar es el siguiente:
Esquema del circuito
El montaje a realizar es el siguiente:
Montaje del circuito
Zumbador o buzzer¶
En este caso la actividad va a estar compuesta por cuatro proyectos y se harán todos montando elementos externos a la micro:bit. Si disponemos de una versión V2 las tres actividades primeras o bien funcionan directamente en el altavoz que incorpora o bien son facilmente adaptables. La última actividad no es realizable sin una micro:bit V2.
Circuito¶
El esquema del circuito que vamos a utilizar es el siguiente:
Esquema del circuito
El montaje a realizar es el siguiente:
Montaje del circuito
Buzzer activo¶
El programa repetirá 5 veces sucesivas un pitido durante 200 ms, realizará una pausa de 2 segundos y volverá a repetirse indefinidamente.
El programa es:
A09-1. Buzzer activo
El programa lo podemos descargar de:
Comunicación serie¶
Utilizaremos el puerto serie para enviar y recibir datos.
Circuito¶
No se requiere de ningún elemento externo por lo que o bien conectamos la micro:bit directamente o bien a través de la placa de expansión.
Conexionado de la micro:bit
MakeCode¶
El programa que vamos a hacer es simplemente crear un contador infinito e ir escribiendo el valor que toma cada segundo en el puerto serie.
Contador en el puerto serie
Ya conocemos algunas formas de visualizar el dato que se está escribiendo en el puerto serie. Veamos ahora los dos disponibles mediante webUSB. Debajo de la imagen de la microbit hay disponibles dos botones grandes:
- Show data Simulador. Nos abre a la derecha, sustituyendo la ventana de programa, una ventana dividia en dos partes, en la superior se va graficando el dato enviado por el bloque de escritura y en la inferior se va mostrando en forma de texto. Siempre referido a los datos enviados por el simulador En la animación siguiente lo vemos funcionando.
Simulador. Contador en el puerto serie
- Show data Dispositivo. Nos abre a la derecha, sustituyendo la ventana de programa, una ventana dividia en dos partes, en la superior se va graficando el dato enviado por el bloque de escritura y en la inferior se va mostrando en forma de texto. Ahora los datos que vemos son los enviados por la placa micro:bit conectada y en la que se ejecuta el programa. En la animación siguiente lo vemos funcionando.
Dispositivo. Contador en el puerto serie
El programa lo podemos descargar de:
No hay comentarios:
Publicar un comentario