You are on page 1of 4

Proyecto Final : Control del ball and bing

Objetivo

* Implementar un control difuso a travs de un arduino para controlar el ball and


bing.
* Establecer una conexin entre Matlab y un microcontrolador
* Convertir una seal de PWM a una seal de voltaje

Introduccin

En la lgica difusa a diferencia de la lgica booleana existe un sin fin de valores


entre afirmacin y su opuesto, la lgica difusa es ms cercana al razonamiento
humano al dar rango a conceptos entre un valor y otro, de tal forma que las
afirmaciones se pueden trabajar desde completamente verdaderas hasta
completamente falsas pasando por verdaderas indeterminadas y falsas.

La ventaja de este tipo de lgica es que el resultado obtenido se traduce en


respuestas ms familiares a como las personas interpretamos nuestro entrono.
Para establecer el conjunto de valores debemos de establecer lo que
consideramos como extremos de nuestra funcin y hacer la interpolacin entre
esos dos puntos, usualmente esto se hace de forma lineal, sin embargo tambin
puede hacerse con cualquier otra forma que se desee.

Imagen 1.1 Ejemplo de interpolacin usando lgica difusa

Desarrollo.
Empezamos por crear la conexin entre el arduino y matlab, para esto cargamos

el siguiente programa en el arduino.

// definir variables
int out1 = 0;
int out2 = 0;
void setup() {
// inicializar puerto serie
Serial.begin(9600);
}
void loop() {
// leer pines
out1 = analogRead(A0);
out2 = analogRead(A1);
// enviar
Serial.print(out1);
Serial.print(",");
Serial.println(out2);
// esperar
delay(20);
}

Posteriormente en Simulink incluimos un bloque para recibir datos, le agregamos


un scope para saber su rango, lo multiplicamos por una ganancia para que
correspondiera con sus valores de voltaje.

De ah anexamos el fuzzy logic controller hecho en la practica 11, y lo mandamos


al puerto COM.

Imagen 1.2 Diagrama de bloques en Simulink

El arduino converta la seal recibida de la computadora en un PWM, este PWM lo


convertimos en una seal de 0 a 10v de dc usando el siguiente circuito.

Imagen 1.3Circuito de conversin de PWM a DC

Para la conversin de PWM a seal de dc solo hizo falta una fuente de voltaje de
10v ya que usamos la configuracin no inversora, y en ningn momento tuvimos
que invertirla.

Imagen 1.4 Foto del ball and bing y el controlador

Anlisis de logros y obstculos

El proyecto realmente no era tan difcil, sin embargo nos tardamos ms de lo


previsto dado que consideramos que podamos cargar el bloque de lgica difusa
dentro del arduino, pero despus de varios intentos y una buena investigacin nos
dimos cuenta de que el arduino era incapaz de trabajar con seales continuas. As
que solamente usamos el arduino como una tarjeta de adquisicin de datos y todo
el procesamiento lo realizo Matlab solo tuvimos que adaptar las seales de
entrada y salida en la computadora, en el arduino generar un PWM con los valores
obtenidos del fuzzy logic controller, y por ultimo convertir el PWM a una seal de
voltaje de dc.

Fuente:
Garca Tiscar, Jorge. Arduino + Matlab:Adquisicin de datos Recuperado el

26/04/12 del sitio web:


http://wechoosethemoon.es/2011/07/15/arduino-matlab-adquisicion-de-datos/

You might also like