Activa JavaScript para disfrutar de los vídeos de la Mediateca.
01 - Robótica. Introducción a la programación de Robots. - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Qué es un robot. Algoritmo vs. Programa.
Empezamos viendo la parte de programación.
00:00:01
Como hemos visto, nosotros estamos intentando, de alguna forma, ponernos en el pellejo de un constructor de robots.
00:00:04
Desde el principio del curso, aunque no lo creáis, hemos estado repasando y ampliando cosas que necesitaremos en el proceso de construcción de un robot.
00:00:11
Porque si yo quiero construir un robot, lo primero que tengo que hacer es
00:00:21
elegir los materiales que voy a utilizar, a veces necesito una pieza que no existe o que no tengo y me la tengo que imprimir en 3D,
00:00:24
con lo cual la tengo que diseñar y luego la tengo que imprimir,
00:00:32
tengo que generar una documentación con lo cual tengo que hacer un documento de proyecto,
00:00:35
tengo que ir al taller y realizar una serie de operaciones sobre madera o metal o lo que sea...
00:00:40
Con lo cual, todo lo que estamos viendo durante todos estos años, incluyendo este, básicamente tiene que ver con esto.
00:00:49
Luego vamos a un Software de diseño por ordenador y me diseño un plano para mi objeto,
00:00:56
acotado y en condiciones para que luego, alguien, en una fábrica, me lo pueda fabricar.
00:01:01
Todo eso es necesario, aunque no lo creáis, cuando vamos a construir un robot,
00:01:06
todo lo que llevamos dado, parecía una cosa abstracta, aunque ya os lo introduje al principio de curso, tiene un objetivo que es el de construir un robot.
00:01:11
Cuando un robot se construye dándote un kit
00:01:19
(como cuando vamos a la tienda y compramos un kit, p. ej. un lego, y nos dan todas las piezas colocadas y unas instrucciones por colores)
00:01:23
con lo cual aquello es pin, pin, pin y todo encaja, todo funciona perfecto.
00:01:29
Pero cuando vamos a construir una máquina que cumpla una función, que esto es lo que es un robot,
00:01:32
una máquina automática o autónoma que cumple una función, a veces no tienes un kit. Te lo tienes que inventar tú.
00:01:37
Y ese es el punto en el que empiezas a tirar de todos estos recursos que hemos estado estudiando:
00:01:43
de hacer planos, de cómo interpretar las instrucciones que te encuentras por Internet de las piezas,
00:01:47
de cómo hacerte una pieza en 3D para que encaje y que aquello se quede sujeto como debe, cómo elegir los materiales adecuados
00:01:53
(un material que no pese, un material que sea elástico, un material que sea flexible, o que no, un material que aguante la temperatura, o que no...)
00:02:03
Entonces, a la ahora de elegir los materiales, también tenemos que tener ciertos conocimientos de robótica. ¿vale
00:02:08
Y nos queda la última parte. Nos hemos centrado en la parte del chasis, digamos, y ahora vamos a la última parte que es la del programa.
00:02:13
¿Vale? Vamos al cerebro. Vamos a meter una placa, una placa de control que en nuestro caso será una Crumble.
00:02:24
Describiremos cómo funciona, qué conexiones tiene, ...
00:02:35
Y entonces, ahora, tenemos un par de problemas o tres. ¿vale?
00:02:39
El primero es que este cerebro viene vacío. Es un niño recién nacido. No sabe nada. No sabe ni respirar.
00:02:43
Con lo cual nosotros tenemos que decirle absolutamente todo lo que tiene que hacer. ¿vale?
00:02:51
Yo siempre digo que los robots, los ordenadores,... dicen que la inteligencia artificial, ... eso es mentira.
00:02:56
Los ordenadores son tontos, de entrada. ¿Qué hacen los ordenadores? Sólo lo que se les dice.
00:03:05
Yo le digo a un ordenador: "Suicídate", y el ordenador se suicida. ¿Vale? Le digo a un ordenador que sume 2 y 2 y me los suma, pero no hace nada más.
00:03:12
Sólo hace aquello que se le ordena, ¿vale? Es un esclavo fiel, pero no hace nada por sí sólo.
00:03:20
No tiene inteligencia ninguna. La inteligencia la tenemos que poner nosotros. ¿Cómo? A través de un programa.
00:03:25
Y otra cosa que tenemos es (que) cómo interacciona ese cerebro con las piezas que nosotros queremos que se muevan o que actúen.
00:03:29
Evidentemente, nosotros tenemos un cerebro que está aquí dentro, dentro del cráneo,
00:03:41
y luego tenemos un cuerpo que es el que interactúa con el entorno.
00:03:47
Tenemos unos ojos que están recibiendo imágenes y luego las envían al cerebro.
00:03:50
Y luego, si yo quiero coger algo, tengo manos, que yo puedo ordenar que se muevan y cojan algo.
00:03:54
Y, al final, yo, a través de los elementos que tengo conectados a mi cerebro, puedo hacer cosas, y es como ejecuto las acciones.
00:03:59
Tengo sensores, que serían mis oídos, mis ojos, mi sentido de la sensibilidad.
00:04:08
Esos son mis sentidos, ¿vale? Eso es lo que me introduce la información de lo que tengo alrededor.
00:04:14
Y luego tengo los músculos, los pulmones, el corazón...
00:04:19
Tengo las cosas que hacen que la maquinaria se mueva: tengo actuadores.
00:04:26
Tengo cosas que son sensibles: son sensores, y tengo cosas que actúan, cosas que ejecutan acciones: que son actuadores.
00:04:30
Entonces, en un elemento robótico, yo lo que tengo es, por un lado sensores, y por el otro actuadores. ¿vale?
00:04:38
Los sensores introducen información a mi cerebro,
00:04:55
y los actuadores ejecutan aquellas acciones que el cerebro necesita
00:05:03
ejecutar para cumplir la acción para la que hemos creado el programa.
00:05:10
Y en medio, pues hay algo que interpreta lo que recibimos desde aquí (sensores),
00:05:14
toma decisiones, y en función de lo que tenga alrededor, mueve o no mueve los actuadores. ¿Entendéis?
00:05:22
Y esto de aquí en medio es el programa.
Pro---gra---ma. 00:05:34
Pro---gra---ma. 00:05:34
¿Vale? Y esto es lo que dota de inteligencia a todo el sistema.
00:05:42
El resto son cosas de electrónica tontas.
00:05:47
Es un motor, un motor no tiene ninguna inteligencia: si le conecto gira y si no lo conecto, no gira.
00:05:50
Un sensor de presión, por ejemplo, un botón (un botón en un sensor de presión: detecta si lo estoy presionando o no, ¿Vale?)
00:05:56
no tiene ninguna inteligencia, si lo presiono me dice que está conectado y si lo suelto me dice que está desconectado...
00:06:05
Es decir, no es inteligencia ninguna.
00:06:13
Esto (sensores y actuadores) son elementos electrónicos. Y es el programa el recoge esa información, la procesa,
00:06:15
toma decisiones y ejecuta en caso de necesidad. ¿Vale?
00:06:21
Bueno, pues, estos sensores y estos actuadores tenemos que conectarlos a nuestra placa.
00:06:26
Y eso se hace a través de cables. Con lo cual, necesito conexiones que son cables.
00:06:35
¿Puedo conectar cualquier cosa a mi Crumble, a mi cerebro? No, no puedo conectar cualquier cosa. Tengo limitaciones.
00:06:49
Yo no puedo coger, yo que sé, el enchufe, y meterlo... la corriente del enchufe a mi circuito electrónico. ¿Por qué?
00:07:03
Porque se quema, evidentemente. Aquello pega un chispazo, sale ardiendo, y podemos montar una barbacoa.
00:07:13
Pero no vale para hacer nada, porque lo he quemado. Entonces tenemos que tener cuidado.
00:07:19
Estas conexiones las tengo que hacer a esta placa de control, pero las tengo que hacer de una forma inteligente. ¿Por qué?
00:07:24
Porque esto, como es electrónica, en el caso de la Crumble, va a funcionar a 4,5V.
00:07:31
¿Eso qué quiere decir? Eso quiere decir, que los sensores tienen que trabajar entre...
00:07:41
"Los sensores y los actuadores deben trabajar entre 0V y 5v".
00:07:53
¿Vale? Por tanto, un sensor de presión (lo que hemos dicho: un botón), cuando yo lo pulso,
00:08:21
¿Qué señal llega a través del cable? Cuatro voltios y medio, o cinco. ¿vale?
00:08:30
Vamos a ponerlo correcto este 5 que es lo que tiene Arduino, y vamos a poner 4,5V, perdonad, para que sea la del Crumble ¿vale?.
00:08:36
... para que sea la del Crumble ¿vale?.
00:08:41
Las placas suelen estar entre 4,5...
00:08:45
De hecho Crumble acepta entre 4,5 y 5,5 ¿vale? O sea, podríamos meterle 5v y no explota. ¿De acuerdo?
00:08:47
Pero lo normal es trabajar sobre 4 voltios y medio.
00:08:54
Entonces, normalmente las placas están en torno a los 5V que es la señal estándar en electrónica para los robots.
00:08:58
Entonces, cuando un sensor detecta lo que sea,
00:09:06
me manda la señal. Estoy detectando, ¿Y cómo es esa señal? Pues es un cable con 5V.
00:09:10
Y cuando ese sensor no detecta nada, ¿Qué tenemos en ese mismo cable? 0V. ¿Vale?
00:09:16
Entonces yo soy capaz de diferenciar entre que un sensor detecte o no detecte lo que sea, lo que tenga que detectar,
00:09:23
gracias a que el cable (la conexión) que yo tengo conectada a ese sensor, por ese cable me llegan 5V o no me llega nada.
00:09:31
¿Vale? Y eso es lo que yo voy a comprobar.
00:09:40
Y lo mismo con los actuadores.
00:09:43
Si yo quiero que un motor funcione le tengo que poner 5V, y el motor gira.
00:09:46
Y si no quiero que funcione, le pongo 0V y el motor se para. ¿Vale? Por ejemplo un motor...
00:09:51
Puede ser una luz. Si quiero que una luz se encienda le pongo 5V y la luz se tiene que encender.
00:09:56
Pero si no quiero que se encienda, le pongo 0V y la luz se apaga.
00:10:02
Y lo mismo con cualquier otro tipo de actuador que yo tenga. ¿De acuerdo?
00:10:06
Bueno, entonces, esto es importante que lo tengamos en mente, porque nosotros lo que vamos a trabajar ahora es,
00:10:09
por un lado, con este programa, pero necesariamente, necesariamente,
00:10:14
tenemos que hacer cosas con electricidad... y tenemos circuitos.
00:10:19
Y tenemos que, si tenemos un sensor,
00:10:24
que tiene que trabajar a 5V y normalmente trabaja a 8, le tenemos que poner, ¿el qué?
00:10:27
una resistencia, para bajar la tensión a 5V y que no me queme mi placa. ¿Entendéis?
00:10:32
Si yo tengo, imaginaros,
00:10:39
... un sensor ... (lo voy a poner así en forma de nube para que sea cualquiera, un sensor cualquiera...
00:10:43
... imaginaros un sensor de presión, un botón,
00:10:48
... o un sensor de temperatura que está midiendo si la temperatura ha alcanzado los 30º o no, ¿vale?)
00:10:51
Entonces, este sensor funciona a 18V.
00:10:58
Si yo esto lo conecto a mi Crumble, ¿vale? ... a mi Crumble,
00:11:03
...la puedo freír, porque en el momento en el que esto se active, me está metiendo 18V
00:11:11
y como mi Crumble funciona a 4,5 ¿Qué he hecho? Una barbacoa.
00:11:17
La he quemado.
00:11:22
¿Que tengo que hacer para que esto no suceda?
00:11:23
Aquí en medio tendré que poner una resistencia que haga que la tensión caiga y ya no me lleguen los 18V o lo que tenga el sensor,
00:11:25
sino que me va a llegar... ¿Cuánto?
00:11:38
Pues tengo que poner una resistencia que haga que aquí me lleguen 4,5V.
00:11:39
¿Y que resistencia es esa? Pues tenemos que calcularlo, claro. No voy a ir probando, ¿no?
00:11:44
Entonces, tengo que hacer circuitos y tengo que saber manejar ese tipo de cosas....
00:11:50
y por eso hemos estudiado electricidad otros años...
00:11:53
...¿vale?, para que nosotros podamos ahora saber qué resistencias o qué cosas necesito conectar
00:11:56
para que los sensores y los motores funcionen correctamente a través de mi placa.
00:12:04
¿Alguna duda entonces? ¿Nada?
00:12:11
Bien. Pues vamos entonces al punto (esta era un poco la introducción) para ver "algoritmo vs programa".
00:12:14
Estuvimos viendo al principio de curso lo que eran los algoritmos, ¿verdad? ¿Os acordáis?
00:12:22
¿Qué era un algoritmo? A ver quién se acuerda... "Los pasos necesarios para soluciona un problema". ¿Vale?
00:12:29
Un algoritmo es una secuencia de pasos ordenada que nos llevaba a solucionar un determinado problema.
00:12:35
Por lo tanto, situación de partida, situación de inicio: Tenemos un problema que hay que resolver.
00:12:43
Situación intermedia: Tengo que pensar que pasos hay que dar para resolver el problema. ¿Vale?
00:12:51
Y después, construyo una secuencia, una lista de esos pasos ordenada,
00:12:58
que me lleva de la situación "tengo un problema" a la situación "he resuelto el problema".
00:13:06
Por ejemplo, si os acordáis, tenemos el algoritmo de "Quiero Café", ¿Os acordáis, no?
00:13:13
El algoritmo de "Quiero Café", yo tenía un problema, quería café,
00:13:17
estoy dormido, estoy estudiando, necesito un poco de energía, ¿vale?
00:13:20
Pues venga, necesito un café. Y entonces empiezo a hacerme preguntas. ¿Cómo soluciono mi problema?
00:13:25
Pues, me tengo que tomar un café, pero ¿tengo un café? No, no tengo un café.
00:13:30
¿Me puedo hacer un café? Pues sí, tengo café en la cocina.
00:13:36
Pues entonces tienes que bajar a la cocina, sacar el café de la alacena, tengo que poner la cafetera, hacerte el café y luego ya te lo tomas.
00:13:41
Si no tengo café en la cocina pues tengo que irme al supermercado y comprarlo. Etc, etc... ¿Vale?
00:13:49
Es decir tengo una secuencia ordenada de pasos, pero al final, siempre, la gracia de los algoritmos es que resuelven el problema.
00:13:54
Si yo quiero café, tengo que terminar tomándome el café, porque si no, no hemos hecho bien el algoritmo.
00:14:01
No vale el "No me tomo el café", ¿me explico? Tengo que tomarme el café.
00:14:08
Entonces, eso es un algoritmo bien hecho. Tengo un problema, que pasos tengo que ejecutar para solucionarlo.
00:14:13
Y ahí en medio, tenemos una serie de estructuras que vamos a ver. Y ¿Que diferencia eso de un programa?
00:14:19
El algoritmo son los pasos que yo tengo que dar para solucionar un problema, ...
00:14:27
... mientras que un programa son las ordenes concretas que yo doy para que alguien solucione ese problema. Es decir, ...
00:14:33
yo tengo que dar ordenes. Fijaros. Yo digo, ...
00:14:46
... quiero tomar café. Lo primero que tengo que hacer es preguntarme si tengo un café encima de la mesa. No lo tengo.
00:14:49
¿Tengo café en la cocina? Sí.
00:14:55
Entonces yo digo: "Baja a la cocina". Pero eso es un concepto.
00:14:57
Yo estoy sentado en mi silla en la primera planta de mi chalet,
00:15:03
y tengo que bajar a la planta de abajo a la cocina. ¿Qué tengo que hacer? ¿Qué ordenes me daríais vosotros si yo fuera, ...
00:15:08
... pues eso, una mente vacía, ... qué órdenes me tendríais que dar para que yo llegara a la cocina y me hiciera un café.
00:15:15
Pues tendríais que empezar diciendo:
00:15:22
Levantate de la silla, sal de la habitación...
00:15:24
Pero a lo mejor salir de la habitación es muy complicado. Yo te digo: "No te entiendo" y entonces me tienes que decir:
00:15:28
"Gira 90º a la derecha",
00:15:32
"Avanza 3m", "Abre la puerta", "Cruza la puerta",
00:15:35
"Gira a la derecha", "Baja las escaleras"...
00:15:41
A lo mejor, bajar las escaleras es muy complicado. Tengo que decir:
00:15:44
"Baja un escalón", ¿Hay otro escalón?
00:15:47
Sí, "Baja el escalón", ¿Hay otro escalón?
00:15:49
Sí, "Baja el escalón", ¿Hay otro escalón? Sí, "Baja el escalón", ¿Hay otro...? No
00:15:52
Pues deja de bajar.
00:15:56
Poco a poco, las órdenes que yo doy para que se ejecuten esas acciones,...
00:15:59
esas órdenes es lo que constituye un programa. ¿Vale?
00:16:05
Y claro, ya depende,
00:16:10
... imaginaros que yo soy el que tengo que ejecutar las acciones.
00:16:12
Pero ahora imaginaros que yo no soy yo,
que yo soy un yo alternativo chino. 00:16:15
que yo soy un yo alternativo chino. 00:16:15
Si tu a mi me dices, "levántate de la silla",
yo que soy chino, ¿qué hago?... 00:16:22
yo que soy chino, ¿qué hago?... 00:16:22
--Voz de un alumno-- Pues no entenderlo.
--Profe-- Pues no entenderlo. 00:16:28
--Profe-- Pues no entenderlo. 00:16:28
Por lo tanto. Mientras que el algoritmo es una secuencia de órdenes que valen para cualquier entorno:
00:16:30
es un concepto, es una idea,
00:16:37
el programa el programa es específico del sistema que estoy utilizando para ejecutar las acciones.
00:16:39
Porque las órdenes tienen que ser específicas para ese sistema.
00:16:46
Entonces, cuando yo estoy en un Crumble, tengo que mandarle las órdenes de una determinada forma,
00:16:49
pero si estoy en un PC, tengo que decirle que las ejecute de otra forma.
00:16:55
Y si lo que tengo es otro tipo de placa de control como un Arduino tengo que decírselo a través de otro lenguaje de programación.
00:16:59
Entonces aquí es donde entran los lenguajes de programación. ¿Vale?
00:17:05
Y ahí podemos ejecutar el mismo programa en diferentes lenguajes de programación.
00:17:10
Porque, a veces, el que está en el otro lado es diferente.
00:17:14
Entonces, un algoritmo es una secuencia ordenada de pasos que me lleva a solucionar un problema.
00:17:18
Y es genérico. Me vale siempre. ¿Vale?
00:17:24
Porque son los pasos en concepto.
00:17:28
Cuanto más detallados hagamos los pasos, mejor. Cuanto menos complejo sea un paso.
00:17:32
O sea, yo os he dicho antes:
"Baja a la cocina", "Saca el café" y "Háztelo". 00:17:39
"Baja a la cocina", "Saca el café" y "Háztelo". 00:17:39
Vale, Perfecto, he solucionado el problema, pero bajar a la cocina puede suponer un montón de pasos intermedios:
00:17:44
"Levantate de la silla", "sal de la habitación", "Baja las escaleras"...
00:17:51
Y además, cada uno de esos, a su vez, puede ser también una serie de pasos intermedios:
00:17:54
El bajar las escaleras puede ser un bucle de
00:17:59
"Mira a ver si hay un escalón" - "Bájalo", "Mira a ver si hay un escalón" ... hasta que deje de haber escalones. ¿Entendéis?
00:18:01
Todo esto, es lo que yo voy a intentar reflejar con el mayor nivel de detalle posible en el algoritmo.
00:18:06
Y si lo hago bien, si lo hago bien,...
00:18:13
los lenguajes de programación me van a dar instrucciones, comandos y órdenes concretas...
00:18:17
... que van a casar, van a estar perfectamente relacionadas con lo que yo tengo que hacer.
00:18:27
Habrá una orden en ...
00:18:33
(imaginemos que estamos programando en C, ¿vale? en un lenguaje de programación que se llama C)
00:18:35
Bueno, pues en C yo tengo una orden para levantarme de la silla, y yo la ejecuto.
00:18:39
Tengo una orden para girarme un número de grados a derecha o izquierda, pues yo lo ejecuto.
00:18:46
Tengo una orden para avanzar o parar. Yo lo ejecuto.
00:18:51
Tengo una orden para mover una mano y abrir una puerta (ya está hecha la orden para esa...) pues, cojo y lo ejecuto.
00:18:55
Si yo le digo "Sal de la habitación" no lo puedo traducir directamente,
00:19:01
pero si le digo "levántate de la silla", "gira a la derecha 90 grados", "avanza 3 metros", "abre la puerta" y "avanza un metro más",...
00:19:05
ahí ya puedo traducirlo directamente, prácticamente cada uno de los pasos, a una orden de mi lenguaje de programación, ¿vale?
00:19:13
Eso es lo que diferencia un buen algoritmo de uno malo.
00:19:22
La gente que programa, ¿que hace? Algoritmos.
00:19:25
La gente que programa hace esto. Porque luego si lo hace bien, traducirlo es inmediato.
00:19:29
Eso lo puede hacer cualquiera.
00:19:35
Es decir, tengo que avanzar 3 metros, pues cojo la orden de mi lenguaje de programación (sea el que sea)
00:19:38
que dice que avance 3 metros, y la ejecuto.
00:19:43
Si tengo que girar a la derecha 90 grados,
00:19:46
pues cojo la orden que me dice
que puedo girar a derecha o a izquierda, ... 00:19:49
que puedo girar a derecha o a izquierda, ... 00:19:49
la ejecuto, le digo que es a la derecha,
y le digo que son 90 grados. 00:19:53
y le digo que son 90 grados. 00:19:53
Y ya, yo lo traduzco a cualquier lenguaje de programación, ...
00:19:56
... pero el algoritmo es el mismo, el proceso es el mismo.
00:20:00
- Valoración:
- 5 sobre 5 basada en 1 votos. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Idioma/s:
- Idioma/s subtítulos:
- Autor/es:
- JUAN RAMÓN GARCÍA MONTES
- Subido por:
- Juan Ramã‼N G.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 169
- Fecha:
- 24 de marzo de 2021 - 10:04
- Visibilidad:
- Público
- Centro:
- IES ANTONIO GAUDI
- Duración:
- 20′ 04″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1366x768 píxeles
- Tamaño:
- 158.96 MBytes