lunes, 27 de noviembre de 2017

Proyecto Avance 4

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
GRUPAL - Proyecto Avance 4
Grupo: Christopher Acosta y Jerson Toledo                               Fecha: 24/11/17

Realizar la bitácora del día

Hoy trabajamos en lo que la profesora de Informática nos indicó la semana pasada. Como se puede observar en la imagen, se ha recubierto los circuitos con una caja de Pancacoa y ya no es necesario usar un cable USB para encender el juego, sino que solo se necesita una batería de 9V que va a ir conectada en los pines VIN del Arduino y un negativo del porotoboard.


En el siguiente video se puede observar como el juego funciona usando la batería de 9V. Lo único que faltaría por hacer sería poner leds para darle iluminación.


Hasta aquí llegamos, dejando el juego casi terminado listo para ponerlo en el parque de diversiones.

lunes, 20 de noviembre de 2017

Proyecto Avance 3

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
GRUPAL - Proyecto Avance 3
Grupo: Christopher Acosta y Jerson Toledo                               Fecha: 20/11/17

Realizar la bitácora del día

Hoy ensamblamos los elementos electrónicos en la base de nuestro juego del bus con brazos mecánicos.
La parte más complicada fue el brazo mecánico porque debía de aguantar el peso del bus.

El avance lo demuestra la imagen. Sin embargo hay cosas pendientes por hacer como poner leds, cubrir los circuitos con una caja para que no se vean y poner una batería de 9V para que no sea necesario usar un cable USB para potenciar la placa Arduino.


A continuación se demuestra un vídeo con el prototipo del movimiento del bus. La miss nos dijo que podemos hacer que el bus se mueva en diferentes porciones (poco movimiento y luego mucho). y que sea más fluido.


Todo esto fue lo que hicimos el día de hoy.

miércoles, 8 de noviembre de 2017

Proyecto Avance 2

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
GRUPAL - Proyecto Avance 2
Grupo: Christopher Acosta y Jerson Toledo                               Fecha: 07/11/17

Realizar la bitácora del día

Hoy realizamos la conexión de los circuitos para nuestro juego del bus con brazo mecánico y su respectiva programación. Decidimos usar el Servo Motor en vez del motor reductor debido a que el que teníamos no rotaba a diferentes velocidades.

Los materiales usados fueron:
  • Cables macho-macho
  • Cables macho-hembra
  • 1 Display LCD
  • 1 Servo Motor
  • 1 potenciómetro
  • 1 Teclado Arduino
  • 1 placa Arduino UNO con su cable USB
  • 1 protoboard
Los pasos a seguir fueron:

  1. Poner el potenciometro en el protobard y colocar cables a sus patas de poder (exteriores)
  2. Conectar los pines 5V y GND del Arduino al protoboard
  3. Conectar los pines del Display LCD al Arduino y protoboard. NO olvidar el que va a la pata media del potenciometro.
  4. Conectar el Teclado Arduino a los pines 5 al 12 del Arduino
  5. Conectar cables a los pines de poder del Servo Motor y el pin de señal al pin 13 del Arduino.
  6. Programar
  7. Regular el brillo del Display LCD con el potenciómetro.

La siguiente imagen demuestra la conexión de los circuitos:


A continuación se muestra la programación. Nosotros decidimos hacer que el bus solo gire 180º para no complicar demasiado los códigos:



Después de programar, lo probamos y si funcionó como se esperaba. Además el Display mostraba el nombre del juego y la tecla que era pulsada. Todo esto fue lo que pudimos avanzar en las dos horas clase del Martes.


martes, 24 de octubre de 2017

Motor reductor

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL - Motor reductor
Nombre: Christopher Acosta                               Fecha: 24/10/17

Contestar en el blog las preguntas 3 y 4 del moodle.

3. En base a lo observado, infiera acerca de la función del código.

La línea const int control = 9 ; indica en que pin está conectado el transitor (como la constante "control") a la placa Arduino. Este transitor amplificará el voltaje que recibirán el led y el motor reductor.

El siguiente void setup indica que el Arduino enviará señal a la constante "control" a través de uno de sus pines, por eso es OUTPUT:

void setup()
   {    pinMode(control,  OUTPUT) ; }

El void loop demuestra el rango del voltaje (o velocidad para el motor) que emitirá el transitor que será desde 0 hasta menos de 255 y luego vuelva a ser 0. Además, el analogWrite será la orden para enviar señal a "control" y éste se demorará 15 milisegundos en leerla.

void loop()
   {
        for ( int n = 0 ; n < 255 ; n++)
          {
              analogWrite (control,  n) ;
              delay(15) ;
          }

   }

4. ¿Para qué sirve el transistor NPN? 
El transistor NPN sirve como amplificador de voltaje.

5. Conecte el teclado para que al presionar A, B o C se pueda controlar diferentes velocidades.
Esta imagen indica la conexión física de los elementos electrónicos incluyendo un transistor. El cable de señal será conectado en el pin 13 del Arduino:

Luego, conectamos el Teclado Arduino en los pines 2 al 9 del Arduino.

Ahora en la programación, se debe incluir la librería Keypad, indicar el pin en que está conectado el transistor. Después, se le dará la variable "n" y luego se escribe el programa del Teclado, indicando en qué pines está conectado. En void setup se pondrá Serial.begin(9600); y  pinMode(control,OUTPUT);


Por otro lado en void loop, se pondrá el if para indicar las condiciones.cuando "pulsación" sea A, el motor vaya a una velocidad. Si es B, irá a otra y lo mismo con C. Se ejecuta la acción con analogWrite(control, n); (ver la siguiente imagen)


Este es un video del motor en movimiento. Lamentablemente en mi motor no se puede apreciar un cambio de velocidad.


martes, 17 de octubre de 2017

Servomotor + Teclado

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL - Servomotor + Teclado
Nombre: Christopher Acosta                               Fecha: 1710/17

Elaborar la bitácora en su blog. Recuerde incluir todo lo que se explicó en clase así como fotografías o videos. En caso de utilizar imágenes de Internet, recuerde poner la referencia (link).

Hoy realizamos una práctica que consistía en hacer que el Servo Motor gire su mariposa si es que hemos pulsado la tecla en el Teclado Arduino para hacer que la gire 90º,180º, etc. Además, la tecla que se haya pulsado se registrará en la pantalla del Display LCD.

Se usaron un motón de cables en la conexión y muchos pines del Arduino. Incluso fue necesario emplear algunos de los pines análogos de éste micro controlador. Por otro lado, se tuvo que fusionar programas Arduino para manejar todos estos elementos electrónicos.


Materiales que usé en ésta práctica:
  • 1 protoboard
  • 1 Servo motor
  • 1 Display LCD
  • 1 Teclado Arduino (con botones)
  • 1 potenciómetro
  • 1 placa Arduino UNO con su cable USB
  • 13 cables macho-macho
  • 12 cables macho-hembra
Pasos para la conexión física:
  1. Poner el protoboard.
  2. Poner el potenciómetro en el protoboard.
  3. Conectar la pata izquierda del potenciómetro a un positivo del protoboard y la derecha a un negativo del protoboard.
  4. Poner la placa Arduino UNO.
  5. Conectar el Teclado Arduino a los pines del 5 al 12 del Arduino.(de derecha a izquierda)
  6. Colocar un cable desde un pin 5V del Arduino a un pin positivo del protoboard.
  7. Unir con un cable los pines GND del Arduino y un negativo del protoboard.
  8. Poner el Display LCD.
  9. Conectar los cables de poder del LCD al protoboard (pin 16 a negativo y pin 15 a positivo)
  10. Colocar un cable entre los pines D7 del LCD y 4 del Arduino.
  11. Conectar un cable a los pines D6 del LCD y 3 del Arduino.
  12. Colocar un cable entre los pines D5 del LCD y 2 del Arduino.
  13. Unir con un cable los pines D4 del LCD con el pin A2 (16) del Arduino.
  14. Conectar un cable a los pines E del LCD con el pin A1 (15) del Arduino.
  15. Colocar un cable entre los pines RW del LCD y un negativo del protoboard.
  16. Unir con un cable los pines RS del LCD con el pin A0 (14) del Arduino.
  17. Conectar un cable a los pines VC del LCD con el pata media del potenciómetro.
  18. Colocar un cable entre los pines VDD del LCD y un positivo del protoboard.
  19. Unir con un cable los pines VSS del LCD con un negativo del protoboard.
  20. Poner el Servo Motor.
  21. Conectar los cables de poder del Servo al protoboard en sus correspondientes pines y el de señal al pin A3 (17) del Arduino.

Pasos para la programación en el software Arduino:
  1. Descargar los archivos PRUEBAlcd.ino y PruebaTeclado.ino del moodle y abrirlos.
  2. En un solo archivo incluir las librerias Keypad (Teclado), LiquidCrystal (Display LCD) y Servo (Servo Motor)
  3. Modificar la línea LiquidCrystal lcd(14, 15, 16, 2, 3, 4); //    ( RS, EN, d4, d5, d6, d7) a los pines que esté conectado el Display LCD al Arduino.
  4. Modificar las líneas a los pines que esté conectado el Teclado al Arduino:                                    byte Pins_Filas[] = {12, 11, 10, 9}; //Pines Arduino a los que contamos las filas.              byte Pins_Cols[] = { 8, 7, 6, 5}; // Pines Arduino a los que contamos las columnas.
  5. Agregar las siguientes líneas antes del void setup:                                                              Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);      Servo myservo;  // create servo object to control a servo                                                              // twelve servo objects can be created on most boards                                                                    int pos = 0;    // variable to store the servo position
  6. La siguiente línea debe indicar en que pin está conectado el cable de señal del Servo Motor al Arduino: myservo.attach(17)
  7. Estas líneas harán rotar la mariposa del Servo Motor si se presiona cierto botón del Teclado Arduino:                                                                                                               if(pulsacion=='A')                                                                                                            {pos=90;}                                                                                                            if(pulsacion=='B')                                                                          {pos=180;}myservo.write(pos);              // tell servo to go to position in variable 'pos'      delay(2000);                                                 // waits 2s for the servo to reach the position            pos=0;




Resultado: Cuando pulsemos el botón A, el Servo giraré en 90º y el Display LCD mostrará en su pantalla esa letra. Por otro lado si se pulsa el botón B, éste girará en 90º y se graficará esa letra en el LCD. Cabe recalcar que cada pulsación se la debe hacer cada 2 segundos para que el Arduino la reconozca. Por último, si se pulsa otro botón que no sea A o B, él Servo Motor se regresará a su posición inicial.

martes, 3 de octubre de 2017

TECLADO + Arduino

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL #1 - Teclado + Arduino
Nombre: Christopher Acosta                               Fecha: 03/10/17

Elaborar la bitácora en su blog. Recuerde incluir todo lo que se explicó en clase así como fotografías o videos. En caso de utilizar imágenes de Internet, recuerde poner la referencia (link).

Hoy utilizamos el Teclado Arduino 4x4. En la clase de hoy pude observar que existen dos tipos de teclado para Arduino. Uno de ellos es con botones (imagen) y el otro es táctil. Es importante reconocerlos ya que su conexión es un poco diferente.

Pasos de conexión
  1. Poner un cable desde el pin 2 del Arduino hasta el hueco más a la derecha de los cables del Teclado.
  2. Colocar un cable desde el pin 3 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  3. Unir con un cable desde el pin 4 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  4. Poner un cable desde el pin 5 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  5. Colocar un cable desde el pin 6 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  6. Unir con un cable desde el pin 7 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  7. Poner un cable desde el pin 8 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  8. Colocar un cable desde el pin 9 del Arduino hasta el hueco de la izquierda del anterior del Teclado.

Como se puede apreciar, la conexión es muy fácil. Ahora viene la programación, la cual es la siguiente:

     #include <Keypad.h>            // Prog_19_1
     const byte Filas = 4;          //Cuatro filas
     const byte Cols = 4;           //Cuatro columnas

     byte Pins_Filas[] = {9, 8, 7, 6};     //Pines Arduino para las filas
     byte Pins_Cols[] = { 5, 4, 3, 2};     // Pines Arduinopara las columnas
     char Teclas [ Filas ][ Cols ] =
          {
              {'1','2','3','A'},
              {'4','5','6','B'},
              {'7','8','9','C'},
              {'*','0','#','D'}
          };
     Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
 
     void setup()
        {             Serial.begin(9600) ; }

     void loop()
        {       char pulsacion = Teclado1.getKey() ;
                if (pulsacion != 0)              // Si el valor es 0 es que no se
                    Serial.println(pulsacion);   // se ha pulsado ninguna tecla
        }
En este código es necesario usar la librería ""Keypad" para no tener problemas al momento de compilarlo. Este código define las columnas y filas del Teclado, los pines que leerán estas columnas y filas, los caracteres en cada columna y fila y que registre las pulsaciones que hagamos con caracteres en la pantalla de Monitor Serie.

Por otro lado, también se puede hacer que los caracteres se agrupen formando una cadena. Para hacer este efecto es necesario escribir String cadena=""; antes de void setup y cadena=cadena+pulsación; entre llaves del void loop (abriendo unas nuevas incluyendo esta línea y Serial.prinln(cadena); y ya no pulsación)


Ahora presento un breve video del funcionamiento del Teclado con el programa Arduino:


Por último, también se pueden crear contraseñas usando el Teclado. Para ello debemos de editar las siguientes líneas:
  1. Debajo de Serial.prinln(cadena); hay que escribir if(pulsacion=='#')
  2. Debajo de esa línea creada el paso 1 se abre llave y dentro de ella se digita if(cadena=='"1234#") y debajo Serial,println("Bienvenido!"); De esta forma definimos la contraseña y el mensaje que aparecerá si la escribimos correctamente en el Teclado. Ojo, es necesario poner el numeral al final de la contraseña para que funcione. Además las "" se usan para cadenas de caracteres y las '' para 1 solo caracter.
  3. Y si queremos que diga algo cuando la contraseña no esté bien escrita, hacemos lo siguiente: Debajo de las lineas creadas en el paso 2 se pone else y debajo Serial.println("Intruso!!!");
  4. Después de realizar los pasos 2 y 3 se cierra llave y se sube el programa al Arduino.
Como se ve en la imagen, apareció el mensaje de "Bienvenido!" porque escribí correctamente la contraseña, pero si me hubiera equivocado, hubiera aparecido el mensaje de "Intruso!!!".


lunes, 11 de septiembre de 2017

Bitácora Display LCD

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL #1 - Display LCD + Arduino
Nombre: Christopher Acosta                               Fecha: 11/09/17

Elaborar la bitácora en su blog. Recuerde incluir todo lo que se explicó en clase así como fotografías o videos. En caso de utilizar imágenes de Internet, recuerde poner la referencia (link).

Hoy trabajamos con un nuevo artefacto llamado "Display LCD". Este dispositivo funciona con el Arduino y sirve para mostrar palabras, números y signos en su pantalla. Se lo puede ver en juegos de Arcade. Su conexión es larga (como se observa en la siguiente imagen) pero no complicada.


Los pasos para realizarla son:
  1. Poner el protoboard
  2. Conectar el Arduino al protoboard con un cable desde 5V hasta un positivo, y un cable desde GND hasta un negativo. 
  3. Poner el Display LCD en el protoboard, asegurándose que sus pines estén bien soldados para que no haya pines flojos.
  4. Unir un cable desde el pin 16 del LCD hasta un negativo del protoboard.
  5. Colocar un cable desde el pin 15 del LCD hasta un positivo del protoboard.
  6. Poner un cable desde el pin D7 del LCD hasta el pin 12 del Arduino.
  7. Unir con un cable el pin D6 del LCD hasta el pin 11 del Arduino.
  8. Colocar un cable el pin D5 del LCD hasta el pin 10 del Arduino.
  9. Poner un cable el pin D4 del LCD hasta el pin 9 del Arduino.
  10. Unir con un cable el pin E del LCD hasta el pin 8 del Arduino.
  11. Colocar un cable el pin RW del LCD hasta un negativo del protoboard.
  12. Poner con un cable el pin RS del LCD hasta el pin 7 del Arduino.
  13. Colocar un potenciómetro en el protoboard.
  14. Poner un cable desde la pata izquierda del potenciómetro hasta un positivo del protoboard y un cable desde la pata derecha del potenciómetro hasta un negativo del protoboard
  15. Unir con un cable el pin VC del LCD hasta la pata media del potenciómetro.
  16. Unir con un cable el pin VDD del LCD hasta un positivo del protoboard.
  17. Unir con un cable el pin VSS del LCD hasta un negativo del protoboard.

Una vez conectado todos cables, se carga el programa (de la imagen) al Arduino, se debe mover la perilla del potenciómetro al máximo y debe funcionar el LCD como en la segunda imagen y en el video.





Luego, para hacer el siguiente efecto, se debe modificar el programa en las partes lcd.print("  Christopher"); // Enviar el mensaje, cambiando el mensaje de "Hola mundo =)" a mi nombre que estará centrado y las siguiente lineas:

lcd.setCursor(7, 1);  // set the cursor to column 0, line 1
lcd.print("=)");  // print the number of seconds since reset:

Estos cambios harán que la carita feliz esté centrada en la fila inferior:




La siguiente codificación permitirá realizar una carita feliz vertical. Estos códigos transforman la pantalla del LCD en un sistema binario en el que podemos indicar que cuadritos del LCD queremos que se enciendan con 1 y los que no con 0.

CODIGO PARA SIMBOLO CORAZON
//ESTO VA ANTES DE SETUP
byte heart[8] =
 {
    0b01010,     // Los definimos como binarios 0bxxxxxxx
    0b11111,
    0b11111,
    0b01110,
    0b00100,
    0b00000,
    0b00000,
    0b00000
 };

//ESTO VA ENTRE LAS LLAVES DE SETUP
lcd.createChar(1, heart);

//ESTO VA ENTRE LAS LLAVES DE LOOP
lcd.setCursor(5,1);
lcd.write(1);