martes, 7 de noviembre de 2017

PRÁCTICA DIRIGIDA 2


Pràctica dirigida2

En esta pràctica dirigida se hace ejercicios para realizar un circuito con sensor de botòn, en la protoboard, donde este controla el encendido y apagado de neopixeles. 

Programa del ejercicio.



#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>
// Se crea la variable contador
int contador = 0;
void setup()
{
  pinMode(A9, INPUT);
  CircuitPlayground.begin();
}
void loop()
{
  int val = map(analogRead(A9), 0, 1023, 0, 255);
  contador = (contador + 1) % 10;
  CircuitPlayground.setPixelColor(contador, CircuitPlayground.colorWheel(val));
  delay(2000);
}

Video pràctica dirigida2





RETO

Realizar un proyecto con un circuito que tenga sensor de contacto para controlar el encendido y apagado de neopixeles.

Esta es la programación realizada.


#include <Adafruit_CircuitPlayground.h>  
#include <Adafruit_Circuit_Playground.h>
//Primero declaro las variables
int interruptor=0;  
int enciende=0;    
int iluminar=0;          
//Inicio la tarjeta con el pin 9 como entrada de datos
void setup()
{
  pinMode (A9, INPUT);
  CircuitPlayground.begin();
}
//Ilumino los 10 neopixeles 
void loop() 
{
  iluminar = (iluminar+1)%10;
  interruptor=digitalRead(A9);
  
//Asigna y compara si el interruptor està en 1 y enciende en 0 para que encienda
  if (interruptor==1 && enciende==0)
  {
    enciende=1;
    delay(300);
  }
  //Sino vuelve a comparar y apaga
  else  if (interruptor==1 && enciende==1)
  {
    enciende=0;
    delay(300);
  }
  encender();  
}
//Se crea un mètodo para encender y comparar si enciende la tarjeta cambia de colores los neopixeles de color rojo, azules y tonos violetas y sino limpia los neopixeles.
void encender()  
{
  if (enciende==1)
  {
    //
      CircuitPlayground.setPixelColor(iluminar, 255, 0, random (255));  
      delay(100);
  }
  else
  {
     CircuitPlayground.clearPixels();
  }
}
VIDEO EXPLICATIVO




PROYECTO FINAL




Inspiración
  


Contempla los momentos: Empatía, Definición e Idear. 


Empatía


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. 

Con base a lo anterior completa lo siguiente:

1-¿Cómo afecta el problema la vida de la persona que lo sufre? Describa una situación ejemplo.

Problema: Persona con ceguera parcial, la idea, es entender a la otra persona para comprender su necesidad, sin juzgarlo.


La persona que sufre este problema se afecta en su vida personal ya que no puede ver y se limita su quehacer diario.



Ejemplo: Una persona que tiene una enfermedad y puede tener ceguera parcial.



2-¿Qué otras situaciones podrían ser causadas por el problema?



Le cuesta pasar de un lugar a otro, salir adelante en sus estudios, puede sufrir de depresión.



3¿Qué opinan otras personas sobre ese problema?



Otras personas podrían opinar que a esta persona se le puede ayudar, siendo empático y poniéndose en el lugar de la persona, para mejorar la calidad de vida, con algo que le ayude.



Definición


Recuperar la información relevante del problema. Establecer los datos que serían relevantes para proponer varias soluciones.
Considerando lo anterior responda:

1- ¿Cuáles son las causas del problema?     
  • Accidentes o lesiones a la superficie del ojo 
  • Retinopatía diabética
  • Génetico
  • Glaucoma
  • Degeneración macular
·            
2- ¿Cuáles son las consecuencias del problema?

Pérdida de visión 
La ceguera puede repercutir en el estudio si no se estimula adecuadamente al paciente, por lo que es importante proporcionar los instrumentos adecuados como el braille, para la lectura o con la ayuda de dispositivos tales como bastones para ayudar a estos problemas.

3- ¿Por qué es un problema importante a resolver?

Es un problema importante a resolver para que la persona con esta dificultad se desenvuelva adecuadamente en lo cotidiano y pueda llevar  una vida lo más normal posible.


Idear

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:

1- ¿Cuáles podrían ser soluciones al problema que se desea solucionar? 
Algunas soluciones son: Elaborar puertas inteligentes con sensores de proximidad.
Un bastón que tenga un sensor de sonido


2- Exponga las que desee, un mínimo de 2.
a-Elaborar un bastón inteligente
b-Puertas que se abran y se cierren con el sonido de la voz del ciego.

Fuentes consultadas sobre el problema a resolver. Escriba al menos dos fuentes en formato APA.

·     Calderón, C. (2015) 5 beneficios de la empatía en el trabajo. España


Reviewed, L. (2016) La Retinopatía Diabética. EEUU.
         Recuperado de: https://nei.nih.gov/health/espanol/retinopatia.

·   Recuerde enviar el URL de la plantilla Inspiración, publicada en el espacio de Proyecto Final del Álbum de Aprendizaje y en el casillero de la Unidad 1 habilitado para ello.






Fase 2



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?


Al inicio como solución plantee elaborar puertas inteligentes con sensores de proximidad o un bastón que tenga un sensor de sonido, todo para una persona ciega, pero como no tengo conocimiento para utilizar un actuador de movimiento o un motor, para las puertas inteligentes, replanteo la solución en el bastón para el ciego con el sensor de botón y el potenciómetro para que ambos avisen a las personas que están cerca del ciego y se aparten de su lado, de igual manera se usará actuadores como el neopixel y el piezo para que al presionar el botón suene una alarma y al girar el potenciómetro los neopixeles cambien de color y avisen a las personas de la presencia del ciego.

1. Tomando en cuenta lo que implica evaluar, complete la siguiente tabla:


Descripción del problema en el prototipo
Solución desarrollada
1. La protoboard y la Circuit playground son muy grandes para el prototipo a desarrollar.

Simular un bastón de cartón grande donde se pueda incrustar la protoboard y la Circuit playground.
2. Coloqué mal los cables por ser dos sensores.

Con mucha calma los solté y los volví a colocar.
3. Realicé un agujero en el cartón para poder visualizar los sensores, pero se pasaba de lado.
Colocar cinta de doble pegue y se solucionó la dificultad.

2. Escriba algunas conclusiones obtenidas de aprendizaje logradas a través del desarrollo del prototipo interactivo.

a. Al realizar el boceto del prototipo interactivo es más fácil organizar las ideas y representar en la mente lo que se desea crear.

b. Realizar la programación y conexión de los dispositivos, es todo un reto de aprendizaje.


3. Escriba algunas fuentes de apoyo utilizadas para desarrollar el proyecto final.

a. Adufruit Industries, (s.f) https://cdn-learn.adafruit.com/downloads/pdf/introducing-circuit-playground.pdf recuperado 27/11/17

b. Alarcón, A. (2013) Nuevo bastón inteligente ayuda a los ciegos a evitar obstáculos. México
http://www.tendencias21.net/Nuevo-baston-inteligente-ayuda-a-los-ciegos-a-evitar-obstaculos_a20626.html

recuperados: 27/11/17

PROGRAMA DEL PROYECTO FINAL


#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>
void setup()
{
  // Se configura el pin especificado.
  pinMode(A9, INPUT); //El pin A9 es el nùmero 9
  pinMode(A7, INPUT); //El pin A6 es el nùmero 7
  CircuitPlayground.begin();
}
void loop()
{
  //se crean las variables
  int color = map(analogRead(A9), 0, 1023, 0, 255); //color que mapea el pin 9
  int botonBaston = digitalRead(A7); //botonBaston que lee el pin 6 de la CircuitPlayground
  for (int luzBaston = 0; luzBaston < 10; luzBaston++) //Se declara la variable en un
    procedimiento (inicia en cero; si es menor a diez; incrementa màs y màs)
  {
    {
      CircuitPlayground.setPixelColor(luzBaston, CircuitPlayground.colorWheel(color));
    }
    // Se compara la variable botonBaston y si el sensor està presionado el parlante realiza
    un sonido.
    if (botonBaston == 1)
    {
      CircuitPlayground.playTone(1000, 100);
    }
  }
}



PRÁCTICA DIRIGIDA 1


En la pràctica dirigida1 se hacen ejercicios para programar la tarjeta CircuitPlayground, se programan sensores, tales como el de sonido, luz, temperatura, botones e interruptor. Se incluyen videos y prograciòn, tanto de las pràcticas como del reto.



Se programa la tarjeta para que realice un tono de sonido y se encienda un neopixel.

#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>

void setup() 
{
CircuitPlayground.begin();
Serial.begin(9600);
}

void loop() 
{
CircuitPlayground.setPixelColor(0,255,0,255);
CircuitPlayground.playTone(0,0,1);
delay(1000);
}
VIDEO PIXELES Y TONO


Programa para los sensores


#include <Adafruit_CircuitPlayground.h>
void setup()

{

   Serial.begin(9600);

}

void loop()

{

  //sensor_botones_contacto();

  //sensor_interruptor();

  //sensor_luz();

  //sensor_sonido();

  sensor_temperatura();

}
void sensor_botones_contacto()
{
  int valor_botonderecho=CircuitPlayground.rightButton();
  int valor_botonizquierdo=CircuitPlayground.leftButton();
  Serial.print("Valor del boton derecho: ");
  delay(500);
  Serial.println(valor_botonderecho);
  delay(500);
  Serial.print("Valor del botón izquierdo:");
  delay(500);
  Serial.println(valor_botonizquierdo);
  delay(500);
}  
/////Procedimiento para interruptor
void sensor_interruptor()
{
  int valor_interruptor = CircuitPlayground.slideSwitch ();
  if (valor_interruptor =0)
   {
      Serial.print ("Posición del interruptor: derecho");
      Serial.println();
      delay(500);
   }
   else
   {
      Serial.print("Posición del interruptor: izquierdo");
      Serial.println();
      delay(500);
   }    
}
/// Procedimiento para sensor de luz
void sensor_luz()
{
   int valor_luz=CircuitPlayground.lightSensor();
   Serial.print ("Valor detectado de luz: ");
   Serial.println(valor_luz);
   delay(500);
}
///Procedimiento para sensor de sonido
void sensor_sonido()
{
   int valor_sonido=CircuitPlayground.soundSensor();
   Serial.print("Valor detectado de sonido: ");
   Serial.println(valor_sonido);
   delay(500);
}
///Procediiento para sensor de temperatura
void sensor_temperatura()
{
  int valor_temperatura=CircuitPlayground.temperature();
  Serial.print("Valor detectado de temperatura: ");
  Serial.println (valor_temperatura);
  delay(500);
}
VIDEO SENSORES CONTACTO, INTERRUPTOR, LUZ,
SONIDO Y TEMPERATURA


RETO 1


#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>
void setup() 
{
  Serial.begin(9600);
  CircuitPlayground.begin();
}
void loop() 
{
 reto1();
}
//// procedimiento reto1
void reto1()
{
  int inclina=CircuitPlayground.motionY();
  Serial.print("inclina:");
  Serial.println(inclina);
  delay(1000);
  if (inclina>1)
  {
 CircuitPlayground.setPixelColor(9,0,250,0);
    delay(1500);
  }
  else
  {
CircuitPlayground.clearPixels();
    delay(1000);
  }
}


Problemas tècnicos

Qué situaciones técnicas y de programación tuviste que resolver para completar la práctica dirigida 1?
Esto de programar Arduino es todo un reto, al inicio con la primera práctica me daba error todo, porque anoté todo en minúscula y dejé un espacio, pero ya corrigiendo lo antes señalado (sintaxis), compilé sin dificultad, claro al inicio se me olvidó buscar el puerto y buscar la tarjeta correspondiente, por eso es importante iniciar con las herramientas adecuadas.
Ese ruido de la tarjeta me aturdía y como el video decía que si se colocaba 1 en el wait se detenía así lo hice y me funcionó.

PRÁCTICA DIRIGIDA 2

Pràctica dirigida2 En esta pràctica dirigida se hace ejercicios para realizar un circuito con sensor de botòn, en la protoboard, d...