This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

domingo, 23 de diciembre de 2012

Computación Gráfica con aplicación en Computación Física

Proyecto: Interfaz gráfica con círculos

1-Breve descripción


En entradas anteriores hemos analizado el funcionamiento tanto de Arduino y su entorno IDE como de Processing. En esta oportunidad se muestran los resultados de un proyecto donde se integran Arduino y Processing a los efectos de desarrollar una interfaz gráfica.

El proyecto utiliza una Arduino UNO, una fotoresistencia (LDR), dos potenciómetros, una resistencia, Processing y utiliza la comunicación serie básica entre Arduino y la computadora.

Básicamente puede dibujar, y observar el resultado en el monitor de la computadora, controlando los dos potenciómetros. El LDR determina cuan oscuro será dibujado el círculo.

2-Componentes

• Fotoresistencia (LDR).
• Resistencia 10 KΩ.
• Potenciómetro 100 KΩ (2).
• Arduino UNO.
• Cable USB.
• Breadboard.
• Alambres de conexión.
• IDE Arduino.
• Processing.

3-Pasos

Paso 1: configurar el hardware


• Ubicar los potenciómetros próximos uno al otro. Actuarán como control horizontal y vertical de la interfaz gráfica.

• Uno de sus pines extremos se conectará a la fuente de +5V, el otro a tierra y el pin medio a una entrada analógica de la placa Arduino UNO (A0 o A1).
• LDR: configurar un divisor de tensión utilizando la LDR y la resistencia de 10 KΩ. El punto medio del divisor de tensión se conectará a la entrada analógica A2.


Esquema realizado con Fritzing (http://www.fritzing.org)


Paso 2: subir el código Arduino (sketch)


• Descargar e instalar el IDE Arduino desde el sitio http://www.arduino.com, la versión 1.0.2 en este caso.

• Conectar la placa Arduino UNO a la computadora mediante el cable USB.
• Abrir el IDE Arduino.
• Verificar/Compilar el código y subirlo a la placa Arduino UNO.


Paso 3: Processing


• Descargar e instalar Processing desde el sitio http://www.processing.org, la versión 1.5.1 en este caso.

• Abrir Processing y subir el código en Processing.
• Click sobre el botón “Run” y observe el funcionamiento de la interfaz gráfica.

Precaución: tanto el puerto que utiliza Arduino como el que utiliza Processing debe ser el mismo.

4-Resultados obtenidos



5-Registro fotográfico



Imágen N° 1


Imágen N° 2

Computación Física. Arduino


La base de la computación física es hacer servir herramientas y tecnologías conceptualmente simples, para diseñar ingenios que actúan directamente sobre el mundo físico.

Involucra el diseño de objetos interactivos que pueden comunicarse con humanos utilizando sensores y actuadores controlados mediante un comportamiento implementado por un software que corre dentro de un microcontrolador.

1-Computación Física con Arduino

Arduino es una plataforma de computación física open source basada en una placa de I/O y un ambiente de desarrollo que implementa el lenguaje Processing.

Puede ser usado para desarrollar objetos interactivos en si mismos o puede ser conectada al software de una computadora.

Entre sus características principales se encuentran:

• Multiplataforma (Windows, Macintosh y Linux).
• Basado en el IDE de Processing.
• Programable por medio del puerto USB.
• Tanto el software como el hardware son open-source.
• Hardware barato (U$S 35).
• Existe una comunidad de usuarios a nivel mundial.


La plataforma Arduino consta de dos partes: la tarjeta Arduino, una pieza de hardware donde construir los proyectos; y el entorno de desarrollo (IDE), la pieza de software que corre en una
computadora. Mediante el IDE se crea un pequeño programa o “sketch” que se envía a la placa Arduino y le dice que hacer.

1-1. Hardware Arduino UNO

• Microcontrolador Atmega328 de 8 bits.
• 14 I/O digitales.
• 6 entradas analógicas.
• 6 salidas analógicas.
• Alimentado desde el puerto USB o desde una batería de 9 Vcc.


1-2. Software (IDE)

• Un programa especial que corre en la computadora y permite escribir programas en un lenguaje de programación sencillo y basado en el lenguaje Processing.

• Al presionar “Run”, el código escrito en e IDE se traduce al lenguaje C y compila en un lenguaje comprensible para el microcontrolador.

• El ciclo de programación en Arduino básicamente es el siguiente:

  • Conectar la placa Arduino a la PC mediante el cable USB.
  • Escribir el sketch que dará vida a la placa.
  • Subir el sketch a la placa por medio del cable USB y esperar unos segundos.
  • La tarjeta ejecuta el sketch.
1-3. Sketch ejemplo: encender un LED conectado al pin 13 durante 1 segundo y esperar otro
segundo apagado antes de repetir el ciclo.

int led = 13; //LED conectado a pin 13
void setup() {
pinMode(led, OUTPUT); // inicializa la el pin digital como salida
}
void loop() { // rutina para ejecutar un bucle
digitalWrite(led, HIGH); // enciende el LED  (nivel HIGH)
delay(1000); // espera 1 segundo
digitalWrite(led, LOW); // apaga el lED (nivel LOW)
delay(1000); // espera 1 segundo
}


Computación Gráfica. Processing


La Computación Gráfica es una rama de las Ciencias de la Computación con gran impacto social y acercamiento al público en general.

Usualmente, la graficación está asociada a la interactividad. Actualmente la mayoría de los sistemas o programas interactivos tienen una interface gráfica. Por otra parte, se observa una creciente popularidad de sistemas que traducen modelos abstractos a imágenes visuales (simulación ingenieril, datos obtenidos por
sensores por ejemplo).

La computación gráfica es la disciplina que estudia la representación pictórica sintética de un modelo real o imaginario basándose sólo en una representación numérica.

El procesamiento de imágenes se ocupa del problema inverso: el análisis de una escena a partir de una 
imagen y la reconstrucción del modelo numérico que lo describe.




Aplicaciones


Desde el punto de vista de una breve descripción representativa, se tienen:

• Interfaces: interface gráfica. El teclado se utiliza solamente para ingresar texto.
• Industria del entretenimiento: producción de video-juegos, películas y cortos de dibujos animados, posproducción y efectos especiales de películas y también la creación de utilitarios destinados a la creación de productos en estos rubros.
• Aplicaciones comerciales: elaboración de presentaciones comerciales.
• Diseño asistido (CAD).
• Aplicaciones científicas: desde la simulación hasta la visualización de fenómenos abstractos y su representación gráfica por medio de metáforas visuales asociadas.
• Cartografía y GIS: soporte de sistemas de información geográfica y aplicaciones relacionadas.


Dispositivos gráficos


Una clasificación referida al modo en que los gráficos son manejados por la computadora. Existen dispositivos de los siguientes tipos:

Dispositivos de vectores: reciben de la computadora la información geométrica de la localización y tamaño de las primitivas que soportan.
Dispositivos de raster (o pixels): reciben de la computadora la información de una serie de pixels, que se posicionan de forma continua.


Primitivas gráficas


Una “primitiva” es la unidad mínima de representación. Las primitivas básicas son el punto, el segmento de recta y la circunferencia o el círculo. En términos más amplios, se tiene: Punto, Línea, Polilínea, Polimarca, Polígono, Arco, Círculo, Texto gráfico.

• Puntos: se especifican a partir de su localización y color. Discretización directa.
• Segmentos de recta: se especifican a partir de un par de puntos que representan sus extremos.
• Circunferencias: se especifican por la posición de su centro y su radio.
• Polígonos: indispensables para representar entidades sólidas. Se representan a partir de una secuencia de puntos que determina la poligonal de su perímetro.
• Puntos: putpixel(x,y)
• Recta: line(x1,y1,x2,y2) (atributos: estilo, anchura,color).
• Polilínea: pline (nv,lv) siendo: nv (número de vértices) y lv (lista de vértices).
Atributos: estilo, anchura, color.
• Círculo: Circle(x,y,r).
• Arcos: arc(x1y1,x2y2,e), siendo e: excentricidad.



Formatos de almacenamiento


• Representación vectorial: las imágenes se representan como una serie de líneas o formas. La palabra vector se refiere no sólo a líneas, sino también a formas como cuadrados o círculos. Aplicaciones: dibujo lineal, CAD, etc.
• Representación bitmap: la imagen se descompone en puntos de una cuadrícula, el valor de cada uno de ellos se guarda individualmente. Es fácil de implementar y funciona, con limitaciones, con cualquier imagen. Aplicaciones: fotografías, cuadros e imágenes de video digitalizadas.


¿Qué es Processing?


Es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital.

Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab dirigido por John Maeda.

Processing es desarrollado por artistas y diseñadores como una herramienta alternativa al software propietario. Puede ser utilizado tanto para aplicaciones locales así como aplicaciones para la web (Applets).

Se descarga desde el sitio: http://www.processing.org y es distribuido bajo la licencia GNU GPL. Su entorno se denomina Processing Development Enviroment (PDE).



Dibujando Primitivas con Processing


Una pantalla de computadora es una grilla de elementos llamados pixels. Cada 
pixel tiene una posición dentro de la grilla determinada por coordenadas. En 
Processing, la coordenada “x” es la distancia desde el borde izquierdo de la 
ventana de display y la coordenada “y” es la distancia desde el tope del borde. Las 
coordenadas del punto se definen como (x,y).



1-Dibujando una ventana: función size()

Dentro de la ventana de display se dibujan las imágenes con elementos de código 
llamados funciones. Estas son los bloques constructivos básicos en Processing. El 
comportamiento de una función es definido por sus parámetros, por ejemplo: un 
programa en Processing utiliza la función size() para definir el ancho y el alto de la 
ventana de display. Si no se la utilizan por defecto la dimensión del display es de 
100*100 pixels.




Por ejemplo, para dibujar una ventana de 400 pixels de ancho * 300 pixels de alto se utiliza la función size() con los parámetros siguientes: size(400,300).




2-Dibujando un punto: función point()


La función point() tiene dos parámetros que definen la posición: la coordenada “x” y la coordenada “y”. Por ejemplo, para dibujar un pequeño punto en el centro de una ventana:

size(480,120);
point(240,60);




3-Dibujando una línea: función line()

Para dibujar una línea entre las coordenadas (20,50) y (420,110), pruebe:


size(480,120); //dibuja una ventana de 480 * 120 pixeles
line(20,50,420,110); //dibuja la línea dentro de la ventana y entre los puntos indicados






4-Dibujando un rectángulo: función rect()


Tanto rectángulos como elipses se definen mediante cuatro parámetros: el primero y el segundo son para las coordenadas “x” e “ del punto de anclaje, el tercero para el ancho y el cuarto para la altura. Por ejemplo, para dibujar un rectángulo desde la coordenada (180,60) con un ancho de 220 pixels y una altura de 40 pixels:

size(480,120);
rect(180,60,220,40);






5-Dibujando una elipse: función ellipse()

Ahora las coordenadas “x” e “y” son el centro de la figura.


Sintaxis: ellipse(a,b,c,d)                                                                                    

Siendo:                                                                                  


a: coordenada “x”.
b: coordenada “y”.
c: ancho, default=80 pixels.
d: altura, default =80 pixels.



Ejemplo: ellipse(50,50,80,80);


Interpretación: se dibuja una elipse con el centro a 50 pixels del borde izquierdo y a 50 pixels desde la parte superior; con un ancho y alto de 80 pixels cada uno.


Si bien existe abundante bibliografía relacionada con Processing, y otras primitivas no indicadas aquí, es importante consultar en el sitio: www://processing.org









jueves, 29 de noviembre de 2012

Situación problema: "Un problema de control"



El Señor Juan Valdez es dueño de una pequeña ferretería de barrio. Cada vez se le hace más difícil pagar el consumo de electricidad, por lo que se planteó cómo podría ahorrar energía eléctrica.
Su negocio tiene un cartel luminoso que le ocasiona un consumo importante de energía porque tiene que encenderlo a las 18.00 hs, cuando él se va y todavía no oscureció, y apagarlo a las 10.00 hs de la mañana siguiente cuando ya hace rato que hay luz natural, durante todo el año.
El Señor Valdez, conociendo el hecho que su hijo es alumno del Profesorado en Tecnología de la Escuela Normal de San Rafael, le pregunta si no sería posible realizar el proyecto de un sistema de control que resuelva la necesidad de producir el encendido de su cartel luminoso sólo cuando hay muy poca luz diurna y en cualquier época del año.
Entonces, su hijo, siguiendo cuidadosamente todos los pasos del proyecto tecnológico, solucionará el problema de su padre. Para ello recurrirá a la colaboración de algunos compañeros de estudio.
Don Juan le ha solicitado un dispositivo automático, pequeño, liviano, flexible, de bajo costo y bajo consumo eléctrico. Es importante brindar una respuesta satisfactoria ya que, si la solución propuesta satisface los requerimientos de Don Juan, él mismo podría recomendar a su hijo para brindar soluciones a necesidades similares de otros colegas comerciantes.

Pautas:

I-Diseño

1.   Identificar claramente el problema y sus restricciones.
2.  Proponer y describir al menos dos soluciones y seleccionar una en función de la mayor eficiencia sobre la base de los criterios preestablecidos. ¿Cómo funciona la solución propuesta?
3. Justificar la elección de cada uno de los componentes eléctricos y electrónicos seleccionados. Adjuntar las hojas de datos de cada una de ellos.
4.  Explicar detalladamente el criterio de selección de la mejor alternativa construyendo una Tabla de doble entrada donde se presenten las diferentes alternativas de solución en función de las restricciones del problema.
5.  Identificar criterios de montaje del detector en el local comercial. ¿Qué aspectos debería tener en cuenta para su correcto funcionamiento una vez instalado?

II-Proyecto constructivo

1. Simular el funcionamiento de la mejor alternativa de solución seleccionada utilizando el software Crocodile o el Laboratorio virtual Livewire.
2. Analizar las necesidades de máquinas, materiales, herramientas, instrumentos e infraestructura necesarios para ejecutar el diseño.
3.   Adecuación a las posibilidades existentes.
4.  Realizar una Tabla que contemple cada herramienta, máquina e instrumento utilizado, su función y cómo se usa.
5.  Formular una secuencia y organización de las actividades constructivas. Justificar la respuesta.
6.  Realizar una Ficha de “Organización de tareas en función del tiempo” en donde indique, para cada tarea a realizar para construir el prototipo, el tiempo demandado por cada una de ellas.
7.  Realizar un “Diagrama de Gantt” para las tareas realizar y su prelación en función del tiempo. Emplear utilitarios específicos o una hoja de cálculo.
8.   Adjudicación inicial de roles y de responsabilidades a cumplir por los integrantes del grupo de trabajo.

III-Construcción

1.  Realizar una secuencia fotográfica de las etapas del montaje del producto tecnológico seleccionado, iniciando con la fotografía de la totalidad de los componentes a emplear. Utilizar un servicio como Flickr, o similar, para compartir las fotografías en la Web.
2.  Realizar un pequeño video, de duración máxima en 5 minutos,  donde el grupo comunique el funcionamiento del producto terminado. Utilizar el servicio YouTube para incorporarlo a la Web.
3.  Realizar un presupuesto para la mejor alternativa seleccionada indicando: listado de componentes (BOM), cantidad de cada uno, precio unitario, costo de cada ítem y costo total. ¿Considera que presupuestar 100 unidades en lugar de una unidad contribuiría a mejorar los costos del proyecto? Estimar un precio de venta. Justificar la respuesta.

IV-Ensayo

1.  Una vez construido el prototipo de la solución propuesta, realizar el ensayo del mismo, analizar el resultado final y evaluar posibles mejoras, siempre considerando el cumplimiento de las pautas de diseño.
 2.   ¿Qué otras necesidades podría satisfacer con este tipo de dispositivo? Identificar áreas de demanda. Realizar y evaluar un prototipo de acuerdo a los procedimientos de la tecnología (análisis de productos, enfoque sistémico y proyecto tecnológico) para una demanda concreta seleccionada por el grupo.

Contenidos científicos y matemáticos a considerar en cada una de las etapas

1.   ¿Qué es un Sistema de Control?
2.  Realizar un diagrama en bloques del sistema de control que considere la mejor solución a la situación problema planteado.
3.  ¿Cuáles son los elementos del sistema que actúan como sensores, cuáles actúan como controladores, cuáles cómo reguladores, y cuáles como actuadores?
4.  ¿Existe realimentación? Si la respuesta es afirmativa, ¿qué elemento del sistema realiza la realimentación de la salida a la entrada?
5.  ¿Considera que el sistema de control propuesto es manual o automático? Justifique su respuesta.
6.   ¿Se trata de un sistema de control por tiempo o por sensores? Justifique su respuesta.
7.  ¿Estamos en presencia de un sistema de control de lazo abierto o de lazo cerrado? Justifique su respuesta.
8.   ¿Identifica flujos de energía, materia e información? Justifique su respuesta.

Pautas para desarrollar el Informe Final

Considerando todos y cada uno de los puntos anteriores:

1. Elaborar un documento que contenga una portada o carátula con la siguiente información: Institución, Profesorado, Espacio Curricular, título de la práctica, datos del alumno/grupo, datos del docente, fecha y el desarrollo de las actividades propuestas incluyendo circuito eléctrico de cada alternativa y de la seleccionada, simulación utilizando Crocodile / Livewire o similar, PCB de la alternativa solucionada, presupuesto, hojas de datos de los componentes eléctricos y electrónicos utilizados, registro fotográfico del montaje y enlace al video de la puesta en funcionamiento y pruebas en YouTube además de la propuesta para satisfacer una necesidad alternativa. Incluir la bibliografía consultada. 
Compartir en la Web utilizando el servicio Google Docs y en el blog de cada grupo. Indicar en el blog del docente que la propuesta del grupo está finalizada y escribir un breve comentario acerca de la experiencia desarrollada.
2. Elaborar una presentación multimedia que no supere los 10 slides, incluyendo información de identificación, alternativas de solución, criterios de selección de la mejor alternativa y, para esta, circuitos eléctricos-electrónicos, simulaciones, PCB, presupuesto, registro fotográfico y enlaces a YouTube, Flickr, Slideshare y a todo recurso digital en la web que hubieran utilizado.
3. Incorporar esta presentación a la Web utilizando un servicio como Slideshare o similar.
4. Previo a ejecutar la propuesta, acceder al blog del docente en http://sabetecnologia.blogspot.com  y desarrollar, a modo de revisión de conocimientos previos, las actividades indicadas en sistemas de control de nivel de líquidos, de iluminación y temperatura. Responder, mediante comentarios en el mismo Blog, los interrogantes que allí se plantean.
5. Recordar que el blog del docente es el único espacio de intercambio de consultas, ideas, propuestas y dificultades que integra a todos los grupos.


Control de temperatura

Se utiliza un transistor funcionando como interruptor (zona de trabajo: corte y saturación): transistor en corte = interruptor abierto; transistor en saturación = interruptor cerrado. El elemento sensor es un termistor NTC (coeficiente de temperatura negativa).

Funcionamiento:

El termistor NTC mantiene una baja resistencia cuando la temperatura es alta y una baja resistencia cuando la temperatura es baja.
Cuando el termistor aumenta su temperatura, disminuye su resistencia (es mejor conductor de la corriente eléctrica)  hasta que en el punto de disparo, la tensión existente entre la Base y el emisor del transistor Q1 es suficientemente alta como para saturar el transistor de modo que la corriente que ahora circula por el Colector de Q1, en serie con el LED, lo enciende, indicando activación del sistema de control de temperatura.
En el caso contrario, cuando la temperatura disminuye por debajo del valor de activación, la resistencia del termistor NTC aumenta (es peor conductor), el transistor Q1 pasa de saturación a corte y la corriente por su Colector es tan pequeña que el diodo LED se apaga.
 
 
¿Qué ocurriría si se invirtiera la posición del sensor de temperatura y la resistencia de 10 k?
 
Realice la experiencia y establezca conclusiones.
 
Precaución: si la cápsula del termistor no es metálica, nunca acercarlo a una llama ya que podría destruirse. Experimentar si con el calor de la mano es posible calentar el termistor NTC y activar el sistema de control.

Control de iluminación: detector de oscuridad

Se utiliza un transistor funcionando como interruptor (zona de trabajo: corte y saturación): transistor en corte = interruptor abierto; transistor en saturación = interruptor cerrado.

Funcionamiento:

Cuando se conecta la batería de 9 V, el LED está apagado (si el ambiente no está muy iluminado). Al recibir luz, el LDR presenta una resistencia baja.En estas condiciones, la tensión aplicada a la base del transistor es suficiente para que se sature, circulando corriente por el colector y encendiendo el diodo LED conectado en serie con la fuente de alimentación. La resistencia de 1.8 K limita la corriente en la base del transistor, protegiéndolo.

 

1.¿Qué tipo de medida es el “lux”? ¿Cómo se la define?
2.Proponga al menos tres ejemplos de aplicación de un sistema de control de oscuridad.
3.Si se invierte la posición de la resistencia R2 y el sensor LDR, ¿qué podría ocurrir?


Control de nivel de líquido

Para comprender las bases del funcionamiento de un sistema de control de líquido se propone el siguiente esquema electrónico que utiliza un transistor funcionando como interruptor (zona de trabajo: corte y saturación): transistor en corte = interruptor abierto; transistor en saturación = interruptor cerrado.

Funcionamiento:
Cuando se conecta la batería de 9 V, y el sensor de nivel de líquido está “seco” (nivel de agua por debajo del nivel predefinido, resistencia eléctrica alta), la tensión entre Base-Emisor del transistor es aproximadamente 0 V. En esta circunstancia, el transistor está en corte y se comporta como un “interruptor abierto”, es decir que no circula corriente desde el colector del transistor hacia su emisor y, por lo tanto, no circula corriente por el diodo LED (apagado).
 
Cuando se conecta la batería de 9 V, y el sensor de nivel de líquido está “húmedo” (nivel de agua igual o por encima del nivel predefinido, resistencia eléctrica muy baja), la tensión entre Base-Emisor del transistor es aproximadamente 0,6 V. En estas condiciones, el transistor entra en saturación y se comporta como un “interruptor cerrado”, es decir que circula corriente desde el colector del transistor hacia su emisor y, por lo tanto, corriente por el diodo LED (encendido).

 A.   ¿Qué ocurriría si se invirtiera la posición del sensor de nivel de líquido y la resistencia de 100 k? Realice la experiencia y establezca conclusiones.

B.   Fundamente si utilizando dos niveles predefinidos para el agua, “Alto” y “Bajo” se mejoraría, o no, la calidad del dispositivo de alarma.

C.   ¿Y utilizando tres niveles predefinidos para el agua? Fundamente su respuesta.
















lunes, 12 de noviembre de 2012

Conociendo S4A


Desarrollado a partir de Scratch (MIT Media Lab).

Incluye nuevos bloques  para controlar sensores y actuadores conectados a Arduino.

Arduino: entorno Open Hardware.

Posibilidades como herramienta: S4A + Arduino.





martes, 6 de noviembre de 2012

Catálogo de Software Libre

Por gentileza de cdlibre.org dejamos el link un catálogo de software libre:

http://www.cdlibre.org/consultar/catalogo/

jueves, 1 de noviembre de 2012

Sitio web de ARDUINO

En el sitio web de ARDUINO:

http://arduino.cc/

encontrarán información (hard, soft y proyectos) respecto de esta plataforma de hardware open source.

Los últimos modelos son: DUE (octubre 2012), Leonardo y UNO (R3).

Fotos de la visita a Tecnópolis. Agosto 2011

En el link:

http://www.facebook.com/media/set/?set=a.2334405882701.2136463.1326420228&type=1

encontrarán fotos de la visita a Tecnópolis.

Alfredo.

ARDUINO: presentación de Massimo Banzi

En el link:

http://www.ted.com/talks/view/lang/es//id/1491

encuentran una excelente presentación del potencial de ARDUINO (open hardware) por uno de sus creadores, Massimo Banzi.

En la medida que desarrollemos nuestros proyectos con esta placa, por ahora ARDUINO UNO, los publicaremos en este Blog.