diseno~ de una pr actica de laboratorio usando un arduino...

5
Jornada Cient´ ıfica Estudiantil F´ ısica 2017 aginas 1-5 Dise˜ no de una pr´ actica de laboratorio usando un Arduino UNO David Machado P´ erez [email protected] Grupo F3 Tutor(es): Gustavo S´anchez Colina, Facultad de F´ ısica de la Universidad de La Habana Resumen Se hace un dise˜ no de un experimento que emplea las potencialidades como conversor anal´ ogico digital de un Arduino UNO. Se pretende con esto iniciar un camino de modernizaci´ on de algunas de las pr´ acticas de laboratorio de las asignaturas de F´ ısica Experimental de la carrera de Licenciatura en F´ ısica de la Universidad de La Habana, y, quiz´ as, de sus hom´ ologas en todo el pa´ ıs. Palabras Clave: Arduino, Circuito RC, Python. Tema: Ense˜ nanza de la F´ ısica, Automatizaci´ on de pr´ acticas de laboratorio. 1.Introducci´on Los microcontroladores, como los Arduino, permiten la automatizaci´ on de tareas que van desde actividades de la vida cotidiana hasta experimentos cient´ ıficos de alto rigor. Estas potencialidades est´ an siendo aprovechadas en todo el mundo, y cada vez aparecen m´ as aplicaciones de estos dispositivos. En este trabajo se utiliza un Arduino UNO, estrechamente enlazado con algunos scripts de Python, para automatizar el proceso de medici´ on ligado a dos experimentos interrelacionados. En uno de ellos se puede determinar la constante de carga y descarga de un circuito RC, y en el otro se puede observar el comportamiento como filtro de frecuencias de dicho circuito. Aunque el dise˜ no facilita la obtenci´ on de los datos, no se pretende que esta pr´ actica experimental sea completamente independiente del usuario. M´ as adelante se ver´ a c´ omo se logr´ o esto. Nuestro objetivo es incluir este montaje entre los utilizados en la asignatura F´ ısica Experimental III, y abrir as´ ı el camino a otras ideas de este tipo que puedan contribuir a mejorar los programas de las asignaturas de ısica Experimental de las carreras de F´ ısica en Cuba. 2. Requerimientos Empecemos por mencionar los requerimientos del experimento: Un Arduino UNO como el de la figura (1) Tener instalada alguna versi´ on de Python y de Arduino. Este experimento ha sido probado para las versiones 2.7 y 1.6.7 respectivamente. Tener instalado el m´ odulo serial para comunicaciones con puertos serie de Python y, para una completa funciona- lidad del programa que lleva a cabo el experimento, el m´ odulo matplotlib para graficar los resultados. Por parte de Arduino no se necesita ninguna librer´ ıa extra. Montar un circuito como el que se esquematiza en la figura (2), y que se puede ver tal y como se us´ o para probar el experimento en la figura (1). Para que el experimento funcione apropiadamente, se debe garantizar que la constante de carga y descarga del circuito no sea tan peque˜ na que no se pueda registrar, dada la limitada velocidad de conexi´ on serie del Arduino, el proceso en detalle. Bastar´ a con que sea mayor que 5 milisegundos. c 2017 David Machado P´ erez.

Upload: others

Post on 06-Sep-2019

6 views

Category:

Documents


12 download

TRANSCRIPT

Jornada Cientıfica Estudiantil Fısica 2017 Paginas 1-5

Diseno de una practica de laboratorio usando un Arduino UNO

David Machado Perez [email protected]

Grupo F3

Tutor(es):

Gustavo Sanchez Colina, Facultad de Fısica de la Universidad de La Habana

Resumen

Se hace un diseno de un experimento que emplea las potencialidades como conversor analogico digital deun Arduino UNO. Se pretende con esto iniciar un camino de modernizacion de algunas de las practicas delaboratorio de las asignaturas de Fısica Experimental de la carrera de Licenciatura en Fısica de la Universidadde La Habana, y, quizas, de sus homologas en todo el paıs.

Palabras Clave: Arduino, Circuito RC, Python.

Tema: Ensenanza de la Fısica, Automatizacion de practicas de laboratorio.

1. Introduccion

Los microcontroladores, como los Arduino, permiten la automatizacion de tareas que van desde actividades dela vida cotidiana hasta experimentos cientıficos de alto rigor. Estas potencialidades estan siendo aprovechadasen todo el mundo, y cada vez aparecen mas aplicaciones de estos dispositivos.

En este trabajo se utiliza un Arduino UNO, estrechamente enlazado con algunos scripts de Python, paraautomatizar el proceso de medicion ligado a dos experimentos interrelacionados. En uno de ellos se puededeterminar la constante de carga y descarga de un circuito RC, y en el otro se puede observar el comportamientocomo filtro de frecuencias de dicho circuito. Aunque el diseno facilita la obtencion de los datos, no se pretendeque esta practica experimental sea completamente independiente del usuario. Mas adelante se vera como selogro esto.

Nuestro objetivo es incluir este montaje entre los utilizados en la asignatura Fısica Experimental III, y abrirası el camino a otras ideas de este tipo que puedan contribuir a mejorar los programas de las asignaturas deFısica Experimental de las carreras de Fısica en Cuba.

2. Requerimientos

Empecemos por mencionar los requerimientos del experimento:

• Un Arduino UNO como el de la figura (1)

• Tener instalada alguna version de Python y de Arduino. Este experimento ha sido probado para las versiones 2.7y 1.6.7 respectivamente.

• Tener instalado el modulo serial para comunicaciones con puertos serie de Python y, para una completa funciona-lidad del programa que lleva a cabo el experimento, el modulo matplotlib para graficar los resultados. Por partede Arduino no se necesita ninguna librerıa extra.

• Montar un circuito como el que se esquematiza en la figura (2), y que se puede ver tal y como se uso para probarel experimento en la figura (1).

• Para que el experimento funcione apropiadamente, se debe garantizar que la constante de carga y descarga del

circuito no sea tan pequena que no se pueda registrar, dada la limitada velocidad de conexion serie del Arduino,

el proceso en detalle. Bastara con que sea mayor que 5 milisegundos.

c©2017 David Machado Perez.

Practica de laboratorio usando un Arduino UNO

Figura 1: Arduino UNO con el circuito necesario en el experimento

Figura 2: Esquema del circuito

3. Descripcion de los experimentos

Ambos experimentos usan el pin 9 del Arduino UNO como fuente de voltaje digital, con los valores 0,0V y5,0V como voltajes LOW and HIGH respectivamente.

3.1 Carga y descarga del condensador

Para llevar a cabo la medicion se necesita cargar primero en el Arduino el programa ’experimento cargadescarga RC.ino’. Luego se abre una terminal, si se usa Linux, o el command prompt de Windows, y se

ejecuta el script de python ’read arduino tiempo carga descarga.py’ con los siguientes parametros (en el ordenespecificado):

1. Nombre del puerto donde esta conectado el Arduino. Por ejemplo: ’COM11’

2. Baudrate (cantidad de bytes por segundo que se leen del puerto serie) de la comunicacion con el puerto (espor defecto 250000 para lograr una mayor precision en la medicion). Este parametro, si quiere cambiarse,debe hacerse en los dos programas (.py y .ino)

3. Valor que usa el programa en el Arduino para decidir cuando dos numeros con coma son iguales (δ). Estoquiere decir, si b− δ < a < b+ δ, entonces a = b. Como se sabe, esto es necesario a causa de la forma enque se representan los numeros en la computadora. En especıfico, esto es importante para el experimentoporque para decidir finalizarlo, o comenzar a descargar el condensador, se debe comparar el voltaje en susbornes con los valores lımite 0,0V y 5,0V respectivamente.

2

Practica de laboratorio usando un Arduino UNO

4. Comienzo del nombre del file donde se va a guardar la informacion. El programa va a guardar dos files, unopara la carga y otro para la descarga. Al string que se introduzca en este tercer parametro se le pondra alfinal automaticamente ’ carga.txt’ o ’ descarga.txt’ segun sea el caso.

5. El quinto parametro es opcional. Puede ser:

(a) ’final plotting’ usara matplotlib para graficar el resultado justo al final del experimento.

(b) ’realtime plotting’. Este modo solo tiene fines didacticos, pues usara matplotlib para brindar lasensacion de que se estan graficando los datos en tiempo real. Esto es imposible puesto que elexperimento promedio no durara mucho mas de un segundo. En caso de seleccionar esta opcion sedebe introducir un sexto parametro que sera el tiempo en que el graficador refresca la imagen (quetiene por supuesto un lımite inferior demasiado grande para nuestro caso).

En la figura (3) se muestra un ejemplo de las graficas que se pueden obtener inmediatamente despues de ter-minado el experimento. Esta es una grafica que solo pretende hacer inmediata la visualizacion de los resultados,como es evidente pues no tiene nombres ni unidades en los ejes, ni tampoco tıtulo. Vale decir sin embargo que enel eje de las abscisas tenemos el tiempo transcurrido desde el inicio del programa del Arduino en microsegundos,y en el eje de las ordenadas, el voltaje en el pin A0 en Volts.

Figura 3: Carga y descarga de un capacitor. En las abscisas: tiempo en microsegundos. En las ordenadas: voltajeen Volts

Los datos, que se pueden encontrar en el fichero cuyo nombre se introdujo como tercer parametro, podranser entonces procesados y manipulados al antojo del usuario. Este tiene dos columnas: la primera es el tiempotranscurrido desde el inicio del programa del Arduino en microsegundos y la segunda, el voltaje en el pin A0

en Volts. Tomando logaritmos en ambos miembros se puede, por ejemplo, hacer un ajuste lineal del que sepuede obtener la constante de tiempo del circuito. Aun mas, por su sencillez este experimento se puede repetiry ası obtener una mejor precision para el valor mencionado.

3.2 Estudio del filtro RC

Hasta ahora se ha requerido poca participacion del usuario en el proceso de medicion, aunque sigue existiendouna componente importante de su trabajo en el procesamiento de los datos. Sin embargo, en el siguienteexperimento esto cambiara un poco. Para poder hacer la curva de trnsferencia del filtro, se necesita hacer unbarrido de frecuencias de la fuente. La eleccion de la menor de las frecuencias, de la mayor, de la cantidad defrecuencias intermedias y de la cantidad de oscilaciones de la fuente por cada una esta completamente en lasmanos del usuario.

De esta manera, para obtener una curva de transferencia de calidad, se necesita algun conocimiento previosobre el circuito. No es difıcil darse cuenta de que una curva como la de la figura (3) brinda toda la informacionnecesaria para llevar a cabo este segundo experimento con exito. Efectivamente, el funcionamiento del filtroRC se basa en la respuesta retardada del condensador a un potencial aplicado (ϕ) a uno de sus bornes. Ennuestro caso este tendra la forma de una onda cuadrada, lo que facilita los razonamientos. Si el semi-perıodo(T

2 ) de este potencial aplicado es mayor que el tiempo que le toma al condensador cargarse o descargarse (τ),

3

Practica de laboratorio usando un Arduino UNO

entonces el voltaje maximo entre los bornes del condensador (Vm) coincidira con el valor del potencial maximoaplicado (ϕm.) Si T

2 < τ , entonces el condensador no habra tenido tiempo de cargarse completamente y Vmsera inferior a ϕm. Si la frecuencia es lo suficientemente alta (T → 0), entonces Vm → 0. Bastara entoncesmuestrear frecuencias de la fuente cuyos semi-perıodos varıen entre τ y un valor pequeno arbitrario. La eleccionde este ultimo, ası como de la cantidad de valores intermedios y de la cantidad de oscilaciones de la fuente porcada uno depende de la pericia experimental del usuario.

Ası, este experimento, para llevarse a cabo de la mejor manera posible, necesita no solo de la participacionactiva del usuario, sino tambien de la comprension que haya podido este alcanzar del proceso fısico objeto deestudio.

Para proceder con el mismo se mantiene el mismo montaje, solo que ahora se debe cargar en el Arduino elprograma ’filtro RC.ino’, y entonces ejecutar el script de Python ’read arduino filtro RC.py’ con los siguientesparametros (en el orden especificado):

1. Nombre del puerto donde esta conectado el Arduino. Por ejemplo: ’COM11’

2. Baudrate (cantidad de bytes por segundo que se leen del puerto serie) de la comunicacion con el puerto (espor defecto 250000 para lograr una mayor precision en la medicion). Este parametro, si quiere cambiarse,debe hacerse en los dos programas (.py y .ino)

3. Perıodo tomado como lımite inferior del barrido, en microsegundos.

4. Perıodo tomado como lımite superior del barrido, en microsegundos.

5. Salto entre un perıodos consecutivos del barrido, en microsegundos.

6. Cantidad de oscilaciones por cada perıodo muestreado.

7. Comienzo del nombre de los archivos donde se guardaran los datos. A este se le anadira por cada perıodoT y cantidad de oscilaciones n la cola ’T num oscilaciones n.txt’. De esta manera se tendran separadas lasmediciones para cada perıodo. Los files poseen dos columnas, la primera es el tiempo en microsegundos yla segunda el voltaje en los bornes del condensador.

Para cada perıodo seleccionado se pueden obtener graficas, luego de porcesar los datos, como la de la figura(4). Entonces no sera complicado confeccionar la curva de transferencia del filtro.

0

1

2

3

4

5

0 500 1000 1500 2000 2500

Vol

taje

(V

)

tiempo (en iteraciones del programa)

Voltaje vs tiempo para un periodo de 220000 microsegundos

Figura 4: Oscilaciones del circuito para un perıodo de la fuente de 2,2s

4. Conclusiones

Con este trabajo se comienza lo que puede ser un fructıfero proceso de modernizacion y automatizacion dealgunas de las practicas de laboratorio de las asignaturas de Fısica Experimental. Principalmente muestra, masalla de la posibilidad de llevar a la realidad este proyecto de practica, que puede ser relativamente sencilloutilizar las facilidades que brindan los microcrontroladores en la ensenanza de la Fısica.

4

Practica de laboratorio usando un Arduino UNO

5. Recomendaciones

Algunas de las tareas que se pueden acometer para mejorar este trabajo son las siguientes:

• Implementar una sesion grafica para que el usuario pueda introducir los parametros necesarios en losexperimentos. Esto revestira de una mayor elegancia a la practica de laboratorio.

• Utilizar los datos del experimento del filtro RC para que el estudiante se familiarice con las tecnicas detransformada de Fourier en el proceso de obtencion de las frecuencias de los armonicos principales de lasoscilaciones medidas.

• Emplear montajes experimentales muy similares a este para estudiar mas a fondo los circuitos oscilatoriosRLC.

Referencias

[1] Margolis,M. Arduino Cookbook. Second Edition, O’Reilly Media, Inc. U.S.A 2011

[2] Downey. A and Elkner. J How to think like a computer scientist. Python version First Edition, Open SourceTextbook (OST) 2001

[3] Schuerer.K, Maufrais.C, Letondal.C, Deveaud.E, and Petit.M Introduction to Programming using Python.Programming Course for Biologists at the Pasteur Institute Pasteur Institute 2008

[4] Boylestad.R Introduccion al analisis de circuitos Decima edicion, Pearson Educacion, Mexico, 2004

5