Logo Studenta

Reporte 6 - Salvador Hdz

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Materia: Introducción a la mecatrónica Actividad #4
Maestro: Dante Ferreyra Méndez Alumno: Víctor Daniel García Tobar Matricula: 2077756
Grupo: 004 Hora: V1
Fecha de entrega: 22/10/2021
Índice
portada	1
indice	2
introduccion	3
arduino	4
¿como se origino el arduino?	5
¿para que se usa?	6
ATmega328P	7
Lenguaje de arduino	8
Caracteristicas c++	9
Lenguaje de c ++	10
Ventajas y desventajas	12
ATmega328P	13
Conclusión	14
Referencias	15
Introducción
En este reporte se realizará la fabricación del pcb mi Arduino el cual una vez se hayan establecido los parámetros correctos de temperatura, humedad, etc. Y basándose en la información entregada por los sensores se activará la resistencia.
también se fabricará un shield LCD necesitas un display para ver cómo van las cosas y en muchas ocasiones la consola de Arduino es una opción incomoda o simplemente no está disponible, con la ayuda de la pantalla LCD podremos consultar y manejar, los diferentes datos que nos proporcionan los diferentes sensores, y también en caso de que sea necesario accionar cada uno de ellos de forma individual para poder establecer los parámetros que creamos oportunos en ese momento.
conexión de los sensores y los diferentes dispositivos actuadores resulta fácil, gracias a las diferentes entradas que nos proporciona la placa.
Por último, el traspaso del programa al microcontrolador es tan sencillo como conectarlo a través del puerto USB al ordenador, y mediante un entorno de desarrollo el programa queda grabado en la placa.
¿Qué es Arduino?
Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que incorpora un microcontrolador reprogramable y una serie de pines hembra. Estos permiten establecer conexiones entre el microcontrolador y los diferentes sensores y actuadores de una manera muy sencilla (principalmente con cables DuPont).
Una placa electrónica es una PCB (“Printed Circuit Board”, “Placa de Circuito Impreso” en español). Las PCBs superficies planas fabricadas en un material no conductor, la cual costa de distintas capas de material conductor. Una PCB es la forma más compacta y estable de construir un circuito electrónico. Por lo tanto, la placa Arduino no es más que una PCB que implementa un determinado diseño de circuitería interna. De esta forma el usuario final no se debe preocupar por las conexiones eléctricas que necesita el microcontrolador para funcionar, y puede empezar directamente a desarrollar las diferentes aplicaciones electrónicas que necesite.
¿Cómo se originó el Arduino?
Arduino Nació en el año 2005 el Instituto de Diseño Interactivo de Ivrea (Italia). Arduino apareció por la necesidad de contar con un dispositivo para utilizar en aulas que fuera de bajo coste. La idea original fue, fabricar una placa para uso interno de la escuela.
Sin embargo, el instituto se vio obligado a cerrar sus puertas precisamente en 2005. Ante la perspectiva de perder todo el proyecto Arduino en el proceso, se decidió liberarlo y abrirlo al público para que todo el mundo pudiese participar en la evolución del proyecto, proponer mejoras y sugerencias.
Los principales responsables de la idea y diseño de Arduino fueron Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe y Gianluca Martino.
¿Por qué usar Arduino?
Arduino es libre y extensible: así cualquiera que desee ampliar y mejorar el diseño hardware de las placas como el entorno de desarrollo, puede hacerlo sin problemas. Esto permite que exista un rico ecosistema de placas electrónicas no oficiales para distintos propósitos y de librerías de software de tercero, que pueden adaptarse mejor a nuestras necesidades.
Modelo del microcontrolador
El microcontrolador que lleva la placa Arduino UNO es el modelo ATmega328P de la marca Atmel. La “P” del final significa que este chip incorpora la tecnología “Picopower” (propietaria de Atmel) y permite un consumo eléctrico ligeramente menor comparándolo con el modelo equivalente sin “Picopower”, ATmega328 (sin la “P”). Aunque el ATmega328P pueda trabajar a un voltaje menor y consumir menos corriente que el ATmega328, ambos modelos son funcionalmente idénticos, es decir, pueden ser remplazados el uno por el otro.
ATmega328P
Al igual que el resto de microcontroladores usados en otras placas Arduino, el ATmega328P tiene una arquitectura de tipo AVR, desarrollada por Atmel y en cierta medida “competencia” de otras arquitecturas como por ejemplo la PIC del fabricante Microchip. Mas concretamente, el ATmega328P pertenece a la subfamilia de microcontroladores “megaAVR”. Otras subfamilias de la arquitectura AVR son la “tinyAVR” (cuyos microcontroladores son más limitados y se identifica con el nombre ATtiny) y la “XMEGA” (cuyos microcontroladores son más capaces y se identifican con el nombre de ATxmega).
Lenguaje de Arduino
C++ es un lenguaje de programación diseñado en 1979 por Bjarne Stroustrup. La intención de su creación fue extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación
estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.
El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.
Característica c++
· Su sintaxis es heredada del lenguaje C.
· Programa orientado a objetos (POO).
· Permite la agrupación de instrucciones.
· Lenguaje muy didáctico, con este lenguaje puedes aprender muchos otros lenguajes con gran facilidad.
· Es portátil y tiene un gran número de compiladores en diferentes plataformas y sistemas operativos.
· Permite la separación de un programa en módulos que admiten compilación independiente.
· Es un lenguaje de alto nivel.
Al usar la directiva	se le dice al compilador que busque e#include
interprete todos los elementos definidos en el archivo que acompaña la directiva (en este caso, iostream). Para evitar sobrescribir los elementos ya definidos al ponerles igual nombre, se crearon los
espacios de nombres o	del singular en inglés. En estenamespace
caso hay un espacio de nombres llamado std, que es donde se
incluyen las definiciones de todas las funciones y clases que conforman la biblioteca estándar de C++. Al incluir la sentencianamespace std
using
le estamos diciendo al compilador que usaremos el
espacio de nombres	por lo que no tendremos que incluirlo cuandostd
usemos elementos de este espacio de nombres, como pueden ser los
objetos	y cin , que representan el flujo de salida estándarcout
(típicamente la pantalla o una ventana de texto) y el flujo de entrada estándar (típicamente el teclado).
· La definición de funciones es igual que en C, salvo por la
característica de que si	no va a recoger argumentos, nomain
tenemos por qué ponérselos, a diferencia de C, donde había que ponerlos explícitamente, aunque no se fueran a usar. Queda
solo comentar que el símbolo	se conoce como operador de<<
inserción, y grosso modo está enviando a	lo que queremoscout
mostrar por pantalla para que lo pinte, en este caso la<<
cadena
"Hola mundo" . El mismo operador
se puede usar
varias veces en la misma sentencia, de forma que gracias a estaendl
característica podremos concatenar el objeto resultado será imprimir un retorno de línea.
Ventajas de C++
al final, cuyo
Las ventajas que tiene C++ sobre otros lenguajesde programación son las siguientes:
· Tiene un alto rendimiento.
· Es un lenguaje que se está actualizando, y, por lo tanto, a pesar de tener más de 20 años es moderno.
· Es multiplataforma.
Lenguaje de alto rendimiento
C++ tiene un alto rendimiento por varios motivos:
· Permite hacer llamadas directamente al Sistema Operativo.
· Es un lenguaje compilado para cada plataforma.
· Tiene muchísimos parámetros de optimización.
· Tiene un acceso directo a la memoria, que además controla el usuario.
· Tiene una integración directa con el lenguaje ensamblador, tan directa que incluso permite escribir directamente en ensamblador con las diferentes directivas.
Lenguaje moderno y actualizado
C++ nos permite, entre otras muchas cosas:
· Crear datos complejos.
· Definir operaciones sobre los datos complejos.
· Relacionar los datos complejos entre ellos.
· Realizar programación genérica y templates, que es hacer una clase del mismo código que sirva para cualquier tipo que pase.
· Implementar múltiples patrones de diseño
Comparativa con otros lenguajes
Podemos realizar una comparativa de C++ con otros conocidos lenguajes de programacion.
· Se considera a C++ como un superset de C. De hecho, cuando Bjarne Stroustrup lo creó, comenzó a llamarlo “C con clases”, porque permitía hacer un paradigma de orientación a objetos, a diferencia de C, que no permite objetos.
· Java y C# tienen una sintaxis muy parecida a C++, porque se quisieron basar en ella para que a los programadores no les costara mucho esfuerzo cambiarse de uno a otro. Funcionan sobre una máquina virtual, con los problemas de eficiencia que eso conlleva, pero también teniendo la ventaja de que no tienen hay que compilar el lenguaje para cada para cada sistema operativo, sino que funciona todo en su máquina virtual.
· Rust es un lenguaje muy moderno que está surgiendo con fuerza y que está generando grandes expectativas, ya que tiene muchas cosas de programación funcional, al igual que C++, que con el nuevo estándar se está actualizando cada 3 años, y permite hacer programación funcional.
· Haskell permite una mayor programación funcional que C++, ya que es un lenguaje de programación pura.
· Scripting es un lenguaje interpretado, parecido a Java y C#, pero que no funciona sobre una máquina virtual sino sobre un proceso.
· Ensamblador es un lenguaje muy difícil de controlar, muy difícil de programar, muy largo y tedioso, que para ello salieron los lenguajes de alto nivel.
 Desventajas de C++
El uso de C++ tiene un coste:
· Tiene que tener una compilación por plataforma.
· Es un lenguaje muy amplio, ya que tiene muchos años y muchas líneas de código.
· Su depuración es bastante complicada, debido a los errores que aparecen.
El Atmega328p
Como bien sabrán aquellos que siguen a Arduino, uno de los microcontroladores que mas van a encontrar en las plataformas de Arduino sera el Atmega328p.
Este es un micrcontrolador de la firma Atmel (ahora adquirida por Microchip) y esta basado en la arquitectura AVR.
AVR es una arquitectura basada en RISC (Computadora con conjunto de instrucciones reducidas), recordemos que la arquitectura de un microprocesador o microcontrolador, detalla la estructura interna del mismo y como se conforma la distribución, acceso y control de los diversos bloques que componen al microcontrolador.
Sin entrar mucho en detalles de Microprocesadores/Microcontroladores, ya que demandaría un curso dedicado solo a ese tema, podremos ver el interior de la arquitectura del Microprocesador (en el cuadro gris llamado "CPU" y agregándole los periféricos externos lo convertiremos en un microcontrolador.
La manera mas conveniente de estudiar este tema es empezando por técnicas digitales, siguiendo por lenguaje ensamblador y analizando sus registros, pilas, puertos, etc... Pero no es la idea del curso ya que la idea es aprender Arduino y este tema quedara para los que se interesen un poco mas en electrónica.
Siempre que estudiemos un microcontrolador, circuito integrado
o algún componente electrónico, es recomendable que busquemos su hoja de datos "Datasheet" asignado para saber los parámetros eléctricos y su configuración.
En este caso dejare el link para la hoja de datos del microcontrolador Atmega328p.
Dentro de los packages (encapsulados) que se provee el Atmega328, vamos a encontrar el mas popular para los proyectos Diy que sera el PDIP, este podrá ser montado directamente en un protoboard (breadboard) o en una placa de prototipado o experimental.
La disposición de pines del encapsulado 28-PDIP sera la siguiente:
Como podremos ver en la imagen, tendremos 3 puertos (B, C y D), donde estos poseen múltiples configuraciones, como por ejemplo el PC4 donde hacemos referencia al puerto C pin numero 4 que aparte de funcionar como una entrada o salida, puede funcionar como un canal multiplexado del ADC (en este caso el canal 4) también funciona como uno de los pines de la interfaz I2C (en este caso el SDA) y también como interrupción (en este caso como PCINT12).
Esto nos demuestra que el microcontrolador puede ser configurado de múltiples maneras y puede configurar sus pines de diferentes maneras según su hardware se lo permita, claro que también podremos realizar algunos protocolos por software y asignarlo a pines que no están dedicados, por ejemplo podríamos tener un pin SDA en un pin PB5, que no posee esta propiedad por hardware pero podríamos hacer la trama por software y utilizarlo, lo que no podremos hacer es usar este PB5 como un canal ADC ya que es una propiedad intrínseca del microcontrolador.
Este es el diagrama de bloques interno del Atmega328p, con todos sus bloques y configuraciones internas para manipular vía firmware.
Ahora describiremos los parámetros eléctricos del microcontrolador que es necesario y muy útil al momento de diseñar nuestro hardware o utilizar algún modulo/shield externo.
CONCLUSION
A pesar de las desventajas, C++ es tan interesante porque permite programar en lenguaje de alto nivel, y en caso de necesitarlo, permite bajar incluso a lenguaje ensamblador.
Es decir, es un lenguaje que permite tanto alto, como bajo nivel de programación, para optimizar nuestro programa.
La principal función de un Arduino es poder crear un prototipo electrónico de manera rápida con el propósito de validar alguna propuesta. Su diseño permite poder aprender el lenguaje de forma muy rápida incluso para personas ajenas a la electrónica y/o programación.
Los lenguajes de alto nivel se desarrollaron con el objetivo de ser más accesibles y entendibles por la mayoría de programadores, de manera que los programadores pudieran concentrarse más en resolver la tarea o los problemas y no en el lenguaje que la maquina tenía que entender.
El lenguaje C++ presenta grandes herramientas de desarrollo para los programadores como las funciones, bibliotecas, clases y los objetos. De manera que el programador se ocupa de utilizar dichas herramientas para resolver un problema específico.
Referencias
I. (2021, 12 julio). ¿Qué es Arduino? Arduino.cl - Compra tu Arduino en Línea. https://arduino.cl/que-es-arduino/
Fernández, Y. (2020, 3 agosto). Qué es Arduino, cómo funciona y qué puedes hacer con uno. Xataka. https://www.xataka.com/basics/que-arduino-como-funciona-que- puedes-hacer-uno

Continuar navegando