Proyecto Automata

download Proyecto Automata

of 25

Transcript of Proyecto Automata

  • 7/24/2019 Proyecto Automata

    1/25

    nsituto Tecnolgico de Oaxaca

    Asignatura:Lenguaje y Autmatas 2Cgo:SCD!"!#

    $ora de clase: !:"" 2:""%nidad : &royecto 'inal

    (om)re de &royecto : *ra+o ,o)otico Controlado con ArduinoCate-.tica:Ing/ *enit0 1ueca Cla3)elIntegrant4 del 56ui7o:

    ,icardo 8arcia 9ain0

    9oral4 9ancera 5lias Alejan-o9ain0 Lo70 'ranc;co Antonio

  • 7/24/2019 Proyecto Automata

    2/25

    Dibujo Tcnico

    2

  • 7/24/2019 Proyecto Automata

    3/25

    Nombre del Proyecto:

    Brazo robotico con placa arduino

    1.- Este proyecto es una Brazo controlada con una placa Arduino esta formada por cinco servomotores,los cuales cada uno de estos servomotores tendrn movimiento hacia la derecha o izquierda

    servomotor !1" #niciara en $%& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada 1 * 2

    servomotor !2" #niciara en '%& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada ' * +

    servomotor !'"#niciara en 1%& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada *

    El cuarto servomotor !+"#niciara en $%& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada * /

    servomotor!"#niciara en %& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada A * 0

    '

  • 7/24/2019 Proyecto Automata

    4/25

  • 7/24/2019 Proyecto Automata

    5/25

    El se)undo servomotor !2" #niciara en '%& y tendr movimientos de '%( )rados esto le permitirtener movimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada ' * +

    Autmata de Servomotor M(

    Gramatica

    34',+5,6t4q1,q25,6nt4q%5,04q%5,7"Alfabeto3 4',+5

    Elementos 8erminales6t 4q1,q5

    Elementos 9o 8erminales6nt 4q%5

    A:ioma de #nicio

    0 4q%5

    Arbol Sintctico

    %&'

    %&

    %& + +'%&

    Tabla de Smboloq% q1

    q% q1 q2

    %&

    0;;'

    '%&pos2

    pos2 - '%&

    -

    '%&pos2

    !ovimiento a la =erecha

    !ovimiento a la #zquierda

    !e"la de Produccin

    ?Base@;;?numero@#?numero@?letra@#?letra@;;?numero@#?numero@?letra@#?Base@

    Nombre Ti%o Tama&opos2 int '2 bits

    Dia"rama de 'tado

    %&

    ' %&

    q%

    q1

    q2

    +

    '%&

    +

    '

    ''%&

    q2

  • 7/24/2019 Proyecto Automata

    6/25

    El tercero servomotor !'"#niciara en 1%& y tendr movimientos de '%( )rados esto le permitir tenermovimientos hacia la derecha * izquierda dependiendo del alfabeto de entrada *

    Autmata de Servomotor M)

    Gramatica

    34,5,6t4q1,q5,6nt4q%5,04q%5,7"Alfabeto3 4,5

    Elementos 8erminales6t 4q1,q25

    Elementos 9o 8erminales6nt 4q%5

    A:ioma de #nicio

    0 4q%5

    Arbol Sintctico

    1/%&

    1/%& 1%&

    Tabla de Smbolo

    q1 q2

    q% q1 q2

    12%&

    q%

    q1

    0;;

  • 7/24/2019 Proyecto Automata

    7/25

  • 7/24/2019 Proyecto Automata

    8/25

    !"#niciara en %& y tendr movimientos de '%( )rados esto le permitir tener movimientos hacia laderecha * izquierda dependiendo del alfabeto de entrada A * 0

    Autmata de Servomotor M+

    Gramatica

    34A,05,6t4q+5,6nt 4q%,q2,q'5,04q%5,7"Alfabeto3 4A,05

    Elementos 8erminales6t 4q1,q'5

    Elementos 9o 8erminales6nt 4q%,q2,q'5

    A:ioma de #nicio0 4q%5

    Arbol Sintctico

    /

    1/%&

    Tabla de Smbolo

    q%

    B;;A

  • 7/24/2019 Proyecto Automata

    9/25

    ,di"oArduino

    include ?0ervo.h@ Cabecera para el servovariables 6#6A0 y )lobales0ervo servoD0ervo servo2D0ervo servo'D0ervo servo+D0ervo servoD

    variables FGBAFE0 y son variables 6#6A0int matlab=ato %D 0e le asi)na el valor leido en el puerto serialint pos %D #ncremento en la posicion de los servosint pos2Brazo%Dint pos'Codo%Dint posripper%D

    void setup" 4

    servo.attach$"D 0ervo metalico en puerto $ BA0Eservo2.attach1%"D servo intermedio en puerto 1% BHAIGservo'.attach12"D servo final en puerto 11 CG=Gservo+.attach"D !uJecaservo.attach"D ripper

    iniciarar valores de servosservo.Krite$%"D base de % -1/% 1,2servo2.Krite'%"D brazo #nicia en '% tiene 2 movimientos su minimo es '% y su ma:imo es % ',+

    servo'.Krite1%"D codo #nicia en 1%, limitar el codo de 12%-1/% para que se levante ,servo+.Krite$%"D muJeca de %-1/% ,/servo.Krite$%"D )ripper $% se cierra el H#77EH #nicia en % y cierra en 1/% tiene + movimientos

    de %-1/%1/% se abre el ripper

    delay%%%"D establecer tiempo de espera en los servos

    0erial.be)in$%%"D 0e inicializa el puerto serial confi)urado a $%%5

    void loop" 4

    if 0erial.available" @ %"4

    $

  • 7/24/2019 Proyecto Automata

    10/25

    matlab=ato 0erial.read"D Asi)nando valor leido en el puerto0erial.printlnmatlab=ato"D

    posBaseconstrainposBase,%,12%"DsKitch matlab=ato" 4servo de la BA0Ecase L1L; 0i el valor di)itado es 1 )ira a la derecha, es +$ por que es el valor en he:adecimal

    izquierdapos > '%D 0e incrementaservo.Kritepos"D la posicion del servo

    delay1"D 0e espera por otra ordenbreaMD

    case L2L; 0i el valor di)itado es 2 )ira a la izquierda, es % por que es el valor en he:adecimalderechapos - '%D 0e decrementaservo.Kritepos"D la posicion del servodelay1"D 0e espera por otra ordenbreaMD

    fin del servo de !E8AF 1

    if de servo2 BHAIGbaNacase L'L; 0i el valor di)itado es ' )ira a la derecha, es 1 por que es el valor en he:adecima

    pos2Brazo >'%D 0e incrementapos2Brazoconstrainpos2Brazo,'%,%"Dservo2.Kritepos2Brazo"D la posicion del servo

    delay1"D 0e espera por otra ordenbreaMD

    subecase L+L; 0i el valor di)itado es + )ira a la izquierda, es 2 por que es el valor de 2 en

    he:adecimal

    pos2Brazo -'%D 0e =esincrementapos2Brazoconstrainpos2Brazo,'%,%"Dservo2.Kritepos2Brazo"D la posicion del servodelay1"D 0e espera por otra ordenbreaMD fin de servo intermedio

    inicia servo' CG=GArriba es ---@1/%

    1%

  • 7/24/2019 Proyecto Automata

    11/25

    0u limite es 12%case LL; 0i el valor di)itado es )ira a la derecha, es ' por que es el valor en he:adecimalpos'Codo> '%D 0e incrementapos'Codoconstrainpos'Codo,12%,1/%"Dservo'.Kritepos'Codo"D la posicion del servodelay1"D 0e espera por otra ordenbreaMD

    case LL; 0i el valor di)itado es )ira a la izquierda, es % por que es el valor de 2 enhe:adecimal

    pos'Codo- '%D 0e decrementapos'Codoconstrainpos'Codo,12%,1/%"Dservo'.Kritepos'Codo"D la posicion del servodelay1"D 0e espera por otra ordenfin de servo finalbreaMD

    inicia servo+ !OPECAcase LL; 0i el valor di)itado es )ira a la derecha, es ' por que es el valor en he:adecimalsubepos > '%D 0e incrementa posconstrainpos,$%,1%"Dservo+.Kritepos"D la posicion del servodelay1"D 0e espera por otra ordenbreaMD

    case L/L; 0i el valor di)itado es )ira a la izquierda, es % por que es el valor de 2 enhe:adecimal

    baNapos - '%D 0e decrementa posconstrainpos,$%,1%"Dservo+.Kritepos"D la posicion del servodelay1"D 0e espera por otra ordenfin de servo finalbreaMD

    inicia servo H#77EHA cierra el rippercase LAL; 0i el valor di)itado es )ira a la derecha, es ' por que es el valor en he:adecimal

    posripper > '%D 0e incrementa posripperconstrainposripper,$%,1%"D

    11

  • 7/24/2019 Proyecto Automata

    12/25

    servo.Kriteposripper"D la posicion del servodelay%"D 0e espera por otra ordenbreaMD

    0 abre el rippercase L0L; 0i el valor di)itado es )ira a la izquierda, es % por que es el valor de 2 en

    he:adecimal

    posripper - '%D 0e decrementa posripperconstrainposripper,$%,1%"D

    servo.Kriteposripper"D la posicion del servodelay%"D 0e espera por otra ordenfin de servo finalbreaMD

    5

    5fin del la sentencia if que valida el serial

    5 fin del loop

    12

  • 7/24/2019 Proyecto Automata

    13/25

    ,di"o-avaQQ 8o chan)e this license header, choose Ficense Readers in 7roNect 7roperties.Q 8o chan)e this template file, choose 8ools < 8emplatesQ and open the template in the editor.Q

    pacMa)e ruaSconS0ervosDQQQQ Tauthor 7arMerQimport )nu.io.0erial7ortEventDimport )nu.io.0erial7ortEventFistenerDimport Nava.aKt.event.UeyEventDimport Nava.aKt.event.UeyFistenerDimport Nava.util.lo))in).FevelDimport Nava.util.lo))in).Fo))erDimport Nava:.sKin).#ma)e#conDimport panamahiteM.7anamaRiteMSArduinoDimport panamahiteM.7anamaRiteMSmulti!essa)eD

    public class rua0ervo e:tends Nava:.sKin).VWrame implements UeyFistener 4

    7anamaRiteMSArduino arduino neK 7anamaRiteMSArduino"D

    7anamaRiteMSmulti!essa)e multi neK 7anamaRiteMSmulti!essa)e, arduino"D

    static 0erial7ortEventFistener evento neK 0erial7ortEventFistener" 4 GbNeto eventopublic void serialEvent0erial7ortEvent ev" 4

    5

    5D

    QQ Q Creates neK form rua0ervo Q public rua0ervo" 4 initComponents"D try 4 arduino.ArduinoHX8XYCG!11Y, 2%%%,$%%, evento"D 5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5

    1'

  • 7/24/2019 Proyecto Automata

    14/25

    addUeyFistenerthis"D 5

    QQ Q 8his method is called from Kithin the constructor to initialize the form. Q ZAH9#9; =o 9G8 modify this code. 8he content of this method is alKays Q re)enerated by the Worm Editor. Q T0uppressZarnin)sYunchecMedY" ?editor-fold defaultstateYcollapsedY descYenerated CodeY@E9-BE#9;initComponents private void initComponents" 4

    N7anel1 neK Nava:.sKin).V7anel"D etiqueta neK Nava:.sKin).VFabel"D titulo neK Nava:.sKin).VFabel"D N7anel2 neK Nava:.sKin).V7anel"D NFabel1 neK Nava:.sKin).VFabel"D mov neK Nava:.sKin).VFabel"D tipo0ervo neK Nava:.sKin).VFabel"D tecla neK Nava:.sKin).VFabel"D NFabel2 neK Nava:.sKin).VFabel"D NFabel' neK Nava:.sKin).VFabel"D NFabel+ neK Nava:.sKin).VFabel"D NFabel neK Nava:.sKin).VFabel"D NFabel neK Nava:.sKin).VFabel"D NFabel neK Nava:.sKin).VFabel"D NFabel/ neK Nava:.sKin).VFabel"D

    set=efaultCloseGperationNava:.sKin).ZindoKConstants.EX#8SG9SCFG0E"D

    N7anel1.setBacM)roundneK Nava.aKt.Color2%+, 2, 2%+""D

    etiqueta.set#conneKNava:.sKin).#ma)e#con)etClass".)etHesourceYruaSconS0ervosinicio.Np)Y"""D 9G#1/9 etiqueta.set6erticalAli)nmentNava:.sKin).0Kin)Constants.BG88G!"D

    titulo.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 titulo.set8e:tYBHAIG CG9 0EH6G!G8GHE0Y"D

    Nava:.sKin).roupFayout N7anel1Fayout neK Nava:.sKin).roupFayoutN7anel1"D N7anel1.setFayoutN7anel1Fayout"D N7anel1Fayout.setRorizontalroup N7anel1Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9,N7anel1Fayout.create0equentialroup" .addContainerap22, 0hort.!AXS6AFOE" .addComponentetiqueta"

    1+

  • 7/24/2019 Proyecto Automata

    15/25

    .addap1$2, 1$2, 1$2"" .addroupN7anel1Fayout.create0equentialroup" .addap'+', '+', '+'" .addComponenttitulo" .addContainerapNava:.sKin).roupFayout.=EWAOF8S0#IE, 0hort.!AXS6AFOE"" "D N7anel1Fayout.set6erticalroup N7anel1Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9,N7anel1Fayout.create0equentialroup" .addContainerap" .addComponenttitulo" .addap1/, 1/, 1/" .addComponentetiqueta" .addContainerap2, 0hort.!AXS6AFOE"" "D

    N7anel2.setBacM)roundneK Nava.aKt.Color2, 2, 2%+""D

    NFabel1.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel1.set8e:tY8ecla ;Y"D

    mov.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 mov.set8e:tYArribaAbaNoY"D

    tipo0ervo.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 tipo0ervo.set8e:tY[ue tipo de servoY"D

    tecla.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 tecla.set8e:tY8ecla oprimidaY"D

    NFabel2.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel2.set8e:tY0ervo ;Y"D

    NFabel'.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel'.set8e:tY!ovimiento ; Y"D

    Nava:.sKin).roupFayout N7anel2Fayout neK Nava:.sKin).roupFayoutN7anel2"D N7anel2.setFayoutN7anel2Fayout"D N7anel2Fayout.setRorizontalroup N7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addroupN7anel2Fayout.create0equentialroup" .addContainerap".addroupN7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9" .addComponentNFabel'" .addComponentNFabel2, Nava:.sKin).roupFayout.Ali)nment.FEA=#9"

    1

  • 7/24/2019 Proyecto Automata

    16/25

    .addComponentNFabel1, Nava:.sKin).roupFayout.Ali)nment.FEA=#9"" .add7referredapNava:.sKin).Fayout0tyle.Component7lacement.HEFA8E=".addroupN7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addComponentmov" .addComponenttipo0ervo" .addComponenttecla"" .addContainerap/, 0hort.!AXS6AFOE"" "D N7anel2Fayout.set6erticalroup N7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9,N7anel2Fayout.create0equentialroup" .addap2/, 2/, 2/".addroupN7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.BA0EF#9E" .addComponenttecla" .addComponentNFabel1"" .addap+1, +1, +1".addroupN7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.BA0EF#9E" .addComponenttipo0ervo" .addComponentNFabel2"" .add7referredapNava:.sKin).Fayout0tyle.Component7lacement.HEFA8E=, 1,0hort.!AXS6AFOE".addroupN7anel2Fayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.BA0EF#9E" .addComponentNFabel'" .addComponentmov"" .addContainerap"" "D

    NFabel+.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel+.set8e:tY#nstituto 8ecnol*)ico de Ga:aca Y"D

    NFabel.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel.set8e:tYFen)uaNes y Automatas 2Y"D

    NFabel.setWontneK Nava.aKt.WontYArial Hounded !8 BoldY, %, 1+""D 9G#1/9 NFabel.set8e:tY#n). en 0istemas ComputacionalesY"D

    NFabel.set#conneKNava:.sKin).#ma)e#con)etClass".)etHesourceYruaSconS0ervossep.pn)Y"""D 9G#1/9

    NFabel/.set#conneKNava:.sKin).#ma)e#con)etClass".)etHesourceYruaSconS0ervosito.pn)Y"""D 9G#1/9

    1

  • 7/24/2019 Proyecto Automata

    17/25

    Nava:.sKin).roupFayout layout neK Nava:.sKin).roupFayout)etContent7ane""D )etContent7ane".setFayoutlayout"D layout.setRorizontalroup layout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addrouplayout.create0equentialroup" .addrouplayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addrouplayout.create0equentialroup" .addContainerapNava:.sKin).roupFayout.=EWAOF8S0#IE, 0hort.!AXS6AFOE" .addComponentN7anel2, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE,Nava:.sKin).roupFayout.=EWAOF8S0#IE, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE" .addap1%1, 1%1, 1%1" .addComponentN7anel1, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE,Nava:.sKin).roupFayout.=EWAOF8S0#IE, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE"" .addrouplayout.create0equentialroup" .addap2'1, 2'1, 2'1" .addComponentNFabel".addrouplayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addrouplayout.create0equentialroup" .addap1%1, 1%1, 1%1".addrouplayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9" .addComponentNFabel" .addComponentNFabel+"" .addap, , "" .addroupNava:.sKin).roupFayout.Ali)nment.8HA#F#9,layout.create0equentialroup" .add7referredapNava:.sKin).Fayout0tyle.Component7lacement.HEFA8E=" .addComponentNFabel" .addap1%1, 1%1, 1%1""" .addComponentNFabel/" .addap%, %, 0hort.!AXS6AFOE""" .addap21, 21, 21"" "D layout.set6erticalroup layout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addrouplayout.create0equentialroup" .addrouplayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addrouplayout.create0equentialroup" .addComponentNFabel+" .addap11, 11, 11" .addComponentNFabel" .add7referredapNava:.sKin).Fayout0tyle.Component7lacement.HEFA8E=" .addComponentNFabel"" .addComponentNFabel/" .addrouplayout.create0equentialroup" .addContainerap"

    1

  • 7/24/2019 Proyecto Automata

    18/25

    .addComponentNFabel""" .addap1/, 1/, 1/" .addrouplayout.create7arallelroupNava:.sKin).roupFayout.Ali)nment.FEA=#9" .addComponentN7anel1, Nava:.sKin).roupFayout.=EWAOF8S0#IE,Nava:.sKin).roupFayout.=EWAOF8S0#IE, 0hort.!AXS6AFOE" .addrouplayout.create0equentialroup" .addComponentN7anel2, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE,Nava:.sKin).roupFayout.=EWAOF8S0#IE, Nava:.sKin).roupFayout.7HEWEHHE=S0#IE" .addap%, %, 0hort.!AXS6AFOE""" .addContainerap"" "D

    pacM"D 5 ?editor-fold@E9-E9=;initComponents

    QQ Q Tparam ar)s the command line ar)uments Q public static void main0trin) ar)s\]" 4 Q 0et the 9imbus looM and feel Q ?editor-fold defaultstateYcollapsedY descY FooM and feel settin) code optional" Y@ Q #f 9imbus introduced in Vava 0E " is not available, stay Kith the default looM and feel. Q Wor details see http;doKnload.oracle.comNavasetutorialuisKin)looMandfeelplaf.html

    Q try 4 for Nava:.sKin).O#!ana)er.FooMAndWeel#nfo info ;Nava:.sKin).O#!ana)er.)et#nstalledFooMAndWeels"" 4 if Y9imbusY.equalsinfo.)et9ame""" 4 Nava:.sKin).O#!ana)er.setFooMAndWeelinfo.)etClass9ame""D breaMD 5 5 5 catch Class9otWoundE:ception e:" 4Nava.util.lo))in).Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Nava.util.lo))in).Fevel.0E6EHE,null, e:"D 5 catch #nstantiationE:ception e:" 4Nava.util.lo))in).Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Nava.util.lo))in).Fevel.0E6EHE,null, e:"D 5 catch #lle)alAccessE:ception e:" 4Nava.util.lo))in).Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Nava.util.lo))in).Fevel.0E6EHE,null, e:"D 5 catch Nava:.sKin).OnsupportedFooMAndWeelE:ception e:" 4Nava.util.lo))in).Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Nava.util.lo))in).Fevel.0E6EHE,

    1/

  • 7/24/2019 Proyecto Automata

    19/25

    null, e:"D 5 ?editor-fold@

    Q Create and display the form Q Nava.aKt.Event[ueue.invoMeFaterneK Hunnable" 4 public void run" 4 neK rua0ervo".set6isibletrue"D 5 5"D 5

    6ariables declaration - do not modifyE9-BE#9;variables private Nava:.sKin).VFabel etiquetaD private Nava:.sKin).VFabel NFabel1D private Nava:.sKin).VFabel NFabel2D private Nava:.sKin).VFabel NFabel'D private Nava:.sKin).VFabel NFabel+D private Nava:.sKin).VFabel NFabelD private Nava:.sKin).VFabel NFabelD private Nava:.sKin).VFabel NFabelD private Nava:.sKin).VFabel NFabel/D private Nava:.sKin).V7anel N7anel1D private Nava:.sKin).V7anel N7anel2D private Nava:.sKin).VFabel movD private Nava:.sKin).VFabel teclaD private Nava:.sKin).VFabel tipo0ervoD private Nava:.sKin).VFabel tituloD End of variables declarationE9-E9=;variables

    TGverride public void Mey8ypedUeyEvent e" 4

    5

    TGverride public void Mey7ressedUeyEvent e" 4

    variables lobales y 6#6A0 0trin) arribaYarribaYD 0trin) abaNoYabaNoYD

    0trin) uno1 Y1YD 0trin) dos2 Y2YD 0trin) t01YBA0EYD servo 1

    0trin) tres' Y'YD

    1$

  • 7/24/2019 Proyecto Automata

    20/25

    0trin) cuatro+ Y+YD 0trin) t02YBHAIGYD servo 2

    0trin) cinco YYD 0trin) seis YYD 0trin) t0'YCG=GYD servo '

    0trin) siete YYD 0trin) ocho/ Y/YD 0trin) t0+Y!O^ECAYD servo +

    0trin) a YAYD 0trin) s Y0YD 0trin) t0YH#77EHYD servo

    0ystem.out.printlnYEl caracter es; Y > e.)etUeyChar">Y_n0u codi)o numerico es; Y>e.)etUeyCode""D

    Y-=Nava.library.pathYC;_7ro)ram Wiles :/"_Vava_NdM1..%S2_libY

    sKitche.)etUeyCode""4

    case UeyEvent.6US1;

    try 4arduino.send=atauno1"D arduino recibe la entrada 1 y el servo 1 se mueve hacia arriba

    tecla.set8e:tuno1"D !uestra en el Fabel la tecla oprimida tipo0ervo.set8e:tt01"D !uestra nombre del 0ervo en O0G mov.set8e:tY#zquierdaY"D muestra que tipo de movimiento hace etiqueta.set#conneKNava:.sKin).#ma)e#con)etClass".)etHesourceYruaSconS0ervosmemes.Np)Y"""D 9G#1/9 etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs1.Np)Y"""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5

    breaMD

    case UeyEvent.6US2;

    try 4arduino.send=atados2"D arduino recibe la entrada 2 y el servo 1 se mueve hacia abaNo

    tecla.set8e:tdos2"D

    2%

  • 7/24/2019 Proyecto Automata

    21/25

    tipo0ervo.set8e:tt01"D mov.set8e:tY=erechaY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs1.Np)Y""""D

    5fin del if

    catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5

    breaMD

    case UeyEvent.6US'; try 4 arduino.send=atatres'"D arduino recibe la entrada ' y el servo 2 se mueve hacia arriba tecla.set8e:ttres'"D tipo0ervo.set8e:tt02"D mov.set8e:tYabaNoY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs2.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US+; try 4 arduino.send=atacuatro+"D arduino recibe la entrada + y el servo 2 se mueve hacia abaNo tecla.set8e:tcuatro+"D tipo0ervo.set8e:tt02"D mov.set8e:tYarribaY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs2.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US; try 4 arduino.send=atacinco"D arduino recibe la entrada y el servo ' se mueve hacia arriba tecla.set8e:tcinco"D tipo0ervo.set8e:tt0'"D mov.set8e:tarriba"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs'.Np)Y""""D

    5

    21

  • 7/24/2019 Proyecto Automata

    22/25

    catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US; try 4 arduino.send=ataseis"D arduino recibe la entrada y el servo ' se mueve hacia abaNo tecla.set8e:tseis"D tipo0ervo.set8e:tt0'"D

    mov.set8e:tabaNo"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs'.Npe)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US; try 4 arduino.send=atasiete"D arduino recibe la entrada y el servo + se mueve hacia arriba tecla.set8e:tsiete"D tipo0ervo.set8e:tt0+"D mov.set8e:tY#zquierdaY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs+.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US/; try 4 arduino.send=ataocho/"D arduino recibe la entrada / y el servo + se mueve hacia abaNo tecla.set8e:tocho/"D tipo0ervo.set8e:tt0+"D

    mov.set8e:tY=erechaY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs+.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6USA; try 4 arduino.send=ataa"D arduino recibe la entrada A y el servo abre el ripper

    22

  • 7/24/2019 Proyecto Automata

    23/25

    tecla.set8e:ta"D tipo0ervo.set8e:tt0"D mov.set8e:tYCierraY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    case UeyEvent.6US0; try 4 arduino.send=atas"D arduino recibe la entrada 0 y el servo cierra el ripper tecla.set8e:ts"D tipo0ervo.set8e:tt0"D

    mov.set8e:tYAbreY"D etiqueta.set#conneK #ma)e#con)etClass".)etHesourceYs.Np)Y""""D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 breaMD

    5 fin del sKicht

    Q

    ife.)etUeyCode"UeyEvent.6US1" 4 try 4 arduino.send=ataY+$Y"D

    5catch E:ception e:" 4

    Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del if 1

    else ife.)etUeyCode"UeyEvent.6US2" 4 try 4 arduino.send=ataY%Y"D 5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del if 2

    else ife.)etUeyCode"UeyEvent.6US'" 4 try 4 arduino.send=ataY1Y"D

    2'

  • 7/24/2019 Proyecto Automata

    24/25

    5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del if '

    else ife.)etUeyCode"UeyEvent.6US+" 4 try 4 arduino.send=ataY2Y"D 5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del if +

    else ife.)etUeyCode"UeyEvent.6US" 4 try 4 arduino.send=ataY'Y"D 5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del if

    else ife.)etUeyCode"UeyEvent.6US" 4 try 4 arduino.send=ataY+Y"D 5 catch E:ception e:" 4 Fo))er.)etFo))errua0ervo.class.)et9ame"".lo)Fevel.0E6EHE, null, e:"D 5 5fin del is Q

    5

    TGverride public void MeyHeleasedUeyEvent e" 4 55

    2+

  • 7/24/2019 Proyecto Automata

    25/25

    2