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.
Laboratorio de Diseño
sábado, 18 de noviembre de 2017
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
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)
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
}
}
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.
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.
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
Suscribirse a:
Entradas (Atom)