OBJETIVO
El objetivo de este documento es dar a conocer y presentar los diferentes programas hechos en clase al igual que los de tarea y también alguna breve introducción acerca de la programación estructurada y las diferentes funciones vistas como ejemplos, así como contenido del tercer parcial.
INTRODUCCIÓN
Definición de Lenguaje de Programación:
Conjunto de reglas, notaciones, símbolos y/o caracteres que permiten al programador poder expresar el procesamiento de datos y sus estructuras en la computadora.
Archivos (files)
El término I/O (Input/Output) se refiere a la entrada de datos y a la salida de datos. La salida estándares la pantalla: usando el comando cout. La entrada estándares el teclado: comando cin. Es posible, en lugar de recibir/enviar mensajes a la entrada/salida estándar hacerlo a un archivo.
Los archivos que se manejan son de tipo texto, es decir, contienen únicamente caracteres en código ASCII (letras, números, algunos símbolos).
Los archivos I/O se clasifican en dos categorías:
●archivos secuenciales. En estos archivos, la información sólo puede leerse y escribirse empezando desde el inicio del archivo.
●archivos de acceso aleatorio. Los archivos de acceso aleatorio permiten acceder a cualquier parte del archivo en cualquier momento, como si fueran arreglos en memoria. Las operaciones de lectura y/o escritura pueden hacerse en cualquier punto del archivo.
Declaración de Archivos I/O
Así como las instrucciones cin y cout se definen en la librería iostream y se tiene que incluir #include <iostream> en el programa, de forma similar, cuando se desea usar archivos I/O es necesario incluir la librería fstream:
#include <fstream>
Ejemplo:
Resumen de las instrucciones para usar Archivos I/O
1. Incluir la librería correspondiente:
#include <fstream>
2. Seleccionar los nombres para dos comandos que se utilicen de forma similar a cin y cout, para leer y escribir de/desde un archivo. Por ejemplo si se seleccionan a_enty a_sal, respectivamente, deberán declararse como:
ifstream a_ent;ofstream a_sal;
3. Conectar los comandos a los archivos que se quieran manejar para leer y escribirlos datos, por ejemplo para guardar los datos en un archivo llamado salida.dat y para leer los datos en un archivo llamado entrada.dat, se deberá usar:
a_ent.open(“entrada.dat”);a_sal.open(“salida.dat”);
4. A partir de entonces, cada vez que se use a_sales como usar cout, pero la salida es al archivo; y cada vez que se use a_entes como usar cin, pero la lectura de datos es desde el archivo. Por ejemplo:
a_ent >> variable; a_sal << variable2;
5. Hay que cerrar los archivos luego de utilizarlos:
a_ent.close();a_sal.close();
PROGRAMAS, ARCHIVOS Y/O TAREAS REALIZADAS
PROGRAMA 1: Pide 3 números al usuario y genera el archivo llamado salida.dat.
PROGRAMA 2: programa que tabula solamente los números pares y los escribe en el archivo salida.dat.
PROGRAMA 3: leer los números de un archivo y sumarlos.
PROGRAMA 4: Programa que obtiene raíces cuadradas.
PROGRAMA 5: Leer impares de un arreglo.
PROGRAMA 6: Imprime impares desde 1 hasta el numero 50.
PROGRAMA 7: programa que imprime números impares.
PROGRAMA 8: programa que lee edades del teclado y genera archivo llamado edades.dat.
PROGRAMA 9: Seguimiento del programa 8, que lee los archivos del mismo.
PROGRAMA 10: programa generado del programa 8 y 9.
TAREAS HECHAS EN CASA, CON ARDUINO.
TAREA 1: INTRODUCCIÓN AL ARDUINO
INTRODUCCIÓN AL ARDUINO
OBJETIVO
Conocer y descubrir los diferentes tipos de utilidades que contiene el Arduino IDE, además el uso que contiene y su funcionamiento así como conocer diferentes tipos de conceptos para ver su uso del Arduino.
QUÉ ES EL ARDUINO
Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de microordenadores de una sola placa a los que la comunidad de creadores puede darles diferentes tipos de uso.
EL hardware libre y el software libre
El hardware libre son los dispositivos cuyas especificaciones y diagramas son de acceso público, de manera que cualquiera puede replicarlos. Esto quiere decir que Arduino ofrece las bases para que cualquier otra persona o empresa pueda crear sus propias placas, pudiendo ser diferentes entre ellas pero igualmente funcionales al partir de la misma base.
El software libre son los programas informáticos cuyo código es accesible por cualquiera para que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la plataforma Arduino IDE (Entorno de Desarrollo Integrado), que es un entorno de programación con el que cualquiera puede crear aplicaciones para las placas Arduino, de manera que se les puede dar todo tipo de utilidades.
CÓMO FUNCIONA EL ARDUINO
El Arduino es una placa basada en un microcontrolador ATMEL. Los microcontroladores son circuitos integrados en los que se pueden grabar instrucciones, las cuales las escribes con el lenguaje de programación que puedes utilizar en el entorno Arduino IDE. Estas instrucciones permiten crear programas que interactúan con los circuitos de la placa.
El microcontrolador de Arduino posee lo que se llama una interfaz de entrada, que es una conexión en la que podemos conectar en la placa diferentes tipos de periféricos. La información de estos periféricos que conectes se trasladará al microcontrolador, el cual se encargará de procesar los datos que le lleguen a través de ellos.
El tipo de periféricos que puedas utilizar para enviar datos al microcontrolador depende en gran medida de qué uso le estés pensando dar. Pueden ser cámaras para obtener imágenes, teclados para introducir datos, o diferentes tipos de sensores.
También cuenta con una interfaz de salida, que es la que se encarga de llevar la información que se ha procesado en el Arduino a otros periféricos. Estos periféricos pueden ser pantallas o altavoces en los que reproducir los datos procesados, pero también pueden ser otras placas o controladores.
DESCRIPCIÓN DE COMPONENTES.
Potencia - USB (1) / Conector de Adaptador (2)
Cada placa Arduino necesita una forma de estar alimentado eléctricamente. Esta puede ser alimentada desde un cable USB que viene de su ordenador o un cable de corriente eléctrica con su respectivo adaptador.
NO utilice una fuente de alimentación superior a 20 voltios, ya que se puede dañar la placa Arduino. La tensión recomendada para la mayoría de los modelos de Arduino es de entre 6 y 12 voltios.
Pines (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
Los pines en la placa Arduino es donde se conectan los cables de un circuito.
• GND (3): Abreviatura de "tierra" (en Ingles). Hay varios pines GND en el Arduino, cualquiera de los cuales pueden ser utilizados para conectar a tierra el circuito.
• 5V (4) y 3.3V (5): Son los suministros pin 5V 5 voltios de energía, y los suministros de pin 3.3V 3.3 voltios de potencia.
• Analógico (6): El área de pines en el marco del 'analógica' etiqueta (A0 a A5) son analógicas. Estos pines pueden leer la señal de un sensor analógico (como un sensor de temperatura) y convertirlo en un valor digital que podemos leer.
• Digital (7): Son los pines digitales (del 0 al 13). Estos pines se pueden utilizar tanto para la entrada digital (como decir, si se oprime un botón) y salida digital (como encender un LED).
• PWM (8): Usted puede haber notado la tilde (~) al lado de algunos de los pines digitales (3, 5, 6, 9, 10 y 11). Estos pines actúan como pines digitales normales, pero también se pueden usar para algo llamado Modulación por ancho de pulsos (PWM, por sus siglas en Ingles).
• AREF (9): Soportes de referencia analógica. La mayoría de las veces se puede dejar este pin solo. A veces se utiliza para establecer una tensión de referencia externa (entre 0 y 5 voltios) como el límite superior para los pines de entrada analógica.
Botón de reinicio (10)
Empujando este botón se conectará temporalmente el pin de reset a tierra y reinicie cualquier código que se carga en el Arduino. Esto puede ser muy útil si el código no se repite, pero quiere probarlo varias veces.
Indicador LED de alimentación (11)
Este LED debe encenderse cada vez que conecte la placa Arduino a una toma eléctrica. Si esta luz no se enciende, hay una buena probabilidad de que algo anda mal.
LEDs RX TX (12)
TX es la abreviatura de transmisión, RX es la abreviatura de recibir. Estas marcas aparecen un poco en la electrónica para indicar los pasadores responsables de la comunicación en serie. En nuestro caso, hay dos lugares en la Arduino UNO donde aparecen TX y RX - una vez por pines digitales 0 y 1, y por segunda vez junto a los indicadores LED de TX y RX (12). Estos LEDs nos darán algunas buenas indicaciones visuales siempre nuestro Arduino está recibiendo o transmitiendo datos (como cuando nos estamos cargando un nuevo programa en el tablero).
Microcontrolador (13)
Lo negro con todas las patas de metal es un circuito integrado (IC, por sus siglas en Ingles). Piense en ello como el cerebro de nuestro Arduino. La principal IC en el Arduino es ligeramente diferente del tipo de placa a placa tipo, pero es por lo general de la línea de ATmega de CI de la empresa ATMEL. Esto puede ser importante, ya que puede necesitar para saber el tipo de IC (junto con su tipo de tarjeta) antes de cargar un nuevo programa desde el software de Arduino. Esta información se puede encontrar en la escritura en la parte superior de la IC. Si quieres saber más acerca de la diferencia entre diversos circuitos integrados, la lectura de las hojas de datos suele ser una buena idea.
Regulador de Voltaje (14)
Esto no es realmente algo que se puede (o debe) interactuar con el Arduino. Pero es potencialmente útil para saber que está ahí y para qué sirve. El regulador de voltaje hace exactamente lo que dice - que controla la cantidad de tensión que se deja en la placa Arduino. Piense en ello como una especie de guardián; se dará la espalda a una tensión adicional que podría dañar el circuito. Por supuesto, tiene sus límites, por lo que no conecta tu Arduino a nada superior a 20 voltios.
TIPOS DE ARDUINO.
Arduino UNO: Arduino de gama básica, todas las shields están diseñadas para usarse sobre esta placa. Cuenta 14 pines entrada/salida digitales de las cuales 6 se pueden usar como PWM, además cuenta con 6 entradas analógicas, además cuenta con I2C, SPI, además de un modulo UART.
Arduino DUE:
Arduino basado en un microcontrolador de 32 Bits, Tiene 54 entradas/salidas digitales y 12 entradas analógicas, 2 buses TWI, SPI y 4 UARTs. Funcionan todos los módulos basados en 3.3V, no soporta 5V ya que puede dañar la placa. Posee adicionalmente interno dos puerto USB para poder controlar periféricos.
Arduino Leonardo:
Arduino básico, Con características similaresa la arduino, sin embargo tiene 12 entradas analógicas y 20 entrada salidas digitales. A diferencias del resto de arduinos con el microcontrolador ATmega32u4 en que no posee un controlador adicional para controlar el USB. Además tiene más pines de interrupciones externas. Tiene comunicación TWI, SPI y dos UART.
Arduino Mega 2560:
Arduino basado en un microcontrolador ATmega2560. Tiene 54 entradas/salidas digitales, 16 de ellos pueden usarse como PWM, 16 entradas analógicas y 4 UART además dos modos PWI y uno SPI. Tiene 6 interrupciones externas. Y es compatible con todos los shields de Arduino.
Arduino Mega ADK:
Exactamente igual que la Mega 2560 pero con la diferencia de que en este caso se tiene la posibilidad de USB Host, poco útil en este proyecto.
Arduino Micro:
Es completamente similar al Leonardo, la única diferencia es el tamaño con el que fue construido. Es compatible con las Shields de arduino, sin embargo se debe instalar de forma externa, es decir, cableándolo, aunque en el caso de que se construya nuestra propia shield no es ningún problema.
Arduino Nano:
Arduino basado en un microcontrolador ATmega328. Es similar en cuanto a características al arduino uno. Las diferencias son tanto el tamaño como la forma de conectarlo al ordenador para programarlo. Es compatible con la mayoría de shield, aunque de la misma forma que el arduino Micro.
Arduino YUN:
El Arduino YUN se trata de un conjunto que trabaja por separado de forma complementaria, por un lado se tiene la versatilidad de un arduino normal. En este caso un ATmega 32u48 a 16 Mhz, y por otro lado de un dispositivo con microprocesador Atheros AR9331. El cual funciona con Lilino (Linux basado en OperWrt (OperWrt-Yun)) a 400 Mhz. Las características del arduino son similares a la placa Leonardo. Tiene Ethernet, slot SD y WiFi incluidos, controlados por Lilino... Es compatible con todas las Shields y es capaz de trabajar por separado.
Arduino FIO:
Arduino basado en un microcontrolador ATmega328p. Trabaja a 8 Mhz y 3.3V tiene 14 pines de entrada/salida digitales (6 PWM), 8 pines de entrada analógicas e integra tanto un conector para la batería y su correspondiente modulo de carga, como un slot para poder instalar un modulo de comunicaciones xBee. Tiene UART TTL e interrupciones lo que nos permite también ponerlo en modo Sleep, permite también poner el XBEE en modo Sleep, reduciendo el consumo total. Además posee tanto TWI (I2C) como SPI. Unas ventajas importantes de este dispositivo son el bajo consumo en Sleep y el poder programarlo mediante XBEE, sin necesidad conectarlo físicamente al ordenador.
EL IDE (ENTORNO DE DESARROLLO) DEL ARDUINO
DIAGRAMA DE CONEXIÓN Y DESCRIPCIÓN DEL CÓDIGO PARA LA PRÁCTICA INICIAL: “HACER PARPADEAR UN LED”.
Nota: el código se expresa en la tarea no. 2; descargado e instalado el software de Arduino IDE en la computadora de nuestro compañero Maya García Miguel Ángel.
CONCLUSIONES
En esta primera tarea no.1 se logro instalar el software Arduino, conectarlo y probarlo de que funciona bien y también a adentrarnos a una pequeña introducción que nos llevo a investigar más información acerca del Arduino y como funciona, además de cómo esta conectado técnicamente el Arduino a una protoboard con su respectivo led que en teoría lo que hará será encender y apagar un led, ya sea de cualquier color.
FUENTES CONSULTADAS
1- https://www.filehorse.com/es/
2- https://1367017.netacad.com/courses/790429/files/folder/Presentaciones/Parcial-IV?preview=73865989
3- https://www.filehorse.com/es/descargar-arduino/
4- https://www.arduino.cc/en/Main/Software
5- https://www.instructables.com/id/Arduino-Tutorial-0-Introducci%C3%B3n/
6- http://www.bolanosdj.com.ar/MOVIL/ARDUINO2/tiposarduino.pdf
TAREA 2: CONFIGURANDO UN LED RGB.
CONFIGURANDO UN LED RGB
OBJETIVO
Conocer y descubrir los diferentes tipos de utilidades que contiene el Arduino IDE, además el uso que contiene y su funcionamiento así como conocer diferentes tipos de conceptos para ver su uso del Arduino.
QUÉ ES EL ARDUINO
Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de microordenadores de una sola placa a los que la comunidad de creadores puede darles diferentes tipos de uso.
CÓMO FUNCIONA EL ARDUINO
El Arduino es una placa basada en un microcontrolador ATMEL. Los microcontroladores son circuitos integrados en los que se pueden grabar instrucciones, las cuales las escribes con el lenguaje de programación que puedes utilizar en el entorno Arduino IDE. Estas instrucciones permiten crear programas que interactúan con los circuitos de la placa.
El microcontrolador de Arduino posee lo que se llama una interfaz de entrada, que es una conexión en la que podemos conectar en la placa diferentes tipos de periféricos. La información de estos periféricos que conectes se trasladará al microcontrolador, el cual se encargará de procesar los datos que le lleguen a través de ellos.
El tipo de periféricos que puedas utilizar para enviar datos al microcontrolador depende en gran medida de qué uso le estés pensando dar. Pueden ser cámaras para obtener imágenes, teclados para introducir datos, o diferentes tipos de sensores.
También cuenta con una interfaz de salida, que es la que se encarga de llevar la información que se ha procesado en el Arduino a otros periféricos. Estos periféricos pueden ser pantallas o altavoces en los que reproducir los datos procesados, pero también pueden ser otras placas o controladores.
CONCEPTOS TEÓRICOS (ENTRADAS Y SALIDAS DIGITALES, PWM MODULACIÓN DE ANCHO DE PULSO, LEY DE OHM, ETC)
Entradas y Salidas Digitales
Los sistemas digitales, como por ejemplo un microcontrolador, usan la lógica de dos estados representados por dos niveles de tensión eléctrica, uno alto, H y otro bajo, L (de High y Low, respectivamente, en inglés). Por abstracción, dichos estados se sustituyen por ceros y unos, lo que facilita la aplicación de la lógica y la aritmética binaria. Si el nivel alto se representa por 1 y el bajo por 0, se habla de lógica positiva y en caso contrario de lógica negativa.
Flanco vs Pulso
Periodo, ancho de pulso, flancos
En la imagen siguiente se muestra el estado por defecto de una I/O digital en un microcontrolador de Arduino. Se ha simplificado con interruptores la compleja electrónica que hay dentro. Por defecto los digital I/O pins están configurados como inputs en un estado de alta impedancia (equivalente a una resistencia de 100 Mohms en frente del pin), es decir, SW3 a ON y no hace falta llamar a la función pinMode () aunque es recomendable para aclarar el código.
- PinMode(x, INPUT) –> SW3 = ON (resto a OFF). Los valores leídos serán aleatorios si el pin de Arduino está al aire. El pin está en un estado de alta impedancia (resistencia de 100 Mohms).
- Pin Mode(x, INPUT_PULLUP) –> SW3 = ON & SW4 = ON (rest a OFF). Los valores leídos sin nada conectado al pin es HIGH. La Resistencia R1 tiene un valor dependiendo del microcontrolador, pero tiene un valor entre 20kOhm y 150kOhm.
- Pin Mode(x, OUTPUT) & digital Write(x, HIGH) –> SW2 = ON & SW1 = +5V (resto a OFF). Estado de baja impedancia, no hay resistencia interna y es necesario poner una resistencia adecuada a la salida el pin para no superar los 40mA (source) máximos admitidos
- Pin Mode(x, OUTPUT) & digital Write(x, LOW) –> SW2 = ON & SW1 = GND (resto a OFF). Estado de baja impedancia, no hay resistencia interna y es necesario poner una adecuada para no superar los 40mA (sink) máximos admitidos
Entradas y salidas analógicas
Una señal eléctrica analógica es aquella en la que los valores de la tensión o voltaje varían constantemente y pueden tomar cualquier valor.
Un sistema de control (como un microcontrolador) no tiene capacidad alguna para trabajar con señales analógicas, de modo que necesita convertir las señales analógicas en señales digitales para poder trabajar con ellas.
En el caso de un Arduino Uno, el valor de 0 voltios analógico es expresado en digital como B0000000000 (0) y el valor de 5V analógico es expresado en digital como B1111111111 (1023). Por lo tanto todo valor analógico intermedio es expresado con un valor entre 0 y 1023, es decir, sumo 1 en binario cada 4,883 mV.
Salida Analógica. PWM
Arduino Uno tiene entradas analógicas que gracias a los conversores analógico digital puede entender ese valor el microcontrolador, pero no tiene salidas analógicas puras y para solucionar esto, usa la técnica de PWM.
Las Salidas PWM (Pulse Width Modulation) permiten generar salidas analógicas desde pines digitales. Arduino Uno no posee salidas analógicas puras.
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período. Duty cycle = (tiempo que la salida está a uno o HIGH)/ (periodo de la función)
En Arduino la frecuencia de PWM es de 500Hz. Pero es un valor que puede modificarse en caso que lo necesitemos.
Ley de Ohm
La ley de Ohm, postulada por el físico y matemático alemán Georg Simon Ohm, es una ley de la electricidad. Establece que la intensidad de la corriente I que circula por un conductor es proporcional a la diferencia de potencial V que aparece entre los extremos del citado conductor. Ohm completó la ley introduciendo la noción de resistencia eléctrica R; esta es el coeficiente de proporcionalidad que aparece en la relación entre I y V.
DIAGRAMA EJEMPLO Y CÓDIGO O PROGRAMA PARA ENCENDER O APAGAR UN LED.
//PROGRAMACIÓN ESTRUCTURADA, INGENIERIA ELECTRONICA,
//EQUIPO: MAYA GARCIA, SALINAS REYES, OLVERA VENADO, CAMPOS BADILLO, GARCIA VEGA
int estado=LOW;
int boton = 2;
int rojo = 8;
int verde = 9;
int azul = 10;
void setup() {
PinMode (boton, INPUT);
pinMode (rojo, OUTPUT);
pinMode (verde, OUTPUT);
pinMode (azul, OUTPUT);
}
void loop() {
while (digitalRead(boton)==LOW);
estado = digitalRead(rojo);
digitalWrite(rojo,!estado);
delay(500);
digitalWrite(rojo,estado);
delay(500);
estado = digitalRead(verde);
digitalWrite(verde,!estado);
delay(500);
digitalWrite(verde,estado);
delay(500);
estado = digitalRead(azul);
digitalWrite(azul,!estado);
delay(500);
digitalWrite(azul,estado);
delay(500);
while(digitalRead(boton)==HIGH);
}
CONCLUSIONES
En esta segunda tarea no. 2, se demostraron los objetivos y un poco de información acerca del Arduino que, además es necesaria para saber la utilización del dicho Arduino. También se pudo demostrar el diagrama de ejemplo del Arduino y que va conectado a una protoboard que lo que hace en sí es encender y apagar un Led, además se mostro el código y/o programa respectivo para el encendimiento o apagado de un Led respectivamente. Esto para la tarea/practica no. 2.
FUENTES CONSULTADAS
7- https://www.filehorse.com/es/
8- https://1367017.netacad.com/courses/790429/files/folder/Presentaciones/Parcial-IV?preview=73865988
9- https://aprendiendoarduino.wordpress.com/2016/12/18/entradas-y-salidas-arduino-2/
10- https://www.instructables.com/id/Arduino-Tutorial-0-Introducci%C3%B3n/
11- http://www.bolanosdj.com.ar/MOVIL/ARDUINO2/tiposarduino.pdf
https://aprendiendoarduino.wordpress.com/tag/ley-de-ohm/
FIN DE TAREAS……………………………….
NOTAS**********
Llamado a las funciones y valor de retorno
Una declaración de una función consiste en un tipo de retorno seguido por el nombre de la función seguido por la lista formal de argumentos entre paréntesis. Double func(int a, double d);
Paso de parámetros por valor
Pasar parámetros por valor significa que a la función se le pasa una copia del valor que contiene el parámetro actual.
Paso de parámetros por referencia
Desde un punto de vista más técnico, una referencia es un constructor que le permite al usuario declarar un nuevo nombre para un objeto. Por ejemplo int& es una referencia a int
CONCLUSIONES
Esta es la cuarta y ultima fase de la materia de programación estructurada, y aunque tenía muy poquita experiencia desde el inicio que empezamos programando ya he reforzado más mis conocimientos en la programación con estas semanas que llevamos en clase; hasta el cuarto parcial hemos aprendido lo básico y también parte del desarrollo de las funciones y variables, además de cómo usarlas, solo faltaría poner de mi parte para seguir aprendiendo en este último parcial, y también seguir practicando para tener más lógica para realizar los programas que seguirán en mi camino, además me llevo del profesor de programación muchos aprendizajes y sabiduría para ponerlo en practica en la vida cotidiana y en mi especialidad que es electrónica.
REFERENCIAS:
Página: www.NedAcad.com.
https://1367017.netacad.com/courses/790429/files/folder/Presentaciones/Parcial-IV?preview=73799515
https://1367017.netacad.com/courses/790429/files/folder/Presentaciones/Parcial-IV?preview=73865989
https://1367017.netacad.com/courses/790429/files/folder/Presentaciones/Parcial-IV?preview=73865988
No hay comentarios.:
Publicar un comentario