Esse trabalho de conclusão de curso descreve o desenvolvimento de um robo hexapod funcional capaz de ser controlado por um controle em forma de aplicativo para plataforma movel android.
Esse trabalho de conclusão de curso descreve o desenvolvimento de um robo hexapod funcional capaz de ser controlado por um controle em forma de aplicativo para plataforma movel android.
Esse trabalho de conclusão de curso descreve o desenvolvimento de um robo hexapod funcional capaz de ser controlado por um controle em forma de aplicativo para plataforma movel android.
Trabalho de Concluso do Curso de graduao do Curso Superior em Cincia da Computao, apresentado como requisito parcial para obteno do ttulo de Cientista da Computao.
Orientador: Nilton Canto
SO PAULO
RESUMO
Utiliza- se os robs do tipo hexpode na robtica referindo se a robs com 6 pernas. Robs hexpodes normalmente so utilizados como mecanismo de estudos acadmicos[1]. Objetivo Geral do projeto controlar um rob do tipo hexpode atravs de um app para celular com sistema android. Foi preciso uma ampla pesquisa sobre hexpodes para chegarmos na ideia e conceitos bsicos para o incio desse projeto, passamos por vrias etapas como a mecnica, construo, testes. O projeto do hexpode passa pelos seguintes processos: Mecnica, estrutura eltrica, hardware, firmware e interface grfica. O corpo do rob tem 3 DOF ou seja ele consegue tem 3 tipos de movimento por perna, o corpo foi adquirido atravs do site armazm da Google um site com vrios modelos em 3D disponveis gratuitamente. Foi utilizado 18 motores modelo mg995 da empresa Tower pro, trabalham com torque 13kg/cm e voltagem de 3.0v ~7.2v, alimentados por uma bateria de 6400 mah 8.4 v Li-ion. Os hardwares utilizados foram os seguintes: uma placa controladora de servo motores ssc32 com capacidade de controlar at 32 motores com um micro controlador Atmel ATMEGA 168 -20PU velocidade 14.75 MHz, uma arduino mega2560 e um JY-MCU Bluetooth Serial[11].O firmware utilizamos linguagem de programao C e Java, a linguagem C utilizada na arduino afim de coordenar a comunicao dos motores e movimentos do rob, a linguagem Java utilizada na criao de uma interface chamada de hexapod control um app para android que emula um controle virtual.No fim tivemos um rob capaz de se movimentar e muitos terrenos, controlado por um aparelho android com Bluetooth. Pode ser utilizado como um rob de verificao de locais de difcil acesso ou at mesmo com intudo militar.
ABSTRACT
It uses the type hexapod robots robotics referring the robots with 6 legs. Robots are often used as hexapods academic [1] engine studies. General objective of the project is to control a robot hexapod type via a mobile app with android system. It took extensive research on hexapods to get the idea and basic concepts for the beginning of this project, we went through several stages as mechanics, construction, testing.The hexapod design through the following process: Mechanical, electrical structure, hardware, firmware and interface graphic. The body of the robot has 3 DOF so, he can have 3 types of movement per leg, the body was purchased through the site warehouse Google a site with multiple 3D models available for free.18 model MG995 Tower Pro motors company was used , work with 13kg/cm torque and voltage of 3.0V ~ 7.2V , powered by a battery 6400 mah 8.4 v Li -ion . The hardware used were as follows : one controller board with servo motors ssc32 ability to control up to 32 motors with a microcontroller Atmel ATMEGA 168 - 20PU speed 14.75 MHz , one arduino mega2560 and JY - MCU Serial Bluetooth[11]. The firmware used for C and Java programming language, C language is used in the arduino in order to coordinate communication engine and robot movements, the Java language is used to create an interface called hexapod control an app for android that emulates a control virtual. In the end we had a robot capable of moving and many lands, controlled by an android phone with Bluetooth. Can be used as a robot scan hard to reach places or even military intuited.
LISTA DE FIGURAS Figura 1:Diagrama de blocos simplificado do projeto .......................................... 3 Figura 2:Diagrama de blocos do projeto ................................................................. 8 Figura 3:SSC32 Servo Controller ............................................................................. 9 Figura 4:Arduino Mega 2560 .................................................................................. 10 Figura 5:Servo motor MG995 ................................................................................. 11 Figura 6:Mecnica interna servo motor ................................................................ 12 Figura 7:Figura onde mostra a variao do pulso .............................................. 12 Figura 8:Mdulo Bluetooth .................................................................................... 13 Figura 10:Bateria Li-on .......................................................................................... 14 Figura 11:Esqueleto Hexpode ............................................................................. 15 Figura 12:Conjunto de peas do rob .................................................................. 16 Figura 13:Hexpode Corpo montado ................................................................... 17 Figura 14:Corpo montado ...................................................................................... 18 Figura 15:Interface software arduino ................................................................... 19 Figura 16:Interface Hexpode Control .................................................................. 22 Figura 17:Pasta SDK .............................................................................................. 24 Figura 18:Interface hexapod control na ide eclipse ............................................ 25 Figura 19:cone administrar APIS ......................................................................... 25 Figura 20:Tela SDK funcionamento ...................................................................... 26 Figura 21:Tela Emulao ....................................................................................... 26 Figura 22:Interface de criao dispositivo virtual ............................................... 27 Figura 23:SplashScreenHexapod Control ............................................................ 31 Figura 24:tela principal hexpode Control ............................................................ 31 Figura 25:Tela efetuar conexo Bluetooth ........................................................... 32
Lista de siglas Mah Miliampere hora.
DOF Grau de liberdade de 3 eixos.
IDE Ambiente integrado para desenvolvimento de software.
Shield Placas de circuito impresso normalmente fixadas no topo do aparelho atravs de uma conexo alimentada por pinos-conectores. So expanses que disponibilizam vrias funes especficas, desde a manipulao de motores at sistemas de rede sem fio 10 .
2.3.7 Esqueleto Hexpode ..................................................................................... 15 2.4 Montagem do hexpode ................................................................................... 16 3.0 Software e Desenvolvimento ............................................................................ 19 3.0.1 Sistema operacional Android ........................................................................ 23 3.0.2 Aplicativos Android ........................................................................................ 24 3.0.3 Android SDK ................................................................................................. 24 3.1 Desenvolvimento ............................................................................................... 27 3.1.1 Hexa Control ................................................................................................. 27 3.1.2 Funcionamento interno do aplicativo ............................................................. 27 3.1.3 Telas do aplicativo ........................................................................................ 31 4 Plano de testes ..................................................................................................... 32 4.1 Caso de teste I :Conexo com aplicativo ........................................................ 32 4.2 Caso de teste II: Conexo com o rob ............................................................. 33 4.3 Caso de teste III Posio de repouso do rob ................................................. 33 5 Gesto ................................................................................................................... 33 5.1 Escopo ............................................................................................................. 34 5.2 Custo ................................................................................................................ 35 5.3 Anlise de riscos .............................................................................................. 35 6 Concluso ............................................................................................................. 36 7 Referncias Bibliogrficas .................................................................................. 37
1
1.INTRODUO
A robtica apareceu apenas no sculo 20, histrias sobre maquinas automatizadas desenvolvidas pelo homem mais antiga. Engenheiro grego de Alexandria, escreveu dois textos, Pneumtica e automata, que descrevia a existncia de vrias maquinas, capazes de produzir movimentos automatizados. [2] Leonardo Da Vinci iniciou esse caminho com um estudo amplo em anatomia humana para desenvolver robs que fossem capazes de se movimentar como tal. Os primeiros modelos desse estudo foram robs que moviam pernas, braos e olhos, apareceram nas figuras de animais com movimentos que mais tarde foram chamados de autmatos[3]. O fascnio por robs fez surgir escritores e amantes da robtica como Isaac Asimov que publicou diversos livros de fico cientifica contribuindo bastante para o estudo da robtica no mundo, criando at mesmo leis que deveriam ser aplicadas a robs que um dia obtivessem a inteligncia, abaixo citamos as 3 leis da robtica de Isaac Asimov. 1 Lei: Um rob no pode ferir um ser humano ou, por inao, permitir que um ser humano sofra algum mal. 2 Lei: Um rob deve obedecer as ordens que lhe sejam dadas por seres humanos exceto nos casos em que tais ordens entrem em conflito com a Primeira Lei. 3 Lei: Um rob deve proteger sua prpria existncia desde que tal proteo no entre em conflito com a Primeira ou Segunda Leis[4]. Com o avano da robtica em 1954, George Devol obteve a primeira patente sobre robtica neste mesmo ano. A primeira empresa a criar um rob foi a "Unimation", criada por George Devol e Joseph F. Engelberger em 1956. O rob da Unimation chamado de Mquina de transferncia programa" tinha o objetivo de transferir um objeto de ponto a outro[5]. A robtica evoluiu at chegarmos nos robs atuais, tanto industriais quanto robs que fazem cirurgia e ajudam na locomoo de pessoas com problemas fsicos e tambm para o entretenimento, temos como avano robtico o rob bigdog da empresa Boston Dinamics que tem como intudo ajudar na guerra a levar suprimentos aos soldados e tambm carregar um possvel soldado ferido. Como o nome diz grande cachorro, um rob quadrupede com o que a de mais moderno em robtica atualmente. A Boston tambm tem seu rob humanoide 2
chamado de PETMAN, um rob com movimentaes muito prximas a humana, que tem como objetivo a utilizao em ambientes qumicos e militares[6]. Na dcada de 90 foi possvel a criao dos primeiros robs hexpodes, graas ao avano da computao[1]. A utilizao de robs hexpodes na indstria muito ampla, ainda mais pela preciso e mobilidade que robs deste tipo podem conter dependendo de sua engenharia[7].
1.1 Motivao e Justificativa A motivao que tivemos veio do hobby na rea de robtica que adquirimos no decorrer de nosso curso, comeamos a utilizar o conhecimento adquirido na faculdade na rea de programao para programar nossos prottipos. Com o tempo conseguimos criar nosso primeiro rob hexpode, tivemos dificuldades e encontramos falhas em nosso projeto, com isso resolvemos fazer um novo rob afim de deixar ele mais moderno. Atualmente fora esses projetos estamos desenvolvendo um drone inicialmente controlamos por controle remoto, com mais estudo queremos tornar esse drone autnomo.
1.2 Objetivos e escopo
1.2.1 Objetivo geral O objetivo geral desenvolver um rob hexpode que seja capaz de ser controlado por um dispositivo mvel no caso celulares com sistema Android, futuramente poderemos adicionar novos dispositivos como infravermelhos ou sistemas de varredura e cmeras utilizando sistema fpv para uma interao cada vez mais realista ao ambiente a ser explorado pelo rob.
1.2.2 Objetivos especficos O projeto est diretamente ligado a vrias reas do curso de cincia da computao. O objetivo principal estudar e conhecer mais profundamente como funciona a criao de um rob hexpode tanto a parte mecnica, quanto a parte lgica o cdigo propriamente dito. O hexpode precisa se comunicar diretamente com um aparelho celular que tenha sido instalado o aplicativo "HEXAPOD CONTROL", na interface do aparelho ser solicitado ao usurio a permisso para ligar o dispositivo Bluetooth do aparelho, com isso estabelecida a conexo com o rob, feito essa conexo o 3
usurio ser capaz de controlar o rob em vrias direes com o joystick do HEXAPOD CONTROL. Na figura 1 temos um diagrama de bloco simplificado dessa conexo.
Futuramente ser possvel efetuar essa comunicao por tecnologia WiFi, o hardware tem total compatibilidade com essa tecnologia.
1.3 Requisitos de sistema
1.3.1 Requisitos funcional RF1. As pernas do rob devem estar em perfeito sincronismo proporcionando um estabilidade ao mesmo. RF2. Os movimentos das pernas devem estar funcionando. RF3. O hardware do rob precisa se comunicar com o aparelho mvel. RF4. Os movimentos do rob devem se iniciar assim que for enviado os comandos do aparelho celular. RF5. A biblioteca de comunicao do rob deve receber a comunicao sem fio do aparelho. RF6. A comunicao Bluetooth precisa ser estabelecida.
1.3.2 Requisitos no- funcionais 4
RNF1. O rob precisa ter 6 pernas. RNF2. O rob precisa ter motores RNF3. O rob precisa de um estrutura confivel RNF3. O rob precisa de uma bateria para ser alimentado. RNF4. O rob precisa de uma placa controladora
1.4 Metodologia
1.4.1 Fundamentos O projeto do Hexpode e suas funes exige um conhecimento em mecatrnica e eletrnica, esses conhecimentos so fundamentais tanto para a parte eltrica quanto para a estrutura do rob (esqueleto). Para utilizar os softwares necessrios para programar a parte logica do rob ser preciso ter conhecimento modelagem de dados e lgica de programao que so fundamentais para a estruturao do cdigo aplicado na interface. Necessrio tambm conhecimento em comunicao de portas digitais e analgica que so o meio de comunicao do software com o hardware, tambm em portas seriais.
1.4.2 Tecnologias As tecnologias aplicadas no projeto so: Comunicao sem fio (Bluetooth), linguagem C e Java, servo motores, a placa controladora de servos e a placa arduino. O controle dos servos feito atravs da placa controladora ssc32 juntamente com a arduino que facilita a codificao do rob. No aparelho mvel (celular) temos um interface que faz a comunicao com o rob atravs de uma conexo sem fio. O hardware do mdulo Bluetooth fica no rob e atravs de um protocolo de comunicao, feito a conexo com o celular. A linguagem C escrita dentro de uma interface prpria do arduino uma IDE simples de fcil domnio. A linguagem Java escrita dentro de uma IDE Eclipse que tem pacotes para desenvolver programas em android.
1.5 Estrutura do trabalho Esse trabalho por envolver robtica precisa fundamentalmente de hardware e software para sua concluso. Nesse trecho traremos uma descrio dos hardwares e softwares que foram usados. 5
1.5.1 Hardware No processo de desenvolvimento do hexpode, foi utilizada inicialmente uma estrutura em acrlico, o design do rob foi feito pelo grupo, o mesmo no obteve sucesso, pois como no tnhamos recursos e ferramentas para projetar essa ideia, portanto, a ideia inicial foi abandonada. Em uma nova tentativa utilizando acrlico, porem dessa vez utilizando os servios de uma empresa terceira para fabricar essas peas utilizando corte a laser. Tivemos um retorno muito bom, fabricamos o primeiro prottipo que foi fundamental para o entendimento tanto de hardware como de software do rob. Nesse corpo utilizamos inicialmente motores pequenos mais conhecidos com micro servo, motores visando a diminuio de custo do projeto, encontramos alguns obstculos com esse motor, por se tratar de um motor barato e com baixo torque no obtivemos um retorno aceitvel. Conforme o projeto foi sendo desenvolvido, sentimos a necessidade de criar um rob com servo motores mais fortes, claro que com essa ideia o corpo antigo j no seria mais til, desta vez usamos um corpo totalmente impresso em impressora 3D. O controle das pernas do rob foi feita atravs de uma placa controladora de servo motores, so hardwares desenvolvidos especialmente para controlar servo motores, muito utilizados em robs desse gnero. A alimentao do rob inicialmente foi feita por um fonte tx comum de computador, facilitando assim um maior tempo de testes com o rob. Mesmo com uma fonte de computador tx 200w, o rob sentia uma grande dificuldade de se levantar e de se movimentar, como foi utilizado 3 motores por perna totalizando 18 motores, tornava a fonte incapaz de alimentar todos eles. Conseguimos reverter isso com uma bateria de li-ion6400 mah 8.4v que funcionou perfeitamente. Para a comunicao com os dispositivos moveis (aparelhos celulares) foi utilizado um mdulo Bluetooth. A opo por utilizar o modulo Bluetooth e no um modulo WiFi foi visando o custo do projeto. 6
1.5.2 Software O rob recebe comandos de um App instalado em qualquer aparelho com sistema android, o que foi desenvolvido na linguagem Java a ferramenta utilizada para desenvolver esse software foi o eclipse (Android Developer Tools v22.0.1-685705), devido os membros do grupo ter uma maior familiaridade com essa plataforma tornando assim mais fcil nosso processo de criao da interface.Essa interface apenas chama as funes j criadas na linguagem C que ficam gravadas na placa arduino.
2. ESTUDOS
2.1 Produtos similares No incio do projeto foi feito um estudo sobre robs hexpodes. Vamos citar alguns robs que nos ajudaram desenvolver esse projeto so robs tanto da rea academia, quanto comercial. O primeiro contato com esses modelos de rob foi atravs da empresa Lynsmotion uma empresa especializada em robs hexpodes, quadrupedes, humanoides e braos robticos. Seu modelo que chamou mais ateno foi o Phoenix walkingrobot um hexpode de 3 DOF (DOF significa que seu grau de liberdade de 3 eixos) um rob feito de alumnio controlado por um controle com Bluetooth. Esse rob e utilizado estudos e como brinquedo de hobbistas, esse rob pode ser encontrado no site da empresa por um valor de $793.00[8]. A empresa Intel tambm tem seu hexpode um rob que ficou muito famoso por ter sido comprado de um estudante chamado Matt Bunting, seu projeto de hexpode era diferente de muitos encontrados atualmente com cinemtica reversa ou outro mtodos, ele explorou mais alm, ele capaz atravs de estmulos sensoriais definir qual a melhor forma de movimentao que deve fazer, com essa analise pode definir qual o movimento e velocidade que cada motor deve fazer. A Intel comprou esse rob para apresentaes de seus produtos, alm disso, o rob de Matt virou uma espcie de celebridade dos hexpodes[9]. Grande parte de nosso estudo foi em fruns e blogs onde encontrvamos pessoas como ns, que estavam iniciando ou j tinham algum conhecimento em robtica. Com essa gama de informaes foi possvel ao longo desse estudo elaborar uma ideia para iniciarmos nosso projeto.
7
2.2 Viabilidade
2.2.1 Viabilidade Financeira Os custos iniciais foram com a placas controladora essencial em nosso projeto, com esse placa em mos conseguimos conhecer mais sua programao. Depois adquirido os motores, iniciaram-se os testes com uma nica perna para entender como funcionavam realmente esses motores e a codificao da placa. Para uma melhor compreenso dos gastos com esses projetos temos uma tabela abaixa, onde citamos os produtos e seus respectivos valores.
Tabela 1: Preos dos componentes Fonte: Autoria prpria
2.2.2 Viabilidade tcnica O grupo j tinha conhecimento nas linguagem de programao C e Java que foi primordial para o entendimento do funcionamento da arduino e do aplicativos android. O conhecimento do mdulo Bluetooth foi adquirido atravs de estudos e pesquisas na internet. Os servos motores no eram novidade para os membros do projeto. A maior dificuldade mesmo foi na mecnica e eletrnica que no tnhamos conhecimento no incio do projeto.
8
2.3 Dispositivos
2.3.1 Diagrama de Blocos Na figura 2, temos um diagrama de blocos do hardware. Basicamente apresenta a comunicao dos servo motores, comunicao do mdulo Bluetooth com o aparelho celular e transmisso de energia par as placas.
Figura 2: Diagrama de blocos do projeto Fonte: Autoria prpria
9
2.3.2 Servo Controlador SSC 32
Figura 3: SSC 32 Servo Controller Fonte: <http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx>
A placa SSC 32 uma placa controladora de servo motor. Possui alta resoluo (1 uS) para posicionamento preciso. Com intervalo de 0,50 ms a 2,50 ms com uma quantidade enorme de movimento[9] ela conta com uma programao bem simples desenvolvida propriamente para ela com funo de movimento em grupo e um software de fcil entendimento.Com essas funes de grupo possvel realizar qualquer combinao dos servos com incio e termino dos movimentos, tudo ao mesmo tempo independente do pulso que cada servo deve receber.
10
2.3.3 Arduino mega 2560
Figura 4: Arduino mega 2560 Fonte:<http://arduino.cc/en/Main/arduinoBoardMega2560>
Arduino um hardware de computao de cdigo aberto (open-source) constituindo uma placa com entradas e sadas analgicas e digitais. Conta com um ambiente prprio de desenvolvimento atravs da linguagem C.A placa arduino pode ser utilizada para fazer muitos tipos de projetos, de robs at um simples piscar de um led. Essa placa conta com uma grande variedade de Shields que so outros hardwares que podem ser conectadas a arduino incrementando novas funes a placa arduino como Shields ethernet, WiFi, Bluetooth e etc.[10]
11
2.3.4 Servo motor
Figura 5: Servo motor MG995 Fonte:<http://www.towerpro.com.tw/viewitem1.asp?sn=601&area=50&cat=163>
Os servo motores so utilizados em diversos setores da indstria, estudos acadmicos e projetos de entusiastas e estudantes do setor e mecnica, mecatrnica, eletrnica e informtica. Muito utilizado em carinhos de controle remoto, avies de controle remoto e robs. Dentro do servo motor temos um motor que funciona atravs de pulsos eltricos que indica a quantidade de movimento em seu eixo. No interior temos um motor DC, potencimetro e um circuito de controle, onde existem engrenagens que conduzem seu movimento. Quando o motor se movimenta ocorre uma mudana na resistncia do potencimetro que regula precisamente a quantidade de movimento que existe e em qual direo se mover. Sua velocidade proporcional a diferena da sua posio atual com a desejada, se o motor est prximo da posio desejada vai se mover mais lentamente caso contrrio se estiver longe vai se mover mais rpido. Seu controle feito atravs de pulsos eltricos de largura varivel, ou modulao por largura de pulso (PWM), atravs de um fio. Geralmente um servo motor pode girar de 0 a 180[11].
Na figura 6 podemos ver o que a dentro de um servo motor.
Na figura abaixo podemos ver a variao de pulso e sua respectiva posio.
Figura 7: Figura onde mostra a variao do pulso Fonte: <http://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html>
13
2.3.5 Mdulo Bluetooth
Figura 8: Mdulo Bluetooth Fonte:<http://www.msseletronica.com/loja/detalhes.php?urlid=878>
Bluetooth uma nomenclatura para identificar a comunicao de pouca distncia entre redes sem fio. Utiliza o protocolo que trabalha na faixa licenciada pela ISM (Industrial, Scientific, and Medical), 2,45 giga-hertz at 723,1 kbit/s. A rede Bluetooth tem uma topologia dinmica chamada de PICONET ou PAN (bandeja de) piconets suportam de 2 a no mximo 8 dispositivos na rede[12].
14
2.3.6 Bateria Li-on
Figura 10: Bateria Li-on Fonte :<http\\www.dx.com>
As baterias de ons de ltio so recarregveis utilizadas em vrios dispositivos eletrnicos. Sua caracteriza a ausncia de efeito de memria impedindo que a mesma vicie[13]. Bateria utilizada para alimentar o rob um modelo li-on 6400mAh com voltagem real de 8.4v.
15
2.3.7 Esqueleto Hexpode
A estrutura(corpo) do rob foi adquirido no site armazm da Google onde existe projetos em 3d livres para download. O corpo escolhido foi uma hexpode desenvolvido por John Bacus diretor de Gesto de Produtos da Trimble Navigation, site que mantem os projetos em 3d da SketchUp da google.
Figura 11: Esqueleto Hexapod Fonte:<http\ www.sketchup.google.com>
16
2.3.8 Montagem do hexpode
O procedimento de montagem do hexpode basicamente referisse a integrao dos servo motores a estrutura do rob. Primeiramente fizemos a medio dos motores para colocar o corpo. Como corpo do rob foi feito em uma impressora 3D, comum que aps a impresso de alguma pea ela tenha algumas rebarbas nas peas, por esse motivo para colocar os motores em seus devidos locais foi preciso fazer uma processo de lixamento desses locais para caber perfeitamente os motores. Na figura 12 abaixo podemos ver todas as peas desmontadas.
Figura:12 Conjunto de peas do rob Fonte:<https://3dwarehouse.sketchup.com/model.html?id=4c2c925d0f760c23861c8031eb24e168>
17
Aps o lixamento de cada pea foi feito a insero dos motores como na figura13 baixo. Em seguida temos uma figura do rob montado por completo figura 14.
Figura13: Hexpode Corpo montado Fonte: Autoria prpria 18
Figura 14: Corpo montado Fonte: Autoria prpria
Aps a montagem da estrutura foi inserido as placas controladora a ssc32 e Arduino mega 2560 e a bateria.
19
3.0 Software e Desenvolvimento
Foi utilizado no projeto dois softwares distintos. O software responsvel por armazenar as coordenadas de movimento do rob a IDE do arduino como podemos ver na figura 15. Nesse software foram criadas as funes de movimento do rob, movimentar de se mover para frente e para os lados.
Figura 15: Interface software arduino Fonte: <http\\www.arduino.cc>
20
Abaixo um trecho de cdigo programado na IDE arduino referente a movimentao do hexpode, trechos responsveis por realizar o giro para esquerda e direita do rob, Esses trechos so executados assim que a placa arduino recebe via Bluetooth, em sua porta serial 9600, um caractere e o mesmo recebido por um switch onde cada case representa uma funo.
Nosso segundo software e responsvel por ler as funes do arduino e colocar as funes no controle virtual. Como podemos ver na figura 16 temos uma interface que emula um controle padro com joystick como os que so usados em videogame.
Figura 16: interface Hexapod Control Fonte: Autoria prpria 23
3.0.1 Sistema operacional Android
Andriod um sistema operacional para dispositivos mobile baseado em um ncleo do Linux, originalmente o S.O android foi criado pela empresa Handset_Alliance que liderada pela Google, atualmente mais de 1 bilho de dispositivos mobile rodam esse sistema dentre eles smartphones, tablets, tvs, sendo personalizvel, leve e gil. O sistema pode ser aplicado a variados tipos de hardware, com suporte a vrios tipos funcionalidades com por exemplo: wireless, Bluetooth, GPS, cmera, essa lista pode se tornar enorme pois a possibilidade incorporada ao sistema muito grande, o simples telefone que apenas realizava chamadas se tornou um grande computador[15].
24
3.0.2 Aplicativos Android
Aplicativos podem ser jogos, ferramentas como calculadoras assim como qualquer coisa que possa ser implementada com algum objetivo, por exemplo: criar um aplicativo para controlar um hexpode, criar um jogo, criar um sistema para administrar um servio ou processo especifico so muitas possibilidade de criao de aplicativos com o sistema android.
3.0.3 Android SDK
O SDK SDK (Standard Development Kit) um kit para desenvolvimento fornecido pela Google, com esse kit possvel criar aplicativos para android com as bibliotecas disponveis nesse kit. Esse kit pode ser baixando no site do android para desenvolvedores. O SDK composto pela IDE Eclipse com o pluginADT(Android Developer Tools), esse plugin torna possvel o desenvolvimento para android e alm disso seu ADT necessita ter uma verso mais recendo do android para emular seus aplicativos criados, abaixo imagens mostrando interface do software(imagens prprias). Primeira pasta contem a IDE eclipse, plataforma de desenvolvimento dos aplicativos para android, na segunda pasta contm todos os arquivos que constituem a sdk android, e por fim aplicativo SDK Manager gerencia as APIs (verses do O.S android) do android que esto instaladas e podem ser baixadas diretamente dos servidores da Google. As APIs Android so as verses do sistema disponveis para desenvolvimento em cima sua plataforma, baseando-se na verso, suas novas funcionalidade caso tenha, a cada API lanada uma verso nova do android disponibilizada. [14]
Figura :17 Pasta SDK Fonte: Autoria prpria
25
Na figura 18 temos a imagem da IDE eclipse originalmente usada para desenvolvimento, em geral, adaptado para o desenvolvimento para android.
Figura 18: Interface hexaControl dentro ide eclipse Fonte: Autoria prpria
Figura 19: cone administrar APIS Fonte: Autoria prpria
A seguir na imagem 20 temos a imagem do aplicativo SDK Manager em funcionamento, como padro a Google manda a ltima verso do android, quando baixamos diretamente do site oficial do android para desenvolvedores. 26
Figura 20:Tela SDK funcionamento Fonte: Autoria prpria
Na figura 21 temos o cone do Android SDK, O Android Virtual Device Manager, onde possvel criar dispositivos virtuais android para o desenvolvedor rodar seu aplicativo no momento do desenvolvimento, isso facilita muito pois na mesma mquina que se desenvolve o aplicativo possvel emular fielmente verses de qualquer do android no computador.
Figura 21: Tela Emulao Fonte: Autoria prpria Fonte: Autoria prpria
Na imagem 22 temos a tela de interface de criao dos dispositivos virtuais.
27
Figura 22: Interface de criao dispositivo virtual Fonte: Autoria prpria
3.1 Desenvolvimento
3.1.1 Hexa Control
O Aplicativo Hexa Control foi criado com o intuito de controlar via conexo sem fio o Hexpode desenvolvido neste trabalho, atravs de comunicao Bluetooth, o aplicativo cria uma conexo com o dispositivo Bluetooth instalado no Hexpode.
3.1.2 Funcionamento interno do aplicativo
Como foi explicado, via comunicao Bluetooth o aplicativo instalado em um dispositivo com suporte a Bluetooth se comunica com o hexpode e seu dispositivo Bluetooth que recebe os comados. A comunicao entre Bluetooth se d por meio de soquetes, portas de comunicao serial. No momento em que o aplicativo iniciado uma permisso para habilitar o Bluetooth solicitada ao usurio, assim que essa a solicitao aceita o aplicativo cria um soquete. Esse soquete funciona como uma ponte entre o rob.
28
Explicao de mtodo de conexo:
No mtodo createBluetoothSocket (device), chamado a criao de uma conexo via soquete segura ou seja, preparada para a conexo com o dispositivo passando como parmetro para a varivel. Em seguida na linha de cdigo: Bluetoothdevice = btAdapter.getRemoteDevice(adress), aplicamos na varivel device do tipo Bluetooth um dispositivo Bluetooth remoto com o MAC ADRESS que informamos, assim o aplicativo iniciara a busca do dispositivo, esse processo ocorre muito rpido. Em seguida a busca cancelada, a conexo via soquete realizada criando uma ponte entre o dispositivo onde est executado o aplicativo e o hexpode. Abaixo cdigo responsvel pela solicitao para habilitar o Bluetooth, criar o soquete para conexo com o dispositivo Bluetooth do hexpode.
//Preparando soquete para conexo
private BluetoothSocket createBluetoothSocket(BluetoothDevice device) throws IOException { if(Build.VERSION.SDK_INT>= 10){ try { final Method m = device.getClass().getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] { UUID.class }); return (BluetoothSocket) m.invoke(device, MY_UUID); } catch (Exception e) { Log.e(TAG, "No foi possivel criar uma conexo segura"); } } return device.createRfcommSocketToServiceRecord(MY_UUID); }
@Override Public void onResume() { super.onResume();
Log.d(TAG, "...onResume - tentando conectar...");
// Setado um pontei apontando para o dispositivo apontado para seu mac
try { outStream.write(msgBuffer); } catch (IOException e) { if (address.equals("00:00:00:00:00:00")); Log.d(TAG, "... No a MAC ADRESS a ser encontrado ..."); finish(); } }
}
Classes do aplicativo
Classe da MainActivity_splashscreen, classe responsvel por mostrar na tela de splashScreen no incio da aplicao. Classe principal MainActivity, classe principal da aplicao, responsvel pelo funcionamento da aplicao, contendo mtodos importantes etc. Classe MainActivity_sobres, responsvel por mostrar informaes sobre o aplicativo e desenvolvedores. Classe JoyStickClass, responsvel por todas as funes do joystick, configuraes, funes matemticas para ngulo. 31
3.1.3 Telas do Aplicativo
Na figura 23 temos a tela de SplashScreen do Aplicativo:
Figura 23:SplashScreen HexapodControl Fonte: Autoria prpria
Tela principal do aplicativo na figura 24, contendo botes para controle e joystick
Figura 24:tela principal hexapodcontrol Fonte: Autoria prpria
Na figura 25 temos o menu flutuante, com as opes reconectar, sobre e sair. Reconectar: Possibilidade de reconectar ao dispositivo novamente caso necessrio. Sobre: Informaes sobre os desenvolvedores e universidade. Sair: Sair com segurana do aplicativo e finalizar conexes. 32
Figura 25:Tela efetuar conexo bluetooth Fonte: Autoria prpria
4 Plano de Testes
4.1 Caso de teste I: conexo com driver
Pr - condio: o software deve estar instalado em algum dispositivo mvel com android. Etapa Instruo Resultado esperado 1 Abrir o aplicativo hexapod control instalado no aparelho mvel A tela do aplicativo precisa ser exibida 2 Aguardar a mensagem para habilitar o Bluetooth Caso o Bluetooth seja habilitado pelo usurio, o aplicativo iniciar a busca para se conectar ao hexpode
4.2 Caso de teste II: Posio de repouso do rob 33
Pr - condio: Ligar toda a parte eltrica do rob. Etapa Instruo Resultado esperado 1 Com o aplicativo j conectado ao hexpode pressionar o boto fechar Hexpode ir para sua posio de repouso, Recolhendo suas pernas.
4.3 Caso de teste III: Movimentao do rob
Pr - condio: O software hexapod control precisa estar aberto e conectado ao rob. Etapa Instruo Resultado esperado 1 Selecionar a seta para "Cima" e verificar se o movimento do rob condiz com a respectiva seta. Apertado o boto correto o rob deve se movimentar para frente. 2 Selecionar o boto Direito com o boto pressionado, o rob deve girar para direita, com o boto solto o rob deve parar. Se o boto estiver pressionado o rob deve girar para direita, se estiver solto o rob deve parar.
5 Gesto
Em nosso projeto utilizamos o processo em espiral. Utilizamos trs ciclos no projeto: "Estudos e validaes", "Desenvolvimento do cdigo", "Montagem e integrao" e "testes". O primeiro ciclo referente a parte pesquisa e estudos sobre hexpodes, seu funcionamento o que precisaramos para seu desenvolvimento, basicamente toda a teoria para a criao do rob. No segundo ciclo foi a parte de desenvolvimento do cdigo para o funcionamento do rob. O desenvolvimento do cdigo para movimentao do rob e o cdigo de estruturao da interface e funcionamento do app para android. No ciclo trs foi feito a montagem do rob instalao dos motores no corpo do rob, a instalao da placas de comunicao e instalao da parte eltrica. No ltimo ciclo efetuamos todos testes lgicos do rob o teste dos cdigos em arduino e todos os testes necessrios para o funcionamento da interface grfica.
34
5.1 Escopo
Nosso objetivo principal desenvolver um rob controlado um aplicativo, utilizando conexo sem fio. No decorrer do projeto tivemos muitos problemas pelo fato de que foi o primeiro rob que fizemos. Mas os objetivos bsicos propostos no incio do projetos foram atendidos como esperado. Utilizamos um comunicao sem fio confivel(Bluetooth) que atendeu perfeitamente nossas necessidades. Tivemos alguns obstculos no projeto tornando o desenvolvimento do projeto mais demorado. As peas que foram compradas para o projeto grande parte foi adquira fora do pais tornando o recebimento do produto bem demorado. No ciclos iniciais onde era preciso uma pesquisa e estudos para o desenvolvimento do rob surgiam duvidas que foram tiradas com o orientados do projeto.
35
5.2 Custo
Inicialmente foi feito algumas cogitaes do valor total do projeto que acreditvamos estar entre R$1000,00 a R$2000,00. No decorrer do projeto encontramos muitas dificuldades para encontrar os hardwares no Brasil, quando encontrvamos o valor estava muito acima do esperado, ento foi decidido comprar as peas fora do brasil mesmo com custos de taxao o valor era menor do que o valor encontrado no Brasil. O total gasto no projeto foi R$1.910,00, um valor que foi divido entre os membros do projeto. Sabamos que o problema de comprar fora do pais era a demora para receber tais produtos, mesmo com esse risco que poderia impactar no atrasado do projeto ariscamos e compramos fora do pais.
5.3 Anlise de Riscos
Durante o processo de planejamento encontramos alguns riscos que teramos que lidar. Primeiramente um dos riscos que mais impactariam no desenvolvimento do projeto era o tempo disponvel para reunies, era preciso inicialmente ter o grupo reunido para efetuarmos reunies para decidir vrios temas do projeto. Outro grande risco era a demora que ocorreria para chegar os equipamentos no Brasil levando em conta que muitas peas viriam de navio, e mesmo chegando ao brasil ainda teria um tempo at que as peas fosse definitivamente enviadas para o endereo solicitado. Relacionado as peas ainda teramos o risco de queima de algumas peas (motor, placas), a queima de peas em projetos eletrnicos muito comum. Teramos que lidar com o fator de conhecimento nas tecnologias usadas no perodo de estudos foi preciso a troca de conhecimentos e entendimento de cada tecnologia entre os membros do grupo.
36
6. Concluso O objetivo do projeto foi desenvolver um rob hexpode capaz de ser controlado por um aplicativo mobile. Optamos por desenvolver um rob hexpode devido ao seu baixo custo de desenvolvimento e ao pr-conhecimento do assunto por parte de alguns membros do grupo. O rob controlado por um aplicativo que pode ser instalado em qualquer aparelho mvel que possua o sistema android, sendo assim possvel alcanar a rea mobile que est em evidncia atualmente. A comunicao do aplicativo com o rob feita atravs da tecnologia Bluetooth, que por sua vez encontrada em quase todos os aparelhos celulares da atualidade.Com essa tecnologia, foi possvel atingir nosso objetivo com xito. Utilizamos uma placa responsvel por controlar os motores com capacidade para at 32 servos. Para sincronizar e alinhar todos os comandos recebidos pela controladora, utilizamos uma placa arduino responsvel por armazenar as funes: andar, abaixar, girar, levantar. Todas as funes criadas, foram importadas para o aplicativo. O corpo do rob feito de material ABS (material plstico), que bastante resistente e seu layout foi adquirido atravs de um site que distribui gratuitamente modelos no formato 3d. As peas foram todas impressas por uma impressora 3d, o que facilitou o encaixe e alinhamento. O rob alimentado por baterias de li-on de 6400 mah / 8.4v, tornando possvel assim a movimentao do hexpode. Como resultado foi obtido um rob capaz de se movimentar em diversos terrenos como uma mobilidade e agilidade notvel. Seu corpo em formato de circunferncia, faz com que o rob seja capaz de andar em diversas direes. Dentre os resultados, podemos ressaltar tambm a possibilidade de incorporar ao hexpode muitas outras funes como a utilizao de cmera para controlar a movimentao e sensores.
37
6 Referncias Bibliogrficas [1] - FONTOURA, Felipe Michels; NASCIMENTO, Leandro Piekarski do; GIOPPO, Lucas Longe. Rob hexpode controlador por FPGA 2013" 161 f. Trabalho de concluso de Curso - Universidade tecnologia Federal do Paran, Curitiba 2013. Retirado de: http://repositorio.roca.utfpr.edu.br/jspui/handle/1/954. Acesso em 20/05/2014. [2] CINCIA E TECNOLOGIA, Robtica - Histria e Desenvolvimento da Robtica - Tecnologia. Site oficial. Acessvel em :<http://cienciasetecnologia.com>. Acessado em 25/05/2014 [3] ROBOTICS. Das Mquinas Gregas Moderna Robtica Industrial. Site Oficial. Acessvel em: <http://robotics.dem.uc.pt/norberto/nova/pdfs/gregosxxi.pdf>. Acessado em 15/05/2014 [4] BLOOKS - Asimov e os robs. Site Oficial. Acessvel em: <http://blooks.com.br/2011/04/asimov-e-os-robos/>. Acessado em 15/05/2014 [5] CITI - Histria da robtica. Acessvel em:<http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/historia_da_rob otica.html>. Acessado em 10/05/2014 [6] BOSTON DUNAMICS - site oficial<http://www.bostondynamics.com/>. Acessado em: 20/04/2014 [7] REIMBOLD, Manuel M.P, CAMPOS, Mauricio Campos, SAUSEN, Airam Sausen, KINA, Jonatas R.Kina, NETO, DoriavalM.Neto, "PROTTIPO ROB HEXPODE PARA INSPEAO EM TUBULAES DE AR CONDICIONADO", GAIC-Grupo de automao industrial e Controle, Dpto. De Cincia Exatas e Engenharias, UNIJUI. Site oficial <http://www.sbai2013.ufc.br/pdfs/4845.pdf>. Acessado em: 15/05/2014. [8] LYNXMOTION - Site oficial <http://www.lynxmotion.com/>. Acessado em 28/05/2014 [9] ROBOTSHOP - COX, William Cox, "The Story of Matt Bunting and the Hexapod that Intel Bought 38
", 16 Fevereiro 2010, Site oficial <http://www.robotshop.com/blog/en/the-story-of- matt-bunting-and-the-hexapod-that-intel-bought-3736>. Acessado em 28/05/2014. [10] ARDUINO.CC - Site oficial <http://arduino.cc>. Acessado em 05/05/2014 [11] JAMECO ELETRONICS - Site oficial <http://www.jameco.com>. Acessado em 05/05/2014 [12] KOBAYASHI, Carlos Yassunori, A tecnologia Bluetooth e aplicaes, Computao Mvel - BCC- IME -USP -2004.Retirado de: <http://grenoble.ime.usp.br/movel/monografia_bluetooth.pdf>. Acessado em: 28/05/2014. [13] TECNOLOGIAHSW - Site oficial <http://tecnologia.hsw>. Acessado em 05/05/2014 [14] Developer SDK Site oficial <http://developer.android.com/sdk/index.html>. Acessado em 02/06/2014 [15] Android sistema Site oficial <http://www.android.com/>. Acessado em 02/06/2014