• Nenhum resultado encontrado

Capítulo(4 Projecto(e(Implementação(

4.7 Interface(Gráfica(

!

Além! de! se! ter! implementado! a! parte! mecânica! do! sistema,! foi! necessário! desenvolver! um! ambiente! gráfico! para! facilitar! a! interacção! do! protótipo! com! o! utilizador.! Para! a! implementação! do! ambiente! gráfico,! foi! desenvolvida! uma! aplicação! em! ambiente! Windows! programada! em! C#! utilizando! a! ferramenta! de! desenvolvimento! Microsoft! Visual! Studio! 2008! (ver!Figura!4.33).!

A!interface!desenvolvida!dispõeKse!em!três!separadores!principais!designados!“Manual”,! “Global* &* Saved* Positions”! e! “Plan* Execution”.! Quando! é! executada! a! aplicação! é! aberto! um! separador!que!indica!a!necessidade!de!se!conectar!ao!microcontrolador!Arduino!que!irá!fazer!a!

Lê Acção

Início Mensagem => {Acção;comando;val1;val2;val3;……;valN}

Lê para um vector de inteiros todos os valores disponíveis

Acção = ? Move Motor Manualmente Move Motor para posição Global Modo MANUAL ON ou OFF RESET Motores Calibrar Motores Liga ou desliga Motores Posição Actual dos Motores Executa Plano de Acções Move Motor para posição relativa Pára Execução de Plano Pára Motores Acção = 1 Acção = 2 Acção = 3 Acção = 4 Acção = 5 Acção = 6 Acção = 7 Acção = 8 Acção = 9 Acção = 10 Acção = 11

ligação! à! máquina.! Para! realizar! essa! ligação! é! utilizado! a! GroupBox! “Serial* communication* settings”! escolhendo! a! porta! COM! respectiva! e! a! velocidade! de! ligação,! neste! caso,! uma! Baud* Rate! de! 9600! bps.! Depois! de! feita! a! ligação! com! sucesso! são! disponibilizados! os! separadores! referidos!que!permitem!a!orientação!e!controlo!dos!motores!da!máquina.!

!

Figura*4.33*–*Interface*inicial*da*aplicação*desenvolvida*em*C#.*

A!interface!possui!ainda!uma!Caixa!de!Mensagens!na!parte!inferior!onde!são!afixadas!as! mensagens!trocadas!entre!a!interface!e!o!Arduino!assim!como!algumas!outras!informações.!

Após! feita! a! ligação! com! sucesso,! os! restantes! separadores! ficam! disponíveis.! No! primeiro! separador! (“Manual”)! é! possível! controlar! todos! os! motores! do! protótipo! manualmente.!A!interface!pode!ser!observada!na!Figura!4.34.!

!

Figura*4.34*–*Interface*de*controlo*manual*dos*motores*da*montagem.*

Neste! separador! é! oferecida! a! possibilitar! de! movimentar! qualquer! motor! da! máquina! permitindo! a! definição! da! sua! velocidade! em! passos! por! segundo.! Em! relação! ao! motor! de!

corrente! contínua! é! possível! accionáKlo! em! ambos! os! sentidos! e! deixáKlo! a! funcionar! durante! tempo!indeterminado.!

Neste!separador!é!ainda!oferecida!a!funcionalidade!de!permitir!registo!da!posição!actual! do!alvo.!Esta!funcionalidade!traz!a!vantagem!de!poder,!posteriormente,!voltar!a!esta!posição!sem! ser!necessário!posicionar!a!máquina!manualmente.!

O! separador! “Global* &* Saved* Positions”! (ver! Figura! 4.35)! permite! controlar! o! posicionamento!global!ou!relativo!do!alvo!sendo!necessário!fornecer!três!parâmetros!para!cada! eixo!da!máquina!que!são!accionados,!cada!um,!por!um!motor.!! ! Figura*4.35*–*Interface*de*controlo*do*posicionamento*global*do*alvo*e*caixa*de*controlo*das*posições*globais*guardadas.* Na!caixa!“Global*Positioning”!podem!ser!observados!os!parâmetros!que!são!necessários! fornecer!sobre!os!três!motores!de!posição.!! Para!cada!eixo!é!necessário!fornecer!a!posição!que!se!pretende!para!o!motor!(em!milímetros),!a! sua!velocidade!(em!passos!por!segundo)!e!a!sua!aceleração!(em!!"##$#/!!).! É!possível!realizar!dois!tipos!de!movimentos!com!os!motores:!

• Um! posicionamento! global,! que! é! feito! em! relação! à! origem! do! referencial! (x,! y,! z).! A! movimentação!do!alvo!pressupõe!o!fornecimento!de!coordenadas!positivas!em!(x,!y,!z)! entre!0!e!o!valor!máximo!de!cada!eixo!(unidades!de!milímetros).!

• Um! posicionamento! relativo,! que! é! realizado! em! relação! à! posição! onde! o! alvo! se! encontra! na! altura! do! movimento.! Neste! caso,! para! realizar! movimentação! no! sentido! positivo!dos!eixos!fornecemKse!valores!de!posição!positivos!e!caso!se!pretenda!mover!os! motores!em!sentido!contrário!fornecemKse!valores!de!posição!negativos.! Em!qualquer!dos!casos!é!possível!regular!a!velocidade!e!a!aceleração!dos!motores.! O!separador!em!questão!permite!ainda!aceder!às!posições!gravadas!em!memória.!Como! foi!referido!anteriormente,!no!separador!Manual!é!possível!guardar!posições!globais!do!alvo.!Na! caixa!“Saved*Positions”!é!fornecida!a!possibilidade!de!editar,!guardar!e!adicionar!novas!posições.! Esta! funcionalidade! traz! a! vantagem! de! memorizar! posições! características! que! diferentes!

investigadores! podem! utilizar! de! forma! a! possibilitar! repetir! ensaios! de! electrofiação! com! alguma!consistência!no!posicionamento!do!alvo.!Por!exemplo,!um!investigador!num!dia!x,!utiliza! a! posição! (100,! 130,! 100)! (mm)! para! produzir! uma! membrana! de! um! composto! cujas! fibras! foram! produzidas! com! um! diâmetro! específico.! Se! utilizar! a! opção! de! guardar! a! posição,! num! outro!dia!pode!voltar!a!fabricar!o!mesmo!tipo!de!membrana!na!mesma!posição,!pois!sabe!que!foi! essa!posição!que!utilizou.!Usando!esta!funcionalidade!podem!modificarKse!outros!parâmetros!da! electrofiação! sabendo! que! as! características! mecânicas! do! posicionamento! do! alvo! não! foram! alteradas.! No!separador!“Plan*Execution”!(ver!Figura!4.36)!é!possível!construir!e!definir!sequências! de!movimentos!dos!vários!motores!formando!padrões!com!o!alvo.!Esta!funcionalidade!permite! que!o!utilizador!defina!movimentos!simples!ou!complexos!utilizando!funções!predefinidas.!Estas! funções!são:! • Movimento!Absoluto!para!a!posição!(x,!y,!z).! • Movimento!Relativo! • Repetir!Movimento! • Pausa! • Motor!de!rotação!

Os! movimentos! absolutos! e! relativos! executam! as! mesmas! funções! já! referidas! anteriormente.!A!função!de!pausa!permite!que!entre!acções!do!plano!exista!uma!paragem! por! um!período!definido!pelo!utilizador!entre!0!e!120!segundos.!

A! função! correspondente! ao! motor! de! rotação! permite! colocáKlo! a! rodar! em! ambos! os! sentidos!e!com!velocidade!definida!pelo!utilizador.!

A! função! Repetir! Movimento! permite! criar! ciclos! com! as! funções! descritas! anteriormente.! É! ainda! possível! definir! o! número! de! ciclos! que! se! pretende! que! sejam! executados!assim!como!definir!ciclos!infinitos.!

!

Para! poder! explicar! melhor! esta! funcionalidade! irá! darKse! um! exemplo! de! um! caso! prático.! ImagineKse! que! se! pretende! depositar! fibras! de! um! determinado! composto! e! essa! deposição!terá!que!ser!sobre!um!alvo!que!se!encontra!a!10cm!da!seringa.!A!especificação!obriga! que!o!alvo!se!desloque!20!cm!perpendicularmente!(eixo!Y)!em!relação!à!ponta!da!seringa!e!ainda! é!necessário!que!o!alvo!se!encontre!a!rodar!com!uma!velocidade!de!150rpm.! O!plano!necessário!para!executar!estes!movimentos!pode!ser!observado!na!Figura!4.37.! ! Figura*4.37*–*Exemplo*de*plano*de*execução.*

Para! realizar! estes! movimentos! seria! necessário! primeiro! colocar! o! alvo! à! distância! pretendida!da!seringa.!Para!isso!utilizarKseKia!um!comando!de!movimento!absoluto!para!colocar! o!alvo!a!10!cm!da!seringa!e!posicionar!o!eixo!Y!na!posição!10!cm!(presumeKse!que!a!agulha!está! na!posição!20!cm!em!Y).!De!seguida,!utilizaKse!a!função!de!rotação!do!motor!para!o!pôr!a!rodar!à! velocidade! pretendida.! O! passo! seguinte! seria! criar! um! ciclo! infinito! (com! a! função! de! criar! ciclos)! que! teria! duas! acções! de! movimentação! relativa.! Uma! movimentação! positiva! em! Y! de! 20cm! e! uma! movimentação! negativa! também! de! 20cm.! Estes! passos! seriam! suficientes! para! criar!a!movimentação!pretendida!do!alvo.!

As! funções! criadas! permitem! criar! movimentos! bem! mais! complexos! que! envolvam! vários! ciclos! e! em! que! as! movimentações! não! sejam! com! velocidades! constantes! por! exemplo.! Permitirá! dessa! forma! gerar! alguns! padrões! como! ziguezagues! ou! formas! geométricas,! por! exemplo.!

Documentos relacionados