1 00:00:00,000 --> 00:00:02,200 A ver, ¿qué es este pequeño dispositivo? 2 00:00:02,560 --> 00:00:03,899 Pues es un ordenador de bolsillo. 3 00:00:04,179 --> 00:00:05,040 Se llama Microbit. 4 00:00:05,419 --> 00:00:07,879 Y la verdad es que tiene un potencial increíble. 5 00:00:08,339 --> 00:00:10,439 Pero claro, ¿cómo le decimos lo que tiene que hacer? 6 00:00:10,820 --> 00:00:11,580 Pues con Python. 7 00:00:12,060 --> 00:00:14,320 Vamos a ver cómo podemos pasar de no tener ni idea 8 00:00:14,320 --> 00:00:16,079 a crear nuestras propias animaciones 9 00:00:16,079 --> 00:00:18,100 e incluso cacharritos inteligentes 10 00:00:18,100 --> 00:00:19,980 que reaccionan a lo que pasa a su alrededor. 11 00:00:20,839 --> 00:00:22,440 Aquí tenemos nuestro plan de viaje. 12 00:00:22,899 --> 00:00:24,399 Vamos a empezar con lo más básico, 13 00:00:24,579 --> 00:00:25,420 los primeros pasos. 14 00:00:25,839 --> 00:00:28,379 Luego le daremos vida a la pantalla con alguna animación. 15 00:00:28,800 --> 00:00:30,699 aprenderemos a hacer que reaccione a los botones, 16 00:00:31,140 --> 00:00:34,060 exploraremos cómo puede usar sus sensores para sentir el mundo 17 00:00:34,060 --> 00:00:38,000 y, al final, veremos cómo juntar todo para crear juegos o herramientas. 18 00:00:38,380 --> 00:00:38,899 ¡Vamos a ello! 19 00:00:39,420 --> 00:00:41,719 Bueno, pues empecemos por el principio, ¿no? 20 00:00:41,840 --> 00:00:46,840 En esta primera parte vamos a ver que poner en marcha el microbit es súper sencillo. 21 00:00:46,920 --> 00:00:48,619 De hecho, son solo tres pasitos. 22 00:00:49,259 --> 00:00:51,640 El proceso, de verdad, es muy directo. 23 00:00:51,939 --> 00:00:54,920 Lo primero, abrimos la web del editor de Python en el navegador. 24 00:00:55,159 --> 00:00:56,920 Segundo, escribimos nuestro código. 25 00:00:56,920 --> 00:01:03,640 Y aquí viene lo mejor, que podemos probarlo ahí mismo, en un simulador virtual, sin ni siquiera tener el microbit conectado. 26 00:01:03,979 --> 00:01:06,719 Cuando ya nos guste cómo funciona, solo queda el tercer paso. 27 00:01:07,180 --> 00:01:10,760 Lo conectamos por USB y le pasamos el programa. Así de fácil. 28 00:01:11,260 --> 00:01:14,519 Pasamos a la segunda sección, nuestra primera animación. 29 00:01:14,980 --> 00:01:17,640 Y ahora es cuando la cosa se pone de verdad interesante. 30 00:01:18,120 --> 00:01:22,340 Vamos a hacer que esa pantallita de LEDs cobre vida y a ver resultados al instante. 31 00:01:22,780 --> 00:01:25,200 Venga, la primera pregunta que se nos viene a la cabeza. 32 00:01:25,620 --> 00:01:27,359 ¿Cómo hago para que esto muestre algo? 33 00:01:27,840 --> 00:01:31,480 Vamos a resolverlo viendo cómo podemos hacer que el microbit nos enseñe una imagen, 34 00:01:31,959 --> 00:01:35,060 que se quede fija, y justo después un texto que se vaya moviendo. 35 00:01:35,659 --> 00:01:38,120 Si nos fijamos en el código, es muy sencillo. 36 00:01:38,659 --> 00:01:43,459 Primero, con display.showImage.heart le estamos diciendo, oye, enséñame un corazón. 37 00:01:44,099 --> 00:01:47,379 Después, sleep2000 hace que el programa se pare dos segundos. 38 00:01:47,379 --> 00:01:53,019 Y por último, display.scroll se encarga de que el mensaje o la bachillerato se deslice por la pantalla. 39 00:01:53,359 --> 00:01:54,239 ¡Es casi magia! 40 00:01:54,959 --> 00:01:59,439 Vamos a pararnos un segundo en el comando clave de esto, display.scroll. 41 00:01:59,799 --> 00:02:05,579 Esta es la instrucción que coge una cadena de texto, la que sea, y la anima, haciéndola pasar por la pantallita de LEDs. 42 00:02:05,959 --> 00:02:09,039 Es la forma más básica de mostrar mensajes largos en nuestro Mitrobit. 43 00:02:09,659 --> 00:02:15,520 A ver, que se enciendan luces está genial, pero la verdadera potencia llega cuando el dispositivo empieza a reaccionar a lo que hacemos. 44 00:02:16,280 --> 00:02:19,240 Entramos en la tercera sección, responder a la interacción. 45 00:02:19,479 --> 00:02:23,020 Vamos a pasar de las pantallas pasivas a los programas que de verdad interactúan. 46 00:02:23,020 --> 00:02:33,620 Vamos a plantear un pequeño desafío. ¿Cómo podríamos programar el microbit para que lleve la cuenta de las veces que pulsamos uno de sus botones? ¿Cómo lo convertimos básicamente en un contador de clics? 47 00:02:33,620 --> 00:02:36,139 Pues la solución es este trocito de código. 48 00:02:36,860 --> 00:02:41,939 Lo primero es crear una variable, una especie de caja, que llamamos contador, y la ponemos a cero. 49 00:02:42,520 --> 00:02:48,740 Luego, dentro de un bucle que se repite sin parar, el programa está todo el rato comprobando si hemos pulsado el botón A. 50 00:02:49,180 --> 00:02:53,379 Si lo hemos hecho, le suma uno al contador y nos enseña el nuevo número en la pantalla. 51 00:02:53,819 --> 00:02:55,020 Y ya está, así de simple. 52 00:02:55,560 --> 00:03:01,419 El punto clave aquí, la verdadera magia, es esta función, buttonA.wasPressed. 53 00:03:01,919 --> 00:03:04,599 Esta es la forma que tiene el dispositivo de escuchar. 54 00:03:05,060 --> 00:03:09,479 Es como si se preguntara constantemente, ¿han pulsado el botón A desde la última vez que miré? 55 00:03:09,900 --> 00:03:11,699 Es lo que dispara toda la interacción. 56 00:03:12,240 --> 00:03:15,199 Y de los botones, damos un salto al mundo que nos rodea. 57 00:03:15,620 --> 00:03:17,860 Cuarta sección, detectando el mundo físico. 58 00:03:17,939 --> 00:03:21,319 El microbit tiene sensores dentro que son como sus sentidos. 59 00:03:21,759 --> 00:03:23,259 Vamos a ver cómo podemos usarlos. 60 00:03:23,840 --> 00:03:28,879 Es un aparato muy pequeño, pero ¿podría tener algo así como conciencia de su posición? 61 00:03:28,879 --> 00:03:33,620 o sea, ¿sabe si lo estamos sujetando en vertical o si lo hemos dejado plano sobre la mesa? 62 00:03:34,039 --> 00:03:36,180 Pues la respuesta, como os podéis imaginar, es que sí. 63 00:03:36,680 --> 00:03:40,159 Para conseguirlo usamos una cosa que lleva dentro que se llama acelerómetro. 64 00:03:40,639 --> 00:03:44,219 Este código lo que hace es leer continuamente la orientación del dispositivo 65 00:03:44,219 --> 00:03:48,319 y dependiendo de cómo lo inclinemos nos mostrará una flecha hacia arriba, hacia abajo. 66 00:03:48,780 --> 00:03:49,620 Vamos a ver cómo lo hace. 67 00:03:50,300 --> 00:03:52,000 ¿Y cómo funciona esto por dentro? 68 00:03:52,500 --> 00:03:54,139 Pues todo se basa en interpretar números. 69 00:03:54,659 --> 00:03:57,719 El código mira la aceleración en uno de los ejes, el eje Y. 70 00:03:57,719 --> 00:04:02,879 Si ve que el valor es muy negativo, por ejemplo, menos de menos 500, sabe que está apuntando hacia arriba 71 00:04:02,879 --> 00:04:05,759 Si el valor está cerca de cero, significa que está plano 72 00:04:05,759 --> 00:04:09,000 Y para cualquier otra posición, pues nos muestra un fantasma 73 00:04:09,000 --> 00:04:12,020 Es pura lógica aplicada a los datos que le da un sensor 74 00:04:12,020 --> 00:04:15,120 Vale, o sea que puede sentir el movimiento y la orientación 75 00:04:15,120 --> 00:04:17,720 Pero, ¿podemos ir un paso más allá? 76 00:04:18,360 --> 00:04:22,160 ¿Podría detectar algo que ni siquiera vemos, como la temperatura que hay a su alrededor? 77 00:04:22,920 --> 00:04:25,920 Pues mirad qué sencillo, este programa, que es cortísimo 78 00:04:25,920 --> 00:04:35,060 Lo único que hace es leer la temperatura del procesador que lleva dentro y luego, con el comando display.scroll que ya conocemos, nos muestra el valor en grados Celsius. 79 00:04:35,819 --> 00:04:38,759 ¡Acabamos de construir un termómetro digital en dos líneas! 80 00:04:39,279 --> 00:04:48,860 La clave de todo esto es una única función, temperature, cero, un solo comando sin más, que nos da acceso directo a una medida del mundo real. 81 00:04:49,339 --> 00:04:53,800 Sin configuraciones raras ni nada, una sola línea de código para saber la temperatura. 82 00:04:53,800 --> 00:04:58,920 estructura. Muy bien, pues ahora que ya conocemos las herramientas, vamos a juntar todas las piezas. 83 00:04:59,540 --> 00:05:04,800 Quinta y última sección, juegos, gadgets y más allá. Vamos a ver lo versátil que puede llegar a 84 00:05:04,800 --> 00:05:09,600 ser todo esto. Fijaos en esta comparación, que es genial. A la izquierda tenemos el código para 85 00:05:09,600 --> 00:05:14,800 crear un dado electrónico, algo para jugar, pura diversión. A la derecha, el código del termómetro 86 00:05:14,800 --> 00:05:19,660 que acabamos de ver, una herramienta útil. Son dos aplicaciones que no tienen nada que ver, 87 00:05:19,660 --> 00:05:23,139 pero que están construidas con las mismas habilidades básicas que hemos aprendido. 88 00:05:23,680 --> 00:05:26,379 Lo más interesante aquí es la diferencia que hay en el fondo. 89 00:05:26,980 --> 00:05:29,399 El dado electrónico se basa en el azar, en la suerte, 90 00:05:29,740 --> 00:05:32,819 usando el comando random.randint para sacar un número aleatorio. 91 00:05:33,199 --> 00:05:35,759 En cambio, el termómetro se basa en la medición, 92 00:05:36,079 --> 00:05:39,560 en usar temperature.etch para leer un dato real del entorno. 93 00:05:39,939 --> 00:05:41,240 Diversión frente a función. 94 00:05:41,860 --> 00:05:43,740 Todo depende del comando que decidamos usar. 95 00:05:44,220 --> 00:05:47,480 O sea que, si lo pensamos, hemos hecho un viaje completo. 96 00:05:47,920 --> 00:05:50,939 Empezamos con algo tan simple como mostrar un corazón en la pantalla, 97 00:05:51,519 --> 00:05:53,120 aprendimos a reaccionar a los botones 98 00:05:53,120 --> 00:05:57,000 y hemos terminado construyendo juegos y hasta herramientas de medición. 99 00:05:57,420 --> 00:06:00,240 Como se puede ver, las posibilidades son enormes. 100 00:06:00,779 --> 00:06:03,800 Así que la idea clave con la que nos tenemos que quedar es esta. 101 00:06:04,279 --> 00:06:06,019 Con solo unas poquitas líneas de código, 102 00:06:06,399 --> 00:06:10,040 un dispositivo tan pequeño puede interactuar con el mundo que le rodea 103 00:06:10,040 --> 00:06:11,959 de formas increíblemente potentes. 104 00:06:12,600 --> 00:06:13,939 Ya hemos visto las piezas del puzzle, 105 00:06:14,459 --> 00:06:17,319 desde mostrar una imagen, pasando por reaccionar a botones, 106 00:06:17,480 --> 00:06:22,500 hasta leer sensores. Así que ahora la gran pregunta es, ¿cuál va a ser la primera creación 107 00:06:22,500 --> 00:06:23,740 que surja de todo esto?