viernes, 1 de julio de 2022

robotica

 

El niño robot

 le dijo a la abuela

que le diera cuerda

para ir a la escuela.

 

La abuela le dijo

que estuviera quieto,

la cuerda le daba

cosquillas al nieto.

 

La abuela robot

antes que se fuera

le puso aceitito

con una aceitera.

 

Le besó la frente

de acero pulido,

le peinó los rizos

de alambre torcido.

 

Se fue caminando

con paso marcial

derecho a la escuela

alegre y formal,

 

Llevando en el pecho

de terso metal

una maquinita que decía:

Robótica, allá voy.




jueves, 1 de marzo de 2018

PRACTICA DIRIGIDA 2


Práctica dirigida 2 "Puerta automática" 

Prototipo para activar puertas automáticas

Con la práctica dirigida #2  aprendí a programar otros  sensores y actuadores incluidos en Arduino.
Se programan sensores como el ultrasónico, con su entrada y salida de datos para captar el sonido como lo hacen los murciélagos, una pantalla  que envía información que recibe según la distancia del sensor ultrasónico, proyectándola en la LCD y el piezo que emite sonidos de acuerdo al tono programado y cuando detecta la presencia de algo a menos de 100 cm.

Programa de la práctica dirigida2

#include <LiquidCrystal.h> //Se incluyen las librerias para la lcd y el motor
#include <Servo.h>
Servo servo1; 
LiquidCrystal lcd(8,9,4,5,6,7);

//Se crean Las variables para los sensores y actuadores
int v=-1;
int puertoservo =3;
int trig = 13;
int echo = 12;
int piezo = 2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2550;
float disCalculada;
//Se inicia el programa
void setup() 
{
  lcd.setCursor(4,1);
  lcd.print("PRONIE");
  lcd.noBlink();
  delay(2000);
  
  servo1.attach (puertoservo,pulsominimo,pulsomaximo);
  
  pinMode (trig, OUTPUT);
  pinMode (echo, INPUT);
  pinMode (piezo, OUTPUT);
  Serial.begin (9600);
}

void loop()
{
  disCalculada = calcularDistancia();
  grados=servo1.read();
  Serial.println("Grados :");
  Serial.println(grados);
  delay (200);
  Serial.println("-----------");
  Serial.print ("cm :");
  Serial.println(disCalculada);
  delay (200);
  if (disCalculada < 100)
  {
    tmp=100;
    tone (piezo, 200, 200);
  }
    else
    {
     tmp=0;   
  }
 delay (10);
 servo1.write (tmp);
 lcd.setCursor(1,1);
 lcd.print("Distancia");
 lcd.println(disCalculada);
}
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;
}

VIDEO DE LA PRÁCTICA DIRIGIDA 2



Reto Puerta automática con música al abrir

Con este reto, se cambia el tono generado por el piezo y se incluyen otros tonos para poder escuchar música o melodías mientras la puerta automática se abre, además se enciende un led, mientras la música suena.

Programa para el reto

#include <LiquidCrystal.h> //Se incluyen las librerías para la lcd y el motor
#include <Servo.h>
Servo servo1;
LiquidCrystal lcd(8,9,4,5,6,7);

//Se declaran las variables
int pinRojo = 11;
int v=-1;
int puertoservo =3;
int trig = 13;
int echo = 12;
int piezo = 2;
int grados;
int pulsominimo=650;
int pulsomaximo=2550;
float disCalculada;

//Se realizan las variables para las notas musicales
int c[5]={131,262,523,1046,2093};       // frecuencias 4 octavas de Do
int cs[5]={139,277,554,1108,2217};      // Do#
int d[5]={147,294,587,1175,2349};       // Re
int ds[5]={156,311,622,1244,2489};    // Re#
int e[5]={165,330,659,1319,2637};      // Mi
int f[5]={175,349,698,1397,2794};       // Fa
int fs[5]={185,370,740,1480,2960};     // Fa#
int g[5]={196,392,784,1568,3136};     // Sol
int gs[5]={208,415,831,1661,3322};   // Sol#
int a[5]={220,440,880,1760,3520};      // La
int as[5]={233,466,932,1866,3729};    // La#
int b[5]={247,494,988,1976,3951};      // Si

void nota(int a, int b);            // Se declara una función auxiliar para recibir números enteros

void setup() 
{
  lcd.setCursor(4,1);
  lcd.print("PUERTA-UPSGB");
  lcd.noBlink();
  delay(2000);
  
  servo1.attach (puertoservo,pulsominimo,pulsomaximo);
  
  pinMode(pinRojo, OUTPUT);
  pinMode (trig, OUTPUT);
  pinMode (echo, INPUT);
  pinMode (piezo, OUTPUT);
  Serial.begin (9600);
}

void nota(int frec, int t) //se crea metodo para la nota
{
    digitalWrite(pinRojo, HIGH); // Se enciende el led rojo
    tone(piezo,frec);      // suena la nota frec recibida
    delay(t);                // para despues de un tiempo t
}

void silencio(int t)     //se crea metodo para el tiempo
{
  digitalWrite(pinRojo, LOW); //se apaga el led
  noTone(piezo);
  delay(t);
}

void loop()
{
  disCalculada = calcularDistancia();
  grados=servo1.read();
  Serial.println("Grados :");
  Serial.println(grados);
  Serial.println("-----------");
  Serial.print ("cm :");
  Serial.println(disCalculada);
  lcd.setCursor(1,1);
  lcd.print("Distancia");
  lcd.println(disCalculada);

 //Si el sensor ultrasónico capta distancia menor a 100 el motor gira 90 grados y suena la melodía
  if (disCalculada < 100)
  {    
    servo1.write (90);
    
//Se colocan las notas musicales para la melodía: entre dos aguas.
   
    nota(a[1],400);silencio(400);
    nota(e[1],400);silencio(400);
    nota(a[1],400);silencio(200);
    nota(e[1],200);silencio(200);
    nota(a[1],200);silencio(200);
    nota(as[1],100);silencio(100);
    nota(b[1],400);silencio(400);
    nota(fs[1],400);silencio(400);
    nota(b[1],400);silencio(200);
    nota(fs[1],200);silencio(200);
    nota(b[1],200);silencio(200);
    nota(as[1],100);silencio(100);
    nota(a[1],400);silencio(400);
    nota(e[1],400);silencio(400);
    nota(a[1],400);silencio(400); 
    
    // Sino el led rojo queda apagado y el motor regresa a 0 grados
  }
    else
    {
         digitalWrite (pinRojo, LOW);
         servo1.write (0);   
  }
  delay (1000); ////*****con 500 no se detiene 
}

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;
}


VIDEO DEL reto


Problemas técnicos durante el desarrollo de la práctica 
dirigida o el reto, y las soluciones.


Cuando estaba realizando la práctica dirigida 2, paso a paso, no me funcionaba el segundo programa, pero era porque lo metí dentro del setup, al separarlo, ya funcionó correctamente.

En el reto no encontré la libraría para poder descargar las notas, lo que hice fue buscar otros ejemplos en internet y así pude lograr el reto sin la librería.






lunes, 19 de febrero de 2018

PROYECTO FINAL


Inspiración


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: Mucho calor en el laboratorio cuando no hay electricidad, o el aire acondicionado está dañado, los estudiantes se sienten sofocados, las laptops se pueden dañar.


Cuando no hay corriente eléctrica, el aire acondicionado no funciona, aunado con el calor que generan las laptops, el lugar se sobrecalienta, las personas se sienten con mucho calor y agotamiento.


Al sobrecalentarse el lugar las laptops pueden perder información o datos importantes.




Ejemplo: Una estudiante que se desmaya del calor durante las lecciones de informática.



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


Cuando se da un calor extremo, el estudiante se puede descompensar, distraer o irritarse durante las demostraciones o la ejecusion de un proyecto.

Las máquinas pueden sufrir daños en el disco duro.


3-¿Qué opinan otras personas sobre ese problema?


Otras personas como los padres de familia se molestarían si no se busca una solución immediata, además podrían colaborar buscando ventiladores, siendo empáticos para buscar una solución a la dificultad del calor, con algo que ayude a resolverlo.

                                              
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?     
  • Falta de corriente eléctrica
  • Aire acondicionado dañado 
  • Sobrecalentamiento por parte de las laptops
  • Falta de ventiladores
·            
2- ¿Cuáles son las consecuencias del problema?


  • Agotamiento de los estudiantes
  • Falta de concentración
  • Desmayos
  • Pérdida de datos en las laptops
  • Averías en los discos duros de las laptops


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

Es un problema importante a resolver para que los estudiantes durante la lecciones de informática se sientan tranquilos, con una buena ventilación y no se agoten por tanto calor.

En cuanto al sobrecalentamiento de las laptops, es un problema que se da cuando no hay aire acondicionado, por lo que realizar abanicos para cada laptop ayudaría a que no se pierda la información y así no se dañen los discos duros.



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 ventiladores para refescar el ambiente
  • Realizar proyectos con abanicos para colocar debajo de las laptops

2- Exponga las que desee, un mínimo de 2.
  • Elaborar ventiladores con los estudiantes, usando arduino con  actuadores como un servomotor y lets de colores, sensor de temperatura y sonido
  • Realizar proyectos con abanicos y arduinos  que emitan sonido  y movimiento y sensor de luz y sonido para colocarlos debajo de las laptops.

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
                  Recuperado de: https://orientacion-laboral.infojobs.net/empatia-trabajo



Morrison. H, (2016) El calor excesivo en la computadora. República Dominicana
    Recuperado de: http://www.audienciaelectronica.net/2010/09/el-calor-excesivo-en-la-computadora-provoca-perdida-de-datos/


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?

Plantee como problema elaborar abanicos o ventiladores para las computadoras con un sensor de temperatura, pero como no se ha visto en el curso lo cambiaré por sensor de toque, replanteo la solución que cuando esté muy caliente el laboratorio se toque el botón para activar los abanicos y cuando ya esté normal  tocar el botón para que se apague y  un sensor de luz o LDR simulando un sensor de temperatura para que se enciendan automáticamente los ventiladores,  se usarán actuadores como el piezo y el servomotor.




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


Descripción del problema en el prototipo
Solución desarrollada
1. NO tengo conocimiento para utilizar el sensor de temperatura

Lo cambio por el LDR, simulando que es de temperatura.
2. Coloqué mal los cables y errores de sintaxis.

Con mucha calma los solté y los volví a colocar, revisé el error y eran ;
3. El servomotor no me funcionó para dar muchas vueltas por lo que lo cambié por el motor y buscar en internet su conexión
De acuerdo a lo buscado en internet, agregué un transistor para que me funcionara.


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. Arduino Industries, (s.f)  https://www.arduino.cc/en/Tutorial/TransistorMotorControl recuperado 7/3/18

b. Morrison. H, (2016) El calor excesivo en la computadora. República Dominicana
    Recuperado de: http://www.audienciaelectronica.net/2010/09/el-calor-excesivo-en-la-computadora-provoca-perdida-de-datos/ recuperado 7/3/18





PROGRAMA DEL PROYECTO FINAL

//Se crean las variables del piezo, fotosensor, boton y ventilador

int piezo = 6;
int fotosensor = 0;
int boton = 2;
int ventilador = 3;

// Se declara una variable para el estado del boton y el sensor LDR
int botonEstado;
int fotosensorEstado;

// Se realiza una variable boleana que tiene dos valores, falso o verdadero
bool ventiladorEncendido = false;

// Se programan los pines de entrada o salida 
void setup() 
{
  pinMode(ventilador, OUTPUT);
  pinMode(piezo, OUTPUT);
  pinMode(fotosensor, INPUT);
  pinMode(boton, INPUT);
  Serial.begin (9600);

  pinMode(13, OUTPUT);
}

void loop() 
  //Lee el estado del boton y el LDR
  botonEstado = digitalRead (boton);
  fotosensorEstado = analogRead (fotosensor);

  //Imprime el estado del boton y el LDR
  Serial.print("Boton: ");
  Serial.println(botonEstado);
  Serial.println();
  Serial.print("Fotosensor: ");
  Serial.println(fotosensorEstado);

//Se condiciona para que el si el boton esta presionado se encienda  y se vuelve a presionar se apague 
  if (botonEstado == HIGH)
  {
    ventiladorEncendido = !ventiladorEncendido; 
  }
//Si el LDR esta mayor a 200 de claridad suene el piezo y el ventilador se encienda automaticamente, 
//simulando un sensor de temperatura.
  if (fotosensorEstado > 200)
  {
    tone(piezo,600,200);
    ventiladorEncendido = true;
  }
  
  Serial.print("Ventilador: ");
  Serial.println(ventiladorEncendido);
  
  if (ventiladorEncendido)
  {
    digitalWrite(13,HIGH);
    digitalWrite(ventilador,HIGH);
  }
  else 
  {
    digitalWrite(13,LOW);
    digitalWrite(ventilador,LOW);
  }
    delay (200);

 }

VIDEO DEL PROYECTO FINAL



PRÁCTICA DIRIGIDA 1


Con este video se muestra la práctica dirigida1, se realiza la simulación de un sistema de alarma con actuadores que encienden dos leds, uno rojo y uno azul, emite un sonido mediante un pieso, mientras los lets se encienden y apagan, al presionar el sensor de contacto  o botón apaga todo mientras este se presiona.




PROGRAMA


Solución del reto 1 

Con este reto se controla un sistema de alarma, mediante un sensor LDR o fotosensor,  la alarma suena mediante actuadores como el let y el pieso, simula que cuando se detecta movimiento se apaga con una fotocelda, que seria el sensor.


Programa del reto1



Problemas técnicos enfrentados y la solución a cada problema:

Error de sintaxis que el programa muestra, por falta de algún punto y coma o falta de algún paréntesis, la solución es corregir y estar pendiente de la ortografía del código.

Conexiones electrónicas en un lugar que no es el indicado o no cierra el circuito para que funcione el prototipo, se solucionó al buscar ayuda con otros compañeros o cambiando los cables de lugar.
















robotica

  El niño robot  le dijo a la abuela que le diera cuerda para ir a la escuela.   La abuela le dijo que estuviera quieto, la cu...