TEMA 1. PROGRAMAR. ALGORITMOS Y MUCHO MÁS Máster TIC PROFESOR: VICENTE LUQUE CENTENO [email protected] ÍNDICE 1. INTRODUCCIÓN 2. ALGORITMOS 3. VARIABLES 4. ESTRUCTURAS DE CONTROL 5. FUNCIONES 6. LENGUAJES DE PROGRAMACIÓN ¿PROGRAMAR SOLO ES UN ORDENADOR? La programación es una herramienta, no un fin. No es enseñar programación para convertirles en los mejores programadores del mundo; igual que no se enseña a escribir para que los alumnos y alumnas sean escritores, enseñamos programación porque nos proporciona un conjunto de valores extra como el pensamiento computacional, matemático y científico. Es una herramienta para llegar a ello, no un fin. 1. INTRODUCCIÓN En la actualidad se trata de potenciar la enseñanza de la programación informática en el aula cada vez más, pero como decimos al inicio de este tema, su utilidad no se centra en el fin sino en las herramientas que nos ofrece como docentes. Como bien se recoge en un artículo publicado en la página del Instituto Nacional de Tecnologías Educativas y Formación del Profesorado, INTEF, en un futuro gobernado por el uso de aplicaciones, solo utilizarlas y no programarlas, o al menos no entender de forma leve su forma de creación, nos condenará a ser solo espectadores pasivos de la tecnología. La idea de enseñar a programar desde edad temprana, se remonta muchas décadas atrás, ya en los años 80, muchos controles escolares, sobre todo en Estados Unidos, comenzaron a introducir la programación en el aula, a través del programación Logo. Este lenguaje es creado crea en 1967 por Seymor Papert, Wally Feurzeig, Cynthia Solomon y Danny Bobrow, el cual estaba diseñado con fines didácticos, que permitía aprender de manera más eficaz determinadas materias y desarrollar una serie de habilidades como el pensamientocomputacional. 1. INTRODUCCIÓN. VENTAJAS Algunas de las ventajas y beneficios que se obtienen del aprendizaje de la programación son: •Mejores resultados en pruebas matemáticas, de razonamiento y de resolución de problemas •Mayor capacidad de atención •Más autonomía y un mayor placer por el descubrimiento de nuevos conceptos; •Desarrollan en mayor grado habilidades cognitivas y socio-emocionales •Demuestran menos estereotipos de género en relación a las carreras STEM (Ciencias, Tecnología, Ingeniería y Matemáticas) y menos reticencias para continuar sus estudios y profesiones en estas disciplinas. 2. ALGORITMOS Un algoritmo consiste en una secuencia de pasos e instrucciones cuyo objetivo principal es dar solución a un problema o llevar a cabo una tarea. •Realizable. Es decir, todo algoritmo debe concluir después de ejecutar una cantidad finita de instrucciones o pasos, se debe obtener un resultado final, sea satisfactorio o no. Diremos que es irrealizable si no se concluye la ejecución de pasos o estos son infinitos. •Comprensible. Las instrucciones y operaciones codificadas deben ser comprensibles, en este caso por el ordenador, para que la ejecución pueda llevarse a cabo. •Preciso. El algoritmo debe ser preciso, es decir, antes una misma entrada y mismo proceso de ejecución, el resultado debe ser siempre el mismo. La resolución de problemas se puede dividir en tres grandes bloques generales: Análisis del problema, diseño o desarrollo del algoritmo y resolución del algoritmo en el ordenador, estas a su vez se subdividirán en otras, nos vamos a centrar en los tres grandes bloques principales: 3. VARIABLES Las variables son secciones reservadas en memoria para almacenar datos los cuales pueden cambiar durante la ejecución del programa. Las variables no son de un tipo único, sino que existen varios tipos de datos informáticos, en función de los cuales queda determinado el valor que puede tomar una variables, así como las operaciones que se pueden realizar sobre ellas. Los tipos de datos más comunes son: enteros, carácter, cadenas de caracteres, booleanos … Es importante, conocer la diferencia que existe entre variables y constantes, puesto el uso y aplicación de estas es diferentes: •Constantes. Se trata de elementos que no varían durante la ejecución del programa. Existe la posibilidad de asignarles un nombre, generalmente al principio del algoritmo, de forma que su denominación y su localización a lo largo de la ejecución sea más cómoda. Dependiendo del tipo de datos al que le asignemos un nombre, podemos encontrarnos con constantes numéricas, tanto enteras como reales, alfabéticas o alfanuméricas. Ejemplo: pi = 3.1416 •Variable. Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo. 4. ESTRUCTURAS DE CONTROL if-else Verdadero Falso CONDICIÓN Otros de los aspectos importantes cuando hablamos de programación son las las estructuras de control, estas permiten modificar el flujo de ejecución de las instrucciones de un programa, es decir, permiten realizar una serie de operaciones que incrementan las posibilidades de un programa, sino existieran el código sería completamente lineas. Todos los lenguajes de programación presentan sus estructuras de control, similares entre ellas, añadiendo particularidades de funcionamiento en función del lenguaje escogido. De forma general, las estructuras de control permiten ACCIÓN 1 ACCIÓN 2 do-while CONDICIÓN Verdadero OPERACIONES Falso 4. ESTRUCTURAS DE CONTROL do-until for CONDICIÓN Verdadero Valor inicial variable Falso Falso OPERACIONES Valor incrementado o decrementado Si valor mayor o menor que límite establecido Verdadero ACCIONES 5. FUNCIONES Inicio Cuando hablamos de funciones en programación, estamos refiriéndonos a una subrutina o subprograma, que forma parte del programa principal. Cada una de estas funciones recibe un nombre que la identifica entre el resto de subrutinas, y que permite que sea invocada desde cualquier parte del código total del programa. Opcionalmente puede recibir valores, se ejecuta y puede devolver un valor. La existencia de las funciones permite obtener un programa total más ordenado. Declaración de variables. int variable=4 Verdadero CONDICIÓN Si variable es iguala 4 Falso ACCIÓN 2 IMPRIME no soy 4 ACCIÓN 1 IMPRIME soy 4 Fin 6. LENGUAJES Un lenguaje de programación es un conjunto de instrucciones y reglas propio de cada lenguaje, expresadas de forma algorítmica, que han de ser entendidas y ejecutadas por un ordenados, los lenguajes se emplean para llevara a cabo el diseño y posterior desarrollo de programas. Programación por bloques La programación “tradicional” se realiza tecleando el código compuesto por las instrucciones propias de cada lenguaje de programación, a través de las herramientas diseñadas para tal fin, los entornos de desarrollo, por ejemplo, algunos de los más conocidos con Elipse o Netbeans. En cambio, en la programación por bloques implica se utilizan piezas prediseñadas, encajando unas con otras, como si de un puzzle se tratara, generando una secuencia de acciones que describen el algoritmo a seguir para solucionar el problema a la que la programación está dando solución. Algunas herramientas interesantes para probar la programación por bloques se detallan a continuación. 6. LENGUAJES • Coding for Carrots. Creado por Google, se trata de un juego basado en la correcta utilización de secuencias de programación, para conseguir como objetivo final que el protagonista, un conejo, alcance su objetivo final, la zanahoria. Esta aplicación puede utilizarse en las primeras etapas, no aparece código como tal en forma de bloques, sino que se utilizan elementos visuales, tales como flechas. • Lightbot. Similar a la anterior, se lleva a cabo una programación por bloques, donde cada uno de estos aparece representación de forma gráfico a través de flechas, giros y otras acciones, esta vez protagonizadas por un robot. Constituyen una buena forma para comenzar a programar, puesto que ayuda a la comprensión de la creación de algoritmos complejos a través de secuencias de acciones concretas. 6. LENGUAJES • La academia de la tortuga. Esta plataforma https://turtleacademy.com permite comenzar el aprendizaje de la programación a través de comandos, introducidos a través del teclado, se trata de instrucciones sencillas, normalmente formadas por un verbo (que describe la acción a realizar: adelante, girar, borrar,…) y un valor (una variable que determina el grado de giro o la distancia que se debe desplazar). El protagonista en esta ocasión e una tortuga. Esta plataforma permite comenzar a familiarizarse con la programación escrita, y utiliza el lenguaje de programación Logo. • code.org. Se trata de una organización sin ánimo de lucro, cuyo objetivo principal es fomentar la programación. Esta plataforma recoge multitud de herramientas, desde aplicaciones ya desarrolladas para ponerlas en práctica en el aula, recursos para docentes, vídeos prácticos sobre la programación en bloques, actividades de revisión sobre los vídeos vistos…en resumen, una gran plataforma para comenzar a adentrarnos en el mundo de la programación. CAMPUS MADRID - VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro, 5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31 TEMA 2. PROGRAMACIÓN POR BLOQUES Máster TIC PROFESOR: VICENTE LUQUE CENTENO [email protected] ÍNDICE 1. INTRODUCCIÓN 2.METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN 3. HERRAMIENTAS DE APRENDIZAJE 4. LENGUAJES DE APRENDIZAJE 5. PLATAFORMAS DE APRENDIZAJE 6. LENGUAJES DE PROGRAMACIÓN 1. INTRODUCCIÓN. APRENDIZAJE BASADO EN VÍDEO El uso del aprendizaje basado en vídeo produce una adquisición de conocimientos de forma gradual y reflexiva, dado que, si el alumno se encuentra ante un reto de creatividad que despierte su curiosidad, se motivará para investigar sobre un tema en profundidad. La metodología de esta propuesta está definida en cuatro fases: ▪ Análisis: consiste en identificar, almacenar y criticar los distintos recursos en formato de vídeo que los estudiantes deben encontrar en la web y gestionarlos dentro de un repositorio común. El objetivo pedagógico de esta fase es desarrollar la creatividad, pensamiento crítico, capacidad de síntesis y socialización de ideas, bajo un enfoque de aprendizaje constructivista. ▪ Síntesis: propone identificar los mejores recursos disponibles en las áreas temáticas del dominio de conocimiento y realizar una argumentación de conceptos e identificación de relaciones entre los mismos. ▪ Composición: propone la construcción de objetos de aprendizaje basados en combinación de elementos multimedia con mecanismos de interactividad. Para ello, los estudiantes utilizan recursos tales como vídeos, textos, imágenes y contenidos web, entre otros. Este proceso favorece el desarrollo creativo del estudiante y le pone en contacto directo con elementos de información fomentando un aprendizaje significativo. ▪ La cuarta y última fase consiste en el consumo del material elaborado. Esto se realiza a través de sesiones de discusión en las que los participantes tienen la oportunidad de exponer sus ideas y defender sus creaciones en un debate abierto frente a sus pares. Dicha discusión también puede ocurrir de mediante servicios de votación y comentarios que permiten a los consumidores manifestar su opinión acerca de los contenidos compartidos 2. METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN Just-in-time Teaching En la estrategia pedagógica just-in-time teaching (JiTT), los instructores usan los datos de rendimiento de sus estudiantes para saber qué conceptos se van adquiriendo y cuales les cuestan entender. De esta forma, se consigue dar una atención más personalizada al alumno y poder hacer hincapié en las cuestiones que más lescuesta. En la mayoría de entornos de aprendizaje de JiTT, los estudiantes responden de forma electrónica a una evaluación que deben realizar justo antes de la clase, aunque se puede realizar también entre actividades propuestas. Una vez los alumnos realizan la prueba, el profesor evalúa los datos y reajusta la lección que impartirá en el aula para ajustarse a las necesidades de los estudiantes. 2.METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN 1.Maximizar la participación de los estudiantes. Hacer un esfuerzo por conseguir la máxima implicación de los estudiantes en las evaluaciones antes de las clases. De esta manera, cuantos más estudiantes participen, mejor se podrán evaluar las fortalezas y debilidades de los mismos y adaptar el nivel a las circunstancias de la clase. 2.Realizar las preguntas correctas. Es importante ser meticuloso a la hora de diseñar y estructurar las evaluaciones. Debemos asegurarnos que los conceptos evaluados están cubiertos y que cada pregunta proporcionará datos relevantes. 3.Ser realista. Se debe seleccionar un número razonable de conceptos a cubrir en la siguiente clase tras haber revisado las evaluaciones. Se recomienda abordar los conceptos que vaya a dar tiempo a explicar en una clase y que son necesarios entender antes de pasar a otros más complejos en sucesivas sesiones. 4.Dar una respuesta rápida. Siempre que sea posible, es recomendable abordar cuanto antes los fallos de comprensión que tengan los alumnos tan pronto se identifiquen. Las investigaciones han demostrado que el retraso en proporcionar a los estudiantes información sobre conceptos mal entendidos, disminuye su comprensión. 2. METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN Peer teaching La enseñanza entre compañeros o iguales, en inglés peer teaching, es una técnica pedagógica en la que los estudiantes comparten sus conocimientos y apoyan el aprendizaje de sus propios compañeros a través de asumir un papel de experto frente a otros que actúan de aprendices. Esta metodología se basa en que, si un alumno ha entendido bien un concepto, debe ser capaz de resumir lo esencial, de tal forma que sea capaz de explicarlo a otros compañeros. Una técnica de evaluación muy utilizada es realizar preguntas de test dónde podemos presentar una serie de definiciones mejores y peores con distintos grados de certeza y precisión, de tal forma que se pregunte a los alumnos cuál cree que es la mejor opción y tengan que argumentar cuál es su respuesta. 2. METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN Team based learning El aprendizaje basado en el trabajo en equipo (TBL), es una estrategia de enseñanza y aprendizaje que se basa en la interacción de los estudiantes en grupos pequeños. En este tipo de enseñanza, los estudiantes trabajan en sus respectivos grupos durante la mayor parte del tiempo. Además, serán ellos quienes pongan en práctica los conocimientos y aprendan a administrar su propio aprendizaje por medio de tareas en equipo. En primer lugar, se les asigna a los estudiantes unos vídeos para que los visualicen antes de llegar a clase, para después llevar a cabo un ciclo de evaluación formativa. Durante esta evaluación, se retoman conceptos e ideas fundamentales para el tema que se discutirá en la próxima sesión. Esta prueba se realiza en primer lugar de forma individual y después, se reúne cada equipo y los miembros discuten las respuestas con el fin de llegar a un consenso. Durante este proceso formativo, los integrantes del equipo reciben retroalimentación inmediata. Además, pueden buscar los argumentos que respalden sus respuestas o replantear alguna idea. El último paso es el tiempo de la explicación que será corto y durante el cual el instructor aclarará dudas o interpretaciones equivocadas de los estudiantes. 2. METODOLOGÍAS DE APRENDIZAJE EN LA ENSEÑANZA DE LA PROGRAMACIÓN Flipped classroom Dinámica Just-in-time Teaching Se revisa el contenido teórico en casa Énfasis en los conceptos que más y en clase se hace trabajo colaborativo cuesta asimilar Peer teaching Team based learning Un alumno explica a otros compañeros Interacción de estudiantes en grupos pequeños Rol del educador Guía Adaptarse a las dificultades de la clase El propio alumno Aclarar dudas Rol del estudiante Protagonista Tradicional El alumno Gestor de conocimientos Los alumnos aprenden a construir su propio conocimiento Atención personalizada a los alumnos Abstracción de lo esencial por parte de los alumnos para poder explicarlo Trabajar problemas que pueden darse en la vida real Previa a la asistencia a clase Previa a la asistencia a clase Respuesta justificada ante los demás Primero prueba individual y después grupal Desarrollo del pensamiento crítico, adopción de responsabilidades y mayor autonomía Atención personalizada al nivel de cada clase y adaptación a las debilidades El mayor aprendizaje se realiza cuando explicamos a los demás Promover pensamiento crítico, creativo, trabajo en equipo y capacidad de síntesis Requiere que el profesor prepare los recursos adecuados e invierta tiempo en crear material No siempre la participación de los alumnos en las evaluaciones previas es la deseada El concepto a explicar puede no estar lo suficientemente asimilado Controlar que todos participen Objetivo Evaluación Ventajas Desventajas 3. HERRAMIENTAS DE APRENDIZAJE PARALA ENSEÑANZA DE LA PROGRAMACIÓN La informática es una disciplina que requiere someterse a una constante formación. A continuación, se explican entornos que tratan de obtener un primer contacto motivador para el aprendizaje de la informática en la actualidad. En algunos casos mediante un aprendizaje con enfoque tradicional donde el profesor sube los vídeos a la plataforma y en otros, mediante un aprendizaje más activo, fomentando que los alumnos creen sus propios vídeos e historias interactivas haciendo uso de la programación. En primer lugar, se van a explicar las características más destacables de dos experiencias basadas en herramientas de creación de contenido audiovisual para el aprendizaje de la programación como son Scratch, Scratch Jr. y Alice. Después, se resumen algunas de las plataformas de educación en línea basadas en vídeo más importantes hoy en día: edX, Coursera, Udacity y Khan Academy, en las que los profesores suben los vídeos de los contenidos y por último, se analiza una herramienta donde los alumnos suben sus propios vídeos: ClipIt. 4. LENGUAJES. SCRATCH Y SCRATCH JR Scratch es una herramienta gratuita que permite programar tus propias historias interactivas, juegos y animaciones y, compartir tus creaciones con otros en la comunidad online. Además, ayuda a los jóvenes a aprender a pensar de forma creativa, a razonar sistemáticamente, y a trabajar de forma colaborativa. En 2008 se realiza un estudio (Maloney, Peppler, Kafai, Resnick y Rusk, 2008) que analiza 536 proyectos realizados como actividades extraescolares en los cuáles se ha demostrado que los jóvenes han adquirido conceptos clave usando Scratch, incluso sin la intervención de mentores. Esto se debe a su sistema de programación en bloques, que facilita a los programadores principiantes poder abstraerse de la dificultad de programar las líneas de código desde cero. También se ha realizado una adaptación de esta herramienta para los más pequeños, conocida como ScratchJr que es posible usar a partir de los 5 años. Su creación radica en la necesidad de herramientas para la enseñanza de la programación adaptadas para niños, que permitan un acercamiento al mundo digital y empezar a desarrollar el pensamiento computacional. Otro aspecto destacable de la plataforma Scratch es la adaptabilidad al aprendizaje de diversas asignaturas y no únicamente a la programación. En el caso del uso de videojuegos para el aprendizaje de conceptos de probabilidad en la Educación Secundaria, los alumnos son capaces de aprender y desarrollar algoritmos basados en la probabilidad, construyen sus propios modelos probabilísticos, ejecutan pruebas y analizan resultados. 4. LENGUAJES. ALICE Este entorno de programación nace con el objetivo de motivar a los alumnos de secundaria a crear sus propias películas de animación, videojuegos o vídeos para compartir en la web. Con Alice se puede aprender conceptos de programación en el contexto de la creación de vídeos, mediante el uso de objetos tridimensionales que componen un mundo virtual y permite crear un programa animándolos. El funcionamiento de su interfaz se basa en arrastrar y soltar bloques de palabras para formar las órdenes del programa en forma de código. Las instrucciones corresponden a declaraciones estándar de un lenguaje orientado a objetos. De esta forma se solventa uno de los principales errores técnicos que se encuentran las personas cuando empiezan a programar, como puede ser escribir el códigodesde cero. La principal ventaja que muestra este entorno es la visualización en el momento de lo que estás programando, al ver los resultados de forma inmediata se puede entender mejor la relación entre el código y el comportamiento de los objetos. Además, es eminentemente visual, característica que aunque es innata al ser humano, es más acentuada en niños que en adultos. 5. PLATAFORMAS DE APRENDIZAJE a) edX https://www.edx.org/es La plataforma de cursos en línea masivos y abiertos edX, fundada por el Instituto Tecnológico de Massachusetts y la Universidad de Harvard, contiene cursos en línea de nivel universitario de una gran variedad de temas. Actualmente hay más de 500 cursos en esta plataforma, siendo hoy en día más de 130 cursos los ofertados. edX tiene una amplia gama de cursos de educación superior relacionados con las ciencias. Una de las características cruciales de sus cursos es su auto-ritmo, lo que se traduce en que el alumno puede gestionarse el tiempo de su aprendizaje. En estos cursos, el recurso educativo que más se utiliza es el vídeo, junto con herramientas innovadoras como son los laboratorios gamificados o la construcción de moléculas virtuales en 3D. En esta plataforma se pueden obtener pruebas de inscripción o certificados de honor de forma gratuita, pero el estudiante no recibe credenciales en forma de diploma. b) Coursera https://www.coursera.org Esta plataforma de educación virtual cuenta con cursos de educación masiva de nivel universitario tanto gratuitos como de pago. Coursera fue fundada en 2011 por dos profesores, ofreciendo dos cursos gratuitos de informática. En los sucesivos años, se incorporaron más universidades con gran reputación. A lo largo del tiempo se han añadido nuevas temáticas de cursos acerca de ciencias sociales, estadística, matemáticas y programación. Coursera tienen cursos de auto-ritmo, cursos a la carta y clases cortas, además, de todas las plataformas analizadas es la que tiene mayor variedad de cursos. La mayoría de los cursos de esta plataforma son gratuitos y algunos requieren una pequeña cuota para participar en programas de certificación y especializaciones, o una secuencia de clases que incluyen un proyecto final para lograrla certificación. 5. PLATAFORMAS DE APRENDIZAJE c) Udacity https://eu.udacity.com Udacity nace como resultado de las clases de informática gratuitas ofrecidas en el año 2011 a través de la Universidad de Stanford, contando actualmente con 25 cursos activos. Cada uno de ellos consta de varias unidades que comprenden clases de vídeo, junto con cuestionarios integrados para ayudar a los estudiantes a comprender conceptos y reforzar las ideas, así como tareas de seguimiento que promueven el modelo "aprender haciendo". Esta plataforma contiene una amplia gama de clases, especialmente de programación e informática. El contenido de los cursos de Udacity es gratuito, pero para obtener un certificado verificado se tiene que pagar, y los precios son generalmente más altos que los de Coursera y EdX. Además, Udacity tiene menor número de cursos y menos variedad que Coursera y Edx. d) Khan Academy https://es.khanacademy.org Khan Academy es una organización educativa y un sitio web creado en 2006 con la misión de "proporcionar una educación a nivel mundial para cualquier persona, en cualquier lugar". Contiene más de 4.300 vídeos dirigidos a estudiantes de enseñanza primaria y secundaria, con módulos de aprendizaje de matemáticas, ciencia, computación y economía. La Ilustración 7 muestra un ejemplo de un proyecto realizado en el entorno de aprendizaje de código en Khan Academy. Sus lecciones consisten en un itinerario perfectamente trazado para el aprendizaje de diversos lenguajes de programación mediante vídeos, retos y tutoriales junto con una consola de programación que utiliza el estudiante. CAMPUS MADRID - VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro, 5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31 TEMA 3. PROGRAMACIÓN POR BLOQUES Máster TIC Vicente Luque ÍNDICE 1. ¿QUÉ ES SCRATCH? 2. VARIABLES EN SCRATCH 3. EVENTOS EN SCRATCH 4. BLOQUES. TIPOLOGÍAS 5. CASO PRÁCTICO 2. ¿QUÉ ES SCRATCH? Como hemos visto en el capítulo primero, en la programación por bloques se utilizan piezas prediseñadas, en lugar de código escrito como tal, encajando unos bloques con otros, como si de un puzzle se tratara, generando una secuencia de acciones que describen el algoritmo a seguir para solucionar el problema a la que la programación está dando solución. Uno de los lenguajes más utilizados en la actualidad para programar por bloques es Scratch, desarrollada por el Grupo Lifelong Kindergarten del MIT Media Lab. Algunas de sus claves de éxito radican en su facilidad de uso, así como en la amplia variedad de bloques que simulan estructuras de control, variables, y otras múltiples operaciones, es posible crear programas completos a través de la creación, de lo que podíamos denominar como subrutinas. Además, permite la opción e personalizar los programas, es decir, crear escenarios y personalizar al protagonista del juego. Existe toda una comunidad en torno a este lenguaje de programación, que permite compartir y publicar nuestras creaciones, contribuyendo así al aprendizaje de todos. https://scratch.mit.ed u 2. VARIABLES EN SCRATCH Una variable es una estructura de datos identificada mediante una etiqueta, cuyo contenido puede variar durante la ejecución del programa. En Scratch, es posible crear etiquetas bajo un nombre con un valor inicial, que podrá variar a durante la ejecución del programa. Gracias a esta etiqueta, podrá ser referenciado en cualquier punto del programa. ¿Qué usos puedo dar a una variable cuando estoy programando en Scratch? Innumerables, como pueden ser almacenar la puntuación total conseguida durante un juego, indicar el número de posiciones que tiene que avanzar el gato de Scratch. 2. VARIABLES EN SCRATCH En primer lugar, se crea una variable con el nombre deseado (Make a Variable) las opciones para la definición y modificación de variables en Scratch son las siguientes: En el siguiente ejemplo, cada vez que se pulse el icono de la bandera verde, la variable total_repeticiones tomará el valor 1: 3. EVENTOS EN SCRATCH Los bloques de eventos son una de las herramientas más importantes de esa plataforma, puesto que nos permite interacciones con el objeto de la programación. Uno de los bloques más utilizados es el de “inicio”, este aparece identificado con una bandera una verde, que podemos decir, se tratará del botón que da comienzo a la animación. En el ejemplo anterior, cuando se pulsaba este evento, se asignaba el valor 1 a la variable creada, y a continuación, el protagonista mostraba un mensaje indicando el contenido de dicha variable. 3. EVENTOS EN SCRATCH En el siguiente ejemplo, cada vez que se pulsa la barra de espacio el gato, objeto del juego, gira un ángulo de 15º. Pero además, estamos haciendo un envío de mensajes, a través del bloque “broadcast message1”. Desde el segundo objeto se recibe este mensaje, y añadimos un bloque “when I receive message1”, el cual ante la ocurrencia de dicho evento realizará la acción asociada a decir “Hello”. Veámoslo paso por paso en el continuación, siguiente diagrama. Al pulsar la barra espaciadora…. 4. BLOQUES. TIPOLOGÍAS a)Bloque de apariencia (Looks) (bloques morados) Los bloques de instrucciones de tipo apariencia, permiten realizar determinadas acciones sobre el objeto que estamos modelando en ese momento. Este tipo de bloques permiten variar características tales como el tamaño, el color, el pixelado, enviar al frente, o posicionar en algún determinado de todas las capas que compongan nuestro escenario, etc… Estos bloques también ofrecen la opción de que el protagonista emita algún tipo de mensaje de forma escrita. En el ejemplo del apartado anterior, se utiliza uno bloque de tipo apariencia para que el dinosaurio muestre por pantalla el mensaje enviado desde el gato. 4. BLOQUES. TIPOLOGÍAS b) Bloque de movimiento (azul oscuro) Los bloques de movimiento permiten desplazar al objeto tanto en el eje x, como en el y, girar en el sentido de las agujas del reloj o contra él, cambiar la dirección del objeto,… en definitiva, permite establecer su posición con respecto al espacio que ocupa. c) Bloque de control (control) (naranja) Los bloques de instrucciones de tipo control permiten detectar eventos o acciones realizados por otros objetos y reaccionar ante estos sucesos. Son los bloques donde se encuentran las estructuras de iteración y condicionales, dentro de las cuales se llevan a cabo los grupos de instrucciones deseados para desempeñar el algoritmo final, recordad los grupos de bucles vistos en el Capítulo 1. Verdader o ACCIÓN 1 Falso CONDICIÓN ACCIÓN 2 4. BLOQUES. TIPOLOGÍAS c) Bloque de operadores (Operators) Este tipo de bloques se utilizan sobre todo en combinación con los bloques de control. Se deben diferenciar entre operaciones lógicas, los bloques de forma hexagonal, y operaciones matemáticas, los bloques de forma elíptica. d) Bloque de sonido (sound) (rosa) Scratch, también proporciona un conjunto de bloques para la manipulación sonido, que permite la reproducción del de archivosde audio dentro del programa, tanto sonidos puntuales asociados a alguna acción, como una música de fondo. Los ficheros de sonido se importan directamente sobre el área del objeto y los bloques de instrucciones permite personalizar el valor y el tipo de reproducción de estos. e) Bloque de sensores (sensing) (azul claro) Los sensores permiten en Scratch permiten detectar si el objeto está realizando algún tipo de acción sobre el escenario, o si alguna tecla del teclado está siendo pulsada, el cursor del ratón, etc. Además, estos bloques son lo usados cuando se está trabajando con algún tipo de kit externo. CASO PRÁCTICO 1. ESTRUCTURA DEL PROGRAMA. Fondos y personajes. El juego dispone de dos escenarios. El primero llamado „room1‟ es similar al „room2' a diferencia que este último dispone de un bocadillo informativo en el que se indica las operaciones posibles a realizar con la calculadora. CASO PRÁCTICO 2. TAREAS REALIZADAS El programa comienza con el personaje, las variables que se utilizarán a lo largo del programa y con la guitarra y el altavoz en el escenario (los cuales pueden pulsarse desde el comienzo). El funcionamiento es: 1. ¡Hola chicos! ¡Bienvenidos al programa "Calculadora"! 2. Su uso es sencillo: a continuación, voy a preguntar dos números y un tipo de operación. 3.El tipo de operaciones que podéis realizar son las siguientes: 4.Suma, resta, producto, división, raíz, seno, arcoseno, coseno, arcocoseno, tangente, arcotangente, logaritmo, exponencial, potencia de diez (las operaciones han de escribirse sin tildes, pues las instrucciones en el programa están escritas sin tilde). 5.Si necesitáis ayuda, pulsad el botón de ayuda que aparecerá ahora. También puedes pulsar el botón "RESET" para detener el programa. CASO PRÁCTICO En ese instante aparecen en el escenario tanto el botón de “RESET” como el de “AYUDA”, los cuales se pueden empezar a usar desde este momento, y las variables se inicializan para dar paso a la nueva asignación. El personaje continúa: 1. Elige el primer número: El usuario inserta un número y presiona el botón intro. La variable “num1” tomará el valor que el usuario haya elegido. 2. Elige el segundo número: El usuario inserta el segundo número y presiona el botón intro. La variable “num2” tomará el valor que el usuario haya elegido. 3. ¿Qué operación deseas hacer? El usuario escribe una de las operaciones disponibles y la variable “op” tomará el valor que el usuario haya elegido. En caso de insertar mal un nombre de operación, las variables se inicializarán y el personaje volverá a preguntar por las mismas de nuevo. CASO PRÁCTICO Seguidamente, la variable “res” tomará el valor resultado de la operación realizadaentre los dos números elegidos y el personaje dirá el valor resultante durante unos segundos. Una vez pasado el tiempo en que se muestra el resultado, las variables se inicializarán y el personaje volverá a preguntar por los números y por la operación deseada desde el punto 6. El programa continuará en ejecución hasta que el usuario pulse el botón “RESET”. RESUMEN Valores lógicos: cierto o falso Hexágonos RESUMEN Expresiones: números o textos Óvalos RESUMEN Instrucciones: órdenes Puzzle RESUMEN Eventos: puntos de comienzo Puzzle con óvalo CAMPUS MADRID VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro,5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31 TEMA 4. ARDUINO Máster TIC PROFESOR: VICENTE LUQUE CENTENO [email protected] ÍNDICE 1. INTRODUCCIÓN 2. LA PLACA ARDUINO 3. OTROS COMPONENTES 4.LENGUAJES DE PROGRAMACIÓN Y PLATAFORMAS 1. INTRODUCCIÓN Arduino es una plataforma de prototipos electrónica de código abierto basada en hardware y software flexibles y fáciles de usar. Arduino puede comunicarse con su entorno mediante la recepción de entradas, a través de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el “Arduino Programming Language” y el “Arduino Development Environment”. 1. INTRODUCCIÓN • Fomentar el uso de la programación en el aula. • Usar de la programación en escuelas e institutos utilizando programación para ser capaces de desarrollar un pensamiento creativo y computacional. • Hacer proyectos interactivos que faciliten el aprendizaje de cualquier asignatura sin estar relacionada con la tecnología. • Iniciarnos en el mundo de la electrónica y robótica. • Construir componentes electrónicos a nuestro gusto. • Interaccionar con el mundo exterior mediante actuadores en función de las variables ambientales que leemos mediante los sensores. 1. INTRODUCCIÓN Arduino Education es un equipo de Arduino dedicado al desarrollo de la próxima generación de programas STEAM y apoyo a las necesidades de profesores y estudiantes. La tecnología de Arduino se usa para: • Jugar, en la escuela primaria como juguetes con tecnología Arduino para introducir al alumno en el aprendizaje físico, lógica, creación de habilidades y resolución de problemas. • Enseñar y aprender en la escuela secundaria para usar con técnicas innovadoras para estudios croscurriculares • Desarrollo en las universidades, Arduino está ampliamente usado en los campos de la ingeniería, IoT, robótica, arte y diseño entre algunos de ellos. El término STEM es el acrónimo de los términos en inglés Science, Technology, Engineering and Mathematics (Ciencia, Tecnología, Ingeniería y Matemáticas). El concepto “Educación STEM” se ha desarrollado como una nueva manera de enseñar conjuntamente Ciencia, Matemáticas y Tecnología con de manera integrada en lugar de como áreas de conocimiento compartimentadas. 2. LA PLACA ARDUINO Arduino es una placa basada en un microcontrolador, esto es, es un circuito integrado en el cual se pueden grabar instrucciones. Estas instrucciones se escriben utilizando un lenguaje de programación que permite al usuario crear programas que interactúan con circuitos electrónicos. •Entradas. Se denomina así al conjunto de pines a través de los cuales se realizan las lecturas. Estas pueden ser de tipo analógico o digital, las primeras se encuentran entre los pines analógicos A0 al A15, y los pines digitales se ubican entre el 0 y el 13. Botón de reinicio Pines digitales Conector USB Indicador LED alimentación •Salidas. De la misma forma existen pines de salida, utilizados para el envío de señales. En este caso solo existen pines digitales, en concreto, 13. •Alimentación. La alimentación de la placa suele realizarse a través del jack de alimentación con una tensión de 7 a 12 Voltios. También es posible alimentarlo por el puerto USB, pero en la mayor parte de los casos no estará conectado a un ordenador. LED’s de emission y recepción. Indicansi en cada momento está transmitiendo o recibiendo Conector para alimentación •Comunicación. Una de las maneras más comunes para transferir los programas a la placa, o para enviar y recibir datos, es a través de USB. P Microcontrolador 5V y 3,3V GND Pines analógicos 3. OTROS COMPONENTES Los módulos y Shields en Arduino permite incrementar la funcionalidad básica de cualquier placa. Habitualmente se utilizan para establecer algún tipo de comunicación. Internet. Shield para la conexión del dispositivo Arduino a Internet. Recuerda que además del lenguaje que utilizas para programar tu placa Arduino necesitarás saber algo deHTML. Bluetooth. Este módulo se utiliza para aquellos casos en los que se desea conectar a un dispositivo móvil y manejarlo desde ahí. Por ejemplo, imaginemos que vamos a construir un coche con una placa Arduino y va a ser controlado a través de un teléfono móvil, en este caso, se necesita un módulo capaz de recibir datos para situarlo en el Arduino y así pueda interpretar las órdenes que recibe desde el móvil. En este caso, también se necesitará un programa en el móvil capaz de enviar las órdenes necesarias a la placa. Comunicación por infrarrojos. La comunicación con infrarrojos es similar a a la anterior, cuando instalamos un módulo detector de infrarrojos el dispositivo podrá ser controlado desde un transmisor de este tipo de señales. Normalmente, los mandos a distancias se comunican a través deinfrarrojo. 3. OTROS COMPONENTES Módulo detector de obstáculos. A través de este módulo es posible disponer de un sensor de presencia. Por ejemplo, si estamos diseñando un “robot” que se desplaza y debe evitar chocarse contra las paredes. Sensores para controlar condiciones atmosféricas. Se trata de módulos utilizados para medir temperatura, presión atmosférica, humedad, luz, entre otras, y actuar en consecuencia. Por ejemplo, si se desea medir la humedad de una planta y si esta baja de un determinado valor, se activo el mecanismo para que sea regada, a través de un sistema de riego controlado mediante Arduino. Cuando el sensor detecte un valor de humedad límite, se activará una señal que hará que el dispositivo de riego comience a funcionar. Servomotores. Es común realizar proyectos en Arduino basados en la construcción de robots u otro tipo de dispositivos que se desplacen o que generen un determinado tipo de movimiento, para ello será necesario el uso de motores. . 4. LENGUAJES DE PROGRAMACIÓN Y PLATAFORMAS A lo largo de este capítulo hemos aprendido en que consiste una placa Arduino, qué es, cómo está formada y cómo es capaz de comunicarse con el exterior, así como que componentes podemos encontrar para trabajar conjuntamente (sensores, servomotores, módulos de comunicación, …). Pero para conseguir que el funcionamiento de cualquier proyecto se lleve a cabo, será necesario programar los algoritmos y rutinas necesarias para implementar la funcionalidad requerida. La programación en Arduino se realiza a través del lenguaje de programación C++, junto a unas librerías propias de Arduino, donde se proporcionan funcionalidades para trabajar con pines y el resto de puertos de comunicación, escrito en un entorno de desarrollo. Los lenguajes de programación en modo texto son: Arduino IDE, y Arduino Web Editor. Ahora bien, en esta asignatura nos vamos a centrar en diferentes recursos, los cuales nos permitirán trabajar con la ya conocida programación por bloques, similar a Scratch. Algunos de estos son: Scratch 4 Arduino, mBlock, bitBloq o Visualino, entre otros. 4. LENGUAJES DE PROGRAMACIÓN Y PLATAFORMAS S4A consiste en un torno creado a partir de la plataforma de código abierto Scratch ,cuya finalidad es aplicar la programación por bloques a Arduino. Esta versión, además de los bloques propios de Scratch, incluye nuevos bloques para controlar los pines y sensores propios de una placa, vistos en el apartado 3.2 y 3.3. de este capítulo. 4. LENGUAJES DE PROGRAMACIÓN Y PLATAFORMAS Bitbloq, al igual que S4A, es una herramienta para la llevar a cabo la creación de programas con Arduino, en concreto, a través de la programación por bloques, desarrolla por la empresa española BQ, está recomendado para niños a partir de 8 años. BQ ha desarrollado su propia placa, bq ZUM, junto con varios kits de robótica. El funcionamiento es similar al descrito en este capítulo para una placa de Arduino, a través de una conexión por el puerto usb, la placa se conecta con el ordenador, sincronizándose las instrucciones creadas desde la aplicación. Esta aplicación permite realizar la programación y simulación del algoritmo que se desea implementar, cuando este esté listo basta con pasarlo a la placa Arduino y se debe reproducir el mismo comportamiento. 4.LENGUAJES DE PROGRAMACIÓN Y PLATAFORMAS Lego Mindstorms, desarrollado por LEGO, se trata de una línea de robots para comenzar a investigar en el mundo de la programación y la robótica. Presentan elementos básicos de construcción robótica, basada en la metodología general de LEGO, como la unión de piezas, junto a la programación de acciones en forma interactiva. La versión educativa se conoce con el nombre Lego Mindstorms for Schools, en combinación con el software Robolab.2 1.En primer lugar, se lleva a cabo la construcción del robot a través de los kits de Lego Mindstorm. 2.A continuación, a través de la aplicación EV3 se lleva a cabo la construcción por bloques del código qué se va a implementar. Consiste en un lenguaje de programación por bloques, basados en imágenes, es decir, el código aparece representado, por esta razón, este tipo de herramientas conjuntos de robótica y programación son muy útiles para cursos de iniciación. 3.El control del robot se lleva a cabo a través de un dispositivo móvil o tablet. CAMPUS MADRID - VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro, 5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31 TEMA 5. APP INVENTOR Máster TIC PROFESOR: VICENTE LUQUE CENTENO [email protected] ÍNDICE 1. INTRODUCCIÓN 2. EL ENTORNO 3. PRIMEROS PASOS 4. APP INVENTOR DESIGNER. (I) (II) (III ELEMENTOS) 5. APP INVENTOR BLOCKS 6. CASO PRÁCTICO 1. INTRODUCCIÓN http://ai2.appinventor.mit.edu AppInventor es un entorno de desarrollo de software gratuito, a través de una plataforma web, para la elaboración de aplicaciones móviles bajo el sistema operativo de Android, de forma fácil e intuitiva. 1. INTRODUCCIÓN http://ai2.appinventor.mit.edu AppInventor, permite crear aplicaciones a través de bloques, similares a los vistos en Scratch, S4A y BitBloq, sin necesidad de tener grandes conocimiento de programación a través de código. Una de las mayores desventajas que presenta, es que solo permite desarrollo para dispositivos Android. Algunas de las características de AppInventor: 1. Se trata de un sistema gratuito 2. Sistema fácil de acceder, utilizar y descargar 3. Facilita la creación de aplicaciones móviles, aunque estas suelen ser bastante sencillas 4. Existe un centro de descarga y distribución de aplicaciones para Android El funcionamiento se basa en la programación a través de bloques de los algoritmos y secuencias que forman parte de la funcionalidad final del programa, a través de App Inventor blocks, y por otro lado, permite realizar el diseño de la interfaz de presentación de la aplicación, es decir, de aquello que se muestra al usuario a través del dispositivo móvil con Android, a través de App Inventor Designer. Una vez que se combinan estas dos partes, se realiza el proceso de compilación, que consiste en la traducción del código en bloques, a código capaz de ser ejecutado por una dispositivo. 2. ENTORNO El entorno de desarrollo se basa en dos grandes bloques, en primer lugar, el entorno de diseño de interfaces, donde se lleva a cabo la distribución de elementos visuales que forman parte de la aplicaciones, tales como, imágenes, botones o cuadros de texto, esta parte se conoce con el nombre de App Inventor Designer. Por otro lado, se encuentra el App Inventor Blocks Editor, esta sección está dedicada a la programación de la aplicación, es decir, mientras que desde App Inventor Designar se diseña la parte más visual, con la que interactuará el usuario final, sin una programación por debajo que implemente su funcionalidad, la aplicación no realizará ninguna acción, no tendrá sentido. Por lo tanto, la programación (por bloques) se lleva a cabo en el App Inventor Blocks. En el siguiente diagrama se muestra el proceso general de actuación a través de la aplicación. App Inventor Designer App Inventor Blocks 3. PRIMEROS PASOS Para comenzar el diseño de nuestra aplicación con AppInventor basta con crear una cuenta en la plataforma, para ello podemos utilizar nuestra dirección de correo electrónico de Gmail. Tras ingresar en el sitio, la primera pantalla nos muestra todos los proyectos que hayamos desarrollado, por lo tanto, será posible que realicemos tantos diseños como nuestra imaginación sea capaz, y tenerlos todos almacenados para su posterior edición, modificación o simplemente para tener un backup de copia de aplicaciones desarrolladas. En la parte superior de la primera pantalla, en la que se muestra un listado en el que aparecen todos los proyectos desarrollados, encontramos un menú para la creación, borrado y publicación. Para crear un nuevo proyecto seleccionamos la opción de Start new project, indicados el nombre del nuevo proyecto y pulsamos OK. 4. APP INVENTOR DESIGNER (I) El entorno de la parte dedicada al diseño se encuentra dividida por 4 grandes bloques: • Paleta de elementos (1). Listado con todos los elementos que podemos utilizar para crear una aplicación. Su funcionamiento es sencillo, basta con arrastrarlos hasta la zona del visor (2) y colocarlos en la posición deseada, desde el menú de propiedades (4) es posible modificar las características preestablecidas para cada elemento. Por ejemplo, si se inserta un botón, desde las propiedades cambiar el texto, entre otros. 1 3 2 • Visor del diseño de interfaz (2). Esta zona reproduce la pantalla de un dispositivo móvil, para el cual estamos realizando el desarrollo de la aplicación. Los elementos se arrastran hasta zona, desde la paleta de elementos (1) y se colocan en la pantalla, emulando al diseñofinal. 4 4. APP INVENTOR DESIGNER (II) • Mapa de navegación (3). Podemos llamar así a la ventana en la que se aparece un resumen con todos los elementos y pantallas que componen la aplicación. De esta forma, es posible una navegación mucho más ágil e intuitiva por toda la aplicación que está en desarrollo. 1 3 • Menú de propiedades (4). Este cuadro de opciones permite personalizar cada uno de los elementos que se colocar en la zona de diseño (2), escogidos de la paleta de elementos (1). Es posible modificar casi cualquier característica de cada elemento. 2 4 4. APP INVENTOR DESIGNER (III) ELEMENTOS La lista de componentes es muy extensa, existen multitud de componentes más, que se pondrán en práctica junto con los anteriores en el Taller 4. Estos son los que podemos encontrar bajo los nombre de Sensores, Maps, Conectividad o Social. Incluso se incorpora una sección especial para la creación de aplicaciones que trabajan junto a los kits de robótica vistos en el Capítulo 4, LEGO Mindstrom. • botones. Elementos que realizan alguna acción cuando son pulsados por el usuario. • canvas. Elementos sensible al tacto sobre la que se puededibujar. • checkBox. Se trata de una casilla de verificación que detecta cuando el usuario la ha marcado. • image. Se usa para insertar una imagen en la pantalla, estas pueden ser seleccionadas y manipuladas por el usuario. • label. Las etiquetas se utilizan para mostrar una cadena de texto. Este se especifica en una de las propiedades del elemento, llamadaText. • TextBox. Caja de texto donde los usuarios introducen una cadena de texto solicitada para alguna acción concreta. Existen diversas opciones, como la posibilidad de introducir más de una línea o la restricción de solo introducirnúmeros. • ListPicker. O lista de selección, se muestra un listado de cadenas de texto, dentro de los cuales el usuario podrá seleccionar el que desea. Por ejemplo, si tenemos una aplicación y vamos a escoger el idioma, este puede aparecer en una lista de selección, donde se indican todos los idiomas disponibles. 5. APP INVENTOR BLOCKS El entorno de App Inventor Blocks, donde se realiza la programación por bloques de la aplicación, está dividida por 3 bloques: • Paleta de bloques (1). Listado con todos los tipos de bloques que podemos utilizar para crear una aplicación (estructuras de control, operadores matemáticas, variables, …). Al seleccionar uno de estos tipos, en el visor (2) aparecen todos los tipos de bloques existentes para una misma tipologías. • Visor de bloques (2). Se muestran todos los bloques disponibles en función del tipo seleccionado en la paleta (1). Para utilizar uno de estos bloques, basta con arrestarlo hasta la pantalla en blanco de la derecha (3). • Pantalla de programación (3). En esta zona se sitúan y desarrollan los bloques que implementan la funcionalidad de la aplicación. 1 2 3 5. APP INVENTOR BLOCKS En la descripción del entorno App Inventor Blocks, ya veíamos que este contiene los bloques de código que permiten programar la aplicación. La paleta de bloques contiene los fragmentos de código que podemos considerar genéricos, como son las estructuras de control, las secuencias de inicialización y modificación de variables, y las operaciones matemáticas y lógicas, entre otras. Pero además, esta paleta muestra los elementos ubicados en la pantalla mediante el App Inventor Designer. Estos contienen sus propios bloques de código asociados, por ejemplo, en el caso de un botón los bloques representan los eventos característicos del mismo, como pueden ser que se detecte si el botón está pulsado o está puesto el foco en él. Bloques generales: Bloques específicos: 6. CASO PRÁCTICO Para comenzar a practicar con el diseño de aplicaciones móviles, vamos a diseñar un primer prototipo con una caja de texto en la que vamos a escribir nuestro nombre, a continuación, al pulsar el botón Saludar, nos devuelva un mensaje seguido del nombre introducido en la caja, se trata de una aplicación muy sencilla, gracias a la cual comenzamos a familiarizarnos con el funcionamiento de laherramienta. Desde el App Inventor Designar situamos en la pantalla de diseño un botón, una etiqueta de texto y una caja de texto. En el primer caso, desde el menú de propiedades modificamos el texto del botón. Ahora bien, desde App Inventor Blocks se realiza el siguiente diseño de bloques, este se activa cuando el botón está pulsado. A continuación, devuelve por pantalla el mensaje resultado de unir una cadena de texto cualquiera, que hemos creado con el mensaje “Hola Mundo” y el texto contenido en la caja. Como se puede observar en la imagen, no basta con tomar el nombre de la caja, sino que es necesario indicar de cuál de sus atributos vamos a extraer elvalor. CAMPUS MADRID - VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro,5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31 TEMA 6. DISEÑO 3D. MANEJO DE SOFTWARE PASO A PASO Máster TIC PROFESOR: VICENTE LUQUE CENTENO [email protected] ÍNDICE 1. INTRODUCCIÓN 2. APLICACIONES SOFTWARE PARA EL DISEÑO 3D 3. THINKERCAD 4. THINKERCAD. EL ENTORNO DE DISEÑO 5. THINKERCAD. CREACIÓN DE UN OBJETO 6. ESTRUCTURA Y CARACTERÍSTICA DE LAS CAPAS 1. INTRODUCCIÓN La impresión 3D consiste en un hardware que permite la fabricación de piezas mediante el modelado a través de software que permiten la elaboración de casi cualquier tipo de diseño, en prácticamente cualquier ámbito. La impresora 3D utiliza filamentos de plástico, estos se introducen en la máquina y llegan hasta la boquilla, a 210ºC. Esta boquilla y la base de impresión se combinan para realizar movimientos en el largo y ancho de la pieza. Cuando una capa se ha construido, se pasa a la siguiente, y así sucesivamente, hasta como completar toda la pieza La impresión 3D supone una auténtica revolución en múltiples ámbitos en la actualidad, no solo por la utilidad que esta puede suponer en el futuro, donde el uso de esta tecnología llegará a picos por ahora casi inimaginables, sino por los beneficios que puede aportar en el presente. La impresión 3D, permite su integración en diferentes asignaturas. 1. INTRODUCCIÓN VENTAJAS Y CARACTERÍSTICAS DE LA IMPRESIÓN 3D EN EL ÁMBITO EDUCATIVO: La impresión 3D está avanzando e implantándose muy rápido. Los estudiantes pueden comenzar a familiarizarse con una tecnología que tendrá un papel muy importante en el futuro. Nuevas formas de trabajo: fabricación aditiva. Los estudiantes no replican un modelo ya creado, sino que lo diseñan y luego lo construyen, modifican e incluso pueden llegar a mejorar. A través de la unión de programación, electrónica e impresión 3D se pueden construir multitud de proyectos, abarcando la robótica, la domótica e multitud de inventos caseros que ayuda a descubrir el funcionamiento de las cosas. Los estudiantes “aprenden haciendo”. Se enseña al alumnado a través de la práctica. 2. APLICACIONES Y SOFTWARE PARA EL DISEÑO 3D Software Cura. La empresa BQ ha creado su propia impresora, llamada Witbox 2, que trabaja con el software Cura. Este es uno de los software 3D más conocidos, puesto que su forma de uso es fácil e intuitiva. Es gratuito y fue desarrollado por 3D Ultimaker. Se trata de una software indicado tanto para principiantes como para expertos Microsoft Paint 3D. Se trata del conocido Paint de Windows, disponible en la actualización de Windows 10. En la última versión de esta conocida herramienta, se añade la tercera dimensión que permite crear diseños en 3D. Una de las principales características que ofrece esta herramienta, es el uso de dispositivos como lápices digitales y pantallas táctiles, tan https://www.microsoft.com/es-es/p/paint-3d/9nblggh5fv99?activetab=pivot:overviewtab habituales en los dispositivos escolares 2. APLICACIONES Y SOFTWARE PARA EL DISEÑO 3D Customizer. Esta herramienta fue creada por Thingiverse, se trata de una aplicación online, a través de la cual no solo es posible diseñar tus propios proyecto 3D, sino que existe toda una comunidad que permite compartir todos los proyectos creados, de esta forma se crea un repositorio que puede ayudarnos con nuestro trabajo. Es posible tomar un proyecto ya existente y modificarlo para adaptarlo a nuestro caso. https://www.thingiverse.com/customizer 3DSlash. Herramienta online muy sencilla de utilizar, recomendada para que los estudiantes más jóvenes comiencen con el diseño y modelo en 3D. Evidentemente, las posibilidades de diseño que ofrecen son menores que las anteriores, pero su finalidad no está dirigida tanto a la impresión final en un producto 3D, sino en el trabajo sobre la visión espacial y el diseño de piezas.. https://www.3dslash.net 3. THINKERCAD https://www.tinkercad.com/ Tinkercad es una herramienta online gratuita, desarrollado por la empresa Autodesk. Constituye una interfaz de trabajo amigable y fácil de utilizar, a través de la cual es posible crear casi cualquier tipo de diseño de piezas para ser impresas a través de una impresora 3D. Entre sus ventajas destaca la facilidad de uso, lo que la convierte en una herramienta indicada para iniciarnos en el diseño 3D desde casi cualquier edad. Para acceder y comenzar a utilizar Tinkercad basta con navegar desde el siguiente enlace y registrarnos en la página web. Una vez que se ha completado el registro aparecerá nuestro “dashboard” en el cual aparecerán cargados todos nuestros proyectos y desde donde podemos crear nuevos, solo hace falta pulsar “Create new design”. 4. THINKERCAD. EL ENTORNO DE DISEÑO • NOMBRE DEL DISEÑO.Basta con pulsar sobre él para editarlo con el nombre deseado. • BARRADE OPCIONES. Incluye las opciones de de copiar, pegar, duplicar, borrar, deshacer yrehacer. • VISTA. Permite rotar el escenario a la posición deseada • OPCIONES VISTA. Permite reiniciarla vista, ampliar y reducir la misma. • ZONADE TRABAJO. Área de diseño de nuestro dibujo. • AJUSTE DE LA REJILLA: Permite cambiar las opciones de configuración de la rejilla • PROPIEDADES DEL OBJETO. Este menú aparece cuando se selecciona algunos de los objetos situados en la zona de trabajo, permite modificar propiedades tales como el radio, la altura y la anchura. • OBJETOS. En este menú se pueden seleccionar diferentes elementos geométricos de diseño. • EXPORTAR/IMPORTAR. Permite tanto cargar el diseño de un modelo ya creado, tanto exportarlo para ser almacenado o para ser cargado en una impresora 3D para su impresión. 5. THINKERCAD. CREACIÓN DE UN OBJETO DISEÑO DE PIEZA. SELECCIÓN Y DESPLAZAMIENTO En primer lugar, debemos planificar las formas geométricas con las que vamos a construir nuestro objeto, trabajaremos a lo largo de este aparato en la elaboración de una torre, cuya construcción va a estar basada en un cubo y sobre este vamos a situar cubitos de menor tamaño simulado las almenas. Desde el menú OBJETOS, seleccionamos las dos figuras citadas y las situamos en el plano de trabajo, a continuación las redimensionamos. Para desplazar los elementos por el plano basta con pinchar sobre ellos con el ratón y situarlos en el punto deseado, ahora bien, es muy importante que conozcamos como ubicarlos en altura, o lo que es lo mismo, como desplazarlos en el eje z, para ello hay que pulsar sobre la flecha de color negro situada encima del elemento. En este tipo de desplazamientos de aconseja mover la vista hasta que quede totalmente de frente, para asegurarnos de la posición exacta en el eje z. 5. THINKERCAD. CREACIÓN DE UN OBJETO CREANDO HUECOS Una de las operaciones más importantes es la creación de huecos, puesto que nos va a permitir aportar mucho más realismo al diseño de la pieza. En el caso de la torre que estamos trabajando en el ejemplo, vamos a bajar el hueco que hay dentro de la torre, justo debajo de las almenas, acercándose más a un diseño real. El procedimiento se detalla a continuación: 1.Se crea un segundo objeto, que modele el hueco que queremos abrir en la pieza base. Lo dimensionamos y lo situamos próximo a la figura principal, para estimar mejor el tamaño que debe tener la pieza que abrirá el hueco, con respecto a la primera. 2. Editamos el segundo objeto, modificando en su apariencia de color sólido a hueco (solid - hole). 5. THINKERCAD. CREACIÓN DE UN OBJETO 3. A continuación, podemos situar la pieza que abre el hueco en su posición final, en este caso, la desplazamos hacia abajo, creando un espacio en la parte superior de la caja. 4. Finalmente, seleccionamos todas las piezas que componen el diseño final y desde el menú situado en la parte superior a la derecha, “agrupamos”, compactándose la pieza final. La opción agrupar permite unir dos o más objetos como si fueran una sola entidad. 6.ESTRUCTURA Y CARACTERÍSTICAS DE LAS CAPAS Es necesario definir la altura concreta que tendrá cada capa, este factor determina el tiempo de impresión, ya que define la cantidad de capas que tendrán que realizarse para obtener la pieza. Si el valor de la altura es de 0,5 mm serán necesarias menos capas que si la altura de capa de 0,1 mm. Las capas están compuestas de 2 elementos: las paredes y el relleno. • Las paredes son los perímetros que delimitan el borde de la pieza. • Relleno. El relleno hace referencia a la estructura interna de la pieza, es posible elegir cómo será la composición de esta. En concreto, se puede seleccionar la cantidad de material que tendrá el relleno como el diseño del patrón que se usará. Normalmente, se suele utilizar un patrón de relleno bajo para los objetos meramente decorativos, mientras que en aquellos en los que se requiere una mayor resistencia, se escogen patrones de relleno más elevados, es decir, su estructura interna estará compuesta por más material de relleno. • Posición. La orientación del diseño de impresión es muy importante. Se aconseja escoger como base de apoyo durante la impresión el lugar más plano de la pieza, para darle más estabilidad durante la impresión. CAMPUS MADRID - VILLAFRANCA Castillo de Alarcón, 49 Urb. Villafranca del Castillo 28692 Madrid ESCUELA DE POSGRADO UCJC Calle de Almagro, 5 28010 Madrid WWW.UCJC.EDU EMAIL: [email protected] TEL: +34 91 815 31 31