disertacion micros y hardware libre

31
Rama Estudiantil del IEEE de la UCSA Marcando la Diferencia MICROCONTROLADORES Y LA REVOLUCION DEL HARDWARE LIBRE ARDUINO BREVE CURRICULUM DE LOS DISERTANTES: CARLOS MENDEZ: ESTUDIANTE DE INGENIERIA ELECTRICA DE LA UCSA. TECNICO AUXILIAR EN ELECTRONICA RECIBIDO EN EL SNPP. CONOCIMIENTOS SOLIDOS EN ELECTRONICA Y SISTEMA OPERATIVO LINUX. CURSANDO EL 1º MODULO DE SISTEMA OPERATIVO LINUX (SERVIDORES) EN EL CENTRO TECNOLOGICO DE LA UCSA TRABAJA EN EL MINISTERIO DE EDUCACION Y CULTURA-DIRECCION DE CERTIFICACION ACADEMICA WALTER ESCURRA: LICENCIADO EN ANALISIS DE SISTEMAS POR LA UNIVERSIDAD CATOLICA. ESTUDIANTE DE INGENIERIA ELECTRICA EN UCSA PERIODO DE TESIS. TRABAJA EN EL BANCO DE FOMENTO-DEPARTAMENTO DE INFORMATICA Y DOCENTE EN UNINORTE CARRERA INGENIERIA INFORMATICA. REALIZACION DE ARTICULOS TECNICOS PARA LA REVISTA MUNDO DE LA ELECTRICIDAD.

Upload: carlos-mendez

Post on 30-Dec-2014

41 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Disertacion Micros y Hardware Libre

Rama Estudiantil del IEEE de la UCSAMarcando la Diferencia

MICROCONTROLADORES Y LA REVOLUCION DEL HARDWARE LIBRE ARDUINO

BREVE CURRICULUM DE LOS DISERTANTES:CARLOS MENDEZ: ESTUDIANTE DE INGENIERIA ELECTRICA DE LA UCSA.TECNICO AUXILIAR EN ELECTRONICA RECIBIDO EN EL SNPP.CONOCIMIENTOS SOLIDOS EN ELECTRONICA Y SISTEMA OPERATIVO LINUX.CURSANDO EL 1º MODULO DE SISTEMA OPERATIVO LINUX (SERVIDORES) EN EL CENTRO TECNOLOGICO DE LA UCSATRABAJA EN EL MINISTERIO DE EDUCACION Y CULTURA-DIRECCION DE CERTIFICACION ACADEMICAWALTER ESCURRA:LICENCIADO EN ANALISIS DE SISTEMAS POR LA UNIVERSIDAD CATOLICA.ESTUDIANTE DE INGENIERIA ELECTRICA EN UCSA PERIODO DE TESIS.TRABAJA EN EL BANCO DE FOMENTO-DEPARTAMENTO DE INFORMATICA YDOCENTE EN UNINORTE CARRERA INGENIERIA INFORMATICA.REALIZACION DE ARTICULOS TECNICOS PARA LA REVISTA MUNDO DE LA ELECTRICIDAD.

Page 2: Disertacion Micros y Hardware Libre

Microcontroladores• Un microcontrolador es una “COMPUTADORA en un CHIP”. Es el cerebro

electrónico utilizado para controlar juguetes, microondas, frigoríficos, televisores, ordenadores, impresoras, módems, el sistema de arranque de los coches, etc..

• Es un ”circuito integrado programable”, capaz de ejecutar las PROGRAMAS grabados en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

TRES PRINCIPALES UNIDADES:1 - Memoria (para almacenar programas y los datos).2- Un procesador (para procesar y llevar a cabo los programas) 3 - Pines de entrada/salida (para conectar interruptores, sensores, y dispositivos

de salida como los motores y lámparas).

Page 3: Disertacion Micros y Hardware Libre

Historia de los Microcontroladores • Los ingenieros de Texas Instruments : Gary Boone y Michael Cochran lograron crear el primer

microcontrolador, TMS 1000, en 1971; fue comercializado en 1974. Combina memorias RAM/ROM , Microprocesador y Reloj en un chip y estaba destinada a los sistemas embebidos.

• La mayor parte de las aplicaciones digitales en electrónica se basaban en la llamada lógica cableada, es decir, si existía un problema este era analizado y se sintetizaba una función en base a la lógica de Boole que era la solución al problema planteado.

• La mayoría de los microcontroladores en este momento tienen dos variantes. Unos tenía una memoria EPROM reprogramable, significativamente más caros que la variante PROM que era sólo una vez programable. Para borrar la EPROM necesita exponer a la luz ultravioleta la tapa de cuarzo transparente. Los chips con todo opaco representaban un coste menor.

• En 1993, el lanzamiento de la EEPROM en los microcontroladores (comenzando con el Microchip PIC16x84) permite borrarla eléctrica y rápidamente sin necesidad de un paquete costoso como se requiere en EPROM, lo que permite tanto la creación rápida de prototipos y la programación en el sistema. El mismo año, Atmel lanza el primer microcontrolador que utiliza memoria flash. Otras compañías rápidamente siguieron el ejemplo, con los dos tipos de memoria.

• En la actualidad los microcontroladores son baratos y fácilmente disponibles para los aficionados, con grandes comunidades y aficionados.

• En el futuro, la MRAM podría ser utilizada en microcontroladores, ya que tiene resistencia infinita y el coste de su oblea semiconductora es relativamente bajo.

Page 4: Disertacion Micros y Hardware Libre

Principales Características de los Microcontroladores

• Unidad de Procesamiento Central (CPU): De 4, 8 y 32 Bits con de “ARQUITECTURAS:” (1) Arquitectura Harvard, con de datos separada de la memoria/bus de instrucciones de programa. Con (2) memoria/bus Arquitectura Von Neumann, también llamada Arquitectura Princeton, con memoria/bus de datos y memoria/bus de programa compartida.

• Memoria de programa: Es una memoria ROM (Read-Only Memory), EPROM (Electrically Programable ROM), EEPROM (Electrically Erasable/Programable ROM) o Flash que almacena el código del programa que puede ser de un Kilobyte a varios megabytes.

• Memoria de Datos: Es una memoria RAM (Random Access Memory) que pueden ser de 1, 2, 4, 8, 16 y 32 Kilobytes:

• Generador de Reloj: Usualmente un cristal de cuarzo de frecuencias que genera una señal oscilatoria de entre 1 y 40 MHz.

• Interfaz de Entrada/Salida: Puertos paralelos y seriales (UART; Universal Asychronous Receiver/Transmitter), (IIC; Inter-Integrated Circuit). Periféricos seriales (SPI; Serial Peripheral Interfaces), Red de Área de Controladores (CAN; Controler Area Network), USB (Universal Serial Bus).

• Otros: Conversores Analógicos-Digitales (A/D, analog-to-digital) para convertir un nivel de voltaje en un cierto pin a un valor digital manipulable por el programa del microcontrolador. Moduladores por Ancho de Pulso (PWM, Pulse-Width Modulation) para generar ondas cuadradas de frecuencia fija pero con ancho de pulso modificable.

Page 5: Disertacion Micros y Hardware Libre

Estructura de un Microcontrolador

Page 6: Disertacion Micros y Hardware Libre
Page 7: Disertacion Micros y Hardware Libre
Page 8: Disertacion Micros y Hardware Libre

Clasificación de los PICs

Page 9: Disertacion Micros y Hardware Libre

Arquitectura de un PIC de 32 BitsLa nueva familia PIC32 viene con mayor rendimiento y mayor memoria, ayuda a resolver embebidos complejos diseños. PIC32 familia es totalmente compatible con conexión de Microchip MPLAB IDE , y mantener contactos, periféricos y software de compatibilidadcon las familias de MCU / DSC de 16 bits de Microchip. Microchip también ofrece un completo conjunto de herramientas de desarrollo, ejemplos de código, TCP / IP, y los archivos de sistema de software disponibles con código fuente libre .

La familia PIC32 opera a velocidades de hasta 72 MHz y ofrece hasta 512 KB Flash y 32 KB de RAM. La nueva gama también incluye un completo conjunto de periféricos integrados, tales como una variedad de periféricos de comunicación, una de 16 bits.

La nueva familia de microcontroladores de 32 bits se basa en la arquitectura MIPS32 , con su combinación de liderazgo de alto rendimiento, la respuesta de interrupción rápida, bajo consumo de energía, y una amplia tercer soporte de la herramienta . El alto rendimiento del núcleo M4K MIPS32 puede lograr lo mejor en su clase 1,5 DMIPS / MHz de operación, debido a su eficiente arquitectura de conjunto de instrucciones, tubería de 5 etapas, multiplicación / acumulador vía hardware de la unidad y hasta 8 conjuntos de 32 registros de base.

Page 10: Disertacion Micros y Hardware Libre

PIC32 Architecture

GPIO(PORTS)

InterruptControllerSRAM

Pre-fetch Cache

Flash

Bus Matrix

2-WireDebug DMA USB Ethernet CAN

Any PeripheralCN, Timers, PWM/OC, IC, ADC, RTCC,

ComparatorSPI, I2C, UART, PMP/PSP

PeripheralBridge

MIPS32® M4K®

CPU Core

INSTR. DATA

INTEJTAG

Page 11: Disertacion Micros y Hardware Libre

Principales características• Alto Rendimiento microcontrolador 32-Bit

– 72 MHz, 1.53 DMIPS / MHz CPU core– Flash pre-fetch módulo, caché 256Byte– Multiplican ciclo único y división de hardware– Cambio de contexto rápido y de respuesta a alarmas– Manipulación de bits Atómica– 4 canales controlador DMA hardware

• Características integrados Microcontroladores– Controlador de interrupciones programable vector– Puerto maestro en paralelo de 16 bits para añadir QVGA y la memoria– 10-bit ADC, 400KSPS, y + / -1 LSB– POR, BOR, LVD, Pull-ups:Múltiples – modos de administración de energía : 2.5-3.6v operación, 5v tolerants

• Herramientas de desarrollo de Microchip apoyan– MPLAB IDE (nuevo MPLAB X)– MPLAB C32 C Compiler– MPLAB VERDADERO ICEA "¢ Emulador– ICD 2 depurador en circuito– PM3 Programador Universal Device MPLAB (próximamente)

• Código libre y de código Ejemplos de código, incluyendo:– 2 pilas TCP / IP, incluyendo compatible BSD– Servidor Web– Servidor FTP– Servidor SNMP– Sistema de archivos de 16 bits– Ejemplos periféricos biblioteca (I2C, DMA, interrupciones, Memoria NV, oscilador,

SPI, UART, temporizador, perro guardián, manejo de energía, etc)• Industria / socios “Partners Comerciales de Microchips” de terceros ofrecen compiladores, enlazadores, depuradores, RTOS

(sistemas operativos en tiempo real), herramientas de desarrollo, sistema de archivos, redes , middleware y paquetes de interfaz gráfica de usuario. Cadenas completas de herramientas están disponibles en Ashling, verdes colinas y de alta tecnología, incluyendo C y C + + compiladores, IDEs y depuradores. Apoyo RTOS está disponible en CMX, Logic Express, FreeRTOS, Micrium, Segger y calabaza. Los proveedores de herramientas de gráficos incluyen easyGUI, Segger, Ramtex y Micrium.

Page 12: Disertacion Micros y Hardware Libre

MICROCHIP PIC (Programmable Interface Controller) / (ProgrammableIntelligent Computer) / (Peripheral Interface Controller)

Microchip Technology Inc. es una empresa fabricante de microcontroladores, memorias y semiconductores analógicos, situada en Chandler, Arizona, EE. UU..

• Inicialmente la empresa GI (General Instruments) creó una subdivisión para fabricar dispositivos microelectrónicos. Más tarde esta subdivisión fue vendida a Venture Capital Investors que decidió crear una nueva empresa llamada Arizona Microchip Technology.

• Los productos que fabricaba eran los microcontroladores PIC y de las memorias EEPROM y EPROM. Hoy es uno de los líderes del mercado de microcontroladores, además ofrecen productos analógicos, memorias radiofrecuencia y herramientas de desarrollo que permiten y facilitan la programación de sus productos.

Page 13: Disertacion Micros y Hardware Libre

Microcontroladores AVR-ATMELLos AVR son una familia de microcontroladoresRISC de Atmel.

La arquitectura de los AVR fue concebida pordos estudiantes en el Norwegian Institute ofTechnology, y posteriormente refinada ydesarrollada en Atmel Norway, la empresasubsidiaria de Atmel, fundada por los dosarquitectos del chip.

El acrónimo AVR fue reportado como Advanced Virtual RISC, pero hay rumores de que se debe a sus diseñadores Alf and Vegard[RISC]. Aunque Atmel admite que no se refiere aNada en particular

Page 14: Disertacion Micros y Hardware Libre

AVR-ATMEL CARACTERISTICAS• Están fabricados con tecnología CMOS. Aunque los dispositivos CMOS son más lentos que los TTL, son

ideales para los microcontroladores porque requieren de menor consumo de energía (usos de baterías corrientes). La tecnología CMOS, como sabemos, también significa que los transistores, al ser mucho menos, ocupan mucho menor espacio en el chip.

• Memorias de programa (FLASH o ROM), memoria de datos estática (SRAM) y memoria EEPROM internas.

• Puertos de E/S bidireccionales configurables independientemente pin por pin.• Suministro de alta corriente en los puertos de E/S.• Timer’s. Temporizadores de alta precisión o contadores de pulsos externos. También funcionan como

generadores de ondas PWM (Pulse Width Modulation), particularmente útiles para controlar la velocidad de los motores DC.

• WatchDog. Monitoriza que el AVR funcione adecuadamente a lo que se esperaba y no se cuelgue.• ISP (In System Programming). Permite realizar la programación del AVR utilizando una interface serial

con muy pocos pines.• Fuses y Lock bits, permiten establecer un determinado modo de funcionamiento del AVR, como el

tipo de oscilador que utilizará o si el código grabado podrá o no ser leído después de la programación.• Conversores Analógico-Digital, ADC. Para recibir señales del mundo analógico.• Módulos SPI. Para la comunicación con dispositivos que utilizan el bus SPI.• Módulo Comparador Analógico. Nos puede ahorrar un OP-AMP y algo más.• Módulo CAN. Para facilitarle al AVR su conexión con otros microcontroladores en una pequeña red

LAN con un protocolo robusto para trabajar en condiciones extremas.• Una ventaja de los microcontroladores AVR frente a los PIC es su reducido consumo, tanto en

voltaje como en corriente, lo que permite el desarrollo de aplicaciones que funcionen a baterías.

Page 15: Disertacion Micros y Hardware Libre
Page 16: Disertacion Micros y Hardware Libre

• Arduino es una plataforma de hardware de código abierto (OpenSource) basada en una placa con un microcontrolador y un entorno de desarrollo diseñada para facilitar el uso en la electrónica y en proyectos multidisciplinares. La placa consiste en microcontroladores AVR-ATMEL.

• Sus creadores son el español David Cuartielles (Ing. Electrónico) y el italiano Massimo Banzi (diseñador y desarrollador WEB). Su nombre viene del nombre del bar “Bar di Re Arduino” donde Massimo Banzi pasaba algunas horas, el cual a su vez viene del nombre de un antiguo rey europeo por el año 1002, que significa "amigo fuerte".

• Arduino nació en el Instituto Italiano de Diseño Interactivo Ivrea en el año 2005, una escuela donde los estudiantes centraban sus experimentos en la interacción con dispositivos, muchos de ellos basados en microcontroladores.

• Hoy en día con Arduino se pueden fabricar infinidad de prototipos y cada ves su uso se viene expandiendo más. Desde cubos de leds, sistemas de automatización en casa (demótica), integración con el Internet, displays Twitter, kit analizadores de ADN.

• Google ha apostado por el proyecto y ha colaborado en el Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con spmartphones Android para obtener las funcionalidades del teléfono (GPS, acelerómetros, GSM, a bases de datos) y viceversa para que el teléfono controle luces, motores y sensores conectados en el Arduino.

Page 17: Disertacion Micros y Hardware Libre
Page 18: Disertacion Micros y Hardware Libre

Arduino Mega2560 - Características

• Lleva 54 entradas/salidas digitales y 14 de estas pueden utilizarse para salidas PWM. Además lleva 16 entradas analógicas, UARTs (puerto serie), un oscilador de 16MHz, una conexión USB, un conector de alimentación, un header ICSP (para programar directamente el micro) y un pulsador para el reset. La placa lleva todo lo necesario para soportar el microprocesador. Para empezar a utilizar la placa sólo es necesario conectarla al ordenador a través de un cable USB, o alimentarla con un adaptador de corriente AC/DC. También, para empezar, puede alimentarse sencillamente con una batería.Microprocesador ATmega2560

• Tensión operativa 5V• Tensión de alimentación (recomendado) 7-12V• Tensión de alimentación (limites) 6-20V• 54 Entradas/Salidas Digitales (14 de estas se pueden utiliza

para salidas PWM)• 16 Entradas Analógicas• Máxima corriente continua para las entradas: 40 mA• Máxima corriente continua para los pins 3.3V: 50 mA• Flash Memory 256 KB (el bootloader usa 8 KB).• SRAM 8 KB• EEPROM 4 KB• Velocidad del Clock 16 MHz

Page 19: Disertacion Micros y Hardware Libre

OTRAS PLACAS

Page 20: Disertacion Micros y Hardware Libre
Page 21: Disertacion Micros y Hardware Libre
Page 22: Disertacion Micros y Hardware Libre
Page 23: Disertacion Micros y Hardware Libre

MICROS!

Page 24: Disertacion Micros y Hardware Libre

Fabricantes de microcontroladores• Atmel• Dallas Semiconductor• Intel• Philips• Siemens• Temic• Arizona Microchip (Pic)• Hitachi• Motorola• National Semiconductor• SGS-Thomson• Texas Instrument• Zilog

Page 25: Disertacion Micros y Hardware Libre

Software/Hardware Libre la Nueva Revolución Industrial• Se debe recordar en todo momento que libre no es sinónimo de gratis.

• Software Libre: La palabra "libre" en nuestro nombre no se refiere al precio; se refiere a la libertad. Primero, a la libertad de copiar y redistribuir un programa a tus vecinos, para que ellos al igual que tu, lo puedan usar también. Segundo, a la libertad de cambiar un programa, así podrás controlarlo en lugar que el programa te controle a ti; para esto, el código fuente tiene que estar disponible para ti.

• Hardware Libre: Se llama hardware libre a los dispositivos de hardware cuyas especificaciones y diagramas esquemáticos son de acceso público, ya sea bajo algún tipo de pago o de forma gratuita. La filosofía del software libre (las ideas sobre la libertad del conocimiento) es aplicable a la del hardware libre. El hardware libre forma parte de la cultura libre. Algo que tiene en común el hardware con el software es que ambos corresponden a las partes tangibles de un sistema informático sus componentes son; eléctricos eléctricos electromecánicos y mecánicos son cables gabinetes o cajas.

Page 26: Disertacion Micros y Hardware Libre

Lenguaje de programación ArduinoLa “inteligencia de Arduino” se expresa mediante su lenguaje de programación.

Arduino esta basado en C y soporta todas las funciones del estándar C y algunas de C++ (En un lenguaje Proccessing propio) .

Si conocemos el lenguaje C, no tendremos dificultades para programar en Arduino puesto que se parecen enormemente. Tan solo debemos

aprender algunas funciones específicas de que dispone el lenguaje para manejar los diferentes parámetros de Arduino.

Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.

Sintaxis BásicaDelimitadores: ;, {}Comentarios: //, /* */Cabeceras: #define, #includeOperadores aritméticos: +, -, *, /, %Asignación: =Operadores de comparación: ==, !=, <, >, <=, >=Operadores Booleanos: &&, ||, !Operadores de acceso a punteros: *, &Operadores de bits: &, |, ^, ~, <<, >>Operadores compuestos: Incremento/decremento de variables: ++, --Asignación y operación: +=, -=, *=, /=, &=, |=

Page 27: Disertacion Micros y Hardware Libre

Funciones BásicasEn cuanto a las funciones básicas del lenguaje nos encontramos con las siguientes:E/S Digital:• pinMode(pin, modo)• digitalWrite(pin, valor) • int digitalRead(pin)E/S Analógica:• analogReference(tipo)• int analogRead(pin)• analogWrite(pin, valor)E/S Avanzada:• shiftOut(dataPin, clockPin, bitOrder, valor)• unsigned long pulseIn(pin, valor)Tiempo:• unsigned long millis()• unsigned long micros()• delay(ms)• delayMicroseconds(microsegundos)

Page 28: Disertacion Micros y Hardware Libre

Estructuras de control

Condicionales: if, if...else, switch caseBucles: for, while, do... whileBifurcaciones y saltos: break, continue, return, gotoVariables: En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.Constantes:• HIGH / LOW: niveles alto y bajo en pines. Los niveles altos son aquellos de 3 voltios o más.• INPUT / OUTPUT: entrada o salida• true / falseTipos de datos:void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, arrayConversión entre tipos: Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el tipo deseado.char(), byte(), int(), word(), long(), float()Cualificadores y ámbito de las variables:static, volatile, constUtilidadessizeof()

Page 29: Disertacion Micros y Hardware Libre

Estructura del Programa• La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Estas dos

partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones.void setup(){Estamentos o Ordenes;}void loop(){Estamentos o Ordenes;}

En donde setup() es la parte encargada de recoger la configuración y loop() es la que contienen el programa que se ejecutará cíclicamente

(de ahí el termino loop –bucle-). Ambas funciones son necesarias para que el programa trabaje.La función bucle (loop) contiene el código que se ejecutara continuamente (lectura de entradas, activación de salidas, etc). Estafunción es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo.

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 elpuerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar.

void setup(){pinMode(pin, OUTPUT); // configura el 'pin' como salida}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 posibilitaque el programa este respondiendo continuamente ante los eventos que se produzcan en la tarjetavoid loop(){digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´delay(1000); // espera un segundo (1000 ms)digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´delay(1000);}

Page 30: Disertacion Micros y Hardware Libre

Practica con módulos del Arduino (Sensor de Temperatura y Humedad mas LCD 16x2)

Page 31: Disertacion Micros y Hardware Libre

Software y Hardware Libre

SOMOS LIBRES!!!!!COMPARTIMO NUESTROS CONOCIMIENTOS!!!!!

UNETE AL OPENSOURCE

Material elaborado por Carlos Méndez (Vicepresidente de la RAMA IEEE UCSA) y Walter Escurra (Coordinador de Actividades de la RAMA IEEE UCSA). Estudiantes de la Carrera Ing. en Electricidad de la Universidad del Cono Sur de las Américas y Miembros del IEEE (Institute of Electrical and Electronics Engineer).