Escolar Documentos
Profissional Documentos
Cultura Documentos
Banca Avaliadora
Presidente: Jos Ricardo Abalde Guede
Orientador: Marcio Tadeu de Assis Honorato Muella
Convidado: Alessandro Correa Mendes
___________________________________
Marcio Tadeu de Assis Honorato Muella
Orientador Acadmico
___________________________________
Jos Ricardo Abalde Guede
Coordenador da Disciplina de TCC
Data: 04/07/2013
2
Agradecimentos
3
Dedicatria
4
RESUMO
O projeto desenvolvido e descrito a seguir como Trabalho de Concluso do Curso teve
como objetivos principais o desenvolvimento de habilidades nas reas de sistemas robticos,
programao e transmisso de dados, a criao de uma base de conhecimento para o
desenvolvimento futuro de aplicaes para organizaes que necessitem de sistemas robticos
controlados remotamente e o conhecimento e a familiarizao com a plataforma de
desenvolvimento Arduino.
O sistema desenvolvido foi um brao mecnico articulado, com os movimentos
executados por servomotores e controlado remotamente atravs de comandos seriais enviados
por interface Bluetooth. Este projeto de TCC poder futuramente servir de base para o
desenvolvimento de um novo negcio a partir dos conhecimentos agregados.
Os resultados esperados foram alcanados com a concepo de um prottipo
completamente funcional cobrindo todos os objetivos inicialmente propostos.
Adicionalmente, foram agregados novos conhecimentos em Linguagem C, protocolos de
comunicao serial via Bluetooth, sistemas robticos, desenvolvimento de prottipos e outras
reas de interesse complementares ao curso de Engenharia Eltrica.
Como oportunidades de desenvolvimento e melhorias futuras no trabalho desenvolvido,
est sendo analisada a substituio dos servomotores utilizados nos movimentos do brao
mecnico por motores de passo e o desenvolvimento de um novo programa que venha a
explorar as possibilidades abertas pelo uso destes motores, criando um sistema com
movimentos mais precisos e com maiores possibilidades de controle. Adicionalmente, o
trabalho gerou uma ideia, que est sendo desenvolvida, de formatao de um novo negcio
visando o fornecimento de kits de ensino de robtica baseados nos conhecimentos adquiridos
durante o desenvolvimento.
5
NDICE GERAL
1 - Introduo 10
2 - Materiais Utilizados 11
2.1 - A Plataforma Arduino 11
2.2 - Servomotores 12
2.3 - Bluetooth 15
2.3.1 - Histrico 16
2.3.2 - Tecnologia Bluetooth: Frequncia e Comunicao 16
3 - Metodologia Empregada 18
3.1 - Detalhamento do Hardware: Arduino Uno 19
3.1.1 - Alimentao 21
3.1.2 - Memria e I/O 21
3.1.3 - Comunicao 22
3.1.4 - Programao 23
3.1.5 - Proteo Contra Sobrecorrente na Porta USB 23
3.2 - Mdulo Bluetooth 23
3.3 - Servomotores 25
3.3.1 - Servo MG 995 25
3.3.2 - Servo TG9e 26
3.4 - Fonte de Alimentao 27
4 - Montagem Final 28
4.1 - Diagrama em Blocos 28
4.2 - Mecnica e Materiais 29
4.2.1 - Fabricao 41
4.2.2 - Evoluo do Projeto 41
4.3 - Software 49
4.4 - Custo do Projeto 50
5 - Resultados e Discusses 50
6 - Concluses 52
7 - Referncias Bibliogrficas 54
8 - Anexos do Manuscrito: Fluxograma e Software Comentado 55
9 - Anexos do Projeto: Desenhos de Montagem 61
6
INDICE DE FIGURAS
7
Figura 33 - Extremidade da garra. 37
Figura 34 - Vista lateral direita do brao articulado 38
Figura 35 - Vista lateral esquerda do brao articulado 38
Figura 36 - Vista superior do brao articulado 39
Figura 37 - Vista traseira do brao articulado 39
Figura 38 - Vista frontal do brao articulado 40
Figura 39 - Viso geral da montagem final do brao articulado 40
Figura 40 - Incio da montagem do da base do brao articulado 41
Figura 41 - Giro da base e acoplamento dos servomotores de acionamento do brao 42
Figura 42 - Montagem da base com os cabos de acionamento dos servomotores 42
Figura 43 - Primeiro modelo de garra utilizado no prottipo e abandonado devido
dificuldade de fixao dos servomotores. 43
Figura 44 - Dimenses relativas da garra em relao base do brao articulado. 43
Figura 45 - Testes de desenvolvimento do Arduino e dos servomotores. 44
Figura 46 - Testes de desenvolvimento do Arduino e dos servomotores. 44
Figura 47 - Testes de montagem final do prottipo, da nova verso do brao superior e das
garras com posicionamento de fixao dos servomotores de giro do brao, acionamento da
munheca e das garras. 45
Figura 48 - Verso final do prottipo com a finalizao da fixao dos servomotores e do
chicote com o cabeamento de acionamento e controle. 45
Figura 49 - Vista lateral do brao articulado com detalhe do servomotor de giro do brao
superior. 46
Figura 50 - Vista superior do brao articulado com detalhe das garras. 46
Figura 51 - Vista inferior da base do brao articulado. 47
Figura 52 - Detalhe inferior da base do brao articulado com a posio do servomotor
de giro da mesa com a acomodao do Arduino e do cabeamento. 47
Figura 53 - Vista frontal do brao articulado. 48
Figura 54 - Verso final da montagem mecnica do brao articulado com todos os
componentes. 48
Figura 55 - Fluxograma do aplicativo de controle do brao articulado. 49
8
INDICE DE TABELAS
9
1. INTRODUO
10
2. MATERIAIS UTILIZADOS
11
O Arduino baseado em um microcontrolador (Atmega), e dessa forma logicamente
programvel, ou seja, possvel a criao de programas, utilizando uma linguagem prpria
baseada em C/C++, que, quando implementadas fazem com que o hardware execute certas
aes. Dessa forma, estamos configurando a etapa de processamento. [1]
O grande diferencial desta ferramenta que ela desenvolvida e aperfeioada por uma
comunidade que divulga os seus projetos e seus cdigos de aplicao, pois sua concepo
open-source, ou seja, qualquer pessoa com conhecimento de programao pode modific-lo e
ampli-lo de acordo com a necessidade, visando sempre a melhoria dos produtos que possam
ser criados aplicando o Arduino. [1]
Ele foi projetado com a finalidade de ser de fcil entendimento, programao e
aplicao, alm de ser multiplataforma, ou seja, podemos configur-lo em ambiente
Windows, GNU/Linux e Mac OS. Assim sendo, pode ser perfeitamente utilizado como
ferramenta educacional sem se preocupar que o usurio tenha um conhecimento especfico de
eletrnica. Pelo fato de ter o seu esquema e software de programao open-source, acabou
chamando a ateno dos tcnicos e engenheiros de eletrnica, que comearam a aperfeio-la
e a criar aplicaes mais complexas. [1]
O projeto foi desenvolvido utilizando uma placa Arduino UNO. Especificaes e
maiores detalhes sero fornecidos nos prximos tpicos.
2.2 SERVOMOTORES
12
Figura 1 - Vista em corte de um servomotor genrico [2]
13
a) Circuito de Controle: Responsvel por receber os sinais de energia do sistema de
controle, monitorar a posio do potencimetro e posicionar o motor conforme o sinal
recebido do sistema de controle e o potencimetro. [2]
b) Potencimetro: Ligado ao eixo de sada do servo, tem a funo de monitorar a
posio do mesmo. [14]
c) Motor: Movimenta as engrenagens e o eixo principal do servo. [2]
d) Engrenagens: Reduzem a rotao do motor, transferem mais fora ao eixo principal
e movimentam o potencimetro juntamente com o eixo. [2]
Uma vez que o servomotor receba um sinal de, por exemplo, 1,5 ms, verificado se o
potencimetro encontra-se na posio correspondente e caso positivo nenhuma alterao de
posio feita. Caso o potencimetro no estiver na posio correspondente ao sinal recebido,
o circuito de controle aciona o motor at o potencimetro atingir a posio correta. A direo
14
de rotao do motor do servo vai depender tambm da posio relativa do potencimetro e o
motor ir girar na direo que mais rpido levar o potencimetro at a posio correta. [2]
O padro de conectorizao dos servomotores mostrado na figura 5:
2.3 BLUETOOTH
O Bluetooth uma tecnologia que permite uma comunicao simples, rpida, segura e
barata entre computadores, smartphones, telefones celulares, mouses, teclados, fones de
ouvido, impressoras e outros dispositivos, utilizando ondas de rdio no lugar de cabos. Assim,
possvel fazer com que dois ou mais dispositivos comecem a trocar informaes com uma
simples aproximao entre eles. [4]
15
2.3.1 HISTRICO
A histria do Bluetooth comea em meados de 1994. Na poca, a empresa Ericsson
comeou a estudar a viabilidade de desenvolver uma tecnologia que permitisse a comunicao
entre telefones celulares e acessrios utilizando sinais de rdio de baixo custo, ao invs dos
tradicionais cabos. Em 1997, o projeto comeou a despertar o interesse de outras empresas
que, logo, passaram a fornecer apoio. Por conta disso, em 1998 foi criado o consrcio
Bluetooth SIG (Special Interest Group), formado pelas empresas Ericsson, Intel, IBM,
Toshiba e Nokia. Note que esse grupo composto por dois "gigantes" das telecomunicaes
(Ericsson e Nokia), dois nomes de peso na fabricao de PCs (IBM e Toshiba) e a lder no
desenvolvimento de chips e processadores (Intel). [4]
A denominao Bluetooth uma homenagem a um rei dinamarqus chamado Harald
Bltand, mais conhecido como Harald Bluetooth (Haroldo Dente-Azul). Um de seus grandes
feitos foi a unificao da Dinamarca, e em aluso a esse fato que o nome Bluetooth foi
escolhido, como que para dizer que a tecnologia proporciona a unificao de variados
dispositivos. [4]
Isso significa que um aparelho com Bluetooth classe 3 s conseguir se comunicar com
outro se a distncia entre ambos for inferior a 1 metro, por exemplo. Neste caso, a distncia
pode parecer inutilizvel, mas suficiente para conectar um fone de ouvido a um telefone
celular pendurado na cintura de uma pessoa. importante frisar, no entanto, que dispositivos
16
de classes diferentes podem se comunicar sem qualquer problema, bastando respeitar o limite
daquele que possui um alcance menor. [4]
A velocidade de transmisso de dados no Bluetooth baixa; at a verso 1.2, a taxa
pode alcanar no mximo 1 Mb/s. Na verso 2.0 esse valor passou para at 3 Mb/s. Embora
essas taxas sejam curtas, so suficientes para uma conexo satisfatria entre a maioria dos
dispositivos. Todavia, a busca por velocidades maiores constante, como prova a chegada da
verso 3.0, capaz de atingir taxas de at 24 Mb/s. [4]
O Bluetooth uma tecnologia criada para funcionar no mundo todo, razo pela qual se
fez necessria adoo de uma frequncia de rdio aberta, que seja padro em qualquer lugar
do planeta. A faixa ISM (Industrial, Scientific, Medical), que opera frequncia de 2,45 GHz,
a que me mais se aproxima dessa necessidade e utilizada em vrios pases, com variaes
que vo de 2,4 GHz a 2,5 GHz. [4]
Como a faixa ISM aberta, isto , pode ser utilizada por qualquer sistema de
comunicao, necessrio garantir que o sinal do Bluetooth no sofra e no gere
interferncias. O esquema de comunicao FH-CDMA (Frequency Hopping - Code-Division
Multiple Access), utilizado pelo Bluetooth, permite tal proteo, j que faz com que a
frequncia seja dividida em vrios canais. O dispositivo que estabelece a conexo vai
mudando de um canal para outro de maneira muito rpida. Esse esquema chamado "salto de
frequncia" (frequency hopping). Isso faz com que a largura de banda da frequncia seja
muito pequena, diminuindo sensivelmente as chances de uma interferncia. No Bluetooth,
pode-se utilizar at 79 frequncias (ou 23, dependendo do pas) dentro da faixa ISM, cada
uma espaada da outra por 1 MHz. [4]
Como um dispositivo se comunicando por Bluetooth pode tanto receber quanto
transmitir dados (modo full-duplex), a transmisso alternada entre slots para transmitir e
slots para receber, um esquema denominado FH/TDD (Frequency Hopping/Time-Division
Duplex). Esses slots so canais divididos em perodos de 625 s (microssegundos). Cada salto
de frequncia deve ser ocupado por um slot, logo, em 1 segundo tem-se 1600 saltos. [4]
No que se refere ao enlace, isto , ligao entre o emissor e receptor, o Bluetooth faz
uso, basicamente, de dois padres: SCO (Synchronous Connection-Oriented) e ACL
(Asynchronous Connection-Less). O primeiro estabelece um link sincronizado entre o
dispositivo master e o dispositivo escravo, onde feita uma reserva de slots para cada um.
Assim, o SCO acaba sendo utilizado principalmente em aplicaes de envio contnuo de
dados, como voz. Por funcionar dessa forma, o SCO no permite a retransmisso de pacotes
de dados perdidos. Quando ocorre perda em uma transmisso de udio, por exemplo, o
17
dispositivo receptor acaba reproduzindo som com rudo. A taxa de transmisso de dados no
modo SCO de 432 Kb/s, sendo de 64 Kb/s para voz. [4]
O padro ACL, por sua vez, estabelece um link entre um dispositivo master e os
dispositivos slave existentes em sua rede. Esse link assncrono, j que utiliza os slots
previamente livres. Ao contrrio do SCO, o ACL permite o reenvio de pacotes de dados
perdidos, garantindo a integridade das informaes trocadas entre os dispositivos. Assim,
acaba sendo til para aplicaes que envolvam transferncia de arquivos, por exemplo. A
velocidade de transmisso de dados no modo ACL de at 721 Kb/s. [4]
3. METODOLOGIA EMPREGADA
18
3.1 DETALHAMENTO DO HARDWARE: ARDUINO UNO
A figura 7 mostra uma placa Arduino UNO similar utilizada no projeto. Nela podemos
identificar os elementos principais da placa, detalhados na sequncia:
Microcontrolador ATmega328
Tenso de operao 5V
Tenso de entrada (recomendada) 7-12V
Tenso de entrada (limites de operao) 6-20V
Pinos I/O digitais 14 (6 com sada PWM)
Entradas analgicas 6
Corrente tpica ns pinos I/O 40 mA
Corrente tpica nos pinos 3.3V 50 mA
Flash Memory 32 KB (ATmega328) 0.5 KB usedos pelo bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock 16 MHz
19
O Arduino UNO uma placa microcontroladora baseada no chip ATmega328. A placa
dispe de 14 pinos de I/O digitais (6 com sada PWM), 6 entradas analgicas, cristal oscilador
de 16MHz, conector para alimentao externa, leitor de ICSP e um boto de reset manual. A
placa comporta tudo o que necessrio para suportar o microcontrolador, conect-lo a um PC
utilizando um cabo USB de forma bastante simples, carregar o software necessrio, aliment-
lo com uma fonte DC externa e rodar a aplicao. [2]
As dimenses bsicas da placa so mostradas na figura 8. O conector USB e o plug de
alimentao excedem lateralmente a dimenso do comprimento da placa em alguns
milmetros. H quatro furos na placa para fixao. [2]
20
3.1.1 ALIMENTAO
O Arduino UNO pode ser alimentado atravs do conector USB ou com uma fonte
externa. A fonte a ser utilizada selecionada automaticamente. [2]
A alimentao externa (exceto USB) pode ser fornecida por uma bateria ou um
adaptador AC/DC. O conector de entrada de alimentao DC existente na placa de 2.1mm
com terminal positivo no pino central. [2]
A placa pode operar com uma tenso entre 6 ~ 20V. Entretanto tenses abaixo de 7V
podem levar o pino de exteriorizao de 5V a fornecer tenses abaixo do nominal e a placa
pode passar a ter operao instvel. Tenses acima de 12V podem gerar sobreaquecimento no
regulador de tenso existente na placa. Desta forma, o range de operao recomendado entre
7 e12V. [2]
Os pinos existentes no conector de exteriorizao so os seguintes:
Vin: Tenso de entrada da placa quando estiver sendo utilizada uma fonte externa.
Este pino pode ser usado como entrada, ou, caso seja aplicada tenso pelo conector
de 2.1mm, esta tenso pode ser acessada neste pino;
5V: Sada de 5V disponibilizada pelo regulador existente na placa;
3V3: Sada de 3.3V disponibilizada pelo regulador existente na placa. A corrente
mxima desta sada 50mA;
GND: Terra. [2]
21
SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK). Estes pinos oferecem suporte a
comunicao SPI utilizando a biblioteca SPI do software Arduino;
LED: 13. A placa tem um LED conectado ao pino digital 13. [2]
O Arduino UNO dispe de 6 entradas analgicas, identificadas como A0 ~ A5, cada
uma delas com um conversor AD de 10bits de resoluo. Por padro estas entradas medem de
0 a 5V, entretanto possvel alterar o limite superior deste range usando o pino AREF em
conjunto com a funo analogReference(). Adicionalmente, alguns pinos tm funes
especiais, descritas a seguir:
TWI: A4 ou pino DAS e A5 ou pino SCL. Estes pinos oferecem suporte a
comunicao TWI utilizando a biblioteca Wire do software Arduino;
AREF: Tenso de referncia para as entradas analgicas utilizada em conjunto
com a funo analogReference();
Reset: Nvel lgico 0 aplicado a este pino provoca reset do microcontrolador. [2]
3.1.3 COMUNICAO
O Arduino UNO dispe de diversas facilidades na comunicao com um PC, outro
Arduino, ou outros microcontroladores. O ATmega328 disponibiliza comunicao serial
padro UART TTL (5V) atravs dos pinos digitais 0 (RX) e 1 (TX). Um conversor USB-
Serial(ATmega16U2) existente na placa canaliza a comunicao serial na interface USB
aparecendo como uma porta COM virtual no gerenciador de dispositivos. O firmware do
conversor USB-Serial utiliza drivers USB COM padro, no sendo necessrio nenhum driver
externo. Entretanto, no ambiente Windows, um arquivo .inf necessrio. [2]
O software Arduino inclui um monitor serial que possibilita o recebimento/envio de
dados seriais simples da placa Arduino. Os leds RX e TX na placa iro piscar durante a
transmisso de dados Arduino PC. (OBS: estes leds no piscam para comunicao serial
pelos pinos 0 e 1). [2]
O uso da biblioteca SoftwareSerial possibilita a habilitao de comunicao serial em
qualquer um dos pinos digitais do Arduino UNO. O ATmega328 suporta ainda comunicao
I2C (TWI) e SPI. O software Arduino inclui bibliotecas que simplificam o uso de
barramentos I2C (biblioteca Wire) e de comunicao SPI (biblioteca SPI). [2]
22
3.1.4 PROGRAMAO
O Arduino UNO pode ser programado utilizando o software (IDE) Arduino. O
ATmega328 vem pr-gravado com um carregador de inicializao que possibilita a carga de
novos cdigos sem o uso de um programador externo. [2]
23
Tabela 2 - Caractersticas eltricas do mdulo EBGT-046S
A placa EGBT-046S um mdulo Bluetooth genrico com firmware SPP UART para
aplicaes wireless. um mdulo simples com uma configurao permanente para operao
no modo escravo sem a necessidade de insero de cdigos de instalao no firmware do
microcontrolador associado.
O esquema bsico de conexo do mdulo Bluetooth ao microcontrolador mostrado na
figura 11:
24
3.3 SERVOMOTORES
Na concepo do brao mecnico decidiu-se pela implementao de seis movimentos
diferentes assim identificados:
1) Giro da base
2) Primeira elevao do brao
3) Segunda elevao do brao
4) Giro da mo do brao
5) Movimento tipo munheca da mo
6) Movimento tipo pina
Para a obteno destes movimentos foram utilizados sete servomotores, empregados na
configurao padro, descrita no item 2.2, com amplitude de movimentos de 180, no tendo
sido executada nenhuma adaptao no que diz respeito ao padro bsico de giro.
Dentro da ideia inicial, os movimentos 1 a 5 estariam sujeitos a um esforo mais
elevado, visto que deveriam suportar o movimento de parte da estrutura do prprio brao
mecnico alm de prover o seu prprio movimento previamente definido. O movimento de
pina por outro lado, estaria sujeito a um esforo menor pois no teria que suportar a carga da
estrutura mecnica do sistema.
Assim, dentro destas premissas, foram escolhidos dois tipos diferentes de servomotores
para aplicao no projeto. Estes servomotores so descritos a seguir.
25
Figura 13 - Detalhe das engrenagens do servomotor MG 995
26
Estes servomotores foram utilizados para a execuo do movimento 6 citado no item
3.3 e suas principais caractersticas esto listadas a seguir:
Dimenses: 23 x 12.2 x 29 mm
Torque: 1.5kg/cm (4.8V)
Velocidade de operao: 0.10sec/60 graus
Voltagem: 4.8V
Temperatura de operao: 0-55C
Comprimento do fio: 16 cm
27
O plugue de sada P4 (Positivo Interno) pode ser visto na figura 16.
4. MONTAGEM FINAL
FONTE DE GND
ALIMENTAO M7 M6 M5 M4 M3 M2 M1
VCC
11 10 09 08 07 06 05
PINOS BARRAMENTO
TX RX
R TX
Arduino UNO 5v 5v
Modulo Bluetooth
GND GND
GND VCC
GND VCC
FONTE DE
ALIMENTAO
28
As funes de cada motor so descritas abaixo:
29
Figura 19 - Desenho da montagem final do brao articulado: vista lateral esquerda
30
O material utilizado no projeto foi o policloreto de polivinila (tambm conhecido
como cloreto de vinila ou policloreto de vinil - nome IUPAC policloroeteno) mais
conhecido pelo acrnimo PVC (da sua designao em ingls Polyvinyl chloride) um
plstico no 100% originrio do petrleo .
O PVC contm, em peso, 57% de cloro (derivado do cloreto de sdio - sal de
cozinha) e 43% de eteno (derivado do petrleo). Como todo plstico, o vinil feito a
partir de repetidos processos de polimerizao que convertem hidrocarbonetos,
contidos em materiais como o petrleo, em um nico composto chamado polmero. O
vinil formado basicamente por etileno e cloro.
Este d ao vinil duas vantagens, a de no ser to susceptvel s mudanas de
preo no mercado de petrleo e de no ser um bom combustvel como os derivados de
petrleo.
Por uma reao qumica, o etileno e o cloro combinam-se formando o dicloreto
de etileno, que por sua vez transformado em um gs chamado "VCM " (Vinyl
chloride monomer, em portugus cloreto de vinila). O passo final a polimerizao,
que converte o monmero num polmero de vinil, que o PVC, ou simplesmente,
vinil.
A partir da ideia inicial mostrada nos desenhos das figuras 18, 19 e 20 com base
na utilizao de placas e tubos de PVC para a estrutura mecnica do brao articulado e
levando em contas dimenses das peas a serem agregadas ao projeto para a montagem
final chegou-se aos desenhos das partes mecnicas mostradas a seguir nas figuras 21 a
39. Os desenhos de montagem com as respectivas cotas esto no item 9 - Anexos do
Projeto.
31
Figura 22 - Giro da mesa do brao articulado
32
Figura 24 - Tensor 1: interligao do servomotor com o tensor 2
33
Figura 26 - Interligao dos suportes laterais e do Tensor 02 com a base de giro
34
Figura 28 - Interligao do servomotor de giro da garra com o corpo da munheca
35
Figura 30 - Fixao lateral do corpo da munheca ao corpo da garra.
36
Figura 32 - Articulao da garra.
37
Figura 34 - Vista lateral direita do brao articulado
38
Figura 36 - Vista superior do brao articulado
39
Figura 38 - Vista frontal do brao articulado
40
4.2.1 FABRICAO
41
Figura 41 - Giro da base e acoplamento dos servomotores de acionamento do brao
42
Figura 43 - Primeiro modelo de garra utilizado no prottipo e abandonado devido dificuldade de fixao
dos servomotores.
43
Figura 45 - Testes de desenvolvimento do Arduino e dos servomotores.
44
Figura 47 - Testes de montagem final do prottipo, da nova verso do brao superior e das garras com
posicionamento de fixao dos servomotores de giro do brao, acionamento da munheca e das garras.
Figura 48 - Verso final do prottipo com a finalizao da fixao dos servomotores e do chicote com o
cabeamento de acionamento e controle.
45
Figura 49 - Vista lateral do brao articulado com detalhe do servomotor de giro do brao superior.
46
Figura 51 - Vista inferior da base do brao articulado.
Figura 52 - Detalhe inferior da base do brao articulado com a posio do servomotor de giro da mesa
com a acomodao do Arduino e do cabeamento.
47
Figura 53 - Vista frontal do brao articulado.
Figura 54 - Verso final da montagem mecnica do brao articulado com todos os componentes.
48
4.3 SOFTWARE
49
4.4 CUSTO DO PROJETO
Foi feita uma estimativa do custo para desenvolvimento do projeto baseado nos valores
dos materiais utilizados, no estando considerados nesta estimativa os custos homem/hora e
de investimento e utilizao de ferramentas. Os valores esto na tabela 3.
5. RESULTADOS E DISCUSSES
Foram executados diversos testes do brao mecnico sob operao local e por controle
remoto.
A operao local foi feita atravs da porta USB do Arduino UNO, utilizando o monitor
serial existente no software do Arduino para o envio de comandos seriais.
A operao remota foi feita de duas formas distintas: 1) atravs de um smartphone
Android LG Optimus P970 Black, utilizando o aplicativo S2 Bluetooth Terminal verso
3.1.0 para o envio de caracteres pela interface serial; 2) atravs da interface Bluetooth de um
notebook HP G42-371BR acessada por um aplicativo Hyperterminal.
Todos os testes apresentaram desempenho bastante satisfatrio, tendo sido possvel
controlar os 7 servomotores, local e remotamente, simulando os movimentos de giro da mesa,
elevao 1(pantgrafo), elevao 2(avano/recuo), giro da mo(rotao interna e externa),
giro da mo(movimento tipo munheca) e abertura/fechamento da garra(movimento tipo
pina).
50
Foram enviadas sequncias de comandos simulando uma operao real, recolhendo um
objeto em uma determinada posio e colocando-o em outra posio definida.
Como os testes foram feitos no laboratrio, no foi determinado o alcance mximo da
cobertura da interface Bluetooth utilizada. Entretanto, dentro das dependncias do laboratrio
o hardware foi montado em diversas posies tendo sido possvel remoto em todas as
condies simuladas.
Durante o desenvolvimento do projeto foram feitas observaes, tendo sido verificados
alguns aspectos positivos e negativos, conforme listados a seguir:
Pontos Positivos
A plataforma Arduino realmente cumpre o que promete nos quesitos facilidade de
operao e disponibilidade de informao. O hardware realmente bem simples e de
operao bastante intuitiva, sendo que o mesmo pode ser dito do software que
tambm de desenvolvimento muito simples. Outro ponto a destacar a grande
disponibilidade de informao disponvel. Como uma plataforma aberta, h um
volume realmente gigantesco de material disponvel para informao e referncia.
Outro aspecto positivo que merece destaque diz respeito ao custo. Com um pequeno
investimento foi realmente possvel desenvolver uma aplicao bem interessante.
Ponto mais uma vez para a plataforma aberta que praticamente zera os custos de
licenas e outras tecnologias proprietrias tornando bastante acessvel o
desenvolvimento de prottipos baseados em sistemas microcontrolados.
Pontos negativos
No foi possvel definir com preciso onde era realmente o problema, mas a
operao do Arduino mostrou-se instvel em algumas situaes, como por exemplo
travando ao iniciar, no sendo reconhecido na primeira inicializao, no sendo
possvel fazer o upload em outro PC com o software de mesma verso. Pode ser
um problema da interao do Arduino Uno com o ambiente Windows 7, mas como
no havia mquinas disponveis com outros sistemas operacionais no foi possvel
uma confirmao.
A abundncia de informao, que a principio uma virtude, pode se tornar um
problema. Como h muita informao disponvel, muito fcil encontrar coisas boas
mas tambm h inevitavelmente muito contedo de baixa qualidade. Saber filtrar a
51
informao, selecionando o contedo realmente adequado e que seja de relevncia na
aplicao em desenvolvimento fundamental para no perder o foco e desperdiar
recursos importantes.
Caractersticas do projeto que foram observadas e que no podem ser definidas como
negativas ou positivas, mas sim como inerentes aos sistemas em questo incluem:
6. CONCLUSES
52
A plataforma Arduino foi conhecida e utilizada com sucesso em uma aplicao,
estando alinhado com as novas diretrizes das disciplinas de microcontroladores e
Robtica da Univap.
Foram desenvolvidos conhecimentos de programao a partir da criao do software
de controle do brao articulado atravs da IDE do Arduino. Como a linguagem
utilizada no Arduino bastante similar linguagem C, indiretamente os
conhecimentos neste ambiente de programao foram revistos e refinados.
Habilidades em transmisso de dados tambm foram adquiridas com o
desenvolvimento de um sistema bsico remotamente controlado por comandos via
interface serial atravs de terminais baseados na tecnologia Bluetooth.
Conforme proposto, foi obtido um sistema robtico de baixo custo baseado na
plataforma Arduino.
O sistema desenvolvido gerou uma aplicao que poder ser utilizada no
desenvolvimento e na fomentao de novos negcios.
Uma reflexo final fica por conta da relevncia de um programa de TCC bem
estruturado e orientado do qual tivemos o privilgio de participar. Esta atividade permite aos
alunos dos cursos de Engenharia um primeiro contato com uma das atividades mais
corriqueiras e comuns aos Engenheiros: a execuo e gesto de pequenos projetos, definindo
e especificando materiais, desenvolvendo prottipos e sistemas de testes, controlando prazos,
medindo os resultados e redirecionando o andamento das atividades pertinentes ao projeto.
Fica como sugesto o direcionamento das ementas das disciplinas Projeto em Engenharia
Eltrica/Eletrnica de modo a criar um ambiente de estmulo e evoluo que culmine com a
concluso do TCC.
53
7. REFERENCIAS BIBLIOGRFICAS
[1] Guimares, Pereira da Fonseca Erika / Beppu, Mathyan Motta Apostila Arduino
Universidade Federal Fluminense, 2010.
54
8. ANEXOS DO MANUSCRITO: FLUXOGRAMA E SOFTWARE COMENTADO
55
56
57
#include <Servo.h> // inclue a biblioteca de controle de servomotores
Servo Agirodamesa; // cria um objeto tipo Servo associado ao giro da mesa
Servo Bpantografo; // cria um objeto tipo Servo associado ao pantgrafo
Servo Cavanco; // cria um objeto tipo Servo associado ao avano do brao
Servo Dgirodamao; // cria um objeto tipo Servo associado a rotao da mo
Servo Emonheca; // cria um objeto tipo Servo associado ao movimento de munheca
Servo Fmaodireita; // cria um objeto tipo Servo associado ao fechamento da garra direita
Servo Gmaoesquerda; // cria um objeto tipo Servo associado ao fechamento da garra esquerda
int V=3; // define varivel V do tipo inteiro
int A; // define varivel A do tipo inteiro
int B; // define varivel B do tipo inteiro
int C; // define varivel C do tipo inteiro
int D; // define varivel D do tipo inteiro
int E; // define varivel E do tipo inteiro
int F; // define varivel F do tipo inteiro
int G; // define varivel G do tipo inteiro
// inicio do setup
void setup () {
Agirodamesa.attach(5); // associa o servo giro de mesa ao pino 5
Agirodamesa.write(105); // define posio inicial do servo giro de mesa
delay(10);
Bpantografo.attach(6); // associa o servo pantografo ao pino 6
Bpantografo.write(100); // define posio inicial do servo pantografo
delay(10);
Cavanco.attach(7); // associa o servo avano ao pino 7
Cavanco.write(90); // define posio inicial do servo avano
delay(10);
Dgirodamao.attach(8); // associa o servo giro da mo ao pino 8
Dgirodamao.write(90); // define posio inicial do servo giro da mo
delay(10);
Emonheca.attach(9); // associa o servo munheca ao pino 9
Emonheca.write(78); // define posio inicial do servo munheca
58
delay(10);
Fmaodireita.attach(10); // associa o servo mo direita ao pino 10
Fmaodireita.write(105); // define posio inicial do servo mo direita
delay(10);
Gmaoesquerda.attach(11); // associa o servo mo esquerda ao pino 11
Gmaoesquerda.write(110); // define posio inicial do servo mo esquerda
delay(10);
Serial.begin(9600); // inicializa comunicao serial
}
// inicio do loop
void loop()
{
char z = Serial.read(); // define uma varivel tipo char associada ao valor lido pela serial
if(z == '1') A=30; // testa o valor de z e escreve em A conforme retorno do condicional
if(z == '2') A=105; // testa o valor de z e escreve em A conforme retorno do condicional
if(z == '3') A=180; // testa o valor de z e escreve em A conforme retorno do condicional
int a= Agirodamesa.read(); // define uma varivel a tipo int associada ao valor lido da serial
a=constrain(a,30,180); // limita o valor de a entre 30 e 180
if(a>A )a--; // decrementa a em funo do resultado do teste condicional
if(a<A )a++; // incrementa a em funo do resultado do teste condicional
Agirodamesa.write(a); // posiciona o servo giro de mesa com valor de a
delay(V);
if(z == '4') B=80; // testa o valor de z e escreve em B conforme retorno do condicional
if(z == '5') B=100; // testa o valor de z e escreve em B conforme retorno do condicional
if(z == '6') B=150; // testa o valor de z e escreve em B conforme retorno do condicional
int b= Bpantografo.read(); // define uma varivel b tipo int associada ao valor lido da serial
b=constrain(b,70,150); // limita o valor de b entre 70 e 150
if(b>B )b--; // decrementa b em funo do resultado do teste condicional
if(b<B )b++; // incrementa a em funo do resultado do teste condicional
Bpantografo.write(b); // posiciona o servo pantografo com valor de b
delay(V);
if(z == '7') C=60; // testa o valor de z e escreve em C conforme retorno do condicional
if(z == '8') C=90; // testa o valor de z e escreve em C conforme retorno do condicional
if(z == '9') C=110; // testa o valor de z e escreve em C conforme retorno do condicional
int c= Cavanco.read();// define uma varivel c tipo int associada ao valor lido da serial
c=constrain(c,50,130); // limita o valor de c entre 50 e 130
if(c>C )c--; // decrementa c em funo do resultado do teste condicional
if(c<C )c++; // incrementa c em funo do resultado do teste condicional
Cavanco.write(c); // posiciona o servo avano com valor de c
delay(V);
if(z == 'y') D=0; // testa o valor de z e escreve em D conforme retorno do condicional
if(z == 't') D=95; // testa o valor de z e escreve em D conforme retorno do condicional
if(z == 'u') D=180; // testa o valor de z e escreve em D conforme retorno do condicional
int d= Dgirodamao.read(); //define uma varivel d tipo int associada ao valor lido da serial
d=constrain(d,0,180); // limita o valor de d entre 0 e 180
if(d>D )d--; // decrementa d em funo do resultado do teste condicional
if(d<D )d++; // incrementa d em funo do resultado do teste condicional
Dgirodamao.write(d); // posiciona o servo giro da mo com valor de d
delay(V);
if(z == 'j') E=0; // testa o valor de z e escreve em E conforme retorno do condicional
if(z == 'k') E=80; // testa o valor de z e escreve em E conforme retorno do condicional
if(z == 'l') E=130; // testa o valor de z e escreve em E conforme retorno do condicional
int e= Emonheca.read(); //define uma varivel e tipo int associada ao valor lido da serial
e=constrain(e,0,150); // limita o valor de e entre 0 e 150
if(e>E )e--; // decrementa e em funo do resultado do teste condicional
if(e<E )e++; // incrementa e em funo do resultado do teste condicional
Emonheca.write(e); // posiciona o servo giro da mo com valor de e
delay(V);
if(z == 's') F=70; // testa o valor de z e escreve em F conforme retorno do condicional
if(z == 'f') F=124; // testa o valor de z e escreve em F conforme retorno do condicional
int f= Fmaodireita.read(); //define uma varivel f tipo int associada ao valor lido da serial
f=constrain(f,80,129); // limita o valor de e entre 80 e 129
if(f>F )f--; // decrementa f em funo do resultado do teste condicional
if(f<F )f++; // incrementa f em funo do resultado do teste condicional
59
Fmaodireita.write(f); // posiciona o servo fecha mo direita com valor de f
delay(0);
if(z == 's') G=130; // testa o valor de z e escreve em G conforme retorno do condicional
if(z == 'f') G=75; // testa o valor de z e escreve em G conforme retorno do condicional
int g= Gmaoesquerda.read(); //define uma varivel g tipo int associada ao valor lido da serial
g=constrain(g,71,130); // limita o valor de g entre 71 e 130
if(g>G )g--; // decrementa g em funo do resultado do teste condicional
if(g<G )g++; // incrementa g em funo do resultado do teste condicional
Gmaoesquerda.write(g); // posiciona o servo fecha mo esquerda com valor de g
delay(0);
}
60
9. ANEXOS DO PROJETO: DESENHOS DE MONTAGEM
61
62
63
64
65
66
67
68
69
70
71
72