viernes, 30 de noviembre de 2018

LABORATORIO NRO 8

MÚSICA CON ARDUINO

1. CAPACIDAD TERMINAL

  • Identificar las aplicaciones de la Electrónica Digital.
  • Describir el funcionamiento de las unidades y dispositivos de almacenamiento de información.
  • Implementar circuitos de lógica combinacional y secuencial.

2. COMPETENCIA ESPECIFICA DE LA SESIÓN

  • Programación de Tonos musicales.
  • Creación de nuevos bloques.

3. MATERIALES Y EQUIPO

  • Entrenador para Circuitos Lógicos
  • PC con Software de simulación.
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.

4. MARCO TEÓRICO

mBLOCK

mBlock es un programa libre basado en el Scratch del MIT. 

Se basa en bloques 

Muy amigable 
Se puede obtener el código Arduino o Aunque el código tiene instrucciones y llamadas librerías, con lo que no siempre es sencillo de entender, sobre todo para los chavales.
Podéis hacer programas como con Scratch, con objetos, escenarios, etc. y además tenéis en el menú Robots bloques específicos para trabajar con nuestra tarjeta 
mBlock se compone de 5 partes principalmente:
  • Grupo de instrucciones clasificadas por colores en las siguientes categorías:
    • Movimiento: Conjunto de instrucciones relacionadas con el control de los pines de la tarjeta de Arduino, así como el control del movimiento de cualquier personaje del escenario.
    • Apariencia: Instrucciones orientadas a modificar el aspecto de los personajes de nuestra aplicación. Para el caso de Arduino, es un conjunto de instrucciones que apenas se utiliza.
    • Sonido: Conjunto de instrucciones relacionadas con la elaboración de aplicaciones musicales, emitiendo sonidos y notas musicales.
    • Lápiz: Scratch nos ofrece la posibilidad de que los personajes dejen un rastro durante sus movimientos por el escenario como si arrastrase un lápiz durante su trayectoria.
    • Control: Las instrucciones incluídas en esta sección son impresindibles para crear la lógica de nuestros programas. Incluyen condicionales, bucles y llamadas de procedimientos.
    • Sensores: Instrucciones de iteración con el ratón, el teclado, sonidos y los personajes.
    • Operadores: operaciones matemáticas, lógicas y con cadenas de texto.
    • Variables: Instrucciones para el almacenamiento y gestión de datos.
  • Instrucciones de programación: Las instrucciones de cada grupo corresponden a instrucciones de programación.
  • Editor: Es la parte principal donde estructuramos y programamos nuestro programa.
    • Programas: Se compone de todas las instrucciones que hace funcionar el código que programemos.
    • Disfraces: Cada objeto puede tener diferentes apariencias o disfraces para utilizar a lo largo de nuestro programa.
    • Sonido: También es posible añadir o grabar sonidos y guardarlos para futuros usos.
  • Escenario o ventana principal: Es el resultado de nuestro programa.
  • Objetos y sprites: Distinguimos principalmente los objetos de tipo Arduino y Sprites.
    • Los objetos de tipo arduino son aquellos que interactuán con Arduino.
    • Los sprites son similares al entorno de scratch y no interactúan con Arduino.


PROGRAMACIÓN DE NOTAS MUSICALES EN MICRO-CONTROLADORES


Toda secuencia musical está descrita por un comportamiento exponencial, sin embargo existen errores en los cuales el oído humano, que tiene un rango de audición entre los 20 y 20Khz, se deja llevar creyendo escuchar sonidos lineales, es decir, sonidos consecutivos como se muestra en la Figura 3.
Figura 3: Representación lineal de sonidos. “Error”
Se logra apreciar en la Figura 4, el comportamiento correcto de las frecuencias en aumento. Cabe destacar que los sonidos son apreciados dependiendo de su altura o tono; cuanto mayor sea su frecuencia, más aguda o "alta" será la nota musical, es decir, un sonido agudo o grave “alto o bajo”, donde todos estos términos son subjetivos.
Figura 4: Representación exponencial de sonidos


Octava La palabra octava viene de la teoría musical; la octava es el intervalo entre dos sonidos que tienen una relación de frecuencias igual a 1:2 y que corresponde a ocho notas de una escala musical diatónica; o trece en una escala cromática.


5. EVIDENCIA DE TAREAS EN LABORATORIO





6. OBSERVACIONES

  • En el programa mBlock se pudo notar en la opción altavoz podemos crear “música electrónica”.
  • Las notas musicales están modificadas con códigos como C4,E4 y así varían hasta completar todas las notas.
  • Durante la sesión vimos como controlar las notas musicales mediante un potenciómetro variamos los grados.
  • Conectamos una tecla a un PIN y de este mandamos a un led, así al pulsar cierta tecla configurada para sonar de acuerdo a un nota se iluminara un led.
  • Hicimos una canción, en nuestro caso un PIN mandamos a un tecla y empezara a sonar una canción que configuraremos poniendo una después de otra y con un tiempo determinado.

7. CONCLUSIONES

  • Se logro configurar los sonidos para crear la canción.
  • Se logro controlar las notas musicales con el potenciómetro.
  • Se entendió el funcionamiento de estos sonidos en la electrónica.
  • Se logro encender los leds conforme a la nota musical predeterminada.
  • Se entendió la función de todas la opciones en el programa mBlock.

8. FOTO GRUPAL



Integrantes:
  • Luis Porras
  • Carlos Macua
  • Jorge Condori


9. BIBLIOGRAFÍA

  • http://www.boletin.upiita.ipn.mx/index.php/ciencia/669-cyt-numero-55/1294-programacion-de-notas-musicales-en-microcontroladores
  • https://lacienciaparatodos.files.wordpress.com/2017/05/prc3a1cticas-mbot-javier-fernc3a1ndez-panadero-05-05-2017.pdf
  • https://aprendiendoarduino.wordpress.com/tag/mblock/

domingo, 18 de noviembre de 2018

LABORATORIO NRO. 7

SENSORES Y ACTUADORES DIGITALES CON ARDUINO

1. CAPACIDAD TERMINAL

  • Identificar las aplicaciones de la Electrónica Digital.
  • Describir el funcionamiento de las unidades y dispositivos de almacenamiento de información.
  • Implementar circuitos de lógica combinacional y secuencial.

2. COMPETENCIA ESPECIFICA DE LA SESIÓN

  • Programación de sensores digitales con Arduino.
  • Programación de actuadores digitales con Arduino.
  • Implementación de proyecto con sensores y actuadores digitales.

3. MATERIALES Y EQUIPO

  • Tarjeta Arduino.
  • Entrenador para Circuitos Lógico.
  • PC con Software de simulación.
  • Componentes accesorios.
  • Guía de Laboratorio. 

4. MARCO TEÓRICO

Programación básica con IDE Arduino 

La programación de Arduino es la programación de un microcontrolador. Esto era algo más de los ingenieros electrónicos, pero Arduino lo ha extendido y socializado con la tecnología.

Arduino proporciona un entorno de programación sencillo y potente para programar, pero además incluye las herramientas necesarias para compilar el programa y “quemar” el programa ya compilado en la memoria flash del microcontrolador. Además el  IDE nos ofrece un sistema de gestión de librerías y placas muy práctico suficiente para realizar una programación.

Estructura de un Sketch

Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino. 


Importante: para que funcione el sketch, el nombre del fichero debe estar en un directorio con el mismo nombre que el sketch.

La estructura básica de un sketch de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes son obligatorios y encierran bloques que contienen declaraciones, estamentos o instrucciones.




La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar. 

 
Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita que el programa este respondiendo continuamente ante los eventos que se produzcan en la tarjeta.


Adicionalmente se puede incluir una introducción con los comentarios que describen el programa y la declaración de las variables y llamadas a librerías.

 
Los bloques de comentarios, o multi-línea de comentarios, son áreas de texto ignorados por el programa que se utilizan para las descripciones del código o comentarios que ayudan a comprender el programa. Comienzan con / * y terminan con * / y pueden abarcar varias líneas.







Una variable es una manera de nombrar y almacenar un valor numérico para su uso posterior por el programa. Como su nombre indica, las variables son números que se pueden variar continuamente en contra de lo que ocurre con las constantes cuyo valor nunca cambia. Una variable debe ser declarada y, opcionalmente, asignarle un valor. 

Ejemplo blink

Comentarios Las primeras líneas del sketch de Blink son un comentario:



Arduino ignora todo lo que se encuentra entre / * y * / cuando ejecuta el boceto (el * al comienzo de cada línea solo está ahí para hacer que el comentario se vea bonito, y no es necesario). Está ahí para las personas que leen el código: para explicar qué hace el programa, cómo funciona o por qué está escrito como está.

Variables
Por ejemplo, la línea del sketch Blink anterior declara una variable con el nombre ledPin, el tipo int y un valor inicial de 13. Se está usando para indicar a qué pin Arduino está conectado el LED. 

Funciones 
Función setup () del ejemplo de Blink: 

Por ejemplo, la línea pinMode (LED_BUILTIN, OUTPUT); llama a la función pinMode (), pasándole dos parámetros: LED_BUILTIN y OUTPUT. La función pinMode () utiliza estos parámetros para decidir qué pin y modo configurar.

Función pinMode (). La función pinMode () configura un pin como una entrada o una salida. Para usarlo, le pasas el número del pin a configurar y la constante ENTRADA o SALIDA. Cuando se configura como una entrada, un pin puede detectar el estado de un sensor como un botón pulsador; Esto se discute en un tutorial posterior. Como salida, puede accionar un actuador como un LED. 



Función digitalWrite (). generan un valor en un pin. Por ejemplo, la línea:


coloque el
LED_BUILTIN (pin 13) en ALTO, o 5 voltios. Escribir un valor BAJO para pin lo conecta a tierra, o 0 voltios.

Función delay (). hace que Arduino espere el número especificado de milisegundos antes de continuar en la siguiente línea. Hay 1000 milisegundos en un segundo, por lo que la línea:


La función loop (). En este caso encenderá el LED del pin 13 por un tiempo de 1000 milisegundos y lo mantendrá apagado 1000 milisegundos, este proceso es cíclico. 


5. EVIDENCIA DE TAREAS EN LABORATORIO
VIDEO  






6. OBSERVACIONES
  • Durante la sesión se detectó fallas en los pulsadores por lo cual se tuvo que emplear interruptores que actuarían en vez de estos.
  • Los corchetes cierran el ciclo de cada comando, así como el void setup y en el void lopp.
  • No se deben de olvidar colocar los corchetes respectivos ya que sin estos nos aparecerá error al momento de cargar la programación.
  • Al poner el tiempo en el que debe de cambiar a rojo y verde, se vio que no podía si se hacía de la manera habitual, si no que en realidad se debe de usar en  40 segundos y al final restarle 20 segundos.
  • Si en algún momento la programación esta errónea la misma app de arduino señalara que no se puede subir y además tiene una opción llamada verificar en la que podemos ver si hay algún error en nuestra programación.
 
7. CONCLUSIONES
  • Se logró entender el lenguaje de programación usada para el arduino 1. 
  • Se logró comprender la lógica del dicho lenguaje además que usa código binario. 
  • El arduino 1 uno es un dispositivo que se puede utilizar para comandar otros dispositivos. 
  • Se entendió que el dispositivo estudiado  es usado en múltiples aparatos como es el caso de los semáforos en el que controla un display de 7 segmentos para la función que este requerida. 
  • El uso de este equipo es pieza básica en lo que respecta a la automatización.
8. FOTO GRUPAL

Integrantes:


9. BIBLIOGRAFÍA
  • Crespo, E. (2017). Programación Arduino [Blog]. Retrieved from https://aprendiendoarduino.wordpress.com/2017/01/23/programacion-arduino-5/
  • Arduino - Sketch. (2018). Retrieved from https://www.arduino.cc/en/Tutorial/Sketch
  • Ruiz Gutiérrez, J. (2010). Manual de Programación Arduino [Ebook] (1st ed., pp. 6 - 9). José Manuel Ruiz Gutiérrez. Retrieved from https://arduinobot.pbworks.com/f/Manual+Programacion+Arduino.pdf


LABORATORIO NRO 8

MÚSICA CON ARDUINO 1. CAPACIDAD TERMINAL Identificar las aplicaciones de la Electrónica Digital. Describir el funcionamiento de la...