viernes, 14 de diciembre de 2007
PROGRAMA
import processing.video.*;
/**
* Loop.
*
* Move the cursor across the screen to draw.
* Shows how to load and play a QuickTime movie file.
*/
import processing.video.*;
Movie myMovie;
String videos[];
boolean presiona = true;
void setup() {
size(640, 480, P3D);
background(0);
// Load and play the video in a loop
myMovie = new Movie(this, "rojofinal.mov");
videos = new String[10];
videos[0]="amarillofinal";
videos[1]="blancofinal";
videos[2]="cafefinal";
videos[3]="grisfinal";
videos[4]="morado final";
videos[5]="naranjafinal";
videos[6]="negrofinal";
videos[7]="rojofinal";
videos[8]="rosadofinal";
videos[9]="verdefinal";
myMovie.loop();
fill(0);
}
void draw() {
tint(255, 20);
image(myMovie, -10,-10);
}
//Called every time a new frame is available to read
void keyPressed() {
if(presiona){
myMovie = new Movie (this, videos [floor (random(10))]+".mov");
presiona = false; }
myMovie.read();
}
void keyReleased(){
presiona=true;
rect(0,0,width,height);
}
lunes, 10 de diciembre de 2007
PREGUNTAS FUNDAMENTALES PARA LA CONSTRUCCIÓN Y DESARROLLO DEL PROYECTO
SOBRE EL MONTAJE
- ¿Cómo construir un circuito que al tapar la fotocelda se active una sesión de video aleatoria en un PC?
- ¿Con qué conectar la protoboard al computador?
- ¿Se necesita programar para realizar tal función?
- ¿Qué debe tener un computador para conectar cinco salidas (pantallas y 4 videobin)?
- ¿El circuito debería funcionar con pila o con corriente de la toma?
- ¿Qué material sería el idóneo para recubrir el circuito?
SOBRE LOS VIDEOS
- ¿De dónde salen los videos?
- ¿En donde se desarrollan las acciones del video? y con esto saber ¿qué relación tienen con el sujeto que filma?
- ¿Qué relación existe entre los colores, las cosas y la composición del video?
- ¿Puede el video remitir a cosas diferentes que un color? y de ser así ¿a qué tipo de cosas? ¿familiares, íntimas o urbanas?
- (En la relación aleatoria que se forma entre el espectador y el video) ¿qué mecanismos de asociación usa el espectador para creer que realmente está identificado con algo aleatorio? ¿forma o color?
MI PROYECTO Y LA DESCOMUNICACIÓN
PLANOS PRESENTACIÓN DEL PROYECTO
domingo, 25 de noviembre de 2007
LM35
Descripción: El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC.
El sensor se presenta en diferentes encapsulados pero el más común es el to-92 de igual forma que un típico transistor con 3 patas, dos de ellas para alimentarlo y la tercera nos entrega un valor de tensión proporcional a la temperatura medida por el dispositivo. Con el LM35 sobre la mesa las patillas hacia nosotros y las letras del encapsulado hacia arriba tenemos que de izquierda a derecha los pines son: VCC - Vout - GND.
La salida es lineal y equivale a 10mV/ºC por lo tanto:
· +1500mV = 150ºC
· +250mV = 25ºC
· -550mV = -55ºC
Funcionamiento: Para hacernos un termómetro lo único que necesitamos es un voltímetro bien calibrado y en la escala correcta para que nos muestre el voltaje equivalente a temperatura. El LM35 funciona en el rango de alimentación comprendido entre 4 y 30 voltios.
Podemos conectarlo a un conversor Analógico/Digital y tratar la medida digitalmente, almacenarla o procesarla con un µControlador o similar.
Usos: El sensor de temperatura puede usarse para compensar un dispositivo de medida sensible a la temperatura ambiente, refrigerar partes delicadas del robot o bien para loggear temperaturas en el transcurso de un trayecto de exploración.
El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC. Puede medir temperaturas en el rango que abarca desde -55º a + 150ºC. La salida es muy lineal y cada grado centígrado equivale a 10 mV en la salida.
Características
Sus características más relevantes son:
Precisión de ~1,5ºC (peor caso), 0.5ºC garantizados a 25ºC.
No linealidad de ~0,5ºC (peor caso).
Baja corriente de alimentación (60uA).
Amplio rango de funcionamiento (desde -55º a + 150ºC).
Bajo costo.
Baja impedancia de salida.
Su tensión de salida es proporcional a la temperatura, en la escala Celsius. No necesita calibración externa y es de bajo costo. Funciona en el rango de alimentación comprendido entre 4 y 30 voltios.
Como ventaja adicional, el LM35 no requiere de circuitos adicionales para su calibración externa cuando se desea obtener una precisión del orden de ±0.25 ºC a temperatura ambiente, y ±0.75 ºC en un rango de temperatura desde 55 a 150 ºC.
La baja impedancia de salida, su salida lineal y su precisa calibración inherente hace posible una fácil instalación en un circuito de control.
Debido a su baja corriente de alimentación (60uA), se produce un efecto de autocalentamiento reducido, menos de 0.1 ºC en situación de aire estacionario.
Encapsulado
El sensor se encuentra disponible en diferentes encapsulados pero el más común es el TO-92, una cápsula comunmente utilizada por los transistores de baja potencia, como el BC548 o el 2N2904.
Cápsulas posibles y su pinout
Tiene tres pines: alimentación (VCC), tierra (GND) y salida (OUT). Este sensor es fabricado por Fairchild y National Semiconductor.
Circuitos de aplicación
En uControl encontrarás los siguientes circuitos que emplean este componente:
Acondicionador de señal para LM35x
De Ucontrol
El viejo sensor de temperatura LM35 es un clásico en los circuitos comerciales y de aficionados.
Este pequeño sensor (y varios de sus "parientes") entrega diez milivoltios por cada grado centígrado.
Permite una precisión importante, pudiendo leerse fracciones de grado. Pero para ello es necesario hacer un adecuado tratamiento de la señal, ya que al trabajar con tensiones tan pequeñas, cualquier ruido o interferencia puede hacernos tomar una lectura errónea, o a veces, errática.
El circuito
El circuito acondicionador está pensado para poder elegir el rango de trabajo del LM35, siempre teniendo en cuenta como temperatura mínima 0º, ya que se podría fácilmente, con las modificaciones adecuadas según el datasheet del LM35, trabajar con todo el rango de temperaturas del sensor, pero el actual acondicionador no nos indicaría si la temperatura es positiva o negativa.
Actualmente el circuito queda ajustado mediante RA2 a ganancia 10, pero para poder llegar a un valor más próximo al rango dinámico de trabajo del ADC, se podría sustituir este (RA2) por uno de 20K con lo que la ganancia máxima llegaría a 21 = (R5 + RA2) / R5, este cambio permitiría llegar a los 3 voltios.
No conviene llevar la tensión de salida (pin 7) del IC2B muy próxima a la de alimentación ya que este dejara de trabajar linealmente.
La ganancia del circuito restador, se calcula de la siguiente manera: teniendo en cuenta que siempre se cumpla lo siguiente R1 = R2 y R3 = R4, ganancia = R4/R2. De esta forma podríamos simplificar el circuito realizando todo con un único amplificador operacional, por ejemplo con el CA3140, en este caso para que el circuito funcionara igual que el otro, tendríamos que darle ganancia 10, y esto se haría cambiando el valor de R3 y R4 por 100K (100K = R3 = R4).
R7, es fácil que el pin RA4, que es la entrada analógica, por un despiste u olvido lo deje como salida creando una lucha de niveles entre la salida del IC2B y el pin del PIC, así que R7 evita este problema.
R8, cierra el entorno de voltaje de ajuste del RA1, solo se necesita unos pocos cientos de milivoltios, conseguimos hacernos la vida más fácil ya que el RA1 de esta forma, nos dará un grado de precisión muy elevado.
Teniendo esto en cuenta procedemos a ajustar el circuito para trabajar con un rango de temperatura de 15º a 30º centígrados.
TERMÓMETRO DIGITAL
En este ejemplo se definen las variables del circuito genérico para realizar la lectura de temperatura con el uso de una termoresistencia.
La termoresistencia que se utiliza fue obtenida del bulbo de temperatura del sistema de control de refrigeración de un automóvil.
Circuito práctico
Fig. Circuito practico
En este caso específico, resulta más sencillo realizar una serie de mediciones con la ayuda de un termómetro, de modo que se registre la frecuencia respectiva para cada medición.
Los siguientes datos se obtuvieron con un circuito como el descrito anteriormente, y con la ayuda de un termómetro de mercurio
Datos experimentales:
Temperatura(grados centígrados) Frecuencia(hertz)
120.0 1500
89.0 870
82.0 820
70.0 725
60.0 640
40.0 460
35.8 420
33.8 405
30.0 366
27.0 339
24.7 318
22.5 297
20.2 280
10.0 204
0.0 135
A partir de estos datos se puede utilizar el siguiente algoritmo de interpolación:
/* Se definen los tipos de datos */
tipo puntos=es un registro con los tipos x,y de tipo real
y datos es una variable de ese tipo
datos es un arreglo de 1 a 50 de tipo puntos
/* Inicio */
Cargar el vector datos[i].x y datos[i].y con los valores de la tabla de
Datos experimentales.
Tama_vector tiene el número de filas de la tabla de datos experimentales
/* construir la función */
función interpolar(con parámetro num_buscado de tipo real) devuelve un dato de tipo real variables i
de tipo Entero x1,x2,y1,y2 de tipo Real
salida de tipo Real
sale de tipo Booleano
inicioi=1sale=falso;mientras (i
(num_buscado<=datos[i].y) entonces iniciox1=datos[i].xy1=datos[i].yx2=datos[i+1].xy2=datos[i+1].ysale=verdaderofin i=i+1 finsalida=0si sale es verdadero entonces iniciosalida=(x2-x1)/(y2-y1)*(num_buscado-y1)+x1fininterpolar=salidafin/* Utilizar */ Llamar a la función con la frecuencia leída previamenteDesplegar, hacer gráficas, etc. /* Fin */
SENSOR DE TEMPERATURA USANDO EL NE555
Adquisición de datos analógicos con el temporizador NE555
Para leer señales analógicas, es necesario hacer la respectiva conversión a señal digital. El temporizador NE555 genera pulsos variables (tiene como respuesta una frecuencia) a partir de dos resistencias y un capacitor. Este enfoque de adquisición de datos implica los siguientes pasos:
1. Adecuar la variable física en estudio para que se comporte como resistencia eléctrica
2. Calcular los valores de la resistencia restante y el capacitor
3. Conectar la salida del temporizador a uno de los bits del registro de estado
4. Elaborar un programa que calcule la frecuencia a partir de los pulsos de entrada
5. Realizar las mediciones con valores conocidos de referencia
6. Construir un modelo de transformación de frecuencia a la variable en estudio (regresión, interpolación)
Descripción del temporizador NE555
Vcc 5 voltios Ground Tierra
Circuito genérico
Fig. Circuito genérico
Modo de operación
El temporizador NE555 genera un pulso de acuerdo a los valores de dos resistencias y un capacitor.
La siguiente fórmula se utiliza para calcular el periodo de este pulso.
Donde:
Ra Valor de la resistencia conectada a los pines 7 y 8
Rb Valor de la resistencia conectada a los pines 2 y 7
Cap Valor del capacitor polarizado conectado a tierra y a los pines 2 y 6
Como ejemplo, se evalúa la formula con los siguientes valores: Ra: 540 ohmio
Rb: 620 ohmio
Cap : 1 microfaradio = Faradios
Resultando
Lo que genera un pulso con una frecuencia de
La frecuencia calculada puede diferir de la frecuencia que se lee del temporizador NE555 por los efectos de la temperatura tanto en las resistencias como en el capacitor de este circuito.
En un caso de aplicación práctica, se deberá mantener fija la resistencia Ra y el Capacitor, de modo que la variable que se estudia sea la resistencia Rb. A medida que esta resistencia varíe, el temporizador generará diferentes frecuencias. La frecuencia generada está en función de las variaciones de la resistencia en estudio.
Programación
El siguiente algoritmo permite leer y calcular la frecuencia generada por el temporizador NE555.
/* Inicio */
ctd_pulso_alto =0
ctd_pulso_bajo =0
leer_tiempo_del_sistema
/* Bucle principal */
mientras el tiempo transcurrido no haya superado 1 segundo hacer inicio si bit_leido está en alto entonces
inicio
ctd_pulso_alto = ctd_pulso_alto+1
mientras bit_leido está en alto hacer
iniciofinfinsi bit_leido está en bajo entonces
inicioctd_pulso_bajo = ctd_pulso_bajo+1
mientras bit_leido está en bajo hacer
iniciofinfinfin {del mientras}
/* Cálculos */
frecuencia:=( ctd_ pulso_alto+ ctd_pulso_bajo)/2
/* Fin */
fin