1 00:00:10,419 --> 00:00:22,480 Vale, ¿cómo es el programa? El programa que vamos a utilizar para programar nuestras placas se llama Cranbell, ¿de acuerdo? Y es este de aquí. Tenemos varias zonas, ¿vale? Tenemos varias zonas en el programa. 2 00:00:23,019 --> 00:00:36,159 Tenemos esta zona de aquí arriba que es la que nos va a permitir programar nuestra placa, ¿vale? Esta zona de aquí arriba nos va a permitir programar nuestra placa. Cuando tengamos nuestro programa hecho, lo vamos a hacer aquí a la derecha, vamos a arrastrar bloques igual que hacemos con Scratch. 3 00:00:36,159 --> 00:00:39,200 Aquí en la parte de la derecha es nuestro tapiz de programación 4 00:00:39,200 --> 00:00:41,119 Donde vamos a tener nuestro programa construido 5 00:00:41,119 --> 00:00:45,000 Y una vez que lo tengamos construido, ¿cómo lo volcamos a nuestra placa? 6 00:00:45,159 --> 00:00:49,240 Conectamos el cable USB, le damos aquí al botón verde de play 7 00:00:49,240 --> 00:00:54,119 Y lo que va a hacer es volcarnos el programa que tengamos ahí construido a la placa 8 00:00:54,119 --> 00:00:57,520 Bueno, entonces, ¿qué tenemos? 9 00:00:57,520 --> 00:01:02,079 Tenemos esta parte de la izquierda, que es la que tiene toda la parte de bloques 10 00:01:02,079 --> 00:01:05,060 Tenemos los bloques básicos 11 00:01:05,060 --> 00:01:07,680 Siempre empezaremos un programa con un programa start 12 00:01:07,680 --> 00:01:09,900 A partir de ahí empezará el programa 13 00:01:09,900 --> 00:01:13,439 Y un programa en un robot 14 00:01:13,439 --> 00:01:17,560 Siempre va a ser de esta forma 15 00:01:17,560 --> 00:01:20,739 Un programa start 16 00:01:20,739 --> 00:01:26,340 ¿Vale? Un programa start 17 00:01:26,340 --> 00:01:28,980 Debajo de esto voy a tener todo mi programa 18 00:01:28,980 --> 00:01:31,260 Y yo lo que quiero 19 00:01:31,260 --> 00:01:34,219 Es que cuando termine de ejecutar el programa 20 00:01:34,219 --> 00:01:43,390 y quiero que haga el robot. Un robot tiene que estar continuamente. Lo que quiero es 21 00:01:43,390 --> 00:01:50,290 que vuelva a empezar, ¿vale? Entonces empieza con un programa Start y luego siempre, nosotros 22 00:01:50,290 --> 00:01:57,829 siempre, para hacer un robot lo que vamos a hacer es ponerle un Do Forever, haz para 23 00:01:57,829 --> 00:02:07,530 siempre, ¿vale? Do Forever es un bloque que va a ser un bloque que nos va a decir repite 24 00:02:07,530 --> 00:02:11,370 infinitamente. Repite lo que está ahí dentro para toda la vida. Y entonces lo que ya no 25 00:02:11,370 --> 00:02:16,969 está aquí dentro va a estar repitiéndose, ese ciclo lo va a estar repitiendo toda la 26 00:02:16,969 --> 00:02:22,729 vida. Siempre un robot va a funcionar así, con un ciclo infinito. Y a partir de ahí 27 00:02:22,729 --> 00:02:29,729 empezamos a programar. Y ahora ya, por ejemplo, este es el motor. ¿Veis? Motor, número de 28 00:02:29,729 --> 00:02:36,150 motor. Si yo pincho aquí, puedo cambiarle al 2, simplemente haciendo clic. Cambia al 29 00:02:36,150 --> 00:02:44,289 2, cambia al 1, forward, reverse o stop, y si es forward o reverse me permite ponerle 30 00:02:44,289 --> 00:02:48,650 a qué porcentaje de la velocidad quiero que vaya hacia adelante o hacia atrás. Y con 31 00:02:48,650 --> 00:02:53,710 eso es con lo que yo voy a controlar mi robot. Si tengo dos ruedas, las dos para adelante 32 00:02:53,710 --> 00:03:02,539 al 50%, pues el robot. Las dos para adelante al 50%, para, se para. Y así es como voy 33 00:03:02,539 --> 00:03:10,580 controlar el robot como se mueve bien luego y aquí en este en este conjunto de 34 00:03:10,580 --> 00:03:14,219 bloques tenemos grupos estos son los básicos pero luego tenemos conjuntos de 35 00:03:14,219 --> 00:03:18,639 bloques y estos conjuntos los iremos viendo según los necesitemos pues estos 36 00:03:18,639 --> 00:03:21,419 son los que permiten hacer cosas de entrada a salida por ejemplo fijaros 37 00:03:21,419 --> 00:03:27,000 este bloque de aquí el set me permite poner uno de los puertos de señal a high o a low 38 00:03:27,000 --> 00:03:34,120 y ahí es donde le voy a controlar si quiero que en un puerto de estos cuatro del abc o de 39 00:03:35,120 --> 00:03:40,180 tenga cinco voltios o cero y así controló lo que tenga conectado allí si tengo una luz pues 40 00:03:40,180 --> 00:03:46,580 la encenderé o la pagaré y si tengo un zumbador sonará o dejará de sonar vale con este bloque 41 00:03:47,639 --> 00:03:54,759 bueno nos iremos viendo vale hay unas luces que son que se llaman sparkles que son estas 42 00:03:59,909 --> 00:04:04,629 que son estos, ¿vale? Es un LED, pero es un LED que puede tener cualquier color. Entonces, 43 00:04:05,370 --> 00:04:09,810 se configuran con un puerto de datos, tienen la conexión positivo y negativo y además 44 00:04:09,810 --> 00:04:16,589 de encenderse, tengo un tercer pin para conectarlo. Este esparcro lo puedo poner en cualquier 45 00:04:16,589 --> 00:04:21,550 color. Puedo hacer que luzca en rojo, en verde, en amarillo, en naranja, en violeta, en rosa, 46 00:04:21,610 --> 00:04:28,050 lo que tenga la... ¿vale? Y además también los puedo conectar en serie como una tira 47 00:04:28,050 --> 00:04:33,389 de LEDs. Puedo poner muchos y puedo decirle que encienda el número 1 en rojo, el número 48 00:04:33,389 --> 00:04:40,050 2 en amarillo, el número 3 en verde. Y voy haciendo, ¿vale? Con una tira de LEDs le 49 00:04:40,050 --> 00:04:45,050 puedo indicar que el número 1, el número 2, el número 3, el número 4 se enciendan 50 00:04:45,050 --> 00:04:48,910 en un color concreto, ¿vale? Y así puedo controlar la tira de LEDs completa. Bueno, 51 00:04:48,910 --> 00:04:51,149 Pues estos sparkers los usaremos en alguna práctica. 52 00:04:52,329 --> 00:04:53,029 Tenemos dos. 53 00:04:54,310 --> 00:04:55,009 Tenemos dos. 54 00:04:56,750 --> 00:04:57,089 Vale. 55 00:04:58,529 --> 00:05:04,269 Entonces, estos sparkers se controlan con estos bloques. 56 00:05:04,529 --> 00:05:04,709 ¿Vale? 57 00:05:06,529 --> 00:05:07,129 Bien. 58 00:05:08,490 --> 00:05:10,810 Estos son los mismos bloques de control que tenéis en Scratch. 59 00:05:10,810 --> 00:05:11,750 Las esperas. 60 00:05:11,850 --> 00:05:15,910 Si quiero hacer una pausa, pues hago un espérate, un segundo, 100 milisegundos o lo que sea. 61 00:05:16,649 --> 00:05:16,829 ¿Vale? 62 00:05:17,410 --> 00:05:28,610 Después, los condicionales, los if, ¿vale? Los condicionales son si ocurre algo, haz lo que sea, o si ocurre algo, haz lo que sea, y si no, haz otra cosa. 63 00:05:28,610 --> 00:05:36,889 Por ejemplo, este bloque tiene la parte de cuando se cumple la condición, ejecuta, pero cuando no se cumple, también ejecuta otra cosa, ¿vale? 64 00:05:37,689 --> 00:05:45,750 También tiene algunos ciclos, como el do forever, o el do repite hasta que suceda algo, ¿vale? O el repite un número de veces concreto, ¿vale? 65 00:05:45,750 --> 00:05:50,170 las variables, las variables son las cajas vacías 66 00:05:50,170 --> 00:05:52,290 donde yo voy a meter mis valores 67 00:05:52,290 --> 00:05:57,310 cuando yo recojo un valor en uno de los puertos de datos 68 00:05:57,310 --> 00:05:59,990 si quiero utilizarlo después 69 00:05:59,990 --> 00:06:02,689 si lo utilizo en el momento, lo puedo utilizar en el momento 70 00:06:02,689 --> 00:06:04,829 pero si quiero utilizarlo más tarde 71 00:06:04,829 --> 00:06:07,610 tengo que almacenar esa información en algún sitio 72 00:06:07,610 --> 00:06:10,790 bueno, para almacenar esa información utilizamos las variables 73 00:06:10,790 --> 00:06:13,870 podemos definir variables con nombres 74 00:06:13,870 --> 00:06:16,069 son como cajas vacías con una etiqueta 75 00:06:16,069 --> 00:06:17,870 y yo ahí dentro voy a ir metiendo 76 00:06:17,870 --> 00:06:20,069 información, y esa información luego la puedo 77 00:06:20,069 --> 00:06:21,370 recuperar, ¿vale? 78 00:06:21,930 --> 00:06:23,209 ya veremos cómo funciona 79 00:06:23,209 --> 00:06:25,949 y luego los operadores, pues de comparación 80 00:06:25,949 --> 00:06:28,269 de suma, de resta, para hacer cosas con el 81 00:06:28,269 --> 00:06:29,949 robot y ya está, no tiene más, ¿vale? 82 00:06:30,310 --> 00:06:32,350 entonces bueno, ya veréis que es muy fácil 83 00:06:32,350 --> 00:06:34,310 de programar, vais a ver que se hace 84 00:06:34,310 --> 00:06:36,250 muy rápido, cuando tenga 85 00:06:36,250 --> 00:06:38,269 mi programa construido, en la parte 86 00:06:38,269 --> 00:06:40,610 del tapiz de programación, que es esta parte de la derecha 87 00:06:40,610 --> 00:06:42,449 le daremos al botón 88 00:06:42,449 --> 00:06:43,829 triangular verde que está arriba 89 00:06:43,829 --> 00:06:50,290 y volcaremos nuestro programa a la placa. Una vez que tengamos la placa programada, 90 00:06:50,670 --> 00:06:55,629 con todas las cositas conectadas, encenderemos las pilas y entonces se empieza a ejecutar 91 00:06:55,629 --> 00:07:01,269 ese programa y veremos si funciona mejor o no. Comprobamos si funciona bien y si no funciona, 92 00:07:01,550 --> 00:07:07,649 apagamos, reprogramamos o comprobamos si hemos conectado las cosas bien o ya hacemos lo que 93 00:07:07,649 --> 00:07:12,850 sea para comprobar si nos ha... qué es lo que está fallando, ¿vale? Si no hace lo que 94 00:07:12,850 --> 00:07:30,120 ¿De acuerdo? ¿Alguna pregunta con respecto al programa de Scratch? Es muy fácil, es un proyecto por bloques y se programa súper fácil, ¿vale? Si habéis hecho la programación de Scratch y más o menos os habéis... ¿De acuerdo? 95 00:07:30,120 --> 00:07:33,040 voy a ponernos un ejemplito 96 00:07:33,040 --> 00:07:36,139 vale, voy a ponernos un ejemplito 97 00:07:36,139 --> 00:07:38,160 de cómo funcionaría 98 00:07:38,160 --> 00:07:41,100 todo esto 99 00:07:41,100 --> 00:07:43,899 y esto lo voy a hacer 100 00:07:43,899 --> 00:07:44,920 vale 101 00:07:44,920 --> 00:07:48,060 voy a hacernos un ejemplo de un programa 102 00:07:48,060 --> 00:07:56,019 muy sencillito 103 00:07:56,019 --> 00:07:58,420 vale, quiero hacer 104 00:07:58,420 --> 00:08:00,459 lo siguiente, quiero hacer 105 00:08:00,459 --> 00:08:02,639 que cuando yo pulse un botón 106 00:08:02,639 --> 00:08:04,139 mi robot 107 00:08:04,139 --> 00:08:11,459 se echa y cuando deje de pulsarlo el robot se para 108 00:08:11,459 --> 00:08:15,839 de acuerdo tan fácil como eso y además cuando esté 109 00:08:15,839 --> 00:08:20,300 avanzando quiero que se encienda la luz 110 00:08:20,860 --> 00:08:25,180 y cuando esté avanzando quiero que se apague la luz 111 00:08:25,180 --> 00:08:34,769 si lo hacemos que es lo primero que tenemos que hacer cuando vamos a programar 112 00:08:34,769 --> 00:08:41,490 Lo primero que tengo que ver es si está el botón pulsado, ¿no? 113 00:08:42,750 --> 00:08:44,590 ¿Y cómo miro si está el botón pulsado? 114 00:08:44,669 --> 00:08:46,629 ¿Cómo hemos dicho que miramos si el botón está pulsado? 115 00:08:47,389 --> 00:08:48,830 Preguntando si ve que está a high. 116 00:08:50,799 --> 00:08:52,740 Vale, te voy a preguntar si está a high. 117 00:08:57,820 --> 00:08:59,500 Y puedo salir por sí o por no. 118 00:09:01,740 --> 00:09:02,000 ¿Vale? 119 00:09:02,220 --> 00:09:03,879 ¿El botón pulsado o no pulsado? 120 00:09:04,740 --> 00:09:05,080 ¿De acuerdo? 121 00:09:05,840 --> 00:09:07,940 Si el botón está pulsado, te he dicho que ocurre. 122 00:09:10,360 --> 00:09:10,600 ¿Eh? 123 00:09:10,899 --> 00:09:12,879 Si el botón está pulsado, te tiene que hacer el error. 124 00:09:12,879 --> 00:09:44,230 y la luz tiene que estar apagada, bueno, pues entonces si D está HIGH, yo voy a poner por C igual a LOW, vale, si el botón está pulsado, lo primero que hago es apagar la luz, vale, a C le configuro el LOW 125 00:09:44,230 --> 00:10:03,720 Y después, le digo, motor 1, forward al 100%, y luego, motor 2, forward al 100%. 126 00:10:03,720 --> 00:10:08,379 ¿Vale? Ya lo hemos conformado en el formato de trámite. 127 00:10:08,960 --> 00:10:14,279 Con lo cual, si el botón es más high, ¿qué hace? 128 00:10:14,679 --> 00:10:18,679 Me apaga la luz, arranca el motor 1 y arranca el motor 2, que arranca el motor 12. 129 00:10:19,600 --> 00:10:24,200 Como eres forward, empiezas a andar, vas dos rodadas para adelante, que luego te echa a andar. 130 00:10:25,000 --> 00:10:26,580 ¿Vale? Perfecto. 131 00:10:26,759 --> 00:10:31,440 Y si no está pulsado, ¿qué hemos dicho que deberíamos hacer en el robot? 132 00:10:32,740 --> 00:10:46,409 Enciender la luz, y luego, motor 1, stop, y motor 2, stop. 133 00:10:51,600 --> 00:10:53,679 ¿Vale? Es decir, yo miro a ver cómo está el motor. 134 00:10:53,679 --> 00:11:12,679 Si el motor está pulsado, apago la luz, enciendo el motor 1 hacia delante al 100%, ¿vale? 135 00:11:13,840 --> 00:11:19,120 Y además, en el puerto C se pone a low, con lo cual esta luz me da igual como estaba. 136 00:11:21,730 --> 00:11:29,279 Y después, fijaros, que os he dicho que es un programa, un ciclo infinito. 137 00:11:29,399 --> 00:11:30,539 Cuando termina, vuelve a luz. 138 00:11:32,039 --> 00:11:36,120 ¿Vale? Ese es el Do Forever, ¿os acordáis? Este es el Do Forever. 139 00:11:36,120 --> 00:11:52,679 Con lo cual, cuando yo termino de ejecutar, empieza el programa, encendemos las pilas, 140 00:11:52,679 --> 00:11:57,679 se empieza a ejecutar el programa en mi tránsito, aquí en el cerebro del infrangel, y entonces 141 00:11:57,679 --> 00:12:02,679 ¿qué es lo que hace? Primero, comprueba cómo está D, y me dice ¿es HIGH? Vamos 142 00:12:02,679 --> 00:12:08,679 a D y miramos cómo está D. Dependiendo de cómo tenga el botón, si pulsa D o no, sabemos 143 00:12:08,679 --> 00:12:14,679 que D va a estar HIGH o LOW. Supongamos que está sin pulsar, ¿vale? Entonces, está 144 00:12:14,679 --> 00:12:23,940 tan low. ¿D es igual a high? No. Ponemos C con señal alta. Como C tiene conectado 145 00:12:23,940 --> 00:12:30,759 una luz, va a tener una luz. El motor 1 es top, el motor 2 es top. ¿Qué van a hacer 146 00:12:30,759 --> 00:12:37,080 los motores? Nada. Con lo cual, mientras que yo no pulse el motor, se va a encender la 147 00:12:37,080 --> 00:12:42,259 luz de parada, que era lo que quería, y el robot va a estar quieto. Termina el programa, 148 00:12:42,259 --> 00:13:22,419 vuelve arriba, deshide, no, sigue la luz encendida y siguen los motores parados, y ahí me quedo en ese buque hasta que yo le pulse el botón, cuando pulse el botón, entonces en la siguiente vuelta va a preguntar, deshide, va a venir aquí, como el botón está pulsando, como sale, y entonces va a salir por encima, porque ya es high, por lo tanto, como ahora si es high, que va a hacer, ponce a low, la luz que estaba encendida, que va a pasar, ponce a low, el motor 1 forward al 50, 149 00:13:22,440 --> 00:13:37,500 al 100% 150 00:13:37,500 --> 00:13:39,500 mientras mantengo el botón pulsado 151 00:13:39,500 --> 00:13:42,500 deshide si sigue la luz de acendido 152 00:13:42,500 --> 00:13:44,500 que vamos a ver funcionando este otro lado 153 00:13:44,500 --> 00:13:49,779 que pasa cuando yo llevo el pulsador 154 00:13:49,779 --> 00:13:52,779 automáticamente viene aquí 155 00:13:52,779 --> 00:13:53,779 deshide no 156 00:13:53,779 --> 00:13:56,779 se enciende la luz y se para los motores 157 00:13:56,779 --> 00:14:06,279 y he conseguido hacer yo el robot que cuando yo lo suelto se enciende 158 00:14:06,279 --> 00:14:09,279 vale, tengo el robot con el comportamiento que yo había 159 00:14:09,279 --> 00:14:18,200 fijaros aquí como sería este programa en cambio tendría esta pinta fijaros que es exactamente igual 160 00:14:19,159 --> 00:14:26,740 que lo que yo he hecho aquí en este diagrama de flujo ahora lo tengo que representado programas 161 00:14:26,740 --> 00:14:35,919 para como he dicho tú forever es el infinito y luego que hacemos dentro si de skype es lo 162 00:14:35,919 --> 00:14:49,360 de ir es el condicional si d es high entonces 11 al motor 1 163 00:14:52,940 --> 00:15:04,889 y si no es decir si no es hay tres que es lo que se hace si pone enciende la luz para el motor para 164 00:15:04,889 --> 00:15:16,659 motor 1 y para motor 2. Fijaros que prácticamente cada bloque de estos, cada caja de mi diagrama 165 00:15:16,659 --> 00:15:23,580 de zúfup, lo he traducido en un bloque de... Por eso es muy útil hacer esto. Porque yo 166 00:15:23,580 --> 00:15:29,879 con esto puedo hacer una simulación, yo con esto puedo hacer una simulación mental de 167 00:15:29,879 --> 00:15:34,120 mi programa, puedo saber si funciona o no, lo veo de una forma gráfica muy interesante 168 00:15:34,120 --> 00:15:36,860 y luego ya lo traduzco.