26
17/04/2015 1 INTRODUCCIÓN A LA PROGRAMACIÓN ¿QUÉ ES PROGRAMAR? Arte de dar comandos a algo o alguien que pueden ser ejecutados después. ¿QUÉ ES UN COMANDO? Orden para algo o alguien para realizar determinada acción ¿QUÉ ES DISEÑAR? Acto de organizar los comandos INTRODUCCIÓN A LA PROGRAMACIÓN ¿QUÉ ES UN PROBLEMA COMPLEJO? Es aquel cuya solución no es inmediata Para enfrentarnos a un problema complejo, debemos dividir en problemas mas chicos. ¿HASTA CUANDO? Hasta que la solución sea evidente Dividir para conquistar Utilizar “niveles de abstracción” (En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?“)

Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

Embed Size (px)

DESCRIPTION

Curso Introducción a Lego Mindstorms

Citation preview

Page 1: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

1

INTRODUCCIÓN A LA PROGRAMACIÓN

• ¿QUÉ ES PROGRAMAR?• Arte de dar comandos a algo o alguien que pueden ser ejecutados después.

• ¿QUÉ ES UN COMANDO?• Orden para algo o alguien para realizar determinada acción

• ¿QUÉ ES DISEÑAR?• Acto de organizar los comandos

INTRODUCCIÓN A LA PROGRAMACIÓN

• ¿QUÉ ES UN PROBLEMA COMPLEJO?• Es aquel cuya solución no es inmediata• Para enfrentarnos a un problema complejo, debemos dividir en problemas

mas chicos.

• ¿HASTA CUANDO?• Hasta que la solución sea evidente• Dividir para conquistar• Utilizar “niveles de abstracción” (En programación, el término se refiere al

énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?“)

Page 2: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

2

INTRODUCCIÓN A LA PROGRAMACIÓN

• ALGORITMO• Un algoritmo (del griego y latín, dixit algorithmus y este a su vez del

matemático persa Al-Juarismi ) es un conjunto prescrito de instrucciones oreglas bien definidas, ordenadas y finitas que permite realizar una actividadmediante pasos sucesivos que no generen dudas a quien deba realizar dichaactividad. Dados un estado inicial y una entrada, siguiendo los pasossucesivos se llega a un estado final y se obtiene una solución. Los algoritmosson el objeto de estudio de la algoritmia.

INTRODUCCIÓN A LA PROGRAMACIÓN

• EJEMPLO DE UN ALGORITMO1. Destapar la pasta de dientes2. Coger el cepillo de dientes3. Aplicar la pasta de dientes al

cepillo4. Tapar la pasta de dientes5. Abrir el grifo6. Remojar el cepillo con la pasta

de dientes7. Cerrar el grifo8. Frotar los dientes con el cepillo

9. Abrir el grifo10. Enjuagarse la boca11. Enjuagar el cepillo12. Cerrar el grifo13. Secarse la cara y las manos con

una toalla

Page 3: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

3

INTRODUCCIÓN A LA PROGRAMACIÓN

• DIAGRAMAS DE FLUJO• Es la representación gráfica de flujo o secuencia de rutinas simples, es una

forma de especificar los detalles algorítmicos de un proceso mediante laesquematización gráfica.

INTRODUCCIÓN A LA PROGRAMACIÓN

Voy a laescuela

Salgo dela cama

Desayuno

Medespierto

Medespierto

Salgo dela cama

Desayuno

Voy a laescuela

EJEMPLO DIAGRAMAS DE FLUJO

Page 4: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

4

INTRODUCCIÓN A LA PROGRAMACIÓN

• PSEUDOCÓDIGO• Describe un algoritmo utilizando una mezcla de frases en lenguaje común,

instrucciones de lenguaje de programación y palabras claves que definen lasestructuras básicas.

INTRODUCCIÓN A LA PROGRAMACIÓN

1. Inicio2. Me despierto3. Salgo de la cama4. Desayuno5. Voy a la escuela6. Fin

1. Inicio2. Camina3. Gira a la derecha 90 grados4. Camina5. Gira a la derecha 90 grados6. Camina7. Gira a la derecha 90 grados8. Camina9. Gira a la derecha 90 grados10. Fin

EJEMPLOS PSEUDOCÓDIGO

Page 5: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

5

• BUCLES O CICLOS• Un bucle o ciclo, en programación, es una sentencia que se realiza

repetidas veces a un trozo aislado de código, hasta que la condiciónasignada a dicho bucle deje de cumplirse.

• Generalmente, un bucle es utilizado para hacer una acción repetida sintener que escribir varias veces el mismo código, lo que ahorra tiempo, dejael código más claro y facilita su modificación en el futuro.

PSEUDOCODIGO FIGURA GEOMETRICA DECUATRO LADOS

1. Inicio2. Camina3. Gira a la derecha 90 grados4. Camina5. Gira a la derecha 90 grados6. Camina7. Gira a la derecha 90 grados8. Camina9. Gira a la derecha 90 grados10. Fin

Page 6: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

6

Practica

1. Realice un pseudocódigo para hacer una figura geométrica de 8lados sin utilizar un bucle o ciclo.

PSEUDOCODIGO FIGURA GEOMÉTRICA DE 8LADOS

1. Inicio2. Camina3. Gira a la derecha 45 grados4. Camina5. Gira a la derecha 45 grados6. Camina7. Gira a la derecha 45 grados8. Camina9. Gira a la derecha 45 grados10. Camina

11. Gira a la derecha 45 grados12. Camina13. Gira a la derecha 45 grados14. Camina15. Gira a la derecha 45 grados16. Camina17. Gira a la derecha 45 grados18. Fin

Page 7: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

7

Ejemplo

• Realice un pseudocódigo para hacer una figura geométrica de 8lados utilizando un bucle o ciclo.

FIGURA GEOMÉTRICA DE 8 LADOSUTILIZANDO UN BUCLE O CICLO.

1. Inicio2. Lados=13. Hacer Mientras Lados<=8

4. Camina5. Gira a la derecha 45 grados6. Lados=Lados+1

7. Fin del Hacer8. Fin

Page 8: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

8

INSTRUCCIONES CONDICIONALES O TOMAS DEDECISIÓN

• Las instrucciones condicionales o tomas de decisión permitenrealizar opciones alternativas; por tanto, la ejecución de una líneao grupos de líneas de un programa dependen de que si cumplenuna o varias condiciones.

EJEMPLOS DE INSTRUCCIONESCONDICIONALES O TOMAS DE DECISIÓN

• ESCRIBIR "Introduce un numero: "LEER numSI num = int( num / 2 ) * 2 ENTONCES

ESCRIBIR "es par"SINO

ESCRIBIR "es impar"FINSI

FINPROGRAMA

Page 9: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

9

TEMAS

• Lenguaje De Programación Nxt – G• GUI Nxt - G• Bloque De Movimiento• Bloque de bucle o ciclo• Bloque de condición• Ejercicios propuestos

LENGUAJE DE PROGRAMACIÓN NXT - G

Page 10: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

10

GUI Nxt - G

GUI Nxt - G

• Robot Educator• Aquí puede encontrar instrucciones de construcción y programación

utilizando el modelo Robot Educator.

• Mi portal• Aquí puede acceder a www.MINDSTORMSeducation.com para obtener

herramientas, descargas e información.

• Barra de herramientas• La barra de herramientas incluye los comandos más frecuentemente

utilizados de la barra de menú en una ubicación de fácil acceso.

Page 11: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

11

GUI Nxt - G

• Zona de trabajo• Es el espacio en la pantalla donde se realiza la programación. Arrastre

bloques de programación desde la paleta de programación a la zona detrabajo y coloque los bloques en la viga de secuencia.

• Ventana Ayuda contextual• Aquí siempre puede obtener ayuda si la necesita.

• Mapa de zona de trabajo• Utilice la panorámica en la barra de herramientas para moverse por la zona

de trabajo, y utilice el mapa de zona de trabajo [ficha en la esquina inferiorderecha] para obtener una visión general.

GUI Nxt - G

• Paleta de programación• La paleta de programación contiene todos los bloques de programación que

necesitará para crear sus programas. Las fichas en el margen inferior de lapaleta le permiten cambiar entre la paleta común [que contiene los bloquesmás frecuentemente utilizados], la paleta completa [que contiene todos losbloques] y la paleta personalizada [que contiene los bloques que puededescargar o crear por su cuenta].

• Panel de configuración• Cada bloque de programación dispone de un panel de configuración que le

permite personalizar el bloque para la entrada y salida específica que usteddesea.

Page 12: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

12

GUI Nxt - G

• Controlador• Los cinco botones en el controlador le permiten descargar programas (o

partes de programas) desde el ordenador al NXT. Con el controlador,también podrá cambiar la configuración del NXT.

• Ventana del NXT• Esta ventana emergente proporciona información sobre las configuraciones

de memoria y comunicación del NXT.

GUARDANDO NUESTRO PRIMER PROGRAMA

• 1 camina 1 segundo• 2 gira a la izquierda 90 grados• 3 camina 1 segundo

Page 13: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

13

PANEL DE CONFIGURACIÓN BLOQUE DEMOVIMIENTO

• Este bloque permite controlar dos motores de modo sincronizado.Dichos motores pueden ser seleccionados por medio del panel decontrol estableciendo cuál es el de la izquierda y cuál el de laderecha, facilitando de esa manera el control del giro.

PANEL DE CONFIGURACIÓN BLOQUE DEMOVIMIENTO

• Port• Nos permite seleccionar los puertos de los motores que van ha

funcionar.• Direction

• Sentido de avance, hacia adelante, hacia atrás o parar.• Esteering

• Dirección de avance, izquierda o derecha.

Page 14: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

14

PANEL DE CONFIGURACIÓN BLOQUE DEMOVIMIENTO

• Power• Fuerza que ejerce el motor.

• Duration• Tiempo en que el motor va funcionar, tenemos cuatro funciones

ilimitado, grados, rotaciones y segundos.• Next Action

• Es lo que hace el motor después de que termina la configuraciónde DURATION, frena el motor inmediatamente o suavemente.

BLOQUE DE BUCLE O CICLO

• La función del bloque Bucle o Ciclo es ejecutar una y otra vez unconjunto de bloques mientras una condición se cumpla.

Page 15: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

15

PRÁCTICA DEL BLOQUE DE BUCLE O CICLO

1. Que el robot avance trazando un octágono, utilice un ciclo pararesolver el problema.

BLOQUE DE CONDICION

Page 16: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

16

EJEMPLO BLOQUE DE CONDICION

• Reconozca el color de una pelota y emita un sonido

Practicas

1. Que el robot avance y se detenga.2. Que avance, se detenga por 5 segundos y luego vuelva avanzar.3. Que el robot avance, se detenga y regrese al mismo punto de

inicio.4. Que el robot avance trazando un cuadrado.5. Que el robot avance y cuando detecte el color negro se detenga.

Page 17: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

17

EJERCICIOS PROPUESTOS PARA PROGRAMAREL ROBOT (1 Hora)

TEMAS

• Sensor ultrasónico• Sensor de presión• Sensor de luz y color• Calibrando sensor de luz y color• Sensor De Sonido• Ejercicios propuestos

Page 18: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

18

SENSOR ULTRASÓNICO

• El sensor de ultrasonidos es muy útil para detectar objetos sinnecesidad de tocarlos. Mide la distancia a los objetos que seencuentran frente a él. Para ello, emite ultrasonidos que rebotansobre los objetos que se interponen y mide el tiempo que lescuesta volver tras rebotar. La medida de ese tiempo se convierteen distancia.

CONFIGURACION DEL SENSOR ULTRASONICO

Page 19: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

19

SENSOR DE CONTACTO

• Este sensor sirve para detectar un objeto cuando se choca con él.Es el más sencillo de todos, de hecho no es mas que un pulsadorque al apretar cierra un contacto y al soltarlo lo abre. Además depara detectar obstáculos, también puede ser útil para actuarsobre un programa en lugar de utilizar los botones del NXT, o paradetectar cuando un robot llega al borde de una mesa y evitarcaerse. Su posición de inicio puede ser tanto pulsado como sinpulsar, dependiendo de lo que se desee hacer.

SENSOR DE CONTACTO

Page 20: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

20

SENSOR DE LUZ

• El sensor de luz puede medir la intensidad de luz en un ambientedeterminado o la luz reflejada por una superficie. Para esto últimodispone de un led rojo que emite la luz que dicha superficiereflejará. Si la superficie es oscura reflejará menos luz que si esclara. Si es necesario, es posible mantener este led emisor de luzapagado.

SENSOR DE LUZ

Page 21: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

21

CALIBRANDO EL SENSOR DE LUZ

• Para calibrar el sensor debemos medir la luz, en la superficie claray también en la línea negra, para ello utilizaremos la función“View” directamente en el NXT En el menú principal, View,Reflectec light, Port 3 si la medición sobre el color claro es 60 ysobre la línea negra es 40, entonces elegimos 50, la idea es usar elpunto medio.

SENSOR DE COLOR

• El sensor de color es el resultado de la evolución del sensor de luz.Además de cumplir las funciones del sensor de luz es capaz deidentificar 4 color diferentes además del negro y blanco.

Page 22: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

22

SENSOR DE COLOR

SENSOR DE SONIDO

• El sensor de sonido detecta niveles de sonido en el cuarto. Puededetectar tanto decibelios [dB] como Decibelio Ajustado [dBA].

• 4-5% - silencio• 5-10% - persona hablando a cierta distancia del sensor.• 10-30% - conversación normal cerca del sensor o música• 30-100% - personas gritando o música alta.

Page 23: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

23

SENSOR DE SONIDO

PRÁCTICA RECORRIDO CON OBSTÁCULOS(SENSOR DE ULTRASONICO)

• Sensor de ultrasónico• El robot avanza hasta encontrar un primer obstáculo

deteniéndose a 10 centímetros antes de que colisione, yretrocede hasta el inicio.

• Debe realizar el circuito marcado, cambiando de direccióncada vez que esté a punto de chocar con un obstáculo.

Page 24: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

24

PRÁCTICA RECORRIDO CON OBSTÁCULOS(SENSOR DE CONTACTO)

• Sensor de presión• El robot avanza hasta encontrar un primer obstáculo con el que

colisiona, se detiene y retrocede hasta el inicio.

• Debe realizar el circuito marcado, cambiando de direccióncada vez que choque con un obstáculo.

PRÁCTICA CAMBIO DE COLOR (SENSOR DE LUZ YCOLOR)

• Cambio de color• En dicha práctica se estudia como regular el sensor de luz y color para

detectar cambios de color en el terreno, Debe realizar el circuito marcado,cuando el robot cambie de tono de color en el terreno debe emitir un pitidoy detenerse, después continuar avanzando. Mediante esta sencillainiciación, permite el concretar los umbrales de funcionamiento del sensorde luz.

Page 25: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

25

PRÁCTICA SEGUIR LA LÍNEA (SENSOR DE LUZ YCOLOR)

• Circuito seguir la línea• Debe realizar el circuito marcado mediante el sensor de luz o color. Para

ello aplicarán los conocimientos adquiridos en el apartado anterior,regulando la velocidad de desplazamiento, ya que es bastante probable quesi emplean altas velocidades el robot pierda el camino en alguna curva.

• Seguir la línea• Inicialmente se sigue la línea recta hasta encontrarse el obstáculo a una

distancia de 10 centímetros, para ello se emplea el sensor de luz o color yultrasonidos. El objetivo del apartado es iniciarles en la programación debucles y ver como el robot debe tomar decisiones dependiendo de losestímulos que le llegan del exterior

PRÁCTICA RECORRER LA LÍNEA (SENSORSONIDO)

• Desplazarse y parar

• En este primer apartado el robot debe desplazarse por la líneahasta la primera marca y detenerse 2 segundos, después reiniciarla marcha hasta la segunda marca, detenerse 3 segundos ycompletar el circuito.

Page 26: Curso Introducción a Lego Mindstorms NXT Contenidos Segundo Trimestre

17/04/2015

26

PRÁCTICA RECORRER LA LÍNEA (SENSORSONIDO)

• Control mediante una palmada• El robot debe realizar el mismo recorrido que en el apartado anterior, pero

al detenerse en cada marca solo reinicia la marcha mediante una palmada.

• Sonidos y melodías• Realiza el mismo recorrido que en el apartado anterior y del mismo modo,

cada vez que reinicie la marcha debe emitir un sonido.

• Intensidad acústica• Realizara el mismo recorrido que en el segundo apartado, dependiendo de

la intensidad del sonido, avanza a una velocidad superior si la palmada esmás fuerte.