Tema 2.4. Arduino

download Tema 2.4. Arduino

of 28

Transcript of Tema 2.4. Arduino

  • 7/30/2019 Tema 2.4. Arduino

    1/28

    78

    Arduino

    ElectrnicaIndustrial

    Interruptores Pulsadores Potencimetros LDRs Fotoclulas Encoders

    Galgasextensom Termopares Acelermetros MEMs

    SENSORES

    Solenoides,rels,piezoelctricos Motoresdecon@nua Motorespasoapaso Servomotores Disposi@voshidrulicosy

    neum@cos.

    ACTUADORES

    C.discretos Amplificadores Filtros A/D

    ACONDICIONADORESDESEALESDE

    ENTRADAEINTERFACES

    Combinacionales Secuenciales P C

    Memorias SoC Comunicaciones Soware

    SISTEMASDECONTROL

    DIGITAL

    D/A Amplificadores PWM

    Transistores

    ACONDICIONADORES

    DESEALESDESALIDAEINTERFACES LEDs

    Displays LCD

    CRT TFT

    VISUALIZADORES

    Sistemasmecnico

  • 7/30/2019 Tema 2.4. Arduino

    2/28

    79

    Arduino

    ElectrnicaIndustrial

    Conceptosgenerales

    Arduino es una plataforma de diseo de objetos interac@vos (Physycal Compu@ng o PhisicalInterac@on Design) que integra una tarjeta microcontroladora open-source, un entorno dedesarrollo de soware basado en el lenguaje de programacin Processing y una ampliacomunidaddeusuarios.

    Enresumen,Arduinoseu@lizaparadesarrollarobjetosyentornosinterac@vos(internetdelascosas) que @enen que ver con la creacin de obras de arte, diseo de mecatrnica (paraconsumoeindustrial)yproyectosDIY(DoItYourself)paraaficionados.

    Losobjetospuedenserautnomos(stand-alone)opuedencomunicarseconcualquiersowareatravsdepuertoserie(p.e.Flash,Processing,MaxMSP,.),bienporcableoporXbee,ZigBit,etc.

    Lastarjetasmicrocontroladoraspuedenserconstruidasporelusuariofinalopuedencomprarseyafabricadas.

    El entorno de desarrollo (IDE, Integrated Development Environment) puede ser descargadolibrementedesdewww.arduino.com.

    Arduino

  • 7/30/2019 Tema 2.4. Arduino

    3/28

    80

    Arduino

    ElectrnicaIndustrial

    El Phisical Compu@ng, en el sen@do ms amplio, persigue construir objetos interac@vosmediante el uso de soware y hardware. Estos objetos se caracterizan por poder percibirsealesdeunmundoanalgicoypoderresponderalasmismas.

    Aunque esta definicin incluira mul@tud decampos tecnolgicos, talescomo los sistemas decontroldetrficodeautomvilesinteligentes,automa@zacindeprocesosindustriales,etc.,elPhisicalCompu@ngnohacereferenciaaestoscampostecnolgicos.Estetrmino@enemsqueverconlacreacindeobrasdearte,diseodemecatrnica(paraconsumoeindustrial)yproyectosDIY(DoItYourself)paraaficionados.

    Enelpasado,u@lizarelectrnicasignificabatenerquetratarconingenierostodoel@empo,yalavezconstruiruncircuitoenunpequeocomponente.Estoimpedaquelagentecrea@vano

    poda u@lizar estas tecnologas fcilmente. La mayor parte de las herramientas estabanpensadasparaingenierosyrequeranconocimientosmuyprofundos.

    Enlaactualidadlosmicrocontroladoressonmuchomsbaratosyfcilesdeusar.ConArduino,un diseador o ar@sta puede conocer las bases de la electrnica y los sensores muyrpidamenteypuedecomenzaraconstruirproto@posconmuypocainversin.

    PhisicalCompu@ng(Soloparaleerporlosalumnos).

    Conceptosgenerales

  • 7/30/2019 Tema 2.4. Arduino

    4/28

    81

    Arduino

    ElectrnicaIndustrial

    [email protected],MacintoshyLinux. El IDE de Arduino est basado en Processing, un entorno de desarrollo fcil de u@lizar por

    ar@stasydiseadores.

    LastarjetasCArduinosepuedenprogramarvauncableUSB,nounpuertoserie.

    Tantoel hardwarecomoelsowareesopen-source.Elusuariopuededescargarlosdiagramasdelos circuitos,comprartodoslos componentesy fabricrselo elmismo, sin tenerquepagarnadaalosfabricantesdeArduino.

    Elhardwareesbarato.UnatarjetaArduinoUNOcuestaunos20.Yreemplazarunchipdaadoenlatarjetaesfcilybarato(nocuestamsde5).

    Hayunacomunidaddeusuariosmuyac@vaconlaquepodercolaboraryrecibirayuda.

    Qulodiferenciadeotrosentornos?

    Conceptosgenerales

  • 7/30/2019 Tema 2.4. Arduino

    5/28

    82

    Arduino

    ElectrnicaIndustrial

    PlacasArduino(I)

    Consultarparaunalistacompletahp://en.wikipedia.org/wiki/List_of_Arduino_compa@bles

    ArduinoLeonardo(2012) ArduinoMega2560(XXXX) ArduinoUno(XXXX) ArduinoMega(XXXX)

    ArduinoDuemilanove(XXXX) ArduinoDiecimila(XXXX) ArduinoBluetooth(XXXX) ArduinoNGRev.C(XXXX)

    ArduinoNG(XXXX) LilyPADArduino(XXXX) ArduinoNano(XXXX) ArduinoMini(XXXX)

    PlacasoficialesdeArduino

  • 7/30/2019 Tema 2.4. Arduino

    6/28

    83

    Arduino

    ElectrnicaIndustrial

    Shields:Arquitecturamodularinteligente

    Las Shields son placas que a modo deaccesorio se pueden conectar a una placaArduinoocompa@ble.

    Paraellolospinesdesuspuertosguardanunadisposicindecompa@bilidad.

    Existe una gran variedad de shields condiversa funcionalidad: control de motores,comunicaciones,proto@padorpido,etc.

    Arduino. GSMShield.

    EthernetShield.

    UnalistacompletaShieldssepuedeencontraren:hp://shieldlist.org/

    PlacasArduino(II)

  • 7/30/2019 Tema 2.4. Arduino

    7/28

    84

    Arduino

    ElectrnicaIndustrial

    PlacaArduinoUno(I)

    ATmega328P-PU 32KbytedememoriadeprogramaFLASH 2KbytedeRAM 16MHzdevelocidaddereloj Entradas/Salidas

    14pinesdeentradas/salidas 6pinesdeentradasanalgicas(tambinsalidas) Total:20entradas/salidas

    Completamenteautnomo(stand-alone)unavezprogramado.

    Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno

    [email protected]

  • 7/30/2019 Tema 2.4. Arduino

    8/28

    85

    Arduino

    ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno

    AlimentacinyPOWER

    PuertoUSB

    Alimentacin5V

    JackAlimentacinexterna5-15V

    3.3V3,3vol@os

    5V5vol@os

    GND0vol@os

    VinAlimentacinexternadeentradasinregular

    PlacaArduinoUno(II)

  • 7/30/2019 Tema 2.4. Arduino

    9/28

    86

    Arduino

    ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno

    Entradas/Salidas

    14pinesdeE/Sdigitales.2,4,7,8,12,13=puertosdigitalesconvencionales3,5,6,9,10,11=puertosPWM

    Puertosanalgicos.A4,A5=sonu@lizadasparaconexionesI2C/TWI

    A0-A5=puedenfuncionarcomopuertosdigitales(14-19)

    AREFVoltajedereferenciaparaentradasanalgicas

    PlacaArduinoUno(III)

  • 7/30/2019 Tema 2.4. Arduino

    10/28

    87

    Arduino

    ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno

    Comunicaciones

    PuertoserieRX/TX. ICSP.

    Paracargarelgestordearranque(bootloader)oprogramas/firmware.

    PuertoUSByFTDIchipset

    PlacaArduinoUno(IV)

  • 7/30/2019 Tema 2.4. Arduino

    11/28

    88

    Arduino

    ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno

    Otrascaracters@cas BotndeRESET. LEDsdetest,TXyRX. LEDdeencendido Reloja16/20Mhz. Microcontrolador

    Atmega328

    PlacaArduinoUno(V)

  • 7/30/2019 Tema 2.4. Arduino

    12/28

    89

    Arduino

    ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Hacking/PinMapping168

    MapeadoentreATmega168/328yArduino

    Entradas/salidasdeArduino(I)

  • 7/30/2019 Tema 2.4. Arduino

    13/28

    90

    Arduino

    ElectrnicaIndustrial

    Puertosdeentrada/salidadigitales TrabajanconnivelesdetensinTTL:

    0-0,8V=0 2-5V=1

    Nosepuedenconectardirectamenteadisposi@vosqueconsumanpotencia.

    Entradas/salidasdeArduino(II)

  • 7/30/2019 Tema 2.4. Arduino

    14/28

    91

    Arduino

    ElectrnicaIndustrial

    Puertosanalgicos Conver@dorA/Dde10bits:0a1023. Latensindereferenciaes5V.

    0V=0 2,5V=215 5V=1023

    Nosepuedenconectardirectamenteadisposi@vosqueconsumanpotencia.

    Entradas/salidasdeArduino(III)

  • 7/30/2019 Tema 2.4. Arduino

    15/28

    92

    Arduino

    ElectrnicaIndustrial

    PuertosPWM Esunpuertohbrido,yaqueesun

    puerto digital que mediante lamodulacin de 0 y 1 consigueexpresarunaideadepotencia.

    Entradas/salidasdeArduino(IV)

  • 7/30/2019 Tema 2.4. Arduino

    16/28

    93

    Arduino

    ElectrnicaIndustrial

    Cmosetrabajaenlaprc@ca? Asignamoscomponentesalospuertosdisponibles(digitales,analgicosyPWM). Realizamoslecturasyescriturasconelobjetodeobtenerundatodeunsensorocontralar

    undeterminadoactuador.

    ProcesamoslosdatosenelC.

    Veamosalgunosejemplosdecomponentesquepodemosu@lizar

    Entradas/salidasdeArduino(V)

  • 7/30/2019 Tema 2.4. Arduino

    17/28

    94

    Arduino

    ElectrnicaIndustrial

    AlgunosejemplosdesensoresyactuadoresparaArduino

    Brjula Sensordetemperatura

    Medidorultrasnico

    GPS Pantallatc@l Controladordemotor

    UnidadGSM/GPRS

    Sensordepresin

    Entradas/salidasdeArduino(VI)

  • 7/30/2019 Tema 2.4. Arduino

    18/28

    95

    Arduino

    ElectrnicaIndustrial

    Tiendas

    Espaolas Extranjeras

    " www.cooking-hacks.com www.bricogeek.com www.ardumania.es

    " www.parallax.com" www.sparkfun.com www.makershed.com www.liquidware.com www.ladyada.net www.adafruit.com

    Seagradececualquierinformacinparateneractualizadaestalista

    Entradas/salidasdeArduino(VII)

  • 7/30/2019 Tema 2.4. Arduino

    19/28

    96

    Arduino

    ElectrnicaIndustrial

    ElentornodedesarrolloArduino(I)

    Cmopodemosempezar? Descargarlal@maversindelIDE(1.0.1).

    hp://arduino.cc/en/Main/Soware Sigue las instrucciones de hp://arduino.cc/es/Guide/HomePage para la instalacin en

    Windows,MacoLinux.

    ConectalaplacaArduinoatuordenadorusandoelcableUSB.elLEDverdeindicadordela

    alimentacin(nombradocomoPWRenlaplaca)deberaquedarencendidoapar@rdeesemomento.

    HazdobleclicksobrelaaplicacinArduino. AbreelprogramadeejemploparahacerparpadearunLED("LEDblink"):Abrir>Basics>

    Blink Compilamoselprogramadeejemplo:Verificar CargamoselcdigocompiladoenArduino:Cargar

    SitodofuncionacorrectamenteelLEDdeTESTdeberaparpadearPruebaacambiarlos@emposderetardoycompruebaquelafrecuenciadeparpadeovara

  • 7/30/2019 Tema 2.4. Arduino

    20/28

    97

    Arduino

    ElectrnicaIndustrial

    Versin1.0.1 Men

    readeProgramacin

    readeDEBUG

    ElentornodedesarrolloArduino(II)

  • 7/30/2019 Tema 2.4. Arduino

    21/28

    98

    Arduino

    ElectrnicaIndustrial

    Versin1.0.1

    ElsowaredesarrolladoconArduinoseconocecomosketches. Lossketchesseescribenconuneditordetextoysonguardadosconlaextensin.ino

    VerificarChequea

    errores

    CargarCompilay

    carga

    NuevoCreanuevos

    sketches

    AbrirAbresketches

    existentes

    GuardarGraba

    Sketches

    MonitorSerialAbreelmonitorserie

    ElentornodedesarrolloArduino(III)

  • 7/30/2019 Tema 2.4. Arduino

    22/28

    99

    Arduino

    ElectrnicaIndustrial

    Conceptosgenerales

    SebasaenCestndar. Paraelcontroldelospuertosdelmicrocontroladorseu@lizanlasfuncionespredefinidas:

    pinMode(,) //configuraunpuertodigitalparaleeroescribirdatos digitalWrite(,0o1) //envaun0o1alpuertodigital digitalRead() //devuelveun0o1delpuerto analogRead() //devuelveunvalor(0-1023)delpuertoanalgico analogWrite(,) //escribeenunpuertoPWMunvalorde0a255

    Ellenguajedeprogramacin(I)

  • 7/30/2019 Tema 2.4. Arduino

    23/28

    100

    Arduino

    ElectrnicaIndustrial

    Estructuradeunprograma

    Se@enenqueprogramarobligatoriamentedosfunciones:voidsetup() //seejecutaunasolavez,cuandoseiniciaelsketch{}voidloop() //seejecutademodocon@nuoindefinidamente{}

    Ellenguajedeprogramacin(II)

  • 7/30/2019 Tema 2.4. Arduino

    24/28

    101

    Arduino

    ElectrnicaIndustrial

    Primerejemplo.LEDparpadeante.Esquem@co

    Ellenguajedeprogramacin(III)

  • 7/30/2019 Tema 2.4. Arduino

    25/28

    102

    Arduino

    ElectrnicaIndustrial

    Primerejemplo.LEDparpadeante.Programa

    /*BlinkTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.Thisexamplecodeisinthepublicdomain.*///Pin13hasanLEDconnectedonmostArduinoboards.//giveitaname:intled=13;//thesetuprou@nerunsoncewhenyoupressreset:voidsetup(){//[email protected](led,OUTPUT);}//thelooprou@nerunsoverandoveragainforever:

    voidloop(){digitalWrite(led,HIGH);//turntheLEDon(HIGHisthevoltagelevel)delay(1500);//waitforaseconddigitalWrite(led,LOW);//turntheLEDoffbymakingthevoltageLOWdelay(1500);//waitforasecond}

    Ellenguajedeprogramacin(IV)

  • 7/30/2019 Tema 2.4. Arduino

    26/28

    103

    Arduino

    ElectrnicaIndustrial

    Primerejemplo.LEDparpadeante.Montajeenprotoboard.

    Ellenguajedeprogramacin(V)

  • 7/30/2019 Tema 2.4. Arduino

    27/28

    104

    Arduino

    ElectrnicaIndustrial

    Segundoejemplo.Fade.Esquem@co

    Habrqueu@lizar: unasalidaPWM(3,5,6,9,20o11) analogWrite(,)

    /*

    FadeThisexampleshowshowtofadeanLEDonpin9usingtheanalogWrite()[email protected].*/intled=9;//thepinthattheLEDisaachedtointbrightness=0;//howbrighttheLEDis

    intfadeAmount=5;//howmanypointstofadetheLEDby//thesetuprou@nerunsoncewhenyoupressreset:voidsetup(){//declarepin9tobeanoutput:pinMode(led,OUTPUT);}//thelooprou@nerunsoverandoveragainforever:voidloop(){//setthebrightnessofpin9:

    analogWrite(led,brightness);//changethebrightnessfornext@methroughtheloop:brightness=brightness+fadeAmount;//reversethedirec@onofthefadingattheendsofthefade:if(brightness==0||brightness==255){fadeAmount=-fadeAmount;}//waitfor30millisecondstoseethedimmingeffect

    delay(30);}

    Ellenguajedeprogramacin(VI)

    TarjetaArduino

    Pin9

    Gnd

  • 7/30/2019 Tema 2.4. Arduino

    28/28

    Dr.AndrsIborra

    UniversidadPolitcnicadeCartagena

    CampusMuralladelMar,s/n

    30202Cartagena

    Tel. +34968325654

    Fax. +34968325345

    E-mail andres.iborraupct.es

    Twier CincubatorHUBaiborraListadecorreo cloud-incubatorupct.es

    Www www.cincubator.com