Вы находитесь на странице: 1из 6

Animaciones en 3D en tiempo real para las clases de ciencias e ingeniera: Ejemplos desarrollados con el mdulo de programacin VPython

Eduardo E. Rodrguez
Instituto de Industria, Universidad Nacional de General Sarmiento erodrigu@ungs.edu.ar Departamento de Fsica, Facultad de Ciencias Fisicomatemticas e Ingeniera, Universidad Catlica Argentina

RESUMEN: Se describe el uso del mdulo de programacin VPython para desarrollar animaciones en 3D por computadora para ilustrar temas de inters para las clases. Mostramos la utilidad del uso de animaciones para reforzar las presentaciones de materias como fsica y matemtica, entre otras. Con tales presentaciones se puede innovar en el desarrollo de las clases de ciencias e ingeniera en general. Los mtodos de programacin son simples y permiten la resolucin de casos variados y el anlisis de resultados mediante una salida grfica en un entorno de realidad virtual, lo que complementa al manejo usual de datos que se realiza, por ejemplo, mediante una hoja de clculo. Mostramos que la programacin de casos bien elegidos permite articular conocimientos de fsica con los de matemtica, representacin grfica y computacin en un contexto muy amplio de enseanza y aprendizaje. Los primeros intentos de aplicacin han servido en un curso de Mecnica para explicar conceptos que necesitan de visualizacin en las tres dimensiones espaciales (por ejemplo, vectores, producto vectorial), y producir animaciones que ilustran aquello que siempre cuesta explicar o entender en el ambiente bidimensional del pizarrn o la hoja de cuaderno. Se presentan ejemplos desarrollados para clases de fsica general, electromagnetismo y ptica. VPython se consigue en la web, es gratuito, multiplataforma y es simple de usar. PALABRAS CLAVES: programacin, visualizacin, mtodos numricos 1 INTRODUCCIN Otra manera de resaltar presentaciones es a travs de la proyeccin de animaciones, que pueden usarse para la tarea de ampliar con buenos ejemplos nuestros mtodos de activacin de la atencin de los oyentes. Desde un punto de vista pedaggico, el soporte que dan estos mtodos de presentacin es muy promisorio y merece una evaluacin. Este trabajo tiene por objetivo resear brevemente distintas maneras de acceder a presentaciones animadas que pueden disponerse para las clases y comentar ms activamente sobre una manera de producirlas con relativamente poco esfuerzo de programacin con el mdulo denominado Vpython (Scherer, 2000; Chabay, 2007). Las animaciones 3D que pueden producirse con cualquiera de esta variantes son tiles para ilustrar casos que requieran de visualizacin en las tres dimensiones del espacio adems del anlisis de la evolucin temporal de un sistema fsico.

Las presentaciones de temas que hacemos los docentes en las clases universitarias han ido evolucionado gracias al apoyo de los avances tecnolgicos. Aunque la pizarra sigue ocupando el lugar central de convocatoria de la atencin de nuestros alumnos, desde hace dcadas se usan tambin proyectores de transferencias que muestran clases preparadas, o de dispositivas, cuando amerita la exposicin de fotografas. Ms recientemente, el can de proyeccin ha irrumpido en el aula para llevar directamente de la computadora a una pantalla de proyeccin textos, imgenes, planillas de clculo, videos, etctera, para dar apoyo y relieve a las presentaciones orales. La mayora de los docentes universitarios hemos usado alguna vez, por ejemplo, PowerPoint para clases y charlas. De cualquier manera, muchas de estas presentaciones muestran escenas estticas.

Una animacin, a su vez, evoca una imagen distinta en el alumno, acostumbrado a imaginar lo que quiere mostrar el docente con sus dibujos en el plano 2D de la pizarra. Una proyeccin de una animacin 3D, aunque se haga sobre una pantalla de proyeccin 2D, puede contribuir significativamente a que los alumnos comprendan mejor algunos temas salientes de las distintas disciplinas. Los docentes sabemos de las dificultades de los estudiantes de los primeros aos para visualizar casos de la fsica que necesitan clculo vectorial en tres dimensiones y el manejo de magnitudes como el momento de una fuerza, el momento angular, la fuerza de Lorentz, que necesitan del producto vectorial. Tambin somos conscientes del lgebra vectorial que los alumnos hacen con los dedos cuando usan la regla de la mano derecha para obtener el resultado de un producto vectorial y los posibles enredos que ocurren. En el caso de Fsica, los ejemplos de aplicacin pueden ser mltiples y variados. En este trabajo se muestran ejemplos desarrollados para clases de cinemtica, mecnica, electromagnetismo y ptica. Hacia agosto de 2008 estos ejemplos van a estar disponibles en un sitio web dedicado a concentrar desarrollos de docentes universitarios de varias facultades de ingeniera en el marco de un proyecto cooperativo que est ponindose en marcha desde la Universidad Nacional de General Sarmiento. De esta manera, cualquier docente o alumno del pas podr disponer de ejemplos tiles para las clases o el estudio. 2 ALGUNOS RECURSOS PARA DESARROLLAR ANIMACIONES

ecuaciones de movimiento con mtodos numricos estndares y producir una salida grfica animada. Tiene disponible una buena variedad de mtodos para resolver ecuaciones diferenciales que representan al sistema en estudio (Euler, Euler-Richardson, Runge-Kutta, entre otros) (Esquembre, 2007). La aplicacin genera resultados que pueden guardarse en tablas o representarse en grfico X-Y, y con los que se programa las animaciones. Posee una serie de herramientas grficas para representar al sistema fsico bajo anlisis (masas, resortes, hilos). La aplicacin est bien documentada y los ejemplos de muestra son interesantes y comprensibles. Un detalle importante de esta aplicacin es que produce archivos en el formato html y disea automticamente una pgina web que se puede navegar y desde donde analizar los casos resueltos con las variantes que hayan sido programadas.
2.3 VPython

2.1 Mathematica

En el sitio http://demonstrations.wolfram.com/ hay ejemplos de animaciones hechas con el programa Mathematica (Mathematica, 2008). Los ejemplos abarcan una gran variedad de temas, desde matemtica y fsica hasta tecnologa. Un recorrido por el sitio muestra, sin duda, que son buenos ejemplos para mostrar en una clase. El cdigo de cada programa est disponible por lo que, quienes tienen experiencia con el funcionamiento de Mathematica, pueden analizarlos para aprender de ellos, reproducirlos y empezar a hacer sus propias animaciones.
2.2 Java

El desarrollo reciente de Easy Java Simulations (EJS, 2008) ha permitido ampliar las posibilidades de programacin de animaciones de casos fsicos. Esta aplicacin permite resolver

El mdulo VPython, popularizado por sus autores como 3D programming for ordinary mortals, es un desarrollo que se lleva a cabo desde 2002. Una ventaja del mdulo es que es de cdigo abierto y puede obtenerse gratuitamente del sitio oficial del proyecto. El mdulo opera con programacin orientada a objetos y es multiplataforma; puede correr bajo los sistemas operativos Windows, Linux y Mac. Los ejemplos que se muestran en este trabajo han sido desarrollados bajo Windows XP y no han producido errores cuando han sido ejecutados en Windows 2000. Para tener operativo a VPython hay que tener instalado el paquete Python, de cdigo libre y disponible en el sitio oficial (Python, 2008). La instalacin de VPython contiene animaciones con ejemplos bsicos para empezar a aprender y ms avanzados para degustar sus posibilidades de programacin. El sitio web del proyecto contiene ms ejemplos aportados por contribuyentes y seleccionados por los administradores del sitio. La programacin de un entorno virtual donde se realiza la animacin necesita de una escena que va siendo registrada por una cmara. La posicin y orientacin de la cmara puede cambiarse en tiempo real de ejecucin. Los objetos que pueden usarse para representar cuerpos (masa, cargas, resortes) o magnitudes fsicas (vectores) pueden ser: esferas, flechas, cilindros, hlices, curvas, entre otros. Cada objeto tiene un conjunto de atributos que los define. Por ejemplo, para dibujar una esfera en el centro de la escena hay que editar la lnea de comando

sphere(pos = (0,0,0), radius = 2, color = (1,0,0)) que produce en tiempo de ejecucin una bola roja de radio 2 en el origen de coordenadas (el centro de la pantalla). El color de un objeto se define con el formato (R,G,B). Las propiedades de cualquier objeto pueden cambiarse en tiempo real y as es como se produce el efecto de animacin. Por ejemplo, si un cuerpo se mueve con movimiento rectilneo uniforme, su posicin en el espacio cambia segn r(t) = r0 + v t, donde r y v son vectores 3D en el caso ms general. Para animar un movimiento de este tipo, se recurre a introducir un ciclo de animacin que incremente el tiempo, calcule r(t) y actualice la posicin pos del objeto que representa al cuerpo, igualndola en cada instante a r(t). El ritmo al cual se hace la animacin puede elegirse con el comando rate(f), donde f es la frecuencia en Hz a la que se actualizan valores y se genera la salida animada. Las flechas son especialmente tiles para representar vectores fsicos, como la posicin, velocidad, fuerzas, momento angular, campos elctricos y magnticos, etctera. El lgebra vectorial que puede hacerse con el mdulo contiene las operaciones de: clculo de la magnitud de un vector, suma de vectores, producto escalar y producto vectorial. Esto permite operar dentro del programa con variables fsicas concretas y luego representarlas grficamente con un objeto arrow. De esta manera, por ejemplo, todos los detalles de la cinemtica y de la dinmica de un sistema fsico pueden exponerse con una presentacin amena y que, con algo de prctica, suele quedar bastante elegante. 3 EJEMPLOS DESARROLLADOS EN VPYTHON

los cuerpos y de las rbitas (que se suponen circulares) no estn a escala, lo que no es relevante para los fines didcticos de la animacin. Este ejemplo capta muy bien la atencin de los alumnos, puesto que es un caso del mundo real, no obstante su exigencia para que usen conocimientos previos e imaginacin para entenderlo.

Figura 1. rbitas de la Luna y la Tierra en torno al Sol (no estn a escala) para mostrar el resultado de la combinacin de movimientos circulares.

En esta seccin se muestran un conjunto de ejemplos desarrollados en VPython entre 2007 y 2008 para algunos cursos universitarios de varias carreras de ingeniera. 3.1 Ejemplos de mecnica
3.1.1 Combinacin de movimientos

Un ejemplo interesante para analizar en el primer curso de mecnica es la combinacin de movimientos, como es el caso de la rbita de la Luna, que orbita alrededor de la Tierra, que a su vez gira alrededor del Sol. La Figura 1 muestra una captura de pantalla de las rbitas del satlite y del planeta, producidas con una animacin en VPython. Los tamaos de

La dificultad radica en establecer, al menos cualitativamente en una primera instancia, el detalle de la rbita lunar, mientras la Luna acompaa a la Tierra. En la clase, los alumnos trabajan en sus cuadernos para dibujar la rbita de la Luna, como resultado de la composicin de dos movimientos circulares. Una vez que los alumnos tienen listas sus soluciones se establece una discusin grupal, tras lo cual se proyecta la animacin correspondiente para continuar con el anlisis. Este caso ha demostrado ser generador de buenas discusiones en el aula. La animacin permite mostrar cmo evolucionan los cuerpos y sus vectores velocidad y aceleracin. Los parmetros necesarios para representar los movimientos, como perodos y radios de las rbitas, pueden cambiarse en el programa y analizar casos muy variados resultantes de la combinacin de dos movimientos circulares. Nuestra experiencia indica que el efecto que produce en la audiencia estudiantil la observacin de una animacin de este tipo de movimiento supera en gran medida al que se observa en una presentacin esttica tpica en el pizarrn.

3.1.2 Momento angular

La Figura 2 muestra la salida en pantalla de una animacin que ilustra el clculo del vector r momento angular L de un cuerpo puntual en movimiento circular uniforme. El punto de referencia para medir el momento angular est fuera de la rbita, sobre uno de los ejes de coordenadas. La observacin se hace desde una perspectiva adecuada que se logra eligiendo una posicin particular de la cmara. De esta manera, la animacin produce un efecto de representacin tridimensional. En el ciclo de animacin estn incorporadas las r dependencias temporales de la posicin r y la r r velocidad v de la partcula, y L se calcula como r r r r r L = r p , donde p = mv es la cantidad de movimiento lineal del cuerpo de masa m. En cada instante, se actualizan las variables y las posiciones y atributos de los objetos que representan al cuerpo y a los vectores relevantes del problema. Desde el programa se pueden elegir otros puntos de referencia para calcular el momento angular. Este ejemplo ilustra muy bien el resultado que produce la eleccin de puntos de referencia distintos a los usuales mostrados en los libros de texto. En clase, pedimos a los alumnos que r encuentren L respecto de un punto de referencia externo a la rbita, que analicen sus predicciones con cuidado en una actividad grupal y que luego usen la animacin para comparar sus expectativas con el resultado correcto.

r en la Figura 2, donde L se mide desde un punto r de referencia fuera de la rbita circular, resulta L r r nulo en los instantes en que r || p , lo que ocurre en dos lugares de la rbita, lo que refleja una r propiedad de la definicin de L como producto vectorial de dos vectores. En sntesis, esta animacin conduce a que los alumnos conecten conceptos fsicos con el lgebra vectorial que estudiaron en cursos previos, mediante un problema presentado en una forma no convencional.
3.1.3 Rodadura

Un tema central en un curso de dinmica de cuerpos rgidos es la descripcin de la rodadura de un cuerpo. La Figura 3 muestra una instantnea de una animacin de la rodadura de un disco sobre un plano horizontal. La animacin desarrollada muestra en tiempo real la evolucin de los vectores de velocidad ms relevantes para comprender el problema: la velocidad de un punto de la periferia y sus componentes horizontal (velocidad del centro de masa) y tangencial (velocidad tangencial).

Figura 3. Rodadura de un disco sobre un plano.

Figura 2. Momento angular L de una partcula en movimiento circular, medido desde fuera de la rbita.

Por ejemplo, una consigna usual considera r preguntas sobre la constancia o no de L , si en r r algn instante es L = 0, si L invierte su sentido, entre otras posibilidades que pueden analizarse grfica y analticamente. Los alumnos tienen que ser capaces de anticipar que en el caso mostrado

En este caso, el anlisis est orientado a distinguir los efectos que tiene la rodadura con o sin deslizamiento sobre la velocidad instantnea de distintos puntos del cuerpo. Para ello, la animacin representa las componentes de la velocidad de un punto de la periferia mientras el cuerpo rota. En el caso de una rodadura sin deslizamiento, cuando el punto que se observa toca el piso, su velocidad se cancela. Esta descripcin animada del movimiento de rodadura ha sido muy bien recibida por los alumnos, que previamente haban estado discutiendo este tema siguiendo las consignas de la gua de problemas del curso.

3.1.4 Movimiento armnico simple

En la presentacin de las caractersticas del movimiento armnico simple y de la funcin armnica que da la posicin de un cuerpo en cada instante: x(t )=A cos(t + ) , es comn observar que los alumnos muestren cierta dificultad en comprender el significado de la fase inicial y cmo obtenerla a partir del conocimiento de las condiciones iniciales. Una de las animaciones desarrollados para ilustrar este tipo de movimiento se vale de la analoga entre el movimiento armnico simple y el movimiento circular uniforme (Sears, 2005). El tratamiento del problema dentro de este marco permite tambin introducir el concepto de fasor, que luego ser usado ms asiduamente en un curso de electromagnetismo. Esta anticipacin de la presentacin en el curso de mecnica del concepto de fasor es bienvenida por los docentes de los prximos cursos. La Figura 4 muestra el diseo grfico de la animacin elaborada para presentar la analoga. El cuerpo rojo oscila, atado a un resorte, con movimiento armnico simple de frecuencia y de amplitud A. Al mismo tiempo, el cuerpo verde ejecuta un movimiento circular uniforme, sobre un crculo de radio A y con una velocidad angular del mismo valor absoluto que . La proyeccin de la posicin de este cuerpo sobre el eje horizontal est representada por una funcin x(t) anloga a la del movimiento que tiene el cuerpo que oscila. La animacin presenta la analoga en tiempo real mientras el fasor (radio del crculo) rota.

recorrido del fasor por los cuadrantes es muy til para deducir el valor de . 3.2 Un ejemplo de electromagnetismo En un curso de electromagnetismo se trata el movimiento de cargas en campos elctricos y magnticos con los objetivos de mostrar el efecto r r r de la fuerza de Lorentz F = q( E + v xB ) e introducir ejemplos de aplicaciones posibles de una carga en movimiento. La consideracin del movimiento de una carga en los campos requiere de visualizacin en el espacio tridimensional, por lo que estos ejemplos son especialmente apropiados para demostrarlos mediante animaciones 3D. El programa especfico desarrollado presenta una regin del espacio donde hay un campo magntico uniforme (Figura 5), donde una carga puede ingresar con una cierta velocidad y en cualquier direccin. La rbita que describe la carga depende de la orientacin de la velocidad respecto del campo magntico. Eligiendo r adecuadamente el vector v y la posicin inicial de la carga pueden apreciarse rbitas que pueden r r ser circulares ( v sin componente paralela a B ), tramos de rbitas circulares (como en un espectrmetro de masas), rbitas helicoidales r (cuando v tiene una componente paralela al r r campo) o trayectorias lineales (caso v || B ). El cdigo de programacin localiza a la partcula cargada y resuelve numricamente el problema de obtener su trayectoria. Para ello, se resuelve el problema de dinmica usando como fuerza neta instantnea a la fuerza de Lorentz. La Figura 5 muestra el caso de la rbita helicoidal que sigue una partcula con carga positiva que ingresa al campo magntico vertical.

Figura 4. Visualizacin de la analoga entre un movimiento armnico simple y uno circular uniforme.

Esta animacin acompaa al ejercicio de deducir la fase inicial de acuerdo a distintas condiciones iniciales del movimiento. La visualizacin del

Figura 5. Movimiento de una partcula cargada que ingresa a una regin con campo magntico uniforme y describe una rbita helicoidal. Se aprecia el efecto de una observacin en perspectiva.

Con idntico esquema de trabajo como los descritos en la aplicacin de las animaciones en las clases de mecnica, los alumnos son interrogados previamente sobre sus expectativas acerca del movimiento de la carga que entra al campo magntico y se les pide una descripcin cualitativa de la rbita. Tras una discusin grupal, se presenta la animacin y se discuten los aspectos ms salientes del ejemplo. En otras oportunidades, se proyecta una animacin y se pide a los alumnos que deduzcan el signo de la carga o cmo ser la trayectoria de la partcula al abandonar el campo. Como se ve, las actividades en torno a esta animacin pueden ser variadas y eficaces para promover la participacin de los alumnos en discusiones abiertas. La buena recepcin de los alumnos a estas presentaciones es alentadora y justifica ampliamente el esfuerzo de programacin. 3.3 Un ejemplo de ptica Todos los docentes de fsica tuvimos que representar una onda mediante un dibujo en el pizarrn por lo menos una vez en nuestra vida docente. La dificultad inherente es representarla y al mismo tiempo inducir a los alumnos a que imaginen la evolucin temporal del proceso ondulatorio. Una animacin es, desde luego, un excelente recurso didctico para las clases de ondas.

Una ventaja adicional de VPython es el fcil manejo de la perspectiva mediante la rotacin continua de la escena que puede hacerse usando los botones del mouse. De esta manera, mientras las ondas se propagan puede cambiarse el ngulo de visin continuamente y, por ejemplo, observar las ondas desde la direccin de propagacin, como se muestra en la parte derecha de la Figura 6. Estos cambios de perspectiva contribuyen a la comprensin de lo que hace una onda cuando viaja por el espacio y de su estado de polarizacin por la visualizacin del comportamiento de la magnitud que oscila. 4 CONCLUSIONES

Las animaciones 3D son una herramienta docente de gran potencial y estn accesibles en varios formatos desde hace varios aos. Hemos descrito las posibilidades de programacin de VPython para elaborar animaciones elegantes y eficaces para acompaar la presentacin de diversos conceptos y situaciones fsicas. El uso de estas animaciones en nuestras clases nos ha servido para incorporar un nuevo y promisorio recurso didctico. La respuesta entusiasta de nuestros estudiantes ante la proyeccin de las animaciones durante las clases de Fsica nos alienta a continuar desarrollando este tipo de recurso didctico. 5 REFERENCIAS

Figura 6. Una onda con polarizacin elptica como superposicin de dos ondas linealmente polarizadas.

El ejemplo que se muestra en la Figura 6 ha sido desarrollado para presentar los conceptos de superposicin de ondas y de polarizacin de una onda transversal. En la animacin se representan dos ondas polarizadas linealmente, desfasadas . La superposicin de estas ondas resulta en un estado de polarizacin lineal ( = 0), circular (= /2) o elptica ( = /4), como ejemplos ms usuales. Para la presentacin de los distintos casos es necesario variar el valor del parmetro en el cdigo del programa.

Chabay, R. & B. Sherwood, Matter & interactions, John Wiley & Sons, 2007. EJS (Easy Java Simulations), sitio del proyecto: http://www.um.es/fem/Ejs/Ejs_es/, 2008. Esquembre, F., Creacin de simulaciones interactivas en Java, Prentice Hall, 2007. Mathematica, http://www.wolfram.com/, 2008. Python, sitio oficial del proyecto: http://www.python.org/, 2008. Scherer, D., P. Dubois & B. Sherwood, VPython: 3D interactive scientific graphics for students, Computing in Science and Engineering, Sept./Oct., 82-88, 2000. Sears, F., Fundamentos de Fsica III: ptica, Coleccin Ciencia y Tcnica, Aguilar, 1979. Sears, F., M. Zemansky, H. Young & R. Freedman, Fsica universitaria, vol. 2, undcima edicin, Pearson Educacin, Mxico, 2005. VPython, sitio oficial del proyecto: http://www.vpython.org/, 2008.

Вам также может понравиться