Proyecto Final.
Plantilla de Proyecto Final
Etapa 1: Inspiración
Empatía
Recuerde que la empatía se trata de:
La
capacidad que tienen los seres humanos de identificarse con ciertas personas y
entender sus sentimientos. Este momento es esencial para conocer y comprender
de manera profunda las necesidades de la persona que se beneficiará de la
solución. Se trata de analizar situaciones, comprender la vida de los usuarios
del prototipo, así como los diferentes problemas y necesidades que poseen.
Sugerencia:
Realice una pequeña investigación sobre los temas asociados al problema, para
darse una mejor idea de las implicaciones que tiene.
Con base a lo anterior completa lo siguiente:
¿Cómo afecta el problema la vida de la
persona que lo sufre? Describa una situación ejemplo.
|
¿Qué otras situaciones podrían ser causadas
por el problema?
|
¿Qué
opinan otras personas sobre ese problema?
|
Ascensor para discapacitados.
Muchos
ascensores de bancos, comercios, centros comerciales entre otros tienen
ascensores estándar los cuales no cuentan con dispositivos especiales para el
uso de personas con discapacidad física (vista, motriz). En ocasiones tienen
que solicitar ayuda a otra persona para que active el botón de apertura y
otros mecanismos tanto fuera como dentro de estos artefactos, ya que la posición
es poco accesible a esta población.
|
El
no cumplimiento en lo que se refiere en la ley 7600 en sus artículos 44,
150,151 y 152, puede ser la causante de dicho problema. Muchas empresas no
cumplen con estas normas que ayudarían en lo relativo a equidad, accesibilidad y respeto de las personas con discapacidad.
|
Muchas personas con y sin discapacidad son conscientes
que en nuestro país se cumple a medias con la ley de “Igualdad de
oportunidades para las personas con discapacidad”. Algunos autobuses públicos
cuentan con sus respectivos ascensores pero no todos. En el caso de los
ascensores a edificios de varios pisos en asunto es más crítico pues pocos
aplican dicha normativa.
|
Definición
Este momento consiste en:
Recuperar la información relevante del
problema. Establecer los datos que serían relevantes para proponer varias
soluciones.
Considerando lo anterior responda:
¿Cuáles son las causas del problema?
|
¿Cuáles son las consecuencias del problema?
|
¿Por qué es un
problema importante a resolver?
|
Los
dueños de edificios no aplican cambios a la estructura de los ascensores
porque piensan que los dispositivos conllevan costos muy elevados. Por esta razón
se mantienen al margen de realizar cambios que ayuden y beneficien a la población
con discapacidad.
Sin
embargo la tecnología ha hecho posible que con dispositivos como sensores de
movimiento y o de luces se pueda solventar el problema de una manera más
eficiente y económica
|
Al no disponer de dichos
dispositivos adecuados a discapacitados los dueños del inmueble se pueden ver
sancionados con multas y hasta el cierre del negocio o servicio si existieran
denuncias por parte de los usuarios.
El ahorro de energía podría ser
beneficiado si se aplican sensores que activen los ascensores solo cuando
exista una cierta cantidad de luz o con el simple hecho de detectar a
usuarios en disposición de acceder al elevador.
|
La instalación de un sensor de movimiento o detector de presencia en un ascensor
supone un avance en el mantenimiento y cuidado del mismo. La reducción del
consumo energético de las luces del interior de la cabina puede alcanzar el
50% con respecto al mismo tipo de ascensor que no disponga de un
dispositivo de esta clase. Existen numerosos motivos por los que es
conveniente instalar un detector de presencia o un sensor de
movimiento. Entre los beneficios, destacan los aspectos de ahorro energético, y la reducción del gasto.
Y sumado a estos beneficios se cumpliría
con la satisfacción de usuario con necesidades motoras especiales.
|
Idear
Para este
momento se debe considerar lo siguiente:
Este momento es para la generación de
ideas con base a datos establecidos en la Definición. El objetivo es tener
muchas alternativas de solución y no ir en busca de la mejor solución desde
ahora, sino conforme vayamos analizando más el problema. Ninguna idea se
descarta, todas son valiosas y deben ser valoradas.
Responda lo siguiente:
¿Cuáles podrían ser soluciones al problema
que se desea solucionar? Exponga las que desee, un mínimo de 2.
1. 1. Se
puede crear un mecanismo adaptable a los controles de los ascensores que
activen las puertas cuando se acerque un usuario sin necesidad de que se
activen los botones que él mayoría de los casos son poco accesible a personas
ciegas o en sillas de ruedas. Además se puede elaborar otro mecanismo con
sensores en los que se pueda activar el ascensor para que este suba y baje con
una acción estos se detengan y abran y cierren las puertas.
2. 2. Solicitar
a cada dueño de ascensores que incumplan con la ley 7600 cambien por completo
los ascensores asegurándose de que cumplan con lo establecido en dicha ley.
Fuentes consultadas sobre el problema a
resolver. Escriba al menos dos fuentes en formato APA.
Astar Components & Lifts, S.L. (02
de febrero 2018) Características y
medidas de los ascensores para discapacitados. Recuperado de: http://www.astarlifts.com/blog/ascensores-elevadores/caracteristicas-y-medidas-de-los-ascensores-para-discapacitados
Cámara,
Yaunett. (Publicado el 8 agosto de 2014). Proyecto Rampa para
discapacitados automatizada. Recuperado de: https://www.youtube.com/watch?v=Lg_YeT152BY
Fuente:
Predif
(02 de febrero 2018) ¿Cómo debe ser un
ascensor accesible? Recuperado de: https://www.discubre.es/es/blog/2017/06/06/como-debe-ser-un-ascensor-accesible/
·
https://www.youtube.com/watch?v=TtUY7_mXGtM
Programación Ascensor discapacitados
#include <LiquidCrystal.h>
#include <Servo.h>
Servo servo1; //Constructor de la sentencia servo1
Servo servo2;
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); //Definimos los pines de la tarjeta Arduino que controlan el LED
int v=1;
int servoA = 1; // Variable para ENVIAR datos al servo para cabina
int servoB = 2; //Variable para ENVIAR datos al servo para puerta
int trig = 13;
int echo = 12;
const int LED = 11; // variable constante de led activado con palmada
const int Microfono = 3; // variable constante del sensor de sonido
int grados; // Variable para guardar los grados de ángulo del servo.
int giro;
int tmp=0; // Variable temporal para usar en la condicional
int tmp2=0;
int pulsominimo=650; //Variable que define el ángulo menor del servo
int pulsomaximo=2550; //Variable que define el ángulo mayor del servo
int microfono=50;
float disCalculada;
void setup() {
pinMode(LED, OUTPUT);
pinMode(Microfono, INPUT); //sonido de entrada enciende la led, (palmada)
lcd.setCursor (4,1); //Definimos que se ubique en la posición 4 de la fila 1 en la pantalla
lcd.print ("ASCENSOR"); //Muestra la palabra ASCENSOR en la posición anterior
lcd.noBlink (); // Le indicamos al LED que no parpadee
delay (100);
//---------------------------------//
//Indicamos al servo motor el pin de entrada, angulo menor y angulo mayor.
servo1.attach (servoA, pulsominimo, pulsomaximo);
servo2.attach (servoB, microfono, LED);
//---------------------------------//
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
grados = servo1.read (); //Guarda en variable grados, el valor del ángulo de giro
giro = servo2.read ();
Serial.print ("Grados :"); //Mostramos la palabra grados.
Serial.println (grados); //Agrega el valor del ángulo.
delay (200); //Espera 2 milisegundos.
Serial.println ("---------------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
//---------------------------------------
while(digitalRead(Microfono)==LOW); // Bucle: hace lectura de sonido de sonidos una palmada enciende y otra apaga
digitalWrite(LED, !digitalRead(LED));
while(digitalRead(Microfono)==HIGH);
//---------------------------------------
if (disCalculada < 100) // Condicional Si...
{
tmp=100; //Variable temporal = 100
tmp2=180;
}
else
{
tmp=0;
tmp2=0;
//Caso contrario el valor de tmp=0
}
delay (10); //Esperar 10 milisegundos
servo1.write (tmp); //Gira los grados que están guardados en la variable temporal.
servo2.write (tmp);
lcd.setCursor (1,1); //Posición del cursor en fila 1 posición 1
lcd.print ("Distancia:"); //Mostramos la palabra distancia
lcd.println (disCalculada); //Mostramos el valor de la variable
}
int calcularDistancia ()
{
long distancia;
long duracion;
digitalWrite (trig, LOW);
delayMicroseconds (4);
digitalWrite (trig, HIGH);
delayMicroseconds (10);
digitalWrite (trig, LOW);
duracion = pulseIn (echo, HIGH);
duracion = duracion/2;
distancia = duracion/29;
return distancia;
}
Plantilla de proyecto final:
Implementación
Implementación
Contempla los momentos: Prototipar y Evaluar.
1.
Prototipar: esto se desarrolla antes de iniciar la construcción y
programación del prototipo. Se trata de un boceto sencillo que explica el tipo
de solución que se deseas realizar.
2.
Evaluar: Explica los problemas y soluciones que lograste
desarrollar mientras estabas creando el prototipo.
3.
Prototipar
Por favor complete los siguientes aspectos:
Descripción de la solución del boceto: ¿Cuál es la solución?
¿Cómo se espera que funcione? ¿Qué tarea realiza cada uno de sus actuadores y
sensores?
Ascensor inteligente para discapacitados, para no activar con botones. Activar con sensor ultrasónico la puerta del
Ascensor para que abra cuando este a una distancia prudente (zona para
discapacitados). Luego con sensor de sonido dar una orden para activar Ascensor
para que este suba o baje. El piezo avisa al usuario con un tono cuando llega a
su destino (piso deseado).
Evaluar
Este momento del Design Thinking es en el que se
realizan pruebas con los prototipos realizados. Para esta estrategia de
resolución de problemas, se trata de llevar el prototipo al cliente con la
finalidad de obtener insumos que permitan evaluar si llena o sus expectativas,
o para que arroje información que podría ser valiosa para desarrollar versiones
que incluyan futuras mejoras. Es un momento esencial porque ayuda a identificar
errores y posibles carencias.
Es posible que implique
regresar a la implementación y mejorar el prototipo pensando, o inclusive
replantear la solución en el momento de Idear.
Para
efectos de este curso, solo estaremos registrando 3 problemas que se hayan
podido resolver DURANTE el desarrolla del prototipo. Evidentemente, no podremos
hacer pruebas con clientes, pero igualmente dejaremos un registro de las
situaciones problema que se tuvieron y sus soluciones, con la finalidad de
beneficiar a los compañeros que puedan realimentar el proyecto.
1. Tomando en cuenta lo que implica evaluar, complete la
siguiente tabla:
Descripción
del problema en el prototipo
|
Solución
desarrollada
|
1. El motor necesario para
mover la cabina no es factible, se necesitan piezas como el L293 (integrado), además de un potenciómetro y piezas de engranajes de varios tipos para
convertir la velocidad en potencia. Para colocar piezas se ocuparía al menos
otra protoboard.
|
Usar dos servomotores, uno para la puerta y otro para la cabina en un
ángulo máximo de 180° pues es lo único provisto en el Kit de Arduino 1. Usar
un servomotor de otro Kit a disposición.
|
2. Poco conocimiento de librerías
y otros elementos de programación en Arduino. Factor tiempo determinante.
|
Aplicar parte de la
programación efectuada en Prácticas
dirigidas del curso. Uso de ejemplos de videos de programación desde la web
|
2.
Escriba algunas conclusiones obtenidas de aprendizaje logradas a través del
desarrollo del prototipo interactivo.
a.
Para que algunos actuadores funcionen correctamente se necesita el uso
librerías de las cuales no tenemos conocimiento cuales son, para que sirven y
cuál es su contenido. A no ser por la información recibida en este curso solo
adjuntamos las previstas.
b.
Para usar Arduino se necesita saber un poco más del por qué, el para qué y el
cómo aplicarlo al entorno educativo de nuestro entorno. El manejo de equipo de delicadas piezas que
se pueden dañar por la mala manipulación es preocupante a la hora de emplearlo
con estudiantes.
3.
Escriba algunas fuentes de apoyo utilizadas para desarrollar el proyecto final.
a. Diversos videos de programación de
Youtube.com
·
https://www.youtube.com/watch?v=TtUY7_mXGtM
b. Videos tutoriales del curso, más los
ejemplos desarrollados en las practicas dirigidas 1 y 2 de este taller virtual.
Materiales: Empleados:
- 1 Arduino 1
- 1 protoboard
- 1 sensor ultrasónico
- 2 servomomotores
- 11 cables (macho a macho)
- 4 cables (hembra a hembra)
- 23 cables (macho hembra)
- 1 display o lcd
- 1 led
- 1 resistencia de 330 ohnios
- 1 sensor de sonido
- Estructura: papel, cartón, estereofón, cuerda, cinta adeshiva, piezas lego (bujes, poleas, ruedas, muñeco, vigas, clavijas, ejes, etc.)
Programación Ascensor discapacitados
#include <LiquidCrystal.h>
#include <Servo.h>
Servo servo1; //Constructor de la sentencia servo1
Servo servo2;
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); //Definimos los pines de la tarjeta Arduino que controlan el LED
int v=1;
int servoA = 1; // Variable para ENVIAR datos al servo para cabina
int servoB = 2; //Variable para ENVIAR datos al servo para puerta
int trig = 13;
int echo = 12;
const int LED = 11; // variable constante de led activado con palmada
const int Microfono = 3; // variable constante del sensor de sonido
int grados; // Variable para guardar los grados de ángulo del servo.
int giro;
int tmp=0; // Variable temporal para usar en la condicional
int tmp2=0;
int pulsominimo=650; //Variable que define el ángulo menor del servo
int pulsomaximo=2550; //Variable que define el ángulo mayor del servo
int microfono=50;
float disCalculada;
void setup() {
pinMode(LED, OUTPUT);
pinMode(Microfono, INPUT); //sonido de entrada enciende la led, (palmada)
lcd.setCursor (4,1); //Definimos que se ubique en la posición 4 de la fila 1 en la pantalla
lcd.print ("ASCENSOR"); //Muestra la palabra ASCENSOR en la posición anterior
lcd.noBlink (); // Le indicamos al LED que no parpadee
delay (100);
//---------------------------------//
//Indicamos al servo motor el pin de entrada, angulo menor y angulo mayor.
servo1.attach (servoA, pulsominimo, pulsomaximo);
servo2.attach (servoB, microfono, LED);
//---------------------------------//
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
grados = servo1.read (); //Guarda en variable grados, el valor del ángulo de giro
giro = servo2.read ();
Serial.print ("Grados :"); //Mostramos la palabra grados.
Serial.println (grados); //Agrega el valor del ángulo.
delay (200); //Espera 2 milisegundos.
Serial.println ("---------------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
//---------------------------------------
while(digitalRead(Microfono)==LOW); // Bucle: hace lectura de sonido de sonidos una palmada enciende y otra apaga
digitalWrite(LED, !digitalRead(LED));
while(digitalRead(Microfono)==HIGH);
//---------------------------------------
if (disCalculada < 100) // Condicional Si...
{
tmp=100; //Variable temporal = 100
tmp2=180;
}
else
{
tmp=0;
tmp2=0;
//Caso contrario el valor de tmp=0
}
delay (10); //Esperar 10 milisegundos
servo1.write (tmp); //Gira los grados que están guardados en la variable temporal.
servo2.write (tmp);
lcd.setCursor (1,1); //Posición del cursor en fila 1 posición 1
lcd.print ("Distancia:"); //Mostramos la palabra distancia
lcd.println (disCalculada); //Mostramos el valor de la variable
}
int calcularDistancia ()
{
long distancia;
long duracion;
digitalWrite (trig, LOW);
digitalWrite (trig, HIGH);
delayMicroseconds (10);
digitalWrite (trig, LOW);
duracion = pulseIn (echo, HIGH);
duracion = duracion/2;
distancia = duracion/29;
return distancia;
}
Foto
Vídeo:


Comentarios
Publicar un comentario