SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Seminario de Arduino

Juan José Echevarría, Adolfo García
Índice
    ¿Qué es Arduino?
    Historia
    Placas
    Configuración
    Programación
    Interacción pines digitales/analógicos
    Acceso a memoria
    Timers
    Interrupciones
    UART/SPI/I2C
    Sleep/Power
    Ejercicios

    Seminario Arduino
¿Qué es Arduino?
    Plataforma Electrónica

    Software/Lenguaje de Programación

    Sistema Open Source

    USO FÁCIL E INTUITIVO

                        www.arduino.cc


    Seminario Arduino
¿Cómo surge Arduino?
   2005 ->Instituto de Diseño Interactivo Ivrea (Italia)
       David Cuartielles y Massimo Banzi
   Problemas existentes
       Limitación tecnológica
           Usuario no experto
           Plataformas existentes ->complejas, especializadas o cerradas
       Limitación económica
   Solución
       Plataforma OpenSource
   ¡¡¡La comunidad Arduino tiene más de 120 mil
    usuarios!!!!

    Seminario Arduino
¿Por qué usar Arduino?
    Sencilla Programación
    Rápido Prototipado
    Grabación mediante USB
    Gran extensibilidad todo tipo de sensórica y
     comunicaciones. “SHIELDS”

    SHIELD: Módulo extra para añadir funciones:
        Ethernet, Wifi, Zigbee, GPRS,…




    Seminario Arduino
Placas: Arduino Uno
    uC ATmega 328 a 16MHz
    Flash 32KB
    RAM 2KB
    EEPROM 1KB
    5 entradas Analógicas [0-5V]
    14 Pines E/S Digitales
        6 PWM
    Puerto serie (0,1)
    I2C (4,5)
    SPI (10, 11, 12, 13)

    Seminario Arduino
Placas: Arduino Mega2560
    uC ATmega 2560 a 16MHz
    Flash 256KB
    RAM 8KB
    EEPROM 4KB
    15 entradas Analógicas [0-5V]
    54 Pines E/S Digitales
        14 PWM
    4 Puertos series (0-1,19-18,17-16,15-
     14)
    I2C (20,21)
    SPI (50,51,52,53)

    Seminario Arduino
Placas: Arduino Fio y Nano
    Fio
        Orientado a aplicaciones inalámbricas
        Atmega328P a 8MHz
        14 Entradas/Salidas digitales
              6 PWM
        Pines de alimentación de 3.3V
        Conector para baterías
        Conector para módulos xbee


    Nano
        Idénticas características que Duemilanove
        Alimentación a través de mini-USB
        Pensado para aplicaciones embebidas




    Seminario Arduino
Placas: Arduino LilyPad y Seeeduino Film




Seminario Arduino
Shields Arduino
  Ethernet          XBEE




  Wifi              Relés




Seminario Arduino
Características entorno Arduino
    Basado en C/C++

    Librerías-> programación
     por objetos (C++)
        Serial.begin(9600);
        Servo servo1;
    Librerías familia AVR

    Entorno propio de desarrollo



    Seminario Arduino
Arduino IDE: configuración
    Descargar la última publicación de la página web ->
     www.arduino.cc
    Descomprimir fichero
    Conectar Arduino mediante USB
        Si los drivers no se instalan automáticamente, instalar
         manualmente en …/arduino/drivers
    Ejecutar aplicación
    Seleccionar el puerto serie
    Seleccionar la placa Arduino en uso



    Seminario Arduino
Arduino IDE




Seminario Arduino
Programación
    Estructura:
        setup( )
            Al inicio de un programa
            Inicia variables, configura los pins, librerías, ...
        loop()
            Función principal del programa
            Bucle infinito
    Estructuras de control, operadores, tipos de datos…
        C/C++
    Constantes propias
        HIGH/LOW
        INPUT/OUTPUT

    Seminario Arduino
Funciones E/S
    Funciones E/S digitales:
        pinMode(pin, modo);            Inicialización
        digitalWrite(pin, estado);     Activación de una salida
        Val=digitalRead(pin);          Lectura de una entrada
    Funciones E/S analógicas y PWM:
        analogWrite(pin, valor);          Salida en PWM
        Val=analogRead(pin);              Entrada
        Val= map(Val,init,fin,init2,fin2) Mapear valor
    Función espera:
        delay(ms)                      Retraso en milisegundos



    Seminario Arduino
Ejemplo




Seminario Arduino
UART
    Arduino Uno
        Serial: Pines 0 (Rx) y 1 (Tx) -> compartido con USB
    Arduino Mega
        Serial: Pines 0 (Rx) y 1 (Tx) -> compartido con USB
        Serial1: Pines 19 (Rx) y 18 (Tx)
        Serial2: Pines 17 (Rx) y 16 (Tx)
        Serial3: Pines 15 (Rx) y 14 (Tx)
    Funciones
        byte=Serial.read();                  Recepción serie
        Serial.print(a)/Serial.println(a);   Imprimir en pantalla
        Serial.write(a);                     Envío de un dato
        Serial.begin(baudios);               Inicialización serie
        num=Serial.available();              Comprobar si hay datos
        Serial.end();


    Seminario Arduino
Ejemplo




Seminario Arduino
Interrupciones
    Externas
        Arduino Uno
            0 (pin digital 2)
            1 (pin digital 3)
        Arduino Mega
            0 (pin digital 2)
            1 (pin digital 3)
            2 (pin digital 21)
            3 (pin digital 20)
            4 (pin digital 19)
            5 (pin digital 18)



    Seminario Arduino
Interrupciones
    Externas
        attachInterrupt(interrupción, función, modo)
            interrupción-> número interrupción
                0 o 1 -> Arduino Uno
                0 a 5 -> Arduino Mega
            función-> función a la que se salta cuando ocurre
            modo-> cuándo ocurre
                LOW-> pin está a valor bajo (LOW)
                CHANGE-> pin cambia de valor
                RISING-> pin pasa de valor bajo (LOW) a alto (HIGH)
                FALLING-> pin cambie de valor alto (HIGH) a bajo (LOW)




    Seminario Arduino
Ejemplo




Seminario Arduino
Timers
    Librerías
        Timer1 -> http://www.arduino.cc/playground/Code/Timer1
    Descargar y copiar librería al directorio „/arduino-
     1.0/libraries/‟
    Incluirla en la clase principal (.ino)
        #include <TimerOne.h>
    Uso básico
        Timer1.initialize(periodo);//iniciar timer con tiempo en ms
        Timer1.attachInterrupt(función,periodo);//llamada a interrupción
         al desbordarse el timer (periodo opcional)
    Precisión
        Timer1->16 bits (65536) y el preescaler /256 (16MHz/256)
         =65536/62500 = 1.048576s


    Seminario Arduino
PROGMEM
    Utilizar memoria flash para almacenar y leer
     variables
    No se pueden grabar datos durante ejecución, sólo
     lectura
    Incluir en cabecera
        #include <avr/pgmspace.h>
    Guardar datos en memoria
        char array[] PROGMEM={“hola”};
    Leer (byte a byte en un bucle)
        char=pgm_read_byte(&array[pos]);


    Seminario Arduino
EEPROM
    Escribir/leer en memoria EEPROM
        Arduino Uno-> 1kB
        Arduino Mega-> 4kB
    #include <EEPROM.h>
    EEPROM.write(dirección, valor);//valor de 0 a 255
        Dirección de 0-1023: Arduino Uno
        Dirección de 0-4095: Arduino Mega
    EEPROM.read(dirección);//lee un byte de una
     posición
    100.000 ciclos lectura/escritura
    Permite uso durante ejecución
    Seminario Arduino
SPI
    Arduino como maestro
    Arduino Uno
        10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
    Arduino Mega
        50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)
    Funciones
        #include <SPI.h>
        SPI.begin();//Iniciar librería SPI
        SPI.transfer(byte);//Envía/recibe un byte vía SPI
        SPI.setClockDivider(divisor);//Divisor de reloj relativo al reloj del
         sistema



    Seminario Arduino
SPI
    SPI.setDataMode(modo);//polaridad y fase

                    Modo       Polaridad   Fase reloj
                               reloj
                    SPI_MODE   0           0
                    0


                    SPI_MODE   0           1
                    1


                    SPI_MODE   1           0
                    2


                    SPI_MODE   1           1
    SPI.setBitOrder(orden);//orden bits
                    3

        LSBFIRST
        MSBFIRST
    SPI.end();

Seminario Arduino
Wire
    Comunicación I2C
    Arduino Uno
        A4 (SDA) y A5 (SCL)
    Arduino Mega
        20 (SDA) and 21 (SCL)
    Funciones
        Wire.begin(dirección);//unirse bus I2C->dirección esclavo
         7 bits opcional, si no se especifica es maestro
        Wire.beginTransmission(dirección);//empezar a
         comunicarse con esclavo
        Wire.write(val);//datos a enviar

    Seminario Arduino
Wire
    Wire.endTransmission();//fin
                         Retorno   Significado
                         0         Éxito


                         1         Datos no entran en búfer de tx


                         2         NACK en tx. de la dirección


                         3         NACK en tx. de los datos


                         4         Otro

    Wire.requestFrom(dirección,cantidad);//pedir datos al
     esclavo
        Wire.available();//cantidad de datos
        Wire.read();//leer un byte
    Interrupciones de servicio

Seminario Arduino
Ejemplo




Seminario Arduino
Otras librerías
    Comunicación con módulos XBee
        http://code.google.com/p/xbee-arduino/
    Twitter
        http://arduino.cc/playground/Code/TwitterLibrary
    Servos
        http://arduino.cc/en/Reference/Servo
    NewSoftSerial
        http://arduiniana.org/libraries/newsoftserial/
    Sleep (AVR)
        http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
        http://donalmorrissey.blogspot.com/2010/04/putting-arduino-diecimila-to-
         sleep-part.html
    Power (AVR)
        http://www.nongnu.org/avr-libc/user-manual/group__avr__power.html


    Seminario Arduino
PREGUNTAS
PAUSA




Seminario Arduino
Shield desarrollada
    Conexiones
        LDR: pin A0
        Led rojo: pin 3
        Led amarillo: pin 5
        Led verde: pin 6
        Pulsador 1: pin 4
        Pulsador 2: pin 7
        RFID: pin RX
        Jumper desconectado para grabación
        Jumper conectado para ejecución




               No conectar el jumper
               en los pines superiores


    Seminario Arduino
Ejercicios
    Desarrollar una aplicación que obtenga datos de un
     sensor de luz (LDR) y active un led
     proporcionalmente al reducir la iluminación.

    Desarrollar una aplicación que lea 2 tarjetas
     RFID, de forma que al pasar una de ellas encienda
     los leds, y al pasar la otra los apague.




    Seminario Arduino

Weitere ähnliche Inhalte

Was ist angesagt?

Curso introducción a arduino
Curso introducción a arduinoCurso introducción a arduino
Curso introducción a arduino
FabLabLeon
 
Introduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salidaIntroduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salida
Moises Nuñez Silva
 
Taller de Arduino - ¿Qué es Arduino?
Taller de Arduino - ¿Qué es Arduino?Taller de Arduino - ¿Qué es Arduino?
Taller de Arduino - ¿Qué es Arduino?
mrquesito
 

Was ist angesagt? (20)

Manual programacion arduino
Manual programacion arduinoManual programacion arduino
Manual programacion arduino
 
Taller arduino intermedio
Taller arduino intermedio Taller arduino intermedio
Taller arduino intermedio
 
Curso introducción a arduino
Curso introducción a arduinoCurso introducción a arduino
Curso introducción a arduino
 
ARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libreARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libre
 
Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012
 
Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
 
Tutorial arduino 03 programación
Tutorial arduino 03   programaciónTutorial arduino 03   programación
Tutorial arduino 03 programación
 
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
 
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
Libro de proyectos del kit oficial de Arduino en castellano completo - Arduin...
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesión
 
Introduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salidaIntroduccion a arduino circuitos basicos de entrada y salida
Introduccion a arduino circuitos basicos de entrada y salida
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con Arduino
 
Introduccion a arduino 97
Introduccion a arduino 97Introduccion a arduino 97
Introduccion a arduino 97
 
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
 
GUIA BASICA ARDUINO
GUIA BASICA ARDUINOGUIA BASICA ARDUINO
GUIA BASICA ARDUINO
 
Manual Arduino Electronica
Manual Arduino Electronica  Manual Arduino Electronica
Manual Arduino Electronica
 
Taller de Arduino - ¿Qué es Arduino?
Taller de Arduino - ¿Qué es Arduino?Taller de Arduino - ¿Qué es Arduino?
Taller de Arduino - ¿Qué es Arduino?
 

Andere mochten auch

Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
Oscar Pastrana
 
Arduino Full Tutorial
Arduino Full TutorialArduino Full Tutorial
Arduino Full Tutorial
Akshay Sharma
 
Manual de operación arduino cabezal
Manual de operación arduino cabezalManual de operación arduino cabezal
Manual de operación arduino cabezal
XxScioNxX
 

Andere mochten auch (20)

Curso Arduino práctico 2014
Curso Arduino práctico  2014Curso Arduino práctico  2014
Curso Arduino práctico 2014
 
ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino uno
 
Arduino Full Tutorial
Arduino Full TutorialArduino Full Tutorial
Arduino Full Tutorial
 
Inp Deutschland GmbH main company presentation
Inp Deutschland GmbH main company presentationInp Deutschland GmbH main company presentation
Inp Deutschland GmbH main company presentation
 
Kontakt 2006
Kontakt 2006Kontakt 2006
Kontakt 2006
 
Band1 crowdsourcing open_access
Band1 crowdsourcing open_accessBand1 crowdsourcing open_access
Band1 crowdsourcing open_access
 
Catalogo 2008
Catalogo 2008Catalogo 2008
Catalogo 2008
 
Entrepreneurship Education: A Guide for EducatorsManual de empreendedorismo
Entrepreneurship Education:  A Guide for EducatorsManual de empreendedorismoEntrepreneurship Education:  A Guide for EducatorsManual de empreendedorismo
Entrepreneurship Education: A Guide for EducatorsManual de empreendedorismo
 
Manual de operación arduino cabezal
Manual de operación arduino cabezalManual de operación arduino cabezal
Manual de operación arduino cabezal
 
Hw ceapat final_distribucion
Hw ceapat final_distribucionHw ceapat final_distribucion
Hw ceapat final_distribucion
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
 
Los instrumentos de percusión
Los instrumentos de percusiónLos instrumentos de percusión
Los instrumentos de percusión
 
3.funcion and
3.funcion and3.funcion and
3.funcion and
 
2.función not
2.función not2.función not
2.función not
 
4.funcion or
4.funcion or4.funcion or
4.funcion or
 
9.subrutinas
9.subrutinas9.subrutinas
9.subrutinas
 
7.intermitencia
7.intermitencia7.intermitencia
7.intermitencia
 
Computacion Fisica Y Arduino
Computacion Fisica Y ArduinoComputacion Fisica Y Arduino
Computacion Fisica Y Arduino
 

Ähnlich wie Seminario de arduino DeustoTech

2-Programacion.de.Arduino.pdf. buen libro
2-Programacion.de.Arduino.pdf. buen libro2-Programacion.de.Arduino.pdf. buen libro
2-Programacion.de.Arduino.pdf. buen libro
denilsonflores7
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduino
miguel cruz
 

Ähnlich wie Seminario de arduino DeustoTech (20)

2-Programacion.de.Arduino.pdf. buen libro
2-Programacion.de.Arduino.pdf. buen libro2-Programacion.de.Arduino.pdf. buen libro
2-Programacion.de.Arduino.pdf. buen libro
 
Manual+programacion+arduino
Manual+programacion+arduinoManual+programacion+arduino
Manual+programacion+arduino
 
Manual arduino
Manual arduinoManual arduino
Manual arduino
 
Basicos arduino
Basicos arduinoBasicos arduino
Basicos arduino
 
Básicos arduino
Básicos arduinoBásicos arduino
Básicos arduino
 
arduino
arduinoarduino
arduino
 
Ejercicios de arduino_resueltos
Ejercicios de arduino_resueltosEjercicios de arduino_resueltos
Ejercicios de arduino_resueltos
 
S4 a + arduino
S4 a + arduinoS4 a + arduino
S4 a + arduino
 
S4a manual
S4a manualS4a manual
S4a manual
 
Manual de arduino practica.
Manual de arduino practica.Manual de arduino practica.
Manual de arduino practica.
 
Manual de arduino practica.
Manual de arduino practica.Manual de arduino practica.
Manual de arduino practica.
 
Tarjeta arduino
Tarjeta arduinoTarjeta arduino
Tarjeta arduino
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010
 
Ejercicios de arduino_resueltos
Ejercicios de arduino_resueltosEjercicios de arduino_resueltos
Ejercicios de arduino_resueltos
 
ejercicios de arduino miercoles 1.pdf
ejercicios de arduino miercoles 1.pdfejercicios de arduino miercoles 1.pdf
ejercicios de arduino miercoles 1.pdf
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduino
 
arduino
arduinoarduino
arduino
 
Micropython el sílice y la serpiente
Micropython el sílice y la serpienteMicropython el sílice y la serpiente
Micropython el sílice y la serpiente
 
Presentación ARDUINO
Presentación ARDUINO Presentación ARDUINO
Presentación ARDUINO
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 

Kürzlich hochgeladen

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Kürzlich hochgeladen (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 

Seminario de arduino DeustoTech

  • 1. Seminario de Arduino Juan José Echevarría, Adolfo García
  • 2. Índice  ¿Qué es Arduino?  Historia  Placas  Configuración  Programación  Interacción pines digitales/analógicos  Acceso a memoria  Timers  Interrupciones  UART/SPI/I2C  Sleep/Power  Ejercicios Seminario Arduino
  • 3. ¿Qué es Arduino?  Plataforma Electrónica  Software/Lenguaje de Programación  Sistema Open Source  USO FÁCIL E INTUITIVO www.arduino.cc Seminario Arduino
  • 4. ¿Cómo surge Arduino?  2005 ->Instituto de Diseño Interactivo Ivrea (Italia)  David Cuartielles y Massimo Banzi  Problemas existentes  Limitación tecnológica  Usuario no experto  Plataformas existentes ->complejas, especializadas o cerradas  Limitación económica  Solución  Plataforma OpenSource  ¡¡¡La comunidad Arduino tiene más de 120 mil usuarios!!!! Seminario Arduino
  • 5. ¿Por qué usar Arduino?  Sencilla Programación  Rápido Prototipado  Grabación mediante USB  Gran extensibilidad todo tipo de sensórica y comunicaciones. “SHIELDS”  SHIELD: Módulo extra para añadir funciones:  Ethernet, Wifi, Zigbee, GPRS,… Seminario Arduino
  • 6. Placas: Arduino Uno  uC ATmega 328 a 16MHz  Flash 32KB  RAM 2KB  EEPROM 1KB  5 entradas Analógicas [0-5V]  14 Pines E/S Digitales  6 PWM  Puerto serie (0,1)  I2C (4,5)  SPI (10, 11, 12, 13) Seminario Arduino
  • 7. Placas: Arduino Mega2560  uC ATmega 2560 a 16MHz  Flash 256KB  RAM 8KB  EEPROM 4KB  15 entradas Analógicas [0-5V]  54 Pines E/S Digitales  14 PWM  4 Puertos series (0-1,19-18,17-16,15- 14)  I2C (20,21)  SPI (50,51,52,53) Seminario Arduino
  • 8. Placas: Arduino Fio y Nano  Fio  Orientado a aplicaciones inalámbricas  Atmega328P a 8MHz  14 Entradas/Salidas digitales  6 PWM  Pines de alimentación de 3.3V  Conector para baterías  Conector para módulos xbee  Nano  Idénticas características que Duemilanove  Alimentación a través de mini-USB  Pensado para aplicaciones embebidas Seminario Arduino
  • 9. Placas: Arduino LilyPad y Seeeduino Film Seminario Arduino
  • 10. Shields Arduino Ethernet XBEE Wifi Relés Seminario Arduino
  • 11. Características entorno Arduino  Basado en C/C++  Librerías-> programación por objetos (C++)  Serial.begin(9600);  Servo servo1;  Librerías familia AVR  Entorno propio de desarrollo Seminario Arduino
  • 12. Arduino IDE: configuración  Descargar la última publicación de la página web -> www.arduino.cc  Descomprimir fichero  Conectar Arduino mediante USB  Si los drivers no se instalan automáticamente, instalar manualmente en …/arduino/drivers  Ejecutar aplicación  Seleccionar el puerto serie  Seleccionar la placa Arduino en uso Seminario Arduino
  • 14. Programación  Estructura:  setup( )  Al inicio de un programa  Inicia variables, configura los pins, librerías, ...  loop()  Función principal del programa  Bucle infinito  Estructuras de control, operadores, tipos de datos…  C/C++  Constantes propias  HIGH/LOW  INPUT/OUTPUT Seminario Arduino
  • 15. Funciones E/S  Funciones E/S digitales:  pinMode(pin, modo); Inicialización  digitalWrite(pin, estado); Activación de una salida  Val=digitalRead(pin); Lectura de una entrada  Funciones E/S analógicas y PWM:  analogWrite(pin, valor); Salida en PWM  Val=analogRead(pin); Entrada  Val= map(Val,init,fin,init2,fin2) Mapear valor  Función espera:  delay(ms) Retraso en milisegundos Seminario Arduino
  • 17. UART  Arduino Uno  Serial: Pines 0 (Rx) y 1 (Tx) -> compartido con USB  Arduino Mega  Serial: Pines 0 (Rx) y 1 (Tx) -> compartido con USB  Serial1: Pines 19 (Rx) y 18 (Tx)  Serial2: Pines 17 (Rx) y 16 (Tx)  Serial3: Pines 15 (Rx) y 14 (Tx)  Funciones  byte=Serial.read(); Recepción serie  Serial.print(a)/Serial.println(a); Imprimir en pantalla  Serial.write(a); Envío de un dato  Serial.begin(baudios); Inicialización serie  num=Serial.available(); Comprobar si hay datos  Serial.end(); Seminario Arduino
  • 19. Interrupciones  Externas  Arduino Uno  0 (pin digital 2)  1 (pin digital 3)  Arduino Mega  0 (pin digital 2)  1 (pin digital 3)  2 (pin digital 21)  3 (pin digital 20)  4 (pin digital 19)  5 (pin digital 18) Seminario Arduino
  • 20. Interrupciones  Externas  attachInterrupt(interrupción, función, modo)  interrupción-> número interrupción  0 o 1 -> Arduino Uno  0 a 5 -> Arduino Mega  función-> función a la que se salta cuando ocurre  modo-> cuándo ocurre  LOW-> pin está a valor bajo (LOW)  CHANGE-> pin cambia de valor  RISING-> pin pasa de valor bajo (LOW) a alto (HIGH)  FALLING-> pin cambie de valor alto (HIGH) a bajo (LOW) Seminario Arduino
  • 22. Timers  Librerías  Timer1 -> http://www.arduino.cc/playground/Code/Timer1  Descargar y copiar librería al directorio „/arduino- 1.0/libraries/‟  Incluirla en la clase principal (.ino)  #include <TimerOne.h>  Uso básico  Timer1.initialize(periodo);//iniciar timer con tiempo en ms  Timer1.attachInterrupt(función,periodo);//llamada a interrupción al desbordarse el timer (periodo opcional)  Precisión  Timer1->16 bits (65536) y el preescaler /256 (16MHz/256) =65536/62500 = 1.048576s Seminario Arduino
  • 23. PROGMEM  Utilizar memoria flash para almacenar y leer variables  No se pueden grabar datos durante ejecución, sólo lectura  Incluir en cabecera  #include <avr/pgmspace.h>  Guardar datos en memoria  char array[] PROGMEM={“hola”};  Leer (byte a byte en un bucle)  char=pgm_read_byte(&array[pos]); Seminario Arduino
  • 24. EEPROM  Escribir/leer en memoria EEPROM  Arduino Uno-> 1kB  Arduino Mega-> 4kB  #include <EEPROM.h>  EEPROM.write(dirección, valor);//valor de 0 a 255  Dirección de 0-1023: Arduino Uno  Dirección de 0-4095: Arduino Mega  EEPROM.read(dirección);//lee un byte de una posición  100.000 ciclos lectura/escritura  Permite uso durante ejecución Seminario Arduino
  • 25. SPI  Arduino como maestro  Arduino Uno  10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)  Arduino Mega  50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)  Funciones  #include <SPI.h>  SPI.begin();//Iniciar librería SPI  SPI.transfer(byte);//Envía/recibe un byte vía SPI  SPI.setClockDivider(divisor);//Divisor de reloj relativo al reloj del sistema Seminario Arduino
  • 26. SPI  SPI.setDataMode(modo);//polaridad y fase Modo Polaridad Fase reloj reloj SPI_MODE 0 0 0 SPI_MODE 0 1 1 SPI_MODE 1 0 2 SPI_MODE 1 1  SPI.setBitOrder(orden);//orden bits 3  LSBFIRST  MSBFIRST  SPI.end(); Seminario Arduino
  • 27. Wire  Comunicación I2C  Arduino Uno  A4 (SDA) y A5 (SCL)  Arduino Mega  20 (SDA) and 21 (SCL)  Funciones  Wire.begin(dirección);//unirse bus I2C->dirección esclavo 7 bits opcional, si no se especifica es maestro  Wire.beginTransmission(dirección);//empezar a comunicarse con esclavo  Wire.write(val);//datos a enviar Seminario Arduino
  • 28. Wire  Wire.endTransmission();//fin Retorno Significado 0 Éxito 1 Datos no entran en búfer de tx 2 NACK en tx. de la dirección 3 NACK en tx. de los datos 4 Otro  Wire.requestFrom(dirección,cantidad);//pedir datos al esclavo  Wire.available();//cantidad de datos  Wire.read();//leer un byte  Interrupciones de servicio Seminario Arduino
  • 30. Otras librerías  Comunicación con módulos XBee  http://code.google.com/p/xbee-arduino/  Twitter  http://arduino.cc/playground/Code/TwitterLibrary  Servos  http://arduino.cc/en/Reference/Servo  NewSoftSerial  http://arduiniana.org/libraries/newsoftserial/  Sleep (AVR)  http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html  http://donalmorrissey.blogspot.com/2010/04/putting-arduino-diecimila-to- sleep-part.html  Power (AVR)  http://www.nongnu.org/avr-libc/user-manual/group__avr__power.html Seminario Arduino
  • 33. Shield desarrollada  Conexiones  LDR: pin A0  Led rojo: pin 3  Led amarillo: pin 5  Led verde: pin 6  Pulsador 1: pin 4  Pulsador 2: pin 7  RFID: pin RX  Jumper desconectado para grabación  Jumper conectado para ejecución No conectar el jumper en los pines superiores Seminario Arduino
  • 34. Ejercicios  Desarrollar una aplicación que obtenga datos de un sensor de luz (LDR) y active un led proporcionalmente al reducir la iluminación.  Desarrollar una aplicación que lea 2 tarjetas RFID, de forma que al pasar una de ellas encienda los leds, y al pasar la otra los apague. Seminario Arduino