Seminario Arduino UAH

download Seminario Arduino UAH

of 39

Transcript of Seminario Arduino UAH

  • 8/7/2019 Seminario Arduino UAH

    1/39

  • 8/7/2019 Seminario Arduino UAH

    2/39

    Proyecto Arduino

    Nace en 2005David Cuartielles y Massimo Banzi

    Problemas existentesLimitacin tecnolgica

    El usuario no es expertoLas plataformas existentes son muycomplejas, especializadas o cerradas.

    Limitacin econmicaEl usuario final cambia: particulares,

    equipos docentes, entidades sin nimos delucro, ...

    SolucinCrear nuestra propia plataforma. FilosofaOpenSource. Compartir conocimiento.

    INTRODUCCIN

  • 8/7/2019 Seminario Arduino UAH

    3/39

    Desarrollando la idea - Placa Arduino

    "Arduino es una plataforma de electrnicaabierta para la creacin de prototipos basadaen software y hardware flexibles y fciles deusar. Se cre para artistas, diseadores,aficionados y cualquiera interesado en crearentornos u objetos interactivos."

    Elementos bsicos

    EntradasSalidasEntrada de programacin

    INTRODUCCIN

  • 8/7/2019 Seminario Arduino UAH

    4/39

    Evolucin de placas

    Placa OriginalImpresin por una cara14 salidas digitales6 salidas analgicasPines de alimentacin de 5V y 9V

    Puerto ICSP (in circuit serial programming)Puerto serie DB9

    Placa SeverinoImpresin por una cara

    14 salidas digitales6 salidas analgicasPines de alimentacin de 5V y 9VPuerto ICSPPuerto serie DB9Puerto serie rx-tx-gnd

    PLACAS ARDUINO

  • 8/7/2019 Seminario Arduino UAH

    5/39

    Evolucin de placas

    Arduino SerialImpresin por dos caras14 salidas digitales6 salidas analgicas

    Pines de alimentacin de 5V y 9V

    Puerto ICSPPuerto serie DB9Puerto serie rx-tx-gnd

    Arduino serie USBVersiones: Arduino USB, Arduino

    USB 2.0, Extreme, Extreme v2,NG, NG Rev.Incorporan pines hembra.

    PLACAS ARDUINO

    Masa de rejilla.USB FTDI R232RC

    Atmega128

  • 8/7/2019 Seminario Arduino UAH

    6/39

    Evolucin de placas

    Arduino Diecimila y DuemilanoveReset desde PCRegulador de baja cadaFusible reseteablePines de alimentacin de 5V y 3.3V

    Mayor compatibilidad con sensores

    Arduino MegaAtmega1280 - 16MHz

    44 entradas/salidas digitales14 de ellas PWM16 entradas digitales4 UARTSPuerto ICSPComunicacin SPI (serial peripheral interface)

    PLACAS ARDUINO

  • 8/7/2019 Seminario Arduino UAH

    7/39

    Evolucin de placas

    Arduino FioOrientado a aplicaciones inalmbricasAtmega328P - 8MHz14 Entradas/Salidas digitales

    6 de ellas PWM

    Pines de alimentacin de 3.3VConector para bateras ionConector para mdulos xbee

    Arduino LilyPad

    Diseado para prendas textilesARmega168V / ATmega328V - 8MHz14 Entradas/Salidas digitales

    6 de ellas PWM

    PLACAS ARDUINO

  • 8/7/2019 Seminario Arduino UAH

    8/39

    Evolucin de placas

    Arduino BT (bluetooth)Incorpora mdulo bluetoothAtmega16814 Entradas/Salidas digitales

    6 de ellas PWM

    Pines de alimentacin de 3.3V y 5VConvertidor DC-DC (1.2V - 5.5V)Pin 7 conectado con reset bluetoothBaudrate a 115200 bpsSin proteccin de carga o polarizacin

    Arduino NanoIdnticas caractersticas que DuemilanoveMicro Atmega168 Atmega328Alimentacin a travs de Mini-USB

    PLACAS ARDUINO

  • 8/7/2019 Seminario Arduino UAH

    9/39

    Evolucin de placas

    Arduino MiniBasado en Atmega16814 Entradas/Salidas digitales

    6 de ellas PWM8 Entradas analgicas

    Sin proteccin de carga o polarizacinProgramable con el adaptador MiniUSB

    Arduino Mini USB

    Equivalente a Arduino MiniSe aade conectividad a travs de USB

    PLACAS ARDUINO

  • 8/7/2019 Seminario Arduino UAH

    10/39

    Arduino no est slo

    MicrocontroladoresMicrochips PICBasic StampBX-24 de NetmediaPhidgets

    ...

    Otros proyectos similares

    Programma 2003Wiring - semilla ArduinoInstantsoupProcessing

    PLACAS ARDUINO

    $99 $30PIC

    Basic Stamp

    BX-24

  • 8/7/2019 Seminario Arduino UAH

    11/39

    Conociendo Arduino (Duemilanove)

    Elementos en la placa

    ARDUINO

    USB

    I/O digitales

    Masa

    PWM

    Serie

    AREF

    Voltaje de referenciapara entrada analgica

    Valores high/low.PWM para escritura

    analgica

    Comunicacin serietx/rx

    Comunicacin con el

    PC

  • 8/7/2019 Seminario Arduino UAH

    12/39

    Conociendo Arduino (Duemilanove)

    Elementos en la placa

    ARDUINO

    Vin

    Reset

    Alimentacin externa

    In analgicas

    3V3,5V

    Batera, pared

    Fuentes de alimentacinde 3.3V y 5V estabilizados

    Conecta conAlimentacin externa

    Extensin de botnreset

    Lecturas analgicas 0-1023 niveles

  • 8/7/2019 Seminario Arduino UAH

    13/39

    Referencia del lenguaje

    Estructura

    ARDUINO

    setup( )Al inicio de un sketch

    Inicia variables, estado de pinsinicio de libreras, ...

    loop()Funcin principal del sketch.Ejecucin indefinida

    Estructuras de controlifif...elseforwhile

    do...while

    switch casebreakcontinuereturn

    Basado en C/C++Vincula la librera AVR Libc

  • 8/7/2019 Seminario Arduino UAH

    14/39

    Referencia del lenguaje

    Ms sintxis

    ARDUINO

    Operadores aritmticos

    ; (punto y coma){} (llaves)// (comentarios de una sola lnea)

    /* */ (comentarios multilnea)#define (definicin de precompilador)#include(inclusin de cdigo externo)

    = (operador de asignacin)

    + (suma)- (resta)* (multiplicacin)/ (divisin)% (mdulo)

  • 8/7/2019 Seminario Arduino UAH

    15/39

    Referencia del lenguaje

    Operadores de comparacin

    ARDUINO

    Operadores booleanos== (igual que)!= (distinto que)< (menor que)> (mayor que)

    = (mayor o igual que)

    && ('y' lgico)|| ('o' lgico)! (negacin lgica)

    Operadores de accesoa punteros

    * operador de indireccin& acceso a memoria

    Operadores a nivel de bits& ('y' a nivel de bits)

    | ('o' a nivel de bits)^ (xor a nivel de bits)~ (not a nivel de bits)> (desplazamiento de bits a la derecha)

  • 8/7/2019 Seminario Arduino UAH

    16/39

    Referencia del lenguaje

    Operadores compuestos

    ARDUINO

    ++ (incremento)-- (decremento)+= (suma compuesta)

    -= (resta compuesta)*= (multiplicacin compuesta)/= (divisin compuesta)&= ('y' a nivel de bits compuesto)|= ('o' a nivel de bits compuesto)

    ConstantesHIGH | LOWINPUT | OUTPUTtrue | falseconstantes enterosconstantes en coma flotante

  • 8/7/2019 Seminario Arduino UAH

    17/39

    Referencia del lenguaje

    Tipos de datos

    ARDUINO

    voidbooleanchar

    unsigned charbyteintunsigned int

    Conversin

    wordlongunsigned long

    floatdoublestringarray

    char()byte()int()word()long()

    float()

  • 8/7/2019 Seminario Arduino UAH

    18/39

    Referencia del lenguaje

    mbito de variables y cualificadores

    ARDUINO

    variables localesvariables globalesstaticvolatileconst

    FuncionesE/S digital

    pinMode()

    digitalWrite()digitalRead()E/S analgica

    analogReference()analogRead()analogWrite()

    E/S avanzadatone()notone()shiftOut()pulseIn()

  • 8/7/2019 Seminario Arduino UAH

    19/39

    Referencia del lenguaje

    Funciones

    ARDUINO

    Tiempomillis()micros()delay()

    Clculomin()max()abs()constrain()

    map()pow()sqrt()

    Trigonometrasin(),cos(),tan()

    Nmeros aleatoriosrandomSeed()random()

    Bits y ByteslowByte()highByte()bitRead()bitWrite()bitSet()

    bitClear()bit()

  • 8/7/2019 Seminario Arduino UAH

    20/39

    Referencia del lenguaje

    Funciones

    ARDUINO

    Interrupciones externasattachInterrupt()dettachInterrupt()

    Interrupcionesinterrupts()noInterrupts()

    Comunicacin / Serialbegin()end()available()read()flush()print()println()write()

  • 8/7/2019 Seminario Arduino UAH

    21/39

    Conociendo Arduino

    Framework

    ARDUINO

    Edicin de sketch

    Control de sketch

    Consola de salida y errores

  • 8/7/2019 Seminario Arduino UAH

    22/39

    Conociendo Arduino

    Framework - Configuracin previa

    ARDUINO

    Seleccin del tipo de placa

    Arduino UnoArduino DuemilanoveArduino Diecimila...

    Seleccin del puerto serie

    correcto

    "Quemar" el cargador de inicio (bootloader)? No suele ser necesario

  • 8/7/2019 Seminario Arduino UAH

    23/39

    Conociendo Arduino

    Hola Mundo

    ARDUINO

    Declaracin de variables:int pin_led = 13; //asociamos pin a variable

    Definicin de configuracin:void setup(){pinMode(pin_led,OUTPUT);

    } //configuramos dicho pin en modo salida

    Bucle principal del programa:void loop(){ //alternamos estados en salida con retardo

    digitalWrite(pin_led,LOW);

    delay(1000);

    digitalWrite(pin_led,HIGH);

    delay(1000);

    }

  • 8/7/2019 Seminario Arduino UAH

    24/39

    Conociendo Arduino

    Comunicacin Serie

    ARDUINO

    Declaracin de variables: char*mensaje = "Hola mundo";

    int tecla_byte;

    Definicin de configuracin: void setup(){

    Serial.begin(9600);}

    Bucle principal del programa: void loop(){

    Serial.println(mensaje); while(!Serial.available()){}

    if(Serial.available()){ tecla_byte = Serial.read(); Serial.println(tecla_byte,DEC); }

    }

  • 8/7/2019 Seminario Arduino UAH

    25/39

    PROCESSING Y LA INTERACTIVIDAD

    ARDUINO - EL ARTE DIGITAL

    Lenguaje de programacinEntorno de desarrolloOrientado a la enseanza, diseodigital y proyectos multimedia

  • 8/7/2019 Seminario Arduino UAH

    26/39

    INTERACTIVIDAD

    ARDUINO - EL ARTE DIGITAL

    Exposiciones, ferias de arteEducacin, publicidad

    rhifid speakers

    kasabian futbol hero

    game of life

    virtual gravity

  • 8/7/2019 Seminario Arduino UAH

    27/39

    PROCESSING Y LA INTERACTIVIDAD

    ARDUINO - MERCADO ASOCIADO

    Placas de prototipadoArte en ventaSoluciones a medida, servicios

    ardupilot

    photoduino

    quadcopter

    arducopter

    winemairpiano

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    28/39

    HOGAR DIGITAL - AUTONOMA PERSONAL

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    DOMTICA: domus (casa) + tica (automtica)Autonoma Personal:

    Tomar decisiones propias que afectan a su vida personal.Poder vivir en el lugar que uno quiera.

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    29/39

    HOGAR DIGITAL - AUTONOMA PERSONAL

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Ejemplo de dispositivos de sistemas de domtica

    Posibles aplicacionesrelacionadas con la autonomapersonal

    Discapacidades:

    Movilidad - sillainteligenteMobiliario inteligente...

    Enfermedades:GeolocalizacinAplicaciones de alerta

    Atencin remota...Otras

    Control de nios...

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    30/39

    Sensores

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Sensor de humedadControl de toldos, ventanas, persianas...Riego de plantasAlerta de inundacin

    Domtica Autonomapersonal

    DigitalConsumo 30 W

    0-100% HRTemperatura

    AnalgicoSalida Lineal AREF 5VConsumo 200 W

    0-100% HRTemperatura

    Sensor de luminosidadControl de luces, ventanas, persianas...Alerta de seguridadAlerta de

    Analgico1kOhm - 10kOhm0-100% HRTemperatura

    Comportamientosimilar a transistor

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    31/39

    Sensores

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Sensor de presin atmosfricaControl de toldos, Ventanas, Persianas...Riego de plantas, Aviso meteorolgico...

    Domtica Autonomapersonal

    DigitalConexin I2CBajo consumo

    30KPa - 110KPaTemperatura

    DigitalConexin SPIBajo consumo

    30KPa - 120KPaTemperatura

    Sensor de presenciaControl de luces, Control de energa,calefaccin...Alerta de seguridadAccionamientos mecnicos

    Comportamientosimilar a transistor

    Comunicacin Serie 9600bpsSalida analgica 10mV/pulgada0-255 niveles (6,45 metros)

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    32/39

    Sensores

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Sensor de temperaturaControl de calefaccin, ventanas, persianas,...Alertas de seguridad, Aplicaciones grficasAccionamiento de sistemas contra hieloSeguimiento temperatura pacientes

    Domtica Autonomapersonal

    ResistenciaAnalgico10kOhm

    AnalgicoSalida Lineal 10mV/K2.98V = 298K = 25C

    DigitalResolucin 12 bits (0.065C)-25C / 80CConexin I2C

    Atmega + sensor

    Atmega 328PSensor temp. infrarrojoSolucin pequeo tamao

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    33/39

    Sensores

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Sensor biomtricoControl de acceso e identificacinAlerta y control de intoxicacin (calderas)

    Domtica Autonomapersonal

    AnalgicoDetector Monxido de

    carbono20-2000ppm

    DigitalComunicacin serie9600bps

    Devuelve una nica id

    Analgico

    Detector partculas de humo0.5V/0.1mg/m3

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    34/39

    Sensores

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Acelermetros, giroscopios, brjulas, GPSAnticipacin y control del sistema domticoControl automtico de dispositivos mvilesLocalizacin de personas, Captura de movimientos

    Domtica Autonomapersonal

    Acelermetro

    AnalgicoDos ejesSalida lineal

    AcelermetroAnalgico

    Tres ejes+/- 3G eje vertical(z)Salida lineal

    GiroscopioAnalgicoDos ejes

    Salida linealVelocidad angular500/s

    GPS

    Comunicacin serieNMEA / SIRF20 canales5m de precisin

    BrjulaComunicacin I2CResolucin 0.2

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    35/39

    Comunicacin

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Solucin inmediata - Comunicacin Puerto SerieIdeal para comunicacin con perifricos (junto con I2C ySPI)Tasas de transferencia hasta 120kbpsInconveniente: conexin cableada

    Domtica Autonomapersonal

    Comunicacin puerto serieRatio de tx: 2MbpsAlcance < 10m

    Comunicacin Serie / SPIHasta 4Mbps TCP/IP wpa28Mb memoria

    Soporte TCP, UDP, FTP, ...

    BluetoothTransferencia de datos entre dispositivosMltiples aplicaciones

    Wifi 802.11b/gControl remoto de sistemas domticosAtencin remota, vigilancia, seguimiento mdico

    ARDUINO HOGAR DIGITAL AUTONOMA PERSONAL SENSORES

  • 8/7/2019 Seminario Arduino UAH

    36/39

    Comunicacin

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    Domtica Autonomapersonal

    Comunicacin puerto serie

    Potencia: 1mW256kbps maxAlcance: 100m

    Xbee / Zigbee

    Creacin de redes sensoriales mvilesHogar digital vs Comunidad digitalInformacin en tiempo real "sobre la marcha"

    Comunicacin puerto serie

    Potencia: 50mW256kbps maxAlcance: 1600m

    Comunicacin puerto seriePotencia: 1W

    256kbps maxAlcance: 64km

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

  • 8/7/2019 Seminario Arduino UAH

    37/39

    Ms demos

    ARDUINO - HOGAR DIGITAL - AUTONOMA PERSONAL - SENSORES

    + INFORMACIN

  • 8/7/2019 Seminario Arduino UAH

    38/39

    Pginas de inters

    + INFORMACIN

    http://arduino.cc/eshttp://processing.orghttp://wiring.org.co/http://www.creativeapplications.nethttp://www.instructables.com/

    Contacto

    [email protected]

  • 8/7/2019 Seminario Arduino UAH

    39/39

    Gracias por vuestraatencin