ponencia sobre aplicaciones de la … · ponencia sobre aplicaciones de la robÓtica en las...

13
PONENCIA SOBRE APLICACIONES DE LA ROBÓTICA EN LAS CIENCIAS EXPERIMENTALES Hace cerca de nueve años que en el Colegio se iniciaron los trabajos, a partir del seminario para la revisión de los programas académicos de cómputo del Área de Matemáticas y del Departamento de Opciones Técnicas, sobre cuestiones de Robótica, con lo que se creó el “Club de Robótica e Informática” (CReI) del CCH. Al hablar de robótica, generalmente se nos viene a la memoria un humanoide (ente robotizado con características similares a las de un humano), por las relaciones comerciales que al respecto se han hecho, pero no lo es del todo así, es cierto que existe cierta relación, pero no es el único cause que se le da a esta disciplina. Cuando se iniciaron los trabajos del CReI, se habló de desarrollar aplicaciones para competencias, sobre todo para el ROBOCUP (Torneo de Robótica a nivel Mundial con varias categorías) y del Torneo Latinoamericano de Robótica, precediéndolos el Torneo Mexicano de Robótica, que se lleva a cabo en nuestro país. El objetivo no era fácil, pues los robots que se requerían para esas competencias, debían cumplir con diseños muy específicos y no tan simples de lograr, lo que nos llevó a considerar más necesidades de las que inicialmente habíamos contemplado. Podríamos pensar que para construir un robot bastara con saber de electrónica, pero no es así. La robótica es considerada como una disciplina, por la cantidad de conocimientos que se ven involucrados en su desarrollo, todos ellos de diferentes ramas de las ciencias. Entonces, se involucran muchas cuestiones más, como matemáticas, programación, mecánica, neumática, hidráulica, electricidad, materiales, entre otros temas, inclusive, las que tienen que ver con las lenguas, dependiendo del alcance. Con el trabajo que se ha realizado a través de los años al respecto de la robótica en el Colegio, hemos podido vislumbrar diferentes causes, por ejemplo, en términos de lo ya mencionado, al principio se pensó en la participación de alumnos y profesores interesados en cuestiones de programación, matemáticas y física solamente, pero después nos dimos cuenta que esto no se quedaba ahí. Sobre todo si la intención era llevar estos trabajos a foros y competencias de alcance nacional e internacional. Entonces, se tuvo la necesidad de pensar en el idioma en el que se expondrían los trabajos, que para las competencias y foros en los que participaríamos, sería el inglés. Todo lo anterior nos llevó a reconsiderar muchas cuestiones, que de manera inicial no

Upload: dinhhanh

Post on 11-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

PONENCIA SOBRE APLICACIONES DE LA ROBÓTICA EN LAS CIENCIAS

EXPERIMENTALES

Hace cerca de nueve años que en el Colegio se iniciaron los trabajos, a partir del

seminario para la revisión de los programas académicos de cómputo del Área de

Matemáticas y del Departamento de Opciones Técnicas, sobre cuestiones de Robótica,

con lo que se creó el “Club de Robótica e Informática” (CReI) del CCH.

Al hablar de robótica, generalmente se nos viene a la memoria un humanoide (ente

robotizado con características similares a las de un humano), por las relaciones

comerciales que al respecto se han hecho, pero no lo es del todo así, es cierto que

existe cierta relación, pero no es el único cause que se le da a esta disciplina.

Cuando se iniciaron los trabajos del CReI, se habló de desarrollar aplicaciones para

competencias, sobre todo para el ROBOCUP (Torneo de Robótica a nivel Mundial con

varias categorías) y del Torneo Latinoamericano de Robótica, precediéndolos el Torneo

Mexicano de Robótica, que se lleva a cabo en nuestro país. El objetivo no era fácil,

pues los robots que se requerían para esas competencias, debían cumplir con diseños

muy específicos y no tan simples de lograr, lo que nos llevó a considerar más

necesidades de las que inicialmente habíamos contemplado.

Podríamos pensar que para construir un robot bastara con saber de electrónica, pero

no es así. La robótica es considerada como una disciplina, por la cantidad de

conocimientos que se ven involucrados en su desarrollo, todos ellos de diferentes

ramas de las ciencias. Entonces, se involucran muchas cuestiones más, como

matemáticas, programación, mecánica, neumática, hidráulica, electricidad, materiales,

entre otros temas, inclusive, las que tienen que ver con las lenguas, dependiendo del

alcance.

Con el trabajo que se ha realizado a través de los años al respecto de la robótica en el

Colegio, hemos podido vislumbrar diferentes causes, por ejemplo, en términos de lo ya

mencionado, al principio se pensó en la participación de alumnos y profesores

interesados en cuestiones de programación, matemáticas y física solamente, pero

después nos dimos cuenta que esto no se quedaba ahí. Sobre todo si la intención era

llevar estos trabajos a foros y competencias de alcance nacional e internacional.

Entonces, se tuvo la necesidad de pensar en el idioma en el que se expondrían los

trabajos, que para las competencias y foros en los que participaríamos, sería el inglés.

Todo lo anterior nos llevó a reconsiderar muchas cuestiones, que de manera inicial no

habíamos contemplado, los tiempos, las edades de nuestros alumnos, los

conocimientos con que contaban y los que podrían lograr obtener durante su estancia

en el Colegio, las expectativas proyectadas al interior del Club, los avances

tecnológicos, la situación del país con respecto a otros, etc., lo que hoy nos pone en

una realidad diferente a la inicial, pero más conscientes de lo que podemos hacer,

siendo una de ellas esta propuesta que hoy vengo a compartirles.

EXPERIMENTOS CON ARDUINO PARA PROFESORES

Arduino se creó como un proyecto para estudiantes en el Instituto IVREA, en Ivrea

(Italia). Tomaron la idea de un microcontrolador de BASIC Stamp, que para ese

momento era muy costoso para ellos. En ese tiempo, uno de los fundadores de

Arduino, Massimo Banzi, impartía clases en Ivrea. En la creación de esta propuesta

contribuyeron varios personajes, dentro de los que se incluyen al estudiante

colombiano Hernando Barragán, quien desarrollo la tarjeta electrónica Wiring, su

lenguaje de programación y toda la plataforma de desarrollo. Todo el proceso les llevo

cierto tiempo, pero una vez concluida la plataforma trabajaron en hacerlo más ligero,

más económico y disponible para la comunidad de Open Hardware. El instituto de

donde surgió esta idea cerró sus puertas de manera temporal, y los precursores,

consideraron complicada la continuidad del proyecto, pero el español David Cuartielles,

promovió la idea y se logró una gran proyección, aunque esto no surgió como una idea

comercial, sino como una manera de apoyar al Instituto, pues siendo un proyecto de

Open Hardware, este no podría ser embargado. Entonces, podremos contar a grandes

rasgos lo siguiente:

La plataforma Arduino, es una plataforma diseñada en Italia, nació como

proyecto educativo en el año 2005.

Fue bautizado así por el bar “Bar di Re Arduino”, lugar donde Massimo Banzi se

reunía regularmente. Este bar tomó su nombre del de un antiguo rey europeo del

año 1002.

La idea original no fue “una idea de negocio”, sino una necesidad de mantener el

Instituto de diseño Interactivo IVREA en Italia.

Google se ha interesado por el proyecto y ha colaborado en el Android ADK

(Accesory Development Kit), una placa Arduino capaz de comunicarse

directamente con smart phones Android para obtener las funcionalidades del

teléfono (GPS, acelerómetros, GSM, bases de datos) y viceversa para que el

teléfono controle luces, motores y sensores conectados de Arduino.

300 unidades fueron las primeras que se produjeron y se las vendieron a los

alumnos del Instituto IVRAE, ganando sólo 1 dólar por placa con el fin de que las

probaran.

Uno de los primeros proyecto fue un reloj alarma, el cual no se apagaría hasta

que no te pararas de la cama.

En la actualidad se han desarrollado infinidad de placas basadas en este proyecto

Open Hardware, aun de los propios creadores, siendo una de las más populares la

llamada UNO, teniendo su consecuente de idénticas características, pero usando

tecnología diferente llamado LEONARDO. Otro también muy popular es el MEGA,

siendo de los de mayor tamaño y capacidad, pero también existe el NANO, de tamaño

pequeño pero de capacidades similares a las de un UNO.

Con esta propuesta, Arduino, los integrantes del Club de Robótica e Informática en sus

cursos a alumnos y profesores, de donde he sido el coordinador y ahora el

Departamento de Opciones Técnicas en concreto con el curso de Mecatrónica básica

se ha y está trabajando con la aplicación de esta plataforma en proyectos diversos,

tanto para competencias, como para cuestiones de apoyo a la docencia. En este último

punto es en donde hoy quiero ubicar esta charla. Después de haber trabajado con

Arduino y darme cuenta de lo fácil y versátil que es para el diseño de aplicaciones

diversas, y de conocer el trabajo de algunos de los compañeros del Área de Ciencias

Experimentales, al compartir espacios, foros y la experiencia al ser el responsable de la

Secretaria Técnica del SILADIN de este plantel, además de conocer algunas de las

propuestas de los aparatos con los que se auxilian para la experimentación, como

LESA y VERNIER, es que me propuse compartir con ellos esta otra opción que puede

llegar a tener gran aplicación y que no tendría límites en términos de las posibilidades,

pues es toda una computadora con las vías de crecimiento necesarias para lograr

muchas de las tareas que en esta área se realizan.

Pues bien, entrando en materia, dado el corto tiempo y espacio, comenzare hablando

de los requerimientos para la utilización de esta plataforma, por un lado, una

computadora, sin grandes requerimientos, pues el software es muy ligero y corre bajo

varias plataformas, inclusive es portable en algunas versiones; una placa Arduino, yo

les recomiendo la placa UNO, que en el mercado tiene un costo entre 300 y 400 pesos

y hasta en mercado libre la pueden conseguir, o en steren, con su cable USB; y con

eso podemos comenzar. Dado que es un proyecto Open Source, la información al

respecto está disponible sin ningún problema en su página, y en otras muchas que lo

comparten, basta entrar al portal arduino.cc/es para conseguir todo lo que se necesita y

comenzar a trabajar. Mencioné que se requiere un cable USB, que se usa como medio

de comunicación entre la placa y la computadora, que si hemos puesto atención a cada

ocasión en que conectamos algo a un puerto USB en nuestra computadora con

Windows, nos dice que ha encontrado nuevo hardware y debe instalar los

controladores, así también para el Arduino, por lo que debemos descargar de su página

los drivers, correrlos y después conectar nuestra placa y ya será identificada por la

computadora. Posteriormente, entraremos al compilador de Arduino, que también

bajamos de la dirección mencionada, gratuita, e identificaremos el ambiente de trabajo.

Deberemos decirle al software el tipo de placa con que trabajaremos y en que puerto

está, así comenzaremos por probar nuestro Arduino el cual cuenta con un programa

precargado que hace parpadear un led de manera intermitente. No siendo el objetivo

de esta charla, hablar de cómo programar el Arduino, sino de sus aplicaciones, sólo les

diré que es muy fácil programarlo y que sus programas constan de dos partes, la

primera, setup, que es donde se declaran los recursos, y la segunda, loop, donde se le

dice que debe hacer, esta última tiene una peculiaridad, que es la repetición indefinida

del proceso mientras cuente con energía.

void setup()

{

pinMode(13, OUTPUT);

}

void loop()

{

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

Este es todo el código necesario para que un led conectado al pin número 13 destelle

indefinidamente mientras la palca Arduino cuente con energía, y esto es muy útil,

porque dependiendo del color y el tamaño del led y si se quiere que permanezca

prendido o destellando a cierta frecuencia, nos puede servir como indicador de sucesos

o de requerimientos, o como alarma, o como indicador de estatus, además, el Arduino

cuenta ya con un led en su pin número 13, con el que de entrada comienza a trabajar.

Pero podemos conectarle un led diferente como se muestra en la siguiente imagen.

A este led debemos agregarle una resistencia si es que no lo conectamos al pin 13.

Los programas académicos de las diferentes materias del área de Ciencias

Experimentales requieren de mucha experimentación; sino no se llamarían

experimentales, verdad; y estando en boga el uso de las nuevas tecnologías, es que

me atrevo a presentarles una serie de pequeñas aplicaciones del Arduino orientadas al

apoyo de la exposición de algunos temas o como auxiliares de la experimentación en

algunas prácticas u otras atenciones particulares que le vean de utilidad, como la

propuesta presentada, que bien puede ser usada para ver frecuencia, luminosidad de

los leds, polaridad, resistencia, etc.. A continuación veremos otras propuestas.

INTENCIDAD DE CORRIENTE

Para medir intensidad de corriente y conversión de analógico a digital, contamos con

un experimento muy simple que sólo requiere de un potenciómetro, como lo muestra la

imagen.

Bueno, para entender mejor este ejercicio debo explicar que Arduino cuenta con varios

tipos de entradas, analógicas, digitales y serial. Las analógicas aceptan flujo de

corriente con cierto límite, 40 mA por pin y una configuración de 10 bits, a 5V o

diferente cambiándolo con el pin de VRef, con lo que se puede medir la intensidad y

mostrarla en un rango de 0 a 1023, las digitales también aceptan la misma corriente y

voltaje, pero sólo se expresan como HIGH o LOW, 0 ó 1, pudiendo ser de entrada o de

salida, y por último, las de serial, que soportan varias entradas por el mismo canal,

basta configurar cada dispositivo. En este experimento hacemos circular una corriente

provista por el mismo Arduino y la conducimos a la entrada analógica número 0, con lo

que tenemos una lectura, que dependiendo de la regulación del potenciómetro, nos

dará valores entre 0 y 1024, mostrando con ello la conversión de analógico a digital y la

variación de corriente por medio de un potenciómetro, los datos se despliegan en la

pantalla, el programa es el siguiente:

intpinSensor = 0;

intvalorAnalogico = 0;

voidsetup()

{

pinMode(pinSensor, INPUT);

Serial.begin(9600);

}

voidloop()

{

valorAnalogico = analogRead(pinSensor);

Serial.println(valorAnalogico);

delay(100);

}

Como pueden ver otra vez, es un programa muy simple, en el que se manda a la

pantalla de la computadora el valor leído, pudiéndose almacenar en un archivo Excel y

trabajar con los datos resultantes para muestreo u otras cosas.

INTENCIDAD DE LUZ

Otro experimento más es el que tiene que ver con intensidad lumínica, útil para varios

temas de biología, física y química, que mide la intensidad de luz presente en un

ambiente, por medio de una fotoresistencia, el esquema es igual muy sencillo, como se

muestra a continuación.

El programa es el mismo que se usó para el ejercicio anterior.

GENERANDO ONDAS SONORAS Podemos generar también frecuencias sonoras, para experimentos de acústica, ondas,

etc. y contar con un receptor que mida la frecuencia, o inclusive, generar notas

musicales o alarmas audibles para experimentos en los que se requiera, por poner un

ejemplo, el circuito es:

Y el programa, muy pequeño también. #include "pitches.h"

intmelodia[]={NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3,0,

NOTE_B3, NOTE_C4};

intduracionNotas[] = {4, 8, 8, 4, 4, 4, 4, 4};

void setup()

{

for (intestaNota = 0; estaNota< 8; estaNota++)

{

intduracionNota = 1000/duracionNotas[estaNota];

tone(8, melodia[estaNota], duracionNota);

intpausaNota = duracionNota * 1.30;

delay(pausaNota);

noTone(8);

}

}

void loop()

{

}

SENSOR ULTRASÓNICO

Hay muchas cosas que se pueden implementar con un simple Arduino, que, como sus

diseñadores en algún momento manifestaron, fue creado para que todos lo usaran, de

hecho, para que se divirtieran, haciendo música, arte, entretenimiento, en fin, lo que

más les gustara. En nuestro caso, experimentos, y los que aquí se presentan son muy

pocos comparados con los que se pueden llegar a implementar con esta herramienta.

Veamos otro ejercicio más. El siguiente hace uso de sonido ultrasónico con el que se

puede medir distancia, como lo harían los delfines, los murciélagos, se usa el mismo

principio, enviando un sonido a alta frecuencia, se calcula el tiempo de regreso,

permitiendo saber a qué distancia se encuentra un objeto, este tipo de sensor es muy

práctico para explicar muchos conceptos de física, veamos el circuito.

Básicamente necesitamos alimentar el dispositivo y conectar la señal a recibir en una

entrada digital y listo, el programa que nos apoya en las mediciones es el siguiente,

que nos reporta las distancias en la pantalla.

intultraSoundSignal = 7;

intval = 0;

intultrasoundValue = 0;

inttimecount = 0;

intledPin = 13;

void setup()

{

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

}

void loop()

{

timecount = 0;

val = 0;

pinMode(ultraSoundSignal, OUTPUT);

digitalWrite(ultraSoundSignal, LOW); // manda un pulso bajo

delayMicroseconds(2); // espera 2 microsegundos

digitalWrite(ultraSoundSignal, HIGH); // manda un pulso alto

delayMicroseconds(5); // espera 5 microsegundos

digitalWrite(ultraSoundSignal, LOW); // lo apaga

pinMode(ultraSoundSignal, INPUT); // Switchea la señal de entrada

val = digitalRead(ultraSoundSignal);//suma el valor de value a val

while(val == LOW)

{ // Repite mientras sea un valor bajo

val = digitalRead(ultraSoundSignal);

}

while(val == HIGH)

{ //Repite mientras sea un valor alto

val = digitalRead(ultraSoundSignal);

timecount = timecount +1; // cuenta el tiempo de los pulsos

}

ultrasoundValue = timecount; // adiciona al valor de tiempo

Serial.print("pulsos = "); // imprime el valor

Serial.println(ultrasoundValue, DEC);

if(timecount> 0)

{

digitalWrite(ledPin, HIGH);

}

delay(100);

}

Y cómo funciona, envía un tren de pulsos a alta frecuencia que rebotan en un objeto y

cuenta el tiempo que tardan en llegar, con lo que calcula la distancia a la que el objeto

se encuentra, con este ejercicio se puede lograr muchas mediciones para muchos

experimentos.

SENSOR DE TEMPERATURA

Medir temperatura es muy útil en varias circunstancias, pero depende de a qué le

queremos medir la temperatura y para qué, es por eso que existen diferentes

dispositivos para este propósito, algunos son de contacto y otros a distancia, con

ciertos rangos de temperatura, tanto bajo cero, como por arriba de cero. A continuación

presentare dos opciones para este propósito, en uno será por contacto, soportando

este sensor muy altas temperaturas, y otro que será a distancia por medio de señal

infrarroja. En el primero usamos un LM35, pudiendo también echar mano de un

termistor, que sigue el mismo principio, y para el infrarrojo, usaremos el típico

MLX94614, siendo los dos muy simples de usar. El de contacto en verdad se comporta

como una resistencia donde dependiendo de la temperatura es su limitante al flujo de

corriente, necesitando ser calibrado. El de sensado infrarrojo, es similar, pero en este

caso la resistencia está a expensas de la intensidad de señal infrarroja que le llega del

cuerpo a medir, la que es interpretada y calculada desde el dispositivo y enviada al

puerto serial del Arduino para su lectura e interpretación, que se me viene a la mente el

caso de ambientes controlados de temperatura, o medición de cuerpos muy calientes.

A continuación se presentan los dos circuitos:

SENSOR DE GASES

Volviendo a las mediciones útiles, en muchas ocasiones tenemos la necesidad de

saber la cantidad de ciertos gases en el medio, como hidrogeno, oxigeno, carbono,

humo, etano, metano, ozono, gas LP, alcohol, etc., para esto existen varios tipos de

sensores que nos apoyan en estas mediciones e igual son de fácil manejo y de fácil

programación, como nos lo muestra la siguiente imagen. Su principio es similar a los

primeros que vimos, contienen elementos internos que se excitan con los gases

mencionados y permiten el paso de la corriente, reportándonos la existencia del gas

para el que están diseñados en la proporción en la que dejan circular la corriente, su

implementación no es muy difícil y se puede dejar trabajando sin gran necesidad de

supervisión, el programa sería el mismo que para el potenciómetro o el sensor de luz.

MOVIMIENTO DE MOTORES

Quizá uno de los más útiles, es éste, para la manipulación de objetos a la hora de

experimentar, ya sea para abrir algo, desplazar algo, hacer oscilar algo, etc., el motor,

siendo también un circuito muy fácil de armar y así su programación es una propuesta

que bien puede ser usada en muchas aplicaciones, aquí se presenta un servomotor.

#include<Servo.h>

Servo myservo;

int pos = 0;

void setup()

{

myservo.attach(9);

}

void loop()

{

for(pos = 0; pos < 180; pos += 1)

{

myservo.write(pos);

delay(15);

}

for(pos = 180; pos>=1; pos-=1)

{

myservo.write(pos);

delay(15);

}

}

Los proyectos puedes unirse para conformar una aplicación más completa. Referencias:

arduino.cc/es

azega.com

botscience.wordpress.com

playground.arduino.cc

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

ESCUELA NACIONAL COLEGIO DE CIENCIAS Y HUMANIDADES

PLANTEL NAUCALPAN

DEPARTAMENTO DE OPCIONES TÉCNICAS

PONENCIA

APLICACIONES DE LA ROBÓTICA EN LAS CIENCIAS EXPERIMENTALES

AURELIANO GUADALUPE MARCOS GERMÁN INFOCAB PB102014 Profesor de Carrera, Titular “B” Definitivo de tiempo completo

MAYO DEL 2014