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
Top Related