Laboratorio 1: Introducción a Arduino
Objetivos:
Al finalizar el laboratorio el estudiante será capaz de:
Identificar los modelos existentes de Arduino.
Realizar un programa básico en Arduino.
Realizar comunicación serial con el Arduino.
Seguridad:
Registrarse en la web de simulación con el correo de Tecsup y no olvidarse de la clave.
Prestar atención a las indicaciones del docente.
Equipos y Materiales:
Una computadora con:
Windows 7 o superior
Conexión a Internet
Arduino y elementos adicionales.
Procedimiento:
EJERCICIO 1: Identificar productos de la marca Arduino
Arduino es una empresa que ofrece diversas placas de desarrollo y accesorios para dichas placas.
Visite el sitio web de la empresa: www.arduino.cc y revise los productos que ofrece dicha empresa.
Anotar 10 modelos de tarjetas de Arduino con su descripción:
Arduino MKR 1000 Wifi
Es una placa potente que combina la funcionalidad de Zero y Wi-Fi Shield. Es la solución ideal para los creadores que desean diseñar proyectos de IoT con una experiencia previa mínima en redes.
Arduino MKR wifi 1010
El Arduino MKR WiFi 1010 es el punto de entrada más fácil para el diseño básico de aplicaciones de IoT y pico-red. Ya sea que esté buscando construir una red de sensores conectada al enrutador de su oficina o hogar, o si desea crear un dispositivo Bluetooth® Low Energy que envíe datos a un teléfono celular, el MKR WiFi 1010 es su solución integral para muchas de las necesidades básicas. Escenarios de aplicaciones de IoT.
Arduino UNO Mini Edición Limitada
El Arduino UNO Mini LE es una placa de microcontrolador basada en el ATmega328P (hoja de datos). Tiene 14 entradas/salidas digitales (seis de las cuales se pueden usar como salidas PWM), seis entradas analógicas, un resonador cerámico de 16 MHz, un conector USB-C y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador. Simplemente conéctelo a una computadora con un cable USB, use un adaptador de corriente o conecte una batería para comenzar.
Arduino MKR WAN 1310
El MKR WAN 1310 trae una serie de mejoras en comparación con su predecesor, el MKR WAN 1300 . Si bien todavía se basa en el procesador de bajo consumo Microchip® SAMD21 , el módulo Murata CMWX1ZZABZ LoRa® y el chip criptográfico característico de la familia MKR (el ECC508), el MKR WAN 1310 incluye un nuevo cargador de batería, un flash SPI de 2 MByte y un control mejorado de el consumo de energía de la placa.
Arduino MKR GSM 1400
El Arduino MKR GSM 1400 aprovecha la red celular como medio para comunicarse. La red GSM/3G es la que cubre el mayor porcentaje de la superficie mundial, haciendo muy atractiva esta opción de conectividad cuando no existen otras opciones de conectividad. Ya sea que esté buscando construir una puerta de enlace a su propia red de sensores remotos, o si necesita un solo dispositivo que envíe un mensaje de texto cuando ocurra un evento al otro lado del país, el MKR GSM 1400 lo ayudará a implementar una solución rápidamente. para acomodar sus necesidades.
Arduino MKR NB 1500
El procesador principal de la placa es un Arm® Cortex®-M0 de 32 bits SAMD21 de bajo consumo, como en las otras placas de la familia Arduino MKR. La conectividad de Banda Estrecha se realiza con un módulo de u-blox, el SARA-R410M-02B, un chipset de bajo consumo que opera en las diferentes bandas de la gama celular IoT LTE. Además de eso, la comunicación segura está garantizada a través del chip criptográfico Microchip® ECC508. Además de eso, la pcb incluye un cargador de batería y un conector para una antena externa.
Arduino MKR Vidor 4000
El Arduino MKR Vidor 4000 lleva la facilidad de uso de Arduino al trabajo con los chips reprogramables más potentes que existen: los FPGA. Con Vidor puedes crear una placa en la que todos los pines sean señales PWM que controlen la velocidad de los motores. Puede capturar sonido en tiempo real y hacer un pedal de efectos de sonido para su guitarra. Es posible crear una computadora en tiempo real que lea la información del sensor y la envíe a un monitor de última generación o capture video y superponga la información del sensor en la imagen que luego se enviará a una pantalla.
Arduino MKR Cero
El MKR ZERO le brinda el poder de un Zero en el formato más pequeño establecido por el factor de forma MKR. La placa MKR ZERO actúa como una gran herramienta educativa para aprender sobre el desarrollo de aplicaciones de 32 bits. ¡Tiene un conector SD incorporado con interfaces SPI dedicadas (SPI1) que le permite reproducir archivos de MÚSICA sin hardware adicional! La placa funciona con MCU SAMD21 de Atmel, que cuenta con un núcleo ARM® Cortex® M0+ de 32 bits.
Arduino Mega 2560 Rev3
El Arduino Mega 2560 es una placa de microcontrolador basada en el ATmega2560 . Tiene 54 pines de entrada/salida digital (de los cuales 15 se pueden usar como salidas PWM), 16 entradas analógicas, 4 UART (puertos seriales de hardware), un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, un cabezal ICSP, y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador; simplemente conéctelo a una computadora con un cable USB o enciéndalo con un adaptador de CA a CC o una batería para comenzar. La placa Mega 2560 es compatible con la mayoría de los escudos diseñados para Uno y las placas anteriores Duemilanove o Diecimila.
Arduino leonardo
El Arduino Leonardo es una placa de microcontrolador basada en el ATmega32u4 ( hoja de datos ). Tiene 20 pines de entrada/salida digital (de los cuales 7 se pueden usar como salidas PWM y 12 como entradas analógicas), un oscilador de cristal de 16 MHz, una conexión micro USB, un conector de alimentación, un encabezado ICSP y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador; simplemente conéctelo a una computadora con un cable USB o enciéndalo con un adaptador de CA a CC o una batería para comenzar.
Responda:
En la empresa TOYS le solicita su asesoría; el gerente de Producción necesita monitorear 10 sensores digitales ¿Qué placa Arduino le recomendaría?
Arduino Uno
¿Porque?
La arduino Uno es una board basada en un microcontrolador Atmega328. Tiene 14 pines de entrada/salida digital (de los cuales 4 pueden ser utilizados para salidas PWM), 6 entradas análogas, un resonador cerámico de 16 MHz, un conector para USB tipo hembra, un Jack para fuente de Poder, un conector ICSP y un botón reset.
Características
Microcontrolador: ATmega328
Voltaje Operativo: 5v
Voltaje de Entrada (Recomendado): 7 – 12 v
Pines de Entradas/Salidas Digital: 14 (De las cuales 6 son salidas PWM)
Pines de Entradas Análogas: 6
Memoria Flash: 32 KB (ATmega328) de los cuales 0,5 KB es usado por Bootloader.
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad del Reloj: 16 MHZ.
¿Porque?
Obviamente se trata de un modelo algo más caro, pero integra el microprocesador ATmega2560 (más potente), una memoria flash de 256 kB , 8 KB de RAM y 70 pines, entre analógicos y digitales. A nivel de espacio, es capaz de almacenar programas cuatro veces más grandes.
La Arduino Mega está diseñada para proyectos más complejos, tiene más pines analógicos y digitales y más espacio para conexiones. Se recomienda para proyectos robóticos e impresoras 3D. Su precio es de 35,88 euros.
Características
Microcontrolador: ATmega2560
Voltaje Operativo: 5V
Voltaje de Entrada: 7-12V
Voltaje de Entrada(límites): 6-20V
Pines digitales de Entrada/Salida: 54 (de los cuales 15 proveen salida PWM)
Pines análogos de entrada: 16
Corriente DC por cada Pin Entrada/Salida: 40 mA
Corriente DC entregada en el Pin 3.3V: 50 mA
Memoria Flash: 256 KB (8KB usados por el bootloader)
SRAM: 8KB
EEPROM: 4KB
Clock Speed: 16 MHz
EJERCICIO 2: Uso de simulador de Arduino
Ingresar a la página Web de Tinkercad: https://www.tinkercad.com/ , registrarse e inicie sesión:
Crear un circuito básico con Arduino.
En el lado izquierdo hacer clic en Circuits.
Hacer clic en Create a new Circuit
Del lado derecho hacer clic en Components Basic y seleccionar Starters Arduino.
Arrastrar el circuito Blink desde el lado derecho hacia la parte central.
Hacer clic en el botón Start Simulation.
¿Qué sucede con el led (de color rojo)?
Cuando empezamos a pasarle alimentación de energía a nuestro circuito, lo que hace el led ene este caso rojo es parpadear encendiendo y aprendiendo el led con tiempo de 1 segundo esto que esta programado con el delay(10000),
Revisar el código del circuito anterior.
Hacer clic en el botón Code.
Clic en el botón Blocks y seleccionar Text.
Analice el código.
Modifique el código para que el led trabaje al doble de velocidad.
Explique el código ejemplo que tiene BLINK.
Abrir el monitor serial haciendo clic en el botón Serial monitor (ubicado en la parte inferior de la ventana).
Describe ¿Cuándo se muestra el mensaje Encendido o Apagado?
De acuerdo a la programación del código, mostrara encendido en el serial monitor cuando el led este encendido, como ya se explicó solo será por un segundo. Igualmente, para apagado, se mostrará cuando el led este apagado y durará un segundo.
Lo que en la pantalla serial nos mostrara una cadena vertical de encendido y apagado mientras el código este en ejecución
¿Qué diferencia tienen la instrucción Serial,println y Serial.print?
El método println()
escribe datos en el puerto serial. Es usualmente útil para observar los datos producidos en el programa o para imprimir datos en otros dispositivos conectados al el puerto serial. El método println funciona como print , pero envia un caracter new line por cada vez que es llamada la función.
Serial.print
Imprime datos en el puerto serial como texto ASCII legible por humanos. Este comando puede tomar muchas formas. Los números se imprimen utilizando un carácter ASCII para cada dígito. Los flotantes se imprimen de manera similar como dígitos ASCII, por defecto con dos decimales. Los bytes se envían como un solo carácter.
Copiar el siguiente código en el Arduino y ejecutarlo.
´´+
Ejecutar el programa haciendo clic en el botón Start Simulation.
Abrir el monitor serial haciendo clic en el botón Serial monitor (ubicado en la parte inferior de la ventana).
Describe, cuando se envía el numero 1 o 2 por el Monitor Serie ¿Qué mensaje se devuelve? ¿Porque?
A comparación del otro ejercicio tenemos ahora la opción del 1 o 2
De acuerdo a la programación del código, mostrara encendido en el serial monitor cuando el led este encendido, como ya se explicó solo será por un segundo. Igualmente, para apagado, se mostrará cuando el led este apagado y durará un segundo.
Lo que en la pantalla serial nos mostrara una cadena vertical de encendido y apagado mientras el código este en ejecución
Al igual que las declaraciones if , switch case controla el flujo de programas al permitir que los programadores especifiquen diferentes códigos que deben ejecutarse en varias condiciones. En particular, una sentencia switch compara el valor de una variable con los valores especificados en sentencias case. Cuando se encuentra una declaración de caso cuyo valor coincide con el de la variable, se ejecuta el código en esa declaración de caso.
La palabra clave break sale de la instrucción switch y normalmente se usa al final de cada caso. Sin una sentencia break, la sentencia switch continuará ejecutando las siguientes expresiones ("falling-through") hasta que se alcance una rotura o el final de la sentencia switch.
¿Qué función tienen las instrucciónes Serial,available y Serial.read?
Serial.available()
Obtiene el número de bytes (caracteres) disponibles para su lectura desde el puerto serie. Se trata de datos que ya llegaron y se almacenaron en el buffer de recepción serie (que tiene 64 bytes).
Serial.read()
Lee los datos de la entrada serie. read() ihereda de la clase Stream.
TAREA 1: Simule en Arduino
Escriba un programa en Arduino que tenga un led en el pin 13 que siempre este apagado, pero que:
Cuando reciba por el puerto serial la letra ‘A’ el led parpadee 2 veces cada medio segundo,
Cuando reciba por el puerto serial la letra ‘B’ el led parpadee 4 veces cada medio segundo,
Cuando reciba por el puerto serial la letra ‘C’ el led realice un parpadeo de un segundo,
Cuando reciba por el puerto serial la letra ‘D’ el led realice un parpadeo de dos segundos.
Comparta el proyecto con el Docente y coloque el link del proyecto:
https://drive.google.com/drive/u/0/folders/1j1ell-W-5_8hMO7i9XcamRxiLzKG4gll
Describa el programa que realizo ¿Que funciones uso?
Armamos un arduino que tengo un led en el pin 13
por la salida del puerto 13 utilizamos un bucle vacio si
el serial esta disponible va a leer el puerto serial que es dato luego utilizamos switch y case que nos permite organiza bloques de codigos, de una forma que se ejecuten cuando se cumple cierta condicion, en el caso de ahora utilizamos 4 condicionales que biene hacer A, B, C y D.
--Cuando reciba por el puerto serial la letra ‘A’ el led parpadee 2 veces cada medio segundo.
Como sabemos un segundo es 1000 y en caso contrario la mitad es medio segundo que biene hacer 500, utilizamos digital.write y lo pusimos en el pin 13 un encendio de 500 que biene hacer medio segundo y luego utilizamos LOW de 100 y luego volvemos a utilizar digitalWrite para que tengo otro encendido de medio segundo que tambien es 500.
--Cuando reciba por el puerto serial la letra ‘B’ el led parpadee 4 veces cada medio segundo.
Luego utilizamos lo mismo que el anterior solo que debe ser en 4 encendidos en cada medio segundo. y ahora es 250 el encendio asi que utilizamos 4 parpadeos de 250.
--Cuando reciba por el puerto serial la letra ‘C’ el led realice un parpadeo de un segundo.
Utilizamos en la la letra C que el foco led que de un parpadeo de un segundo.
--Cuando reciba por el puerto serial la letra ‘D’ el led realice un parpadeo de dos segundos.
Utilizamos en la letra D, que haga un parpadeo de dos segundos de encendio y luego se apage.
TAREA 2: Video de Simulación
Realice un video de máximo 1 minuto y súbalo al www.youtube.com y coloque el link:
TAREA 3: INVESTIGACIÓN
Averigüe sobre ¿Estructura de programación para repetición y toma de decisiones en C++?
REPETICIONES
Las estructuras de repetición son las llamadas estructuras cíclicas, iterativas o de bucles. Permiten ejecutar un conjunto de instrucciones de manera repetida (o cíclica) mientras que la expresión lógica a evaluar se cumpla (sea verdadera). En lenguaje C existen tres estructuras de repetición: while, do-while y for
while
La estructura de repetición While ejecuta un ciclo que se repetirá mientras que la condición sea verdadera. Sintaxis while (<condición>) Ejemplo: while (a <= 10)
do/while
La estructura do/while es similar a la estructura while. En la while, la condición de continuación de ciclo se prueba al principio del ciclo, antes de ejecutarse el cuerpo del mismo. La estructura do/while prueba la condición de continuación del ciclo repetitivo, después de ejecutar el cuerpo del ciclo, por lo tanto, el cuerpo del ciclo repetitivo se ejecutará por lo menos una vez.
Cuando termina do/while, la ejecución continuará con el enunciado que aparezca después de la cláusula while. No es necesario utilizar llaves
Sintaxis do Sentencias while (<condicion>); Ejemplo do { cout <<"entre la nota"; cin>>nota; i++; } while(i <=10);
for
La estructura de repetición for manera de manera automática todos los detalles de la repetición controlada por contador. Sintaxis for (<inicio;final;contador>) Ejemplo: for(int i = 0;i <= 10;i++) cout <<”hola”;
TOMA DE DECISONES
son una estructura de control esencial al momento de programar y aprender a programar. Tanto C como C++ y la mayoría de los lenguajes de programación utilizados actualmente, nos permiten hacer uso de estas estructuras parea definir ciertas acciones condiciones especificas en nuestro algoritmo.
IF
Esta sentencia permite la ejecución de un bloque de código, si y solo si, se ha cumplido la condición dentro del «if», si no se cumplió la condición, se pasa a las instrucciones que estén fuera del «if.
ELSE
En esta sentencia no se plantea directamente una condición, es mas bien, una respuesta a la condición que se formuló dentro de la sentencia «if». Si la condición de «if» no se cumplió, entonces se ejecuta el bloque de código que contenga la sentencia «else».
Además, no puedo haber una sentencia «else» sin su respectiva sentencia «if»
SWITCH
es una estructura de control empleada en programación. Se utiliza para agilizar la toma de decisiones múltiples; trabaja de la misma manera que lo harían sucesivos if , if else o until anidados, así como combinaciones propias de determinados lenguajes de programación.
OBSERVACIONES
Mantener desconectado el módulo Arduino de la fuente de poder mientras se arman los circuitos, esto con el fin de evitar cortocircuitos por mala conexión.
Para futuros proyectos inspirados en este prototipo, considerar utilizar el Arduino Mega, ya que posee más pines a disposición del usuario.
Se debe conocer principios de programación para obtener grandes resultados, por lo que se recomienda tener bases sólidas de programación para utilizar estos módulos.
CONCLUSIONES.
Concluimos que 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 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
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.
Usamos una herramienta muy interesante que ofrece Tinkercad Circuits es el debugger, con ella podemos parar la ejecución de un programa y ver los valores de las variables, algo que con arduino no podemos hacer. Nos permite “parar” el tiempo.
Aprendimos sobre el monitor serie que consiste en una consola de entrada y salida, esto quiere decir que podremos mostrar datos enviados por nuestra placa arduino y también podremos enviar datos a nuestra placa. Podremos acceder a el a través del menú Herramientas/Monitor serie o haciendo click en el icono que parece una lupa ubicado a la derecha en el IDE.
Usamos uno de los más comunes funciones begin() esta misma establece la velocidad de datos en bits por segundo (baudios) para la transmisión de datos en serie. Para comunicarse con el ordenador, utilice una de estas velocidades: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 o 115200. Sin embargo, se pueden especificar otras velocidades. Por tanto, su ejecución es imprescindible antes de realizar cualquier transmisión por dicho canal. Se debe indicar la velocidad del canal como argumento.
Video con la evidencia: