sábado, 18 de noviembre de 2017

Proyecto Domo

Antes de mencionar nada acerca del proyecto quiero mencionar un dispositivo capaz de mejorar sustancialmente la capacidad de la placa Arduino Uno. Más precisamente su capacidad de "aumentar" la cantidad de salidas y/o entradas de la placa. Las comillas son porque realmente no estamos aumentando las entradas de manera física, sino dandole la posibilidad a un único pin de enviar o recibir más de un valor.

El Shift Register es un componente electrónico capaz de tomar un dato de manera serial (ceros y unos uno tras otro) y devolverlo de manera paralela (todos los datos de la entrada serial se presentan a la vez en los pines de salida). Por ejemplo, un shift register de 8 bits toma por su pin de entrada los 8 bits y nos devuelve los mismos valores pero en 8 pines independientes.

Por lo tanto (despreciando los milisegundos -o tal vez nanosegundos- que le lleve al shift register realizar su tarea) podemos decir que este componente "transforma" (otra vez las comillas) 1 salida en 8.

Cabe aclarar que este proceso no sucede instantaneamente, ya que el shift register realiza su trabajo en 9 pasos (8 para registrar cada uno de los bits y 1 más para devolver el dato en paralelo), por lo que es útil en casos en los cuales nos podamos tomar la libertad de perder algunos nanosegundos entre que enviamos el dato desde la salida del arduino y hacemos uso de él.

A continuación una foto del circuito usado para probar el shift register. Este circuito permite controlar a traves de 2 pines digitales del arduino (salida digital 2 y 3) un total de 16 leds. En el circuito hay solo 9 ya que no alcanzaron los cables para conectar más leds.

En la próxima entrada se verá la idea general del proyecto y se entenderá mejor cual es el gran beneficio de este componente.














miércoles, 25 de octubre de 2017

Servo (parte 2)

La segunda parte del proyecto consiste en implementar un sketch de arduino que logre leer datos analógicos provenientes del voltaje en el fotorresistor y transformarlos en datos digitales que se utilizarán para controlar una salida que se conecte al servo.

int val;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(10,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

  val = analogRead(A0);
  Serial.println(val);
  delay(500);
 
}

En este sketch hace falta programar el mapeo de la variable VAL, con la funcion map(), para que los datos de entrada en el A0 se correspondan a un rango de valores entre 0 y 90 (para controlar el ángulo de movimiento del servo) y además programar el envío de dicho valor a un pin que controle el servo (con la funcion analogWrite).

De aqui en más no procedimos con la implementación del proyecto, por lo que este quedó en la teoría, pero creemos que agregando estas lineas al código ya se está bastante cerca de lograr el cometido de controlar el servo de la forma deseada. El agregado de la cortina y la implementación total del proyecto es algo que queda en el debe, para retomar en algun otro momento









lunes, 2 de octubre de 2017

Servo

Un servo motor es un motor que tiene la capacidad de moverse dentro de un rango permitido y mantener una posición determinada. Se puede controlar digitalmente con la placa Arduino UNO y es por eso que hago esta entrada.

Además del servo pudimos experimentar con diferentes sensores como los de proximidad (infrarrojo, ultra sonido) o fotorresistores (resistencias que varían dependiendo de la luz que reciban).


LA IDEA
La consigna era idear un sistema que implementara ambos elementos y la idea de mi grupo fue la de controlar cortinas automaticamente dependiendo de la luz solar.

La idea es simple y se puede llevar a cabo en Arduino de la siguiente manera: un fotorresistor se conecta a un pin analogico (A0-A5) y luego, utilizando el valor leido en esa entrada, se indica al servo en qué posición debe estar.


REALIZACIÓN
La realización del proyecto (como el 99% de los proyectos con Arduino) se puede dividir en 2 grandes partes y ambas presentan algun obstáculo que hay que superar. Una parte es el dispositivo físico y la otra es la programación del sketch.

1)
Para la primera parte no se pueden pasar por alto dos aspectos fundamentales. El primero es saber con qué tipo de cortina podríamos trabjar. Sabiendo que contamos con un servo con un rango de 180 grados, lo mas conveniente son las cortinas verticales ("tiras" o "barras", generalmente de tela) que rotan sobre un eje longitudinal y que quedan, o bien completamente perpendiculares a la dirección de la luz (cortina cerrada) o paralelas (cortina abierta). Este tipo de cortinas permite que con un rango de 90 grados se pueda cubrir desde la cortina cerrada a la cortina abierta, pasando por diferentes niveles de luz en la habitación.

Lo otro que se debe tener en cuenta es el lugar en donde va a colocarse el fotorresistor. Si se colocara en el interior de la habitación no se tendria una referencia clara de cuanta luz esta llegando, por lo que colocarlo en exteriores seria mucho mas conveniente. Para esto se debe tener algun recaudo en cuanto a las inclemencias del tiempo y/o colocación segura del elemento (pegado o atornillado a la pared, con algun tipo de carcaza protectora, etc).

La siguiente entrada contiene la segunda parte de la idea y el código implementado (con los problemas que se presentaron)











domingo, 20 de agosto de 2017

Primera experiancia con Arduino: Proyecto escalera

La idea es simplemente implementar la placa para permitir a 2 interruptores controlar un único led.
El objetivo fundamental es que cualquiera de los 2 interruptores pueda cambiar el estado del led, ya sea apagandolo o prendiendolo.



implementos:
1 led
2 interruptores (en este caso, botones)
placa Arduino UNO (o superior)

La conexión de los componentes es la siguiente:

Botones:
de un lado se conectan un pin a la salida analógica de 5 V y el otro a GND (utilizar resistencia adecuada. En el ejemplo se uso resistencia de 1k ohm)
del otro lado se conecta un pin* a la entrada digital que se va a utilizar.
*este pin debe ser el indicado en el esquema, si se utiliza el otro, estara en contacto permanente y el botón no cumplirá su función.

Led:
al pin positivo (el más largo) se lo conecta a la salida digital que se va a utilizar (utilizar resistencia adecuada. En este ejemplo se utilizó una de 220 ohm). El otro pin se conecta a GND



Código:
int led = HIGH;
int estado1;
int estado2;

void setup() {
  pinMode(13, OUTPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
 
}

void loop() {
  estado1 = digitalRead(7); //lee el estado de los botones
  estado2 = digitalRead(8);
 
  if (estado1 == HIGH or estado2 == HIGH) { //si algun boton se aprieta, cambia el estado del led
    while (estado1 == HIGH or estado2 == HIGH){
    digitalWrite(13, led);  //si el led estaba en high, pasa a low y viceversa
    estado1 = digitalRead(7);
    estado2 = digitalRead(8);
    };
    led = not led;  //invierte el valor de la variable que indica al led si prender o apagar
  }
}


domingo, 13 de agosto de 2017

ARDUINO

Arduino es una plataforma de creación muy poderosa que consiste en una parte de hardware (la placa arduino, que las hay de diferentes tamaños, capacidades de procesamiento, utilidad, etc) y otra parte de software (el programa donde se crean los proyectos que luego se cargan a la placa).
En esta plataforma, que es basicamente una computadora simplificada, se pueden realizar infinidad de tareas, que van desde el control de una tira de luces led a la automatización del proceso de fabricación de algún producto.
El paquete básico viene junto a un set de leds, resistencias, displays y algun otro componente electrónico básico, que permiten familiarizarse con el sistema y el lenguaje de programación propio. 
Existen otros componentes como sensores de proximidad, ph, temperatura o interruptores electronicos que dan la posibilidad de realizar practicamente todo lo que uno se pueda imaginar.

En la web oficial de arduino https://www.arduino.cc/ se pueden encontrar ejemplos de proyectos realizados en esta platafoma, asi como tutoriales para comenzar a familiarizarse con el producto y todo lo necesario para hacer funcionar la placa en nuestra computadora.Resultado de imagen para arduino

domingo, 16 de abril de 2017

Micro ensayo - Design Thinking



Design Thinking
El pensamiento de diseño es un conjunto de estrategias y filosofías involucradas en el proceso de creación e innovación de todo tipo de productos y servicios. La característica principal del pensamiento de diseño es poner a las personas y sus necesidades en el centro de atención para así construir a su alrededor.
Un claro ejemplo de design thinking, que curiosamente se dio mucho antes de acuñado el término, es la bombilla eléctrica creada por Thomas Edison. Lo que hace a este producto un ejemplo de design thinking es el hecho de que Edison no solo inventó un dispositivo, de por sí aislado, sino que también creó un negocio detrás de él. La clave del éxito de esta invención es que es un producto basado en la necesidad de las personas (y en el posible uso que estas le darían) y no un simple resultado del genio de una persona. (Brown, 2008)
Un aspecto importante a la hora de comenzar un proyecto aplicando el pensamiento de diseño es poder contar con un grupo de personas que aporten conocimiento y experiencia en la mayor cantidad de campos posibles. Esto ayuda a que las ideas difieran y que del conjunto de estas se desprenda un resultado final que satisfaga lo más completamente posible al destinatario final del producto.
Otra característica fundamental del design thinking, que incluso le proporciona el nombre al concepto, es el diseño físico de la idea a desarrollar. Ya sea un producto o un servicio, no basta con cumplir de manera funcional con los requerimientos del cliente. También es determinante a la hora del éxito el hecho de que el producto final tenga una presentación llamativa y adecuada y es menester que este enfoque este presente desde muy temprano en el desarrollo de la idea.
Las nuevas invenciones ya no son solo productos físicos, sino que están dotadas de un “envoltorio” atractivo y que acompaña la idea de modernidad e innovación. (Brown, 2008)


Aplicación del pensamiento de diseño
Para llevar a cabo cualquier proyecto aplicando una metodología de design thinking se deben tener en cuenta ciertos pasos a seguir, fundamentales si queremos tener éxito.
En primera instancia, y reafirmando la idea de que hablamos de una filosofía centrada en las personas, debemos constar con la empatía. Lo más importante es saber cuáles son las inquietudes y necesidades del destinatario final del producto o servicio que estamos desarrollando.

Luego está la etapa de definición del problema y los objetivos precisos del proyecto para poder encaminarlo en la dirección correcta. Si no hiciéramos esto, probablemente terminaríamos con algo que consumió tiempo, dinero y esfuerzo, pero que no necesariamente soluciona la problemática que se quería solucionar.
A continuación, tiene lugar la elaboración de ideas. En esta etapa es muy importante que no se descarte nada en primera instancia. Para tener éxito en esta etapa se necesita un muy buen trabajo en grupo, organizado y eficaz. Para esto no solo se debe pensar en la forma correcta de, por ejemplo, llevar a cabo una “lluvia de ideas”, sino que también influye el entorno en que el equipo esté trabajando.
Según Neil Stevenson (Stevenson, 2017), algunas de las cosas que importan a la hora de sentirse cómodo trabajando en grupo son, por ejemplo, las mesas grandes en donde todos los involucrados en el proyecto puedan estar cómodos. También son de gran ayuda los espacios de juegos o distensión e incluso espacios donde poder comer tranquilo o tomar un descanso.

El siguiente paso es la construcción de un prototipo. Un prototipo es una versión bastante más económica del producto final y que por lo general no cumple con todas las funcionalidades que este tendrá, sino que simplemente sirve para dar una visión más tangible del mismo. Cumple con los requisitos indispensables para que los desarrolladores puedan discernir si van en la dirección correcta. Ejemplos de prototipo pueden ser maquetas a escala de una estructura cualquiera, dibujos en papel de posibles layouts que tuviere una aplicación para dispositivos móviles, construcciones con materiales baratos y fáciles de modelar de diversos dispositivos que consten de botones, pantallas, etc. La lista es muy grande, así como la cantidad de materiales de fácil acceso y utilización.
En esta etapa nunca debemos olvidar que la rapidez de construcción y el bajo costo de los materiales, combinados con una correcta representación del producto final, son la clave de un buen prototipo.

Finalmente llega el momento de la implementación y evaluación del producto. Para esta etapa del proceso es fundamental tener la mayor cantidad de información posible acerca de cómo ha evolucionado el desempeño del cliente en su respectiva labor gracias a nuestro trabajo. Esto cobra mayor importancia aun si el producto todavía no satisface las necesidades planteadas al principio del proyecto, ya que estos datos ayudarán a mejorar el producto en un posterior trabajo. Esto deja en claro que un proceso que involucra al pensamiento de diseño es un proceso cíclico, que se retroalimenta y crece gracias a la devolución de los consumidores finales.

Un buen ejemplo de un producto desarrollado utilizando esta filosofía es el de un carro de supermercado, desarrollado por la empresa Ideo. Es un objeto simple y utilizado por la mayoría de las personas, pero aun así es objeto de innovación y una buena manera de ilustrar el proceso de desarrollo llevado a cabo. (Neri, 2009)


Trabajo en clase

Búsqueda de problemas
El primer día de clase, en la asignatura “Laboratorio de diseño”, nos familiarizamos con esta modalidad de trabajo y rápidamente nos vimos en nuestra primera aplicación de la misma, en un trabajo en equipo. La actividad consistió en buscar problemáticas que nos fueran cercanas. Algunas de estas tuvieron que ver con el funcionamiento de la facultad, como por ejemplo el funcionamiento de la cantina o la falta de estacionamiento para bicicletas en el anexo donde tenemos muchas de nuestras clases.
Luego de esta parte tuvimos que idear un plan para recoger información acerca de la problemática elegida. Todos los grupos optaron por una encuesta que brindaba información acerca de puntos que creímos claves a la hora de analizar el problema.
Finalmente hicimos una puesta en común de los datos obtenidos e inmediatamente experimentamos uno de los aspectos claves del design thinking: diferentes personas enfocan un mismo problema de diferentes maneras.
La problemática que se repitió en los grupos fue la del tiempo de demora en la cantina de la facultad en horas pico. Las diferentes encuestas mostraron qué preguntas eran más importantes que otras a la hora de obtener información de los usuarios del servicio. Esta primera experiencia terminó de esa manera y, aunque corta, fue bastante esclarecedora en cuanto a la forma de trabajo en grupo. En un pequeño ejercicio de un día, pudimos comprender un poco más acerca del trabajo en equipo y de cómo todas las ideas son igual de válidas al comienzo de un proyecto.

Desafío del malvavisco
Otra de las experiencias vividas en la clase fue la del desafío del malvavisco. Este desafío del malvavisco consiste en construir una estructura capaz de sostener un malvavisco en la parte más alta. Es un desafío por equipos que compiten entre sí, por lo que el que logre la estructura más alta, será el ganador.
De esta experiencia se llega nuevamente a la importancia del trabajo en equipo y particularmente a la importancia de que este sea un equipo heterogéneo. Diferentes formas de pensar, a menudo llegan a mejores resultados.
Otra de las cosas que se pueden ver analizando los comportamientos y resultados de los diferentes desafíos llevados a cabo en diferentes ámbitos, es la importancia de los prototipos. Algunos de los equipos que tuvieron mayor éxito en el desafío fueron los equipos formados por niños. En estos casos, la forma de construir era diferente a la del resto: los niños colocaban el malvavisco en una etapa muy temprana del proceso de construcción de la estructura. Esto permite ver de manera más clara el avance de la construcción y hacer correcciones basándose en lo que sucedió hasta el momento. (www.ted.com, s.f.)

Este conjunto de experiencias, combinado con testimonios y experiencias de terceros que han aplicado esta filosofía a la hora de crear e innovar, hablan de la potencia y efectividad del pensamiento de diseño. Sin dudas, el acercamiento a los consumidores finales desde el comienzo del desarrollo de la idea, dedicación en el diseño físico del producto y utilización de prototipos son aspectos fundamentales a la hora de desarrollar nuevas ideas.


















Referencias
Brown, T. (Junio de 2008). Design Thinking. Harvard Business Review, 85-92.
Neri, A. (2 de diciembre de 2009). ABC Nightline - IDEO Shopping Cart [Archivo de video]. Obtenido de https://www.youtube.com/watch?v=M66ZU2PCIcM
Stevenson, N. (6 de Marzo de 2017). www.ideo.com. Obtenido de https://www.ideo.com/blog/13-ways-to-make-your-workspace-more-creative
www.ted.com. (s.f.). Obtenido de https://www.ted.com/talks/tom_wujec_build_a_tower#t-101676