Você está na página 1de 46

TUTORIAL

Rob Bpede
Autores: Carlos Magno Feitosa da Silva, Leandro Borini Lone, Lus Fernando Patsko
Nvel: Avanado
Criao: 26!"2""6
#lti$a verso: !%!22""6
PdP
Pesquisa e Desenvolvimento de Produtos
&tt':((()$a*(ell+o&r),o$)+r &tt':((()auto$ato),o$)+r
,ontato-$a*(ell+o&r),o$)+r atendi$ento-auto$ato),o$)+r
1 Introduo
A robtica uma rea cujo desenvolvimento ao longo dos prximos anos ser relevante. O
uso de robs em trabalhos que sejam perigosos ou repetitivos (onde a indstria automobilstica um
exemplo da presen!a da robtica na economia global"# na rea de entretenimento (com os robs
japoneses que imitam animais" ou at mesmo em servi!os domsticos (o aspirador de p autnomo
um grande exemplo" j cada ve$ mais intenso.
O projeto a ser desenvolvido ao longo desse tutorial um bpede# ou seja# um pequeno rob
que possui duas %pernas&# que conectado ao 'it podendo ser controlado atravs de um programa
rodando num computador. Atravs da cria!(o de um rob bpede# possvel aplicar os
conhecimentos de )letrnica# *ec+nica e ,rograma!(o adquiridos ao longo do curso num projeto
prtico. Alm disso# esse tutorial serve como uma tima base para -uturos projetos.
.m -ator importante que n(o pode ser negligenciado durante a montagem a seguran!a. /
indispensvel o uso de equipamentos de prote!(o individual (),01s" tais como luvas# culos de
2
Figura 1: Humanide Asimo, desenvolvido pela Honda.
prote!(o# jaleco# etc. 3ambm essencial tomar cuidados bsicos para a preven!(o de acidentes#
especialmente durante a manipula!(o de produtos qumicos e -erramentas. ,or pura -alta de aten!(o
ou excesso de con-ian!a# podem ser causados acidentes graves. )# alm disso# os problemas
decorrentes da postura inadequada e da repeti!(o excessiva de movimentos s(o vrios e muito
simples tomar provid4ncias para evit5los. 6(o di-cil se conscienti$ar e reali$ar pequenas a!7es
que podem prevenir muitos acidentes.
2 Funcionamento
O rob bpede um pequeno rob que possui duas pernas# que pode ser controlado pelo
usurio atravs de um programa rodando num computador. )le possui dois servo5motores# que
ser(o utili$ados na sua locomo!(o# que se dar da seguinte -orma8 um dos servo5motores
destinado a inclinar o corpo do bpede para o lado. 9esse modo# seu peso -ica concentrado sobre
uma perna s# possibilitando que a outra seja deslocada. )sse deslocamento reali$ado pelo
segundo servo5motor. )nt(o o primeiro servo5motor entrar em a!(o novamente# jogando o peso do
bpede para a perna que acabou de ser deslocada# permitindo a movimenta!(o da outra. ,ara
controlar o sentido do movimento do bpede# necessrio inverter a rota!(o do servo5motor
responsvel por deslocar as pernas do bpede# o que pode ser -eito nas linhas de cdigo do
programa. 3ambm podemos -a$er com que o bpede vire# bastando que uma das pernas se desloque
menos que a outra.
O nosso projeto constitudo por duas partes principais8 a constru!(o do rob e a
programa!(o necessria para seu -uncionamento. A constru!(o do rob a elabora!(o da estrutura
mec+nica e eletrnica. A dedica!(o nessa etapa indispensvel# uma ve$ que pe!as ou circuitos mal
:
Figura 2: Viso do bpede pronto, ligado ao MEC1000.
-eitos podem comprometer o -uncionamento de todo o sistema. *as n(o basta apenas a estrutura
estar per-eita# pois ela deve ser controlada adequadamente. A programa!(o ser responsvel por
proporcionar a conex(o entre o 'it e o rob e pelo controle preciso da atua!(o dos servo5motores#
de modo que o rob possa se movimentar corretamente# pois cada um desses componentes deve ser
acionado num momento exato.
;eguindo corretamente as instru!7es a seguir# podemos ter em m(os um pequeno rob
bpede. *as nada o impede de usar a criatividade e reali$ar modi-ica!7es e implementar o projeto
com outras caractersticas# ou seja# construir o projeto ao seu gosto.
3 Materiais
Os materiais utili$ados nesta montagem s(o madeira tipo *9<# per-is de alumnio (barras e
cantoneiras"# madeirite# plstico (,=>"# engrenagens de acrlico# dois servo5motores (adaptados
para rota!(o contnua# mas com potencimetros externos"# para-usos de diversos tamanhos# porcas#
arruelas# cola branca# cola de secagem instant+nea e lubri-icante. Alm disso# ser(o necessrias
-erramentas para a montagem tais como paqumetro# caneta de retroprojetor# serra de meia5
esquadria. 3ais -erramentas estar(o ? disposi!(o nas bancadas de trabalho.
Optamos pelos materiais utili$ados pela acessibilidade# baixo custo# resist4ncia adequada# e
tambm por serem -ceis de trabalhar# tentando sempre adequ5los ?s di-iculdades surgidas no
desenvolvimento# ou at substituindo5os por outros se necessrio# lembrando5se sempre de que os
materiais listados aqui# de -orma alguma s(o padr(o para as montagens# e que podem ser
substitudos tranquilamente por outros semelhantes ou que desempenhem a mesma -un!(o. 9eve5se
apenas ter em mente que nem todos os materiais t4m desempenho semelhante sob uma determinada
situa!(o. ,or exemplo# a madeira *9< uma boa escolha# pois -cil de trabalhar e n(o trinca t(o
-acilmente como uma chapa de compensado# por exemplo# quando per-urada.

4 Leituras prvias
,ara a constru!(o do projeto descrito nesse tutorial# recomendada a leitura de outros
tutoriais# que nos auxiliar(o durante a constru!(o da esteira. Os tutoriais recomendados s(o8
Montagem do Bloo de !ervo"motor #adro, Adapta$o de !ervo"motores e Cria$o de
engrenagens em arlio. )sses tutoriais est(o ? disposi!(o ao longo do curso de *ecatrnica e
@obtica e ser(o utili$ados ou dar(o suporte a alguns procedimentos ao longo deste tutorial.
5 Montagem
O primeiro passo para a montagem de um projeto deve ser a elabora!(o de um esbo!o deste
num papel# mesmo que se tenha todo projeto em mente. 0sto -acilitar muito a montagem de
qualquer projeto# pois alm de uma melhor visuali$a!(o deste# n(o corremos o risco de esquecermos
ou pularmos algum passo.
A
>om o %roteiro& do projeto em m(os# podemos come!ar a montagem escolhendo os
materiais que mais se adequem as montagens de cada parte do projeto# en-ati$ando principalmente a
acessibilidade dos materiais# o custo# para que o projeto n(o venha a ter um custo muito elevado# e
maleabilidade. ,or exemplo8 per-is de alumnio podem ser encontrados em qualquer loja
especiali$ada em alumnio# s(o relativamente baratos e muito mais -ceis de trabalhar do que per-is
de -erro# por exemplo.
O projeto descrito nesse tutorial visa a constru!(o de um rob bpede# -a$endo uso de servo5
motores e estruturas mec+nicas. A parte principal no que se re-ere ao bom -uncionamento desse
rob bpede a correta constru!(o dos blocos dos servo5motores. )sses servo5motores dever(o ser
adaptados para rota!(o contnua# mas devem utili$ar um potencimetro externo. )ste potencimetro
tem exatamente a mesma -un!(o do potencimetro original do servo5motor# s que agora o servo
vai trans-erir seu movimento para uma outra engrenagem# e ela dever ser a re-er4ncia para o
controle do servo5motor. ,or isso# essa engrenagem ser -ixada ao potencimetro# que ser o eixo
principal do bloco. 9este modo# conseguiremos controlar precisamente a posi!(o da engrenagem.
)sta engrenagem -a$ parte de um conjunto redutor# de modo que o torque disponvel seja maior#
para possibilitar uma correta movimenta!(o do bpede.
,rimeiramente# devemos con-eccionar engrenagens de acrlico utili$ando os moldes de
silicone. As engrenagens utili$adas ser(o de tamanhos di-erentes# sendo que a menor deve ser -ixada
no eixo do motor e a maior ao potencimetro que -oi adicionado ao bloco do servo5motor# pois a
idia de redu$ir ainda mais a velocidade do motor e consequentemente aumentar seu torque.
9epois de con-eccionadas# iremos tomar a dist+ncia entre seus centros. )sta medi!(o nos in-ormar
qual a dist+ncia em que o potencimetro deve -icar em rela!(o ao eixo do servo5motor.
6osso prximo passo construir os blocos de -ixa!(o dos servo5motores de inclina!(o e de
movimenta!(o# utili$ando madeira (*9< com espessura de 2#B cm" e plstico (,=> com : mm de
espessura". / importante que esses blocos tenham as mesmas dimens7es. )m primeiro lugar#
C
Figura 3: Medindo a dist%nia entre os entros das engrenagens.
marcaremos os -uros a serem -eitos para o encaixe do servo5motor e# em seguida# tomando a
dist+ncia medida entre os centros das engrenagens# -aremos a marca!(o dos -uros para o encaixe do
potencimetro# alm de dois -uros extras para encaixe de para-usos. O bloco -oi dimensionado
aleatoriamente# mas dentro dos limites permitidos. Assumimos como padr(o para nossas montagens
tiras de *9< 2#B cm de espessura cortadas com B cm de largura. ,or -im# nosso bloco -oi
dimensionado em um ret+ngulo de D cm x B cm.
Os -uros poder(o ent(o ser -eitos# sendo que os -uros assinalados na -igura abaixo poder(o
ser -eitos com certa -olga. >omo neste caso os para-usos s(o de 2EF&# recomendamos broca de C
mm. O -uro para o eixo do servo5motor pode ser -eito com broca de F mm na madeira. O eixo do
motor deve girar sem atrito com a madeira# por isso -eito com um di+metro maior do que o do
eixo a ser usado# neste caso 2EC&. *as deve5se ter em vista que n(o poder ser muito maior do que
isto# pois a trava utili$ada no eixo deve apoiar5se na madeira como mostrado na -igura F5:". ,ara o
plstico# o -uro -oi -eito com broca de 2EC&# o qual deve proporcionar ao eixo um giro livre# sendo
necessrio espa!5lo um pouco mais# quando o mesmo n(o o proporcionar. 0sso pode ser -eito com
o auxlio de uma -uradeira de bancada# reali$ando movimentos leves e circulares# sempre tomando
cuidado para manter o plstico perpendicular ? -uradeira# pois n(o desejamos que o -uro -ique com
bordas arredondadas# como explicado no tutorial sobre bloco padr(o para servo5motor.
O -uro para o potencimetro a ser -eito na madeira deve passar por duas etapas8 primeiro
deve5se -a$er um -uro guia# e depois utili$ar a broca chata para madeira para aument5lo#
lembrando5se sempre de utili$ar os equipamentos de seguran!a. 6o plstico# esse -uro ser do
di+metro da rosca do potencimetro# podendo ser alargado -uturamente se necessrio para um ajuste
de rela!(o entre as engrenagens.
B
Figura 4: Mara$&es 'eitas no bloo de madeira e no pl(stio, utili)ando a pe$a de pl(stio
padro *+ direita, omo re'er-nia.
Os -uros de -ixa!(o para o servo5motor na madeira podem ser de qualquer di+metro que
comporte o para-uso a ser utili$ado# que no nosso exemplo de :#G mm. O -uro -oi -eito com broca
de :#B mm e para o plstico utili$amos o mesmo tamanho do para-uso.
)m seguida# iremos utili$ar a serra para cortar a madeira onde ser encaixado o
potencimetro# j que# devido ao seu -ormato# n(o podemos encaix5lo diretamente no -uro. Antes
de cortar# devemos colocar para-usos nos -uros prximos ao local a ser serrado# com o objetivo de
evitar que a madeira se abra.
D
Figura 5: 1"#e$as de madeira e de pl(stio per'uradas, om india$o dos 'uros .ue podem ser 'eitos
om erta 'olga. /"0uro para o poteni1metro sendo 'eito om a broa de madeira.
O prximo passo consiste na cria!(o de um pino5eixo para o servo5motor. ;eu tamanho varia
de acordo com o potencimetro usado como eixo externo# sendo o tamanho mnimo mencionado no
tutorial sobre bloco padr(o para servo motor# mais a rea n(o til do eixo do potencimetro (onde
h a rosca para o encaixe de uma porca". 6o nosso caso utili$amos um pino5eixo de :#H cm (os :#A
mm recomendados mais C mm". )ste pino tem uma pequena di-eren!a do modelo padr(o8 como a
engrenagem utili$ada muito pequena para ser per-urada e encaixada no pino5eixo# iremos utili$ar
um pequeno para-uso para -ix5la. ,rimeiramente# devemos -a$er um -uro (da mesma dimens(o do
para-uso a ser usado# no caso 2EF&" na engrenagem para o encaixe de um para-uso# com os cuidados
necessrios para que ele n(o saia torto.
,ara -a$er isso# precisamos# primeiro# lixar as engrenagens para retirar as rebarbas de
acrlico que -icam em volta delas# evitando que -iquem desniveladas quando as apoiarmos para
-ur5las. )nt(o# com muito cuidado# devemos -a$er os -uros nas engrenagens. .ma dica utili$ar
broca de espessura menor para evitar que o -uro saia torto e tambm para melhor direcionar a
-ura!(o (recomendamos a broca de 2#B mm para este -im". 9epois s -urar as engrenagens
utili$ando a broca adequada. ,or motivos de seguran!a recomendamos que n(o se segure a
engrenagem diretamente com a m(o. ;ugerimos o uso de um alicate# por exemplo.
9epois# devemos -a$er um -uro no centro do pino5eixo# com tamanho su-iciente para o
encaixe do para-uso (em nossa montagem esse -uro -oi -eito com broca de 2EF&". O para-uso neste
caso n(o precisa entrar rosqueando# pois ele ser colado ao pino5eixo. )sse procedimento um
pouco mais complicado# pois precisamos de um suporte para o pino5eixo. .tili$amos peda!o de
madeira qualquer. <oi -eito um -uro para o encaixe do pino5eixo# servindo assim de base para que
possamos segurar o pino com seguran!a. O pino5eixo deve entrar com relativa press(o na madeira
para que -ique bem -irme# podendo ser necessrio utili$ar um martelo para que o pino entre na
madeira# tomando cuidado para n(o amass5lo. >omo o pino5eixo utili$ado possui um di+metro de
2EC&# o -uro na madeira tambm -oi -eito com broca de 2EC&. Aps introdu$ir o pino5eixo na
madeira# basta ent(o -ur5lo. / importante tomar cuidado para que o -uro n(o seja torto nem muito
pro-undo. ,ara retirar o pino5eixo do suporte# utili$e um martelo# batendo no suporte para -a$er a
madeira abrir# tomando cuidado para n(o acertar o pino5eixo.
>om o -uro pronto# parte5se para o processo convencional que adotamos para a cria!(o de
um pino para o motor# como o corte para o encaixe no servo5motor e o vinco para a coloca!(o da
H
Figura 6: 0inali)ando as pe$as do bloo do servo"motor. 1"Corte do bloo de madeira para o enai2e do
poteni1metro. /"Bloo de madeira e de pl(stio prontos.
trava. >om o pino pronto para ser encaixado no servo5motor# colamos o para-uso ? engrenagem e
depois o para-uso ao pino# ambos com a cola de secagem instant+nea.
F
Figura 7: Cria$o do pino"ei2o 1"#e.ueno bloo de madeira para o enai2e do pino"ei2o. Ele deve se manter
'irmemente preso + esse bloo. /"Mara$o no pino"ei2o do 'uro para o enai2e do para'uso. 3"#ino"ei2o sendo
per'urado om a broa de 1456. 7 importante .ue o 'uro no se8a torto nem muito pro'undo. 9"#ino"ei2o 8( per'urado.
:"#ara retirar o pino"ei2o do bloo de madeira, deve"se martelar esse bloo at; .ue ele se abra. <"= para'uso om a
engrenagem pode ento ser olado ao 'uro do pino"ei2o om a ola de seagem instant%nea.
/ interessante tambm lubri-icar o eixo# na regi(o que -icar apoiada no plstico do bloco do
servo5motor# pre-erencialmente com graxa. O servo5motor# ent(o# dever ser -ixado no bloco por
meio de para-usos para madeira e a parte de plstico que servir para sustenta!(o do pino5eixo e do
potencimetro dever ser para-usada ? madeira por meio de para-usos e porcas.
O potencimetro externo servir para in-ormar a posi!(o da engrenagem maior. 0sso ser
essencial# pois o 'it controlar sua posi!(o de modo a -a$er com que o bpede se incline e desloque.
9evemos observar bem a -orma com que os -ios do potencimetro devem ser soldados aos
terminais onde estava o potencimetro original# j que estamos utili$ando um servo5motor adaptado
para rota!(o contnua. ;eguindo o exemplo# com os terminais do potencimetro voltados para o
lado de -ora do bloco# os -ios s(o soldados de maneira espelhada ao potencimetro original# ou seja#
com os -ios das extremidades invertidos. 0sso deve ser -eito pois a engrenagem a qual est preso o
potencimetro gira no sentido contrrio da engrenagem presa ao eixo original do servo5motor.
G
Figura 8: Bloo do servo"motor, 8( om o pino"ei2o . 1" Viso superior. =bserve .ue os dois 'uros .ue sobram sero
destinados + 'i2a$o do servo"motor /" Viso in'erior. 3">ubri'iando o pino"ei2o na regio .ue estar( em ontato om
o pl(stio.

O prximo passo ser preparar a engrenagem grande antes de encaix5la ao potencimetro.
9eve ser -eito um -uro no seu centro cujo tamanho seja su-iciente para o encaixe do eixo do
potencimetro. Alm disso# devemos -a$er -uros em dois pontos da extremidade# alinhados com o
centro no pino do potencimetro. )sses -uros devem ser da espessura do para-uso a ser utili$ado
como -utura base para a trans-er4ncia de movimento do servo5motor para as pernas do bpede.
.tili$amos arruelas dentadas para que o para-uso -ique travado na engrenagem. ;e necessrio#
re-orce com cola de secagem instant+nea. )sses procedimentos dever(o ser -eitos nas duas
engrenagens. 6o servo5motor de inclina!(o# encaixaremos uma barra de alumnio# enquanto que no
servo5motor de deslocamento# cada para-uso ser preso a uma barra de plstico.
2I
Figura 9: !ervo"motor om o poteni1metro e2terno.
Figura 10: Engrenagem respons(vel pela redu$o e trans'er-nia do movimento
para as pernas.
0remos agora encaixar o potencimetro por meio da sua prpria porca e colocar a
engrenagem grande de modo que os seus para-usos tenham suas cabe!as voltadas para o bloco do
servo5motor. ,ara o correto encaixe da engrenagem# devemos primeiro de-inir a posi!(o central do
potencimetro. Jigaremos o servo5motor na sada do 'it destinada a servo5motores# atravs do
programa de controle de servo5motores -aremos com que o que o motor v para a posi!(o central# e
depois# girando o potencimetro com a m(o# podemos achar a posi!(o central de re-er4ncia do
potencimetro externo. 0sso se d quando o motor pra de girar por completo. )nt(o# poderemos
colar a engrenagem# utili$ando cola de secagem instant+nea# tomando o cuidado para que ela n(o
escorra para dentro do potencimetro.
;empre que possvel deixe para colar as pe!as no -inal das montagens# ?s ve$es pode ser
necessrio ter de desmontar algumas pe!as. Ao colar a engrenagem no potencimetro# por exemplo#
deve5se ter em mente que n(o ser mais necessrio alterar o bloco# pois# ao tentar descolar a
engrenagem do potencimetro# podemos vir a dani-icar alguma dessas pe!as.
>om os dois blocos dos servo5motores prontos# passaremos a con-ec!(o do corpo. <aremos
o corpo do bpede utili$ando madeirite# pois um material leve e com resist4ncia adequada# mas
outros materiais tambm podem ser utili$ados# como plsticos# acrlicos# at mesmo papis mais
resistentes. 9evemos# primeiramente# de-inir qual ser o tamanho destas pe!as# que nesse exemplo
-oram -eitas com dimens7es de 2D cm x F cm. )m seguida# temos apenas de trans-erir essas
medidas para o madeirite e cort5lo com a serra. ,ara que o corte saia reto# deve5se tra!ar uma linha
sobre o madeirite e segui5la corretamente# apoiando a pe!a sobre uma mesa para que -ique bem
-irme# j que ele bem malevel. 9esse modo teremos certe$a de que cada pe!a ter as dimens7es
corretas. )m seguida# devemos dimensionar nestas pe!as as -ura!7es a serem -eitas para o encaixe
dos blocos dos servo5motores.
22
Figura 11: 0inali)ando o bloo do servo"motor. 1" !ervo"motor 'i2ado ao bloo. /" Engrenagem grande 'i2ada ao ei2o
do poteni1metro.
<i$emos os -uros nestas pe!as de modo que os -uros nos blocos dos servo5motores -icassem
? 2 cm da borda# procurando atingir o centro da madeira do bloco do servo5motor# para assim evitar
possveis rachaduras no mesmo. O bloco responsvel pela movimenta!(o dever estar com a -ace
de suas engrenagens voltadas para baixo# enquanto que o outro bloco# responsvel pela inclina!(o#
deve ter sua -ace com engrenagens voltada para -rente# como pode ser observado na -igura 22.
,rximo aos -uros para encaixar o bloco do servo5motor responsvel pela movimenta!(o# -aremos
-uros para colocar as pernas do bpede# bem nos cantos das pe!as de madeirite. 3odos os -uros
devem estar per-eitamente alinhados# para evitar uma possvel angula!(o inadequada nas pe!as
mveis# prejudicando assim o movimento. 6este caso os -uros para a -ixa!(o das pernas -oram
-eitos a B mm das laterais da madeira# estando cada um a H cm de dist+ncia do outro. 3odos os -uros
-oram -eitos com broca 2EF&.
2:
Figura 13: Con'e$o do orpo do bpede. 1" ?e'inindo o taman@o. /" #e$as de madeirite 8( per'uradas.=bserve os
'uros e2tras 'eitos para a 'i2a$o das pernas.
Figura 12: Madeirite sendo ortado om o aro de serra.
)m seguida# iremos usar estas pe!as para marcar os -uros a serem -eitos nos blocos dos
servo5motores# para podermos para-us5los. 9evemos# ent(o# -urar os blocos dos servo5motores
utili$ando uma broca com espessura adequada para o para-uso utili$ado. >omo utili$amos para-usos
autoatarraxantes de :#G mm# o bloco do motor -oi per-urado com a broca de :#B mm. 3ome muito
cuidado para que o potencimetro n(o seja per-urado.
)m seguida iremos con-eccionar as pernas para o bpede# com C barras (per-is" de alumnio
quadradas de 2EC&. Optamos pela quadrada por ser mais -cil de ser per-urada# mas a barra circular
pode ser considerada esteticamente melhor. O comprimento destas pernas dependem do tamanho do
corpo# para que n(o tenhamos uma estrutura desproporcional. 6o exemplo# as pernas do bpede t4m
2B cm de comprimento. Aps cort5las# devemos lixar as rebarbas para um melhor acabamento e
tambm para evitar possveis -erimentos.
2A
Figura 14: 0inali)a$o do orpo do bpede. 1" Marando o bloo do servo"motor para 'ur("lo. /" Corpo do bpede
pronto.
Figura 15: Cortando a barra de alumnio .uadrada na serra de meia"es.uadria.
)m seguida# em cada barra# -aremos a marca!(o de um -uro a ser -eito a B mm de uma das
extremidades. @ecomendamos caneta para retroprejetor# sempre que -orem -eitas marca!7es em
alumnio. )stes -uros servir(o para -ixar as pernas ao corpo do bpede. 9evemos -a$er mais um -uro
em cada perna para podermos# depois# encaixar os ps. )ste -uro ser -eito na outra extremidade e
do lado perpendicular ao -uro -eito para o encaixe do corpo. Alm disso# este -uro deve ser um
pouco modi-icado8 encaixaremos a perna na broca e a moveremos para cima e para baixo para que a
abertura do -uro seja espa!ada externamente# com o intuito de -ormar junto com o para-uso# um p
articulado. / necessrio -a$er esse procedimento nos dois lados do -uro# para que as pernas do
bpede possam se movimentar para -rente e para trs. ;em isso# os ps do bpede -icariam travados#
impedindo que o movimento ocorresse. ,orm deve5se tomar cuidado para n(o aumentar o di+metro
do -uro# e tentar manter uma angula!(o igual para as quatro pernas.
=ale lembrar que a maioria dos metais quando per-urados# ir(o -icar com rebarbas# e isso#
alm de prejudicar os movimentos# pode nos -erir. 0sso pode ser resolvido com o auxlio de uma
broca um pouco maior do que o -uro que -oi -eito# girando de leve como na imagem abaixo#
tomando cuidado para n(o arredondar demais as beiradas dos -uros.
2C
Figura 16: #roedimentos para a ria$o das pernas do bpede. 1"?eve ser 'eito um 'uro a : mm da e2tremidade. /"
0uro sendo 'eito. 3 e 9"#ara espa$as a abertura do 'uro, a barra de alumnio dever( ser movida para ima e para
bai2o.
As pernas receber(o para-usos# que se tornar(o uma espcie de eixo# para prend45las aos ps
e ao corpo do bpede. 0sso se d da seguinte -orma8 com os -uros preparados# j sem rebarbas# pega5
se uma arruela# coloca5se ela no para-uso# coloca5se o para-uso na perna# adiciona5se outra arruela
e depois mais duas porcas. As arruelas normalmente possuem dois lados di-erentes# um liso e o
outro com rebarba. O lado liso neste caso deve -icar voltado para a barra de alumnio# pois a idia
gerar o menor atrito possvel. @osqueie as porcas at o -inal e quando encostar no alumnio# solte5as
um pouco (mas n(o muito pois necessrio que haja uma -olga su-iciente para que o para-uso gire
com o menor atrito possvel# porm# se houver uma -olga muito grande o movimento ser
prejudicado". =eri-ique se n(o h atrito entre o para-uso e a perna e ent(o aperte uma porca contra a
outra. )ssa uma -orma simples de se obter um tipo de eixo. ,ode5se tambm# utili$ar apenas uma
porca# colando5a ao para-uso. 6o entanto recomendamos que seja utili$ado o processo que envolve
o uso das duas porcas# para evitar problemas -uturos.
2B
Figura 17: #ara retirar as rebarbas, basta utili)ar uma broa maior .ue o 'uro
'eito e gir("la levemente.
Figura 18: Coloando para'usos e poras na perna do bpede. 1"En.uanto uma das poras ; presa om uma @ave de
boa, outra ; regulada atrav;s de um aliate de bio. /"#oras e arruelas oloadas.
6o -uro articulado a di-eren!a que a -olga mantida entre a perna e as arruelas e porcas
dever ser igual ? angula!(o mxima obtida com o movimento. O tamanho dos para-usos utili$ados
pode variar de projeto para projeto e deve5se ter em mente o que ser -eito depois que se concluiu o
eixo. 6este caso# esta perna ser -ixada no corpo do bpede# ou seja# utili$aremos mais duas
arruelas# uma porca# e ainda devemos levar em considera!(o a largura do material utili$ado para
estrutura do corpo (que no caso de A mm". ,ara o eixo que vai preso ao corpo utili$amos um
para-uso de HEF& de comprimento# e para o eixo articulado um com 2& de comprimento# sendo
ambos de 2EF& de di+metro.
)stes s(o pontos que devem ser lubri-icados com leo# mas precisamos ter cuidado para n(o
exagerar na quantidade de lubri-icante. / necessrio tomar bastante cuidado para n(o deixar que o
leo atinja pontos indesejveis# como as duas porcas que -oram travadas umas nas outras# pois isso
-acilitar com que as porcas se soltem com o es-or!o reali$ado com a movimenta!(o. Assim como
nas colagens (como no caso das engrenagens em potencimetros"# recomendamos que esta etapa
-ique para o -inal do processo de montagem.
Aps as pernas estarem prontas# criaremos pequenas hastes para trans-ormar o movimento
giratrio do eixo do servo5motor de deslocamento em movimento retilneo# para que o bpede possa
%caminhar&. )stas hastes servir(o para trans-erir o movimento do motor para as pernas do bpede.
2D
Figura 19: 1 e /"E2empli'iando o movimento a ser reali)ado pela perna atrav;s dos ei2os artiulados. 3"Medindo o
espa$o disponvel para a movimenta$o. 9"#erna pronta.
)las -oram -eitas com plstico de ,=> com : mm de espessura da seguinte maneira8 cortamos
quatro tiras do ,=> com cerca de B cm x 2 cm cada uma# e -i$emos um vinco em uma extremidade
de cada pe!a# encaixando uma na outra# -ormando dois pares. .tili$amos cola de secagem
instant+nea# para -ixar uma ? outra. )ste vinco pode ser -eito com um estilete ou at mesmo com o
disco de corte de microrret-ica.
)m seguida# -i$emos um pequeno -uro numa das extremidades das tiras de plstico para
podermos encaix5las nos para-usos que -oram -ixados anteriormente na engrenagem. 6(o -ixe
estas hastes agora# pois elas ainda receber(o mais um -uro. Assim podemos medir# com a ajuda de
um paqumetro# por exemplo# o ponto em que a perna do bpede receber um novo -uro. 6esse -uro#
ser encaixado um para-uso que interligar a perna com a engrenagem atravs das pe!as de plstico.
Agora tambm possvel determinar a locali$a!(o do outro -uro que receber a pe!a de plstico
responsvel pela transmiss(o do movimento. 3odos os -uros -oram -eitos com broca 2EF&# pois
-oram utili$ados para-usos de 2EF&. Os -uros nas hastes plsticas -oram levemente espa!ados para
n(o gerarem atrito durante a movimenta!(o# o que pode vir a prejudicar a movimenta!(o.
9epois de -urados# encaixaremos as tiras nos para-usos e ajustaremos o espa!o mvel para
elas por meio de duas porcas. )ssas porcas poder(o ser coladas com cola de secagem instant+nea#
para evitar que se movimentem. 6a -ixa!(o das hastes nos para-usos da engrenagem precisamos
2H
Figura 20: Cria$o das tiras de pl(stio, destinadas a desloar as pernas do bpede para 'rente. 1"Marando os vinos
a serem 'eitos. /"Vinos 'eitos nas pe$as. 3"Colando as pe$as om ola de seagem instant%nea.
levar em conta que elas estar(o se movimentando# portanto nunca se deve -ix5las diretamente com
uma porca. *ant4m5se uma pequena -olga para que as hastes possam se movimentar livremente. O
processo reali$ado -oi o seguinte8 colocamos primeiramente uma arruela com seu lado liso voltado
para a haste que ser encaixada# colocamos outra arruela (tambm com o lado liso voltado para o
plstico"# e depois duas porcas que ser(o apertadas uma contra a outra de -orma semelhante a j
reali$ada com os eixos das pernas do bpede.
2F
Figura 21: Coloando as pernas no orpo do bpede. 1 e /"Enontrando a posi$o onde ser( 'eito o 'uro na perna do
bpede, para o enai2e das @astes de pl(stio. 3"#ernas 8( om os para'usos para o enai2e das @astes. 9"Colando as
poras .ue a8ustam o espa$o livre para o movimento da @aste. :"#ernas presas ao orpo do bpede.
O passo seguinte se re-ere a con-ec!(o de ps e %sapatos& para o bpede. ;er(o utili$ados
para isso quatro ret+ngulos de madeirite e cantoneiras de alumnio. As dimens7es do exemplo s(o
de 2B cm x F#B cm para os ps e 2H cm x F#B cm para os sapatos. .tili$amos cantoneiras de
alumnio de BEF& para que sirvam de rela!(o entre a -ixa!(o das pernas e dos a ps. )stas
cantoneiras (quatro no total" -oram cortadas com F#B cm# ou seja# a mesma largura dos ps. >ada
uma delas recebeu tr4s -uros# dois deles para a sua -ixa!(o nos ps e um terceiro onde ser(o -ixados
os eixos das pernas. As cantoneiras que -icar(o voltadas para -rente ainda receber(o um quarto -uro
-eito na extremidade externa da cantoneira. )xplicaremos este -uro mais adiante. Os -uros que
prendem as cantoneiras aos ps podem ser escolhidos aleatoriamente# dando pre-er4ncia para deix5
los mais nas extremidades. Os -uros que servir(o para -ixar os ps ?s pernas devem manter uma
certa dist+ncia da base do p para que a perna n(o entre em contato com a estrutura do p quando o
bpede estiver em movimento. )ste -uro n(o deve -icar muito distante da parte interna do p do
bpede por motivos de equilbrio do rob. 6o exemplo# o -uro -oi -eito com I#F cm de altura em
rela!(o a base do p# e 2 cm para dentro.
<ixaremos primeiramente as cantoneiras da parte de trs do bpede# utili$ando o seguinte
procedimento8 colocaremos a cantoneira bem na borda do p de madeirite# marcaremos os -uros a
serem -eitos e# depois de -ur5los# utili$aremos para-usos# arruelas e porcas para -ixar esta
cantoneira ao p.
2G
Figura 22: Construndo os p;s do bpede. 1"?e'inindo a loali)a$o das antoneiras. /"Cantoneira sendo posiionada
no p;. 3"Marando o 'uro a ser 'eito no p;, para o enai2e da antoneira.
)m seguida# para podermos colocar a cantoneira da parte da -rente# mediremos a dist+ncia
entre as duas pernas e utili$aremos estas medidas para podermos marcar a dist+ncia que a
cantoneira da -rente -icar da cantoneira anterior. Antes de -a$er os -uros nos ps de madeirite#
podemos apenas apoiar a segunda cantoneira e veri-icar se com isso as pernas -icar(o exatamente
paralelas. Assim# podemos -a$er os -uros nos ps do bpede e para-usar as cantoneiras# colocando os
para-usos da parte de baixo para cima e rosqueando5o com a porca. O passo seguinte se re-ere ?
con-ec!(o dos %sapatos& para evitar que os para-usos toquem diretamente no ch(o. @etiraremos os
ps do bpede para podermos marcar os -uros a serem -eitos nos sapatos# da seguinte maneira8
apoiaremos o p sobre o sapato deixando 2 cm de borda# ent(o -aremos as marca!7es. )m seguida#
s -ur5lo e colar este sapato ao p do bpede# utili$ando cola branca.
:I
:2
Figura 23: 0inali)ando a onstru$o dos p;s do bpede. 1"Cantoneiras presas aos p;s atrav;s de para'usos. /"
?imens&es dos p;s e dos sapatos do bpede. 3"=s sapatos podem ser olados aos p;s om ola brana. 9"0i2ando os
p;s +s pernas do bpede. :"Bpede om os p;s ompletos.
,ara podermos levantar os ps# inclinando o bpede# utili$aremos um sistema composto por
uma barra e duas hastes. 6este exemplo# a barra -oi -eita com um pequeno peda!o de alumnio# que
deve ser -ixada ? engrenagem do servo5motor de inclina!(o. )sta barra -oi criada no intuito de
aumentar o +ngulo de inclina!(o do bpede quando o servo5motor estiver em movimento. <oram
-eitos dois -uros para encaix5la aos para-usos da engrenagem e mais um -uro em cada lateral para
podermos colocar as hastes que erguer(o os ps.

)stas hastes -oram -eitas com arame# mas podem ser substitudas por algum outro material#
porm# note que devem ser rgidas o su-iciente para aguentarem o peso do corpo do bpede# pois
elas trabalhar(o de duas -ormas di-erentes8 ou empurrando o bpede# ou segurando o peso do corpo.
)stas hastes -icar(o presas em para-usos# que dever(o ser colocados nos -uros -eitos na barra que -oi
-ixada na engrenagem# e nos dois -uros -eitos nas extremidades das cantoneiras dos ps# como
mostrado na -igura.
O comprimento destas hastes -oi medido sobre o prprio arame. / necessrio desentortar os
arames antes de encaix5los nos -uros# para que a dist+ncia entre as tiras seja uni-orme. 0sso pode
ser -eito com o auxlio de um martelo e uma base resistente# como uma morsa# ou a base da
-uradeira de bancada. )m suas extremidades -i$emos dois ganchos# os quais dever(o ser -echados# e
devem possuir um di+metro que permita com que o para-uso passe sem gerar atrito# porm# n(o
::
Figura 24: Barra destinada a 'i2ar as @astes .ue erguero os p;s.
pode haver uma -olga muito grande. <a$er estes ganchos pode vir a ser um pouco trabalhoso. ,or
usarmos um arame relativamente grosso (: mm"# -i$emos uso de um alicate de bico para tal. )stas
hastes devem possuir o mesmo comprimento. )las dever(o ser encaixadas nos para-usos
apropriados e dever(o ter uma -olga para poderem trabalhar# pois o movimento reali$ado pelo
bpede ira gerar uma angula!(o e esta angula!(o quem vai nos in-ormar qual ser a -olga
necessria. )sta -olga -oi mantida com a utili$a!(o de duas porcas apertadas uma contra outra
(como j visto anteriormente". ,ode5se utili$ar cola de secagem instant+nea como op!(o para travar
na posi!(o ideal se -or utili$ada apenas uma porca.
:A
:C
Figura 25: Coloando as @astes .ue erguero os p;s. 1"?e'inindo o taman@o. /"As @astes devero estar
per'eitamente retas, o .ue pode ser 'eito om um martelo. 3"0a)endo o gan@o om aliate de bio. 9"
Veri'iando se o gan@o est( orreto. :"Hastes prontas. <"?etal@e da 'i2a$o da @aste + barra de alumnio.
9esta -orma# se encerra por aqui o projeto mec+nico do rob bpede. ,assamos# neste
instante# ao desenvolvimento da parte eletrnica e programa!(o.

6 Eletrnica
A eletrnica envolvida com o bpede simples. ;er(o descritos apenas alguns detalhes em
rela!(o ? conex(o do bpede# sua alimenta!(o e o potencimetro externo dos servo5motores.
,ara conectar o bpede ao '9@BIII# dever ser utili$ado o Mdulo de Entradas, !adas e
!ervo"Motores. / recomendado utili$ar o primeiro conector de servo5motores disponvel# tendo em
vista que o *)>2III possui uma quantidade de portas menor e o programa dever ser compatvel
com os dois.
:B
Figura 26: Bpede pronto.
,ara conectar o servo5motor de inclina!(o# recomendado utili$ar a porta ;ervo I# enquanto
que para o servo5motor de deslocamento# recomendado a porta ;ervo 2. / possvel ligar os servo5
motores em outras portas# mas a conex(o descrita acima -oi padroni$ada para -acilitar a
programa!(o. >aso haja dvidas sobre a conex(o# basta consultar os manuais desses equipamentos.
6(o necessria uma -onte de alimenta!(o externa para o bpede# pois ele possui apenas
dois servo5motores# consumindo uma corrente que pode ser suportada pela -onte prpria do
*)>2III ou do '9@BIII. Os servos podem ser ligados atravs das sadas de alimenta!(o
disponveis nos conectores destinados ao seu controle.
,ara conectar o bpede ao 'it# recomendado utili$ar um cabo de grande extens(o# para que
ele possa andar livremente. 3ambm interessante usar um conector (9K5G# por exemplo" para ligar
esse cabo ao bpede# para -acilitar o transporte do rob. Alm disso# esse cabo pode ser utili$ado
para conectar o rob inseto ao 'it.
O potencimetro externo dos servo5motores dever ter seus terminais ligados de -orma
invertida em rela!(o ao potencimetro original# tendo em vista que a engrenagem a qual ele est
ligado gira no sentido inverso ao eixo do servo5motor.
7 Programao
,ara que o bpede -uncione per-eitamente# ele dever ser controlado de modo adequado.
;endo assim# devemos criar um programa que -a!a com que o 'it acione os servo5motores de modo
que o bpede possa se deslocar.
Atravs do programa a ser criado aqui# o 'it acionar os servo5motores de inclina!(o do
corpo e deslocamento das pernas do bpede. 9e acordo com o modo que os servo5motores -orem
acionados# o bpede poder ir para -rente ou para trs ou virar para a direita ou esquerda. 3ambm
adicionaremos um comando extra para que ele mantenha5se na posi!(o de repouso# o que til
antes de deslig5lo.
O nosso programa ser criado atravs do 9elphi# utili$ando o ,rojeto Kase# que nos permite
a comunica!(o com o 'it atravs de uma porta serial# como ponto de partida para a elabora!(o do
programa# que dever apresentar a seguinte inter-ace.
:D
Figura 27: #rograma de ontrole do bpede.
6osso primeiro passo criar a inter-ace gr-ica do programa. >omo vamos utili$ar o projeto
criado no tutorial Kase como ponto de partida# copiamos o projeto daquele tutorial e em cima dele
vamos adicionar alguns componentes gr-icos extras.
A primeira coisa que modi-icaremos no projeto a propriedade >aption do <orm principal#
que possui o texto %,rojeto Kase&. =amos modi-ic5la para %Kpede&. >om isso j podemos
come!ar a adicionar os componentes gr-icos ao <orm.
A inter-ace gr-ica composta por dois Kutton e cinco ;peedKutton. Os bot7es comuns
ser(o destinados a iniciar e parar o -uncionamento do bpede. L os ;peedKutton ser(o destinados a
controlar a movimenta!(o do Kpede. O primeiro passo ser adicionar os componentes
;peedKutton# que podem ser encontrados na aba %Additional&.
O componente ;peedKutton possui o seguinte cone nessa barra.
9evemos adicionar cinco desses componentes no nosso <orm e modi-icaremos as seguintes
propriedades de cada um deles8
Name M ;peedKutton<rente
Caption M <rente
Width M BH
AllowAllUp M 3rue
GroupIndex M 2
Name M ;peedKutton3ras
Caption M 3rs
Width M BH
AllowAllUp M 3rue
GroupIndex M 2
Name M ;peedKutton9ireita
Caption M 9ireita
Width M BH
:H
Figura 28: Aba AAdditionalA da barra de omponentes.
Figura 29: Bone do omponente
!peedButton.
AllowAllUp M 3rue
GroupIndex M 2
Name M ;peedKutton)squerda
Caption M )squerda
Width M BH
AllowAllUp M 3rue
GroupIndex M 2
Name M ;peedKutton@epouso
Caption M @epouso
Width M BH
AllowAllUp M 3rue
GroupIndex M 2
9esse modo# nosso <orm -icar da seguinte maneira. Observe o modo como os ;peedKutton
-oram colocados.
6osso prximo passo ser adicionar os componentes para iniciar e parar a movimenta!(o do
bpede. 0sso ser -eito atravs de componentes Kutton# que se encontram na aba %;tandard& da barra
de componentes.
O componente Kutton possui o seguinte cone.
:F
Figura 31: Aba A!tandardA da Barra de omponentes.
Figura 30: 0orm aps a adi$o dos !peedButton para
ontrole do bpede.
=amos adicionar dois componentes desses e modi-icar as seguintes propriedades do bot(o
para iniciar o bpede.
Name M Kutton0niciar
Caption M 0niciar
Font/Style/fsBold M true
)m seguida as propriedades do bot(o para parar o bpede.
Name M Kutton,arar
Caption M ,arar
Font/Style/fsBold M true
>om isso# o nosso <orm apresentar o seguinte aspecto.
;endo assim# -inali$amos a inter-ace gr-ica do nosso programa e podemos partir para a
implementa!(o de suas linhas de cdigo. Aqui# desenvolveremos o cdigo responsvel pelo
controle dos servo5motores# possibilitando a movimenta!(o do bpede. ,ara -acilitar a cria!(o do
programa# recomendado seguir as instru!7es de liga!(o dos servo5motores descritas no trecho
re-erente ? )letrnica.
9evido ?s caractersticas da prpria estrutura do bpede# os par+metros utili$ados nesse
tutorial para a movimenta!(o dos servo5motores n(o ser(o de-initivos# mas devem ser estabelecidos
de acordo com a sua constru!(o. 9eve5se tomar cuidado para que eles n(o girem demais# o que
pode dani-ic5los. >omo eles est(o presos ?s estruturas de movimenta!(o do bpede# n(o ser
possvel que eles -a!am o movimento completo# o que -or!aria o servo5motor.
:G
Figura 32: Bone do omponente Button.
Figura 33: 0orm aps a adi$o dos omponentes para ligar
e desligar o bpede.
O programa -uncionar da seguinte -orma8 criaremos uma -un!(o chamada ;leepAnd3est e
uma varivel chamada ;top# sendo que os dois poder(o ter apenas os valores 3rue (verdadeiro" e
<alse (-also". Nuando a varivel ;top -or 3rue# a -un!(o ;leepAnd3est ser -alsa e vice5versa. A
-un!(o ;leepAnd3est ter dois objetivos8 gerar um %delaO& (pausa na execu!(o do programa". )ssa
pausa ser muito clara durante o -uncionamento do bpede# pois enquanto ele desloca o seu corpo
para o lado# o programa estar nessa pausa# e s depois ele desloca sua perna.
O outro objetivo dessa -un!(o ser veri-icar se o bot(o ,arar -oi pressionado. 0sso -eito
veri-icando o estado da varivel ;top. Nuando apertamos o bot(o 0niciar# o valor dessa varivel
de-inido como <alse. ;endo assim# a -un!(o ;leepAnd3est retornar um valor verdadeiro# o que
um requisito para a execu!(o do programa. Ao apertar o bot(o ,arar# a varivel ;top de-inida
como verdadeira# o que acarretar na interrup!(o da execu!(o do programa.
O nosso primeiro passo ent(o ser criar a varivel ;top. 0sso ser reali$ado da seguinte
-orma8 apertamos <2:# mudando do <orm para a .nit *ain. 6a parte superior dessa .nit# antes do
cdigo que -oi criado no 3utorial Kase# temos a declara!(o das variveis globais da .nit. A nica
varivel global presente no momento a <orm*ain. 9eclararemos ent(o a varivel ;top# que ser
do tipo Koolean (3rueE<alse". 9esse modo# a linha de cdigo do programa -icar assim8
...
var
FormMain: TformMain;
Stop: Boolean;
implementation
...
9evemos agora criar a -un!(o ;leepAnd3est. =amos nos dirigir ao -inal da .nit# nas linhas
de cdigo criadas no 3utorial Kase. Antes do end -inal do programa (end." criaremos a -un!(o
;leepAnd3est. )la ser do tipo Koolean# ou seja# retorna um valor verdadeiro ou -also. 0nicialmente#
criaremos a -un!(o desse modo8
...
function SleepAndTest (tempo: integer): Boolean;
begin
end;
end.
)ssa -un!(o depende do par+metro 3empo# que ser do tipo 0nteger# cujo objetivo ser
explicado a seguir. 9evemos declarar uma varivel e uma constante locais# ou seja# que ser(o
utili$adas apenas nessa -un!(o# chamadas i# que ser do tipo 0nteger# e 3empobase# cujo valor ser
2I.
...
AI
function SleepAndTest (tempo: integer): Boolean;
var
i: integer;
const
Tempobase = 10;
begin

end;
end.
=amos agora implementar nossa -un!(o ;leepAnd3est# -a$endo com que ela gere o %delaO&
e veri-ique o valor da varivel ;top. ,ara isso# utili$aremos uma estrutura de repeti!(o for e uma
estruturas de compara!(o ifelse# que comparar o valor de ;top com 3rue e <alse. 9este modo#
nossa linha de cdigo -icar assim8
...
function SleepAndTest (tempo: integer): Boolean;
var
i: integer;
const
Tempobase = 10;
begin
for i:=1 to tempo do
begin
Application.rocessMessages;
if Stop = tr!e then
begin
"" Se o bot#o arar foi pressionado$ a %ari&%el Stop
"" ser& %erdadeira e a f!n'#o retornar& !m %alor falso.
SleepAndTest := false;
end
else
begin
"" A f!n'#o Sleep pa!sa o programa d!rante !m tempo
Sleep(Tempobase);
"" Se o bot#o arar n#o foi pressionado$ a f!n'#o re(
A2
"" tornar& !m %alor %erdadeiro
SleepAndTest := tr!e;
end;
end;
end;
end.
Aps criar a -un!(o# vamos analis5la. ,rimeiramente# adicionamos uma estrutura de
repeti!(o for. As instru!7es contidas nessa estrutura ser(o executadas at que o valor da varivel i#
que -oi iniciada com o valor 2# seja igual ao valor da varivel tempo# lembrando5se que a cada
repeti!(o o valor da varivel i ser incrementada em uma unidade. 3emos ent(o a -un!(o
Application.,rocess*essages. )ssa -un!(o processa todas as tare-as pendentes no programa# sendo
que nesse caso o principal objetivo atuali$ar a inter-ace e veri-icar se algum bot(o -oi pressionado
na inter-ace gr-ica do programa e# caso isso tenha ocorrido# as linhas de cdigo re-erentes a esse
bot(o ser(o executadas.
3emos depois uma estrutura de compara!(o ifelse# que veri-icar o valor da varivel ;top.
;e ;top -or verdadeiro# o que acontecer ao pressionar o bot(o ,arar# ent(o a -un!(o ;leepAnd3est
retornar um valor -also. *as se a varivel ;top -or -alsa# ent(o ;leepAnd3est ser verdadeiro# o
que uma condi!(o essencial para a execu!(o do programa# como veremos a seguir. Alm disso
temos a -un!(o ;leep. )ssa -un!(o pausa o programa durante um tempo em milisegundos. >omo
nossa constante 3empobase -oi de-inida como 2I# a cada ve$ que essa -un!(o ;leep -or acionada#
haver uma pausa de 2I ms.
*as lembre5se de que essa -un!(o ;leep est dentro de um la!o for# cujo nmero de
repeti!7es de-inido pelo par+metro tempo. ;e declararmos nossa -un!(o dessa maneira8
;leepAnd3est (2II"P ent(o tempo ser 2II e# consequentemente# haver(o 2II repeti!7es no la!o
for. ;e a varivel ;top -or -alsa# a -un!(o ;leep ser executada 2II ve$es# gerando ent(o um
%delaO& de 2 segundo.
O prximo passo ser ent(o implementar o cdigo que ser executado ao pressionarmos o
bot(o 0niciar. ,ara isso# basta dar um duplo clique sobre ele no nosso <orm# o que abrir o seguinte
manipulador na nossa .nit8
...
procedure TformMain.B!tton)niciar*lic+(Sender: Tob,ect);
begin
end;
end.
6esse programa utili$aremos uma nica varivel local# chamada de Kipede@epouso que ser
utili$ada mais adiante para manter o bpede em posi!(o de repouso. =amos ent(o declar5la.
...
A:
procedure TformMain.B!tton)niciar*lic+(Sender: Tob,ect);
var
Bipede-epo!so: integer;
begin
end;
end.
3ambm devemos declarar as constantes locais# que nesse caso ser(o apenas duas# usadas
para identi-icar os servo5motores. ;er atribudo a elas um valor correspondente a sua posi!(o dos
respectivos servo5motores nas suas portas. ;endo assim# para um correto -uncionamento do
programa# recomendado seguir as instru!7es de conex(o descritas no trecho re-erente ? )letrnica.
>aso haja alguma dvida# basta consultar os manuais do *)>2III ou do '9@BIII# onde est(o
presentes as pinagens das portas de ;ervo5motores.
...
procedure TformMain.B!tton)niciar*lic+(Sender: Tob,ect);
var
Bipede-epo!so: integer;
const
Ser%o)nclina = 0;
Ser%o.esloca = 1;
begin
end;
end.
Agora vamos implementar o cdigo a ser executado quando o bot(o 0niciar -or pressionado.
>omo utili$aremos a -un!(o ;leepAnd3est -requentemente# e esta depende da varivel ;top# nosso
primeiro passo dever ser atribuir um valor a essa varivel# que dever ser <alse.
3ambm devemos iniciali$ar a varivel Kipede@epouso# atribuindo a ela o valor $ero. O
cdigo ent(o -icar assim8
...
procedure TformMain.B!tton)niciar*lic+(Sender: Tob,ect);
var
-epo!so: integer;
AA
const
Ser%o)nclina = 0;
Ser%o.esloca = 1;
begin
"" Ao pressionar o bot#o iniciar$ a %ari&%el Stop ser&
"" falsa
Stop:= false;
"" )niciali/a'#o da %ari&%el Bipede-epo!so
Bipede-epo!so:= 0;
end;
end.
9evemos agora nos dedicar ao trecho principal da linha de cdigo do programa# onde ser(o
executados os comandos para a movimenta!(o do bpede de acordo com o ;peedKutton
selecionado. As a!7es relacionadas a sua movimenta!(o devem se repetir at que o bot(o ,arar seja
pressionado# sendo assim# precisamos de uma estrutura de repeti!(o# que no nosso caso ser um
while. )le depender do valor da -un!(o ;leepAnd3est# ou seja# o nosso programa estar preso
nesse la!o while enquanto a -un!(o ;leepAnd3est retornar um valor verdadeiro. >aso o bot(o ,arar
seja pressionado# o que -ar com que ;leepAnd3est retorne um valor -also# esse la!o while ser
encerrado e o programa se encaminhar ao cdigo de -inali$a!(o do bpede.
>riando esse la!o while# nosso programa -icar assim8
...
begin
"" Ao pressionar o bot#o iniciar$ a %ari&%el Stop ser&
"" falsa
Stop:= false;
"" )niciali/a'#o da %ari&%el Bipede-epo!so
Bipede-epo!so:= 0;
while SleepAndTest(1) = tr!e do
begin
end;
end;
end.
AC
Agora que criamos o la!o while# devemos implementar o cdigo a ser executado enquanto
nosso programa estiver preso nele. O programa dever veri-icar qual ;peedKutton -oi pressionado e
executar as linhas de cdigo re-erentes a ele# para reali$ar a movimenta!(o do bpede. 9evemos
ent(o utili$ar estruturas de compara!(o if# sendo cada uma relacionada a um ;peedKutton. =amos
criar os blocos if re-erente aos ;peedKutton de dire!(o. O bloco if do ;peedKutton @epouso
ligeiramente di-erente e ser -eito depois.
...
begin
"" Ao pressionar o bot#o iniciar$ a %ari&%el Stop ser&
"" falsa
Stop:= false;
"" )niciali/a'#o da %ari&%el Bipede-epo!so
Bipede-epo!so:= 0;
while SleepAndTest(1) = tr!e do
begin
"" 0erifica se o bot#o 1Frente2 foi pressionado
if (SpeedB!ttonFrente..o3n = tr!e) then
begin
end;
"" 0erifica se o bot#o 1Tr&s2 foi pressionado
if (SpeedB!ttonTras..o3n = tr!e) then
begin
end;
"" 0erifica se o bot#o 14s5!erda2 foi pressionado
if (SpeedB!tton4s5!erda..o3n = tr!e) then
begin
end;
"" 0erifica se o bot#o 1.ireita2 foi pressionado
if (SpeedB!tton.ireita..o3n = tr!e) then
begin
end;
end;
end;
AB
end.
Aps criarmos os bloco acima# vamos nos dedicar a elaborar o cdigo a ser executado
quando o ;peedKutton <rente estiver pressionado# -a$endo com que o bpede desloque5se para a
-rente. *as# antes de tudo# devemos analisar como movimentar corretamente os servo5motores.
>omo -oi comentado anteriormente# o -uncionamento do bpede depende tanto da sua
estrutura mec+nica como da programa!(o envolvida no seu controle. ,ara entender o problema a ser
descrito aqui# vamos analisar o modo como o bpede -oi construdo. Os servo5motores
movimentar(o as duas engrenagens grandes# sendo que uma responsvel por inclinar o seu corpo e
outra por deslocar as pernas# lembrando5se de cada uma est presa a um potencimetro.
Ambos os servo5motores n(o podem -a$er o movimento total que possvel# sob o risco de
dani-icar tanto a estrutura quanto o prprio motor. Os limites mximos de movimenta!(o dependem
muito de como o bpede -oi construdo. O servo5motor destinado a inclinar o corpo do bpede
dever levantar cada perna de modo que ela -ique apenas levemente acima da super-cie. >aso o
servo5motor incline demais o corpo# ele pode -or!ar as hastes de arame# dani-icando tanto elas
quanto o prprio motor.
L o outro servo5motor dever deslocar a perna um pouco para -rente. O seu deslocamento
mximo depende basicamente da estrutura -ormada pela engrenagem e pernas dianteiras. 6(o
podemos -or!ar essa estrutura# sob o risco de dani-icar o motor e a estrutura.
9evemos primeiramente estabelecer os par+metros a serem enviados para o deslocamento
dos eixos dos servo5motores. Atravs da -un!(o ;ervo*otorOn# enviamos um valor que varia entre
I e :BB que# no caso dos servo5motores originais# serve para controlar a posi!(o do seu eixo. >omo
estamos utili$ando um servo5motor adaptado# cujo potencimetro externo# esse valor tem a -un!(o
de controlar a posi!(o da engrenagem presa ao potencimetro.
6(o podemos utili$ar todos os valores possveis entre I e :BB como par+metro para o
posicionamento da engrenagem. >omo sua movimenta!(o ser limitada# valores muito altos ou
muito baixos podem -a$er com que o servo5motor -orce a estrutura. >omo os valores limites
dependem de como o bpede -oi construdo# os valores mximos e mnimos que podemos utili$ar
sem dani-icar o servo5motor variam.
Os valores de-inidos aqui nesse tutorial devem servir apenas como base na implementa!(o
de seu programa. ,or isso# esteja atento ao -uncionamento do bpede. >aso o movimento de algum
servo5motor seja insu-iciente ou seja -or!ado (o que pode5se perceber atravs do seu barulho"# basta
mudar o valor enviado atravs da -un!(o ;ervo*otorOn.
=amos voltar agora a implementa!(o das linhas de cdigo do nosso programa. 9entro do
nosso bloco if# a primeira coisa a -a$er ser inclinar o corpo do bpede. ,ara isso# utili$aremos a
-un!(o ;ervo*otorOn# que ter como primeiro par+metro a constante re-erente ao motor de
inclina!(o. L o segundo par+metro# como -oi explicado acima# deve ter um valor su-iciente para
que a perna seja levantada um pouco acima do solo# sem movimentar demais a engrenagem.
.tili$amos o valor BI como par+metro# mas ele poder ser modi-icado# caso seja insu-iciente ou
seja demais.
...
while SleepAndTest(1) = tr!e do
begin
AD
"" 0erifica se o bot#o 1Frente2 foi pressionado
if (SpeedB!ttonFrente..o3n = tr!e) then
begin
"" )nclina o corpo do b6pede para !m lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
end;
...
O prximo passo# aps levantar a perna# ser desloc5la para a -rente. 9evemos ent(o
movimentar o servo5motor de deslocamento# utili$ando novamente a -un!(o ;ervo*otorOn. O
segundo par+metro dessa -un!(o dever ser um valor que su-iciente para que a perna seja deslocada
para a -rente sem dani-icar o motor ou as estruturas. Aqui# -oi utili$ado o valor 2FI# mas convm
lembrar que ele pode ser modi-icado caso n(o seja adequado.
*as antes que essa -un!(o seja utili$ada# devemos gerar uma pausa no programa# o que ser
-eito atravs da -un!(o ;leepAnd3est. .tili$ando o valor 2II como par+metro# geramos um atraso
de 2 segundo. )ssa pausa extremamente necessria# pois ela ocorrer enquanto o servo5motor
estiver inclinando o corpo do bpede. >aso n(o utili$armos essa pausa# a inclina!(o do corpo e o
deslocamento da perna ocorrer(o simultaneamente# causando problemas.
...
while SleepAndTest(1) = tr!e do
begin
"" 0erifica se o bot#o 1Frente2 foi pressionado
if (SpeedB!ttonFrente..o3n = tr!e) then
begin
"" )nclina o corpo do b6pede para !m lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
end;
...
Agora devemos inclinar o corpo do bpede para o outro lado# concentrando seu peso na
perna que acabou de ser deslocada. Antes# geramos uma outra pausa de um segundo# para que a
perna possa ser deslocada. .tili$amos ent(o a -un!(o ;ervo*otorOn tendo como primeiro
par+metro a constante ;ervo0nclina. ; que desta ve$# utili$amos outro valor como segundo
par+metro. )sse valor deve ser su-iciente para inclinar o corpo do bpede para o outro lado#
deixando uma perna levemente acima do ch(o. 6esse caso# utili$amos o valor ::I.
AH
=amos tambm gerar uma outra pausa de 2 segundo no nosso programa# que ocorrer
enquanto o servo5motor de inclina!(o estiver atuando.
...
while SleepAndTest(1) = tr!e do
begin
"" 0erifica se o bot#o 1Frente2 foi pressionado
if (SpeedB!ttonFrente..o3n = tr!e) then
begin
"" )nclina o corpo do b6pede para !m lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" )nclina o corpo do b6pede para o!tro lado
+it.Ser%oMotor7n(Ser%o)nclina$;;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
...
;endo assim# temos uma perna livre para ser deslocada# o que ser -eito utili$ando
novamente a -un!(o ;ervo*otorOn. O primeiro par+metro ser ;ervo9esloca# indicando qual
motor ser acionado. L o segundo par+metro dever ser su-iciente para que a perna seja
movimentada para a -rente# lembrando5se novamente de que n(o podemos -or!ar o servo5motor#
utili$ando um valor muito alto.
9epois dessa -un!(o# tambm necessitamos gerar um atraso de um segundo# atravs da
-un!(o ;leepAnd3est.
...
while SleepAndTest(1) = tr!e do
begin
"" 0erifica se o bot#o 1Frente2 foi pressionado
if (SpeedB!ttonFrente..o3n = tr!e) then
begin
"" )nclina o corpo do b6pede para !m lado
AF
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" )nclina o corpo do b6pede para o!tro lado
+it.Ser%oMotor7n(Ser%o)nclina$;;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
...
L temos pronta a programa!(o re-erente ao movimento do bpede para -rente# podendo nos
dedicar ao movimento para trs. A sequ4ncia de movimentos extremamente semelhante# tendo
como nica di-eren!a o -ato de que a perna que estiver livre ser deslocada para trs.
.m modo muito simples de implementar o cdigo do ;peedKutton3ras copiar o que -oi
-eito para deslocar o bpede para a -rente e apenas trocar os valores utili$ados como segundo
par+metro para o controle do servo5motor de deslocamento. O bloco if desse ;peedKutton -icar
assim.
...
"" 0erifica se o bot#o 1Tr&s2 foi pressionado
if (SpeedB!ttonTras..o3n = tr!e) then
begin
"" )nclina o corpo do b6pede para !m lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para tr&s
+it.Ser%oMotor7n(Ser%o.esloca$1;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
AG
"" )nclina o corpo do b6pede para o!tro lado
+it.Ser%oMotor7n(Ser%o)nclina$;;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para tr&s
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
...
Os prximos cdigos a serem implementados s(o os comandos para virar ? esquerda e ?
direita. Os procedimentos adotados para virar o bpede s(o um pouco di-erentes. O primeiro passo
ser manter o bpede com as duas pernas no ch(o# utili$ando como segundo par+metro da -un!(o
;ervo*otorOn algum valor entre BI e ::I (que -oram utili$ados para inclin5lo" su-iciente para
isso. 6o exemplo descrito nesse tutorial# o valor ideal -oi 2II.
>om as duas pernas do bpede no ch(o# quando acionarmos o servo5motor de deslocamento#
ele virar para um lado. A dire!(o para a qual o bpede vira depende do valor utili$ado para acionar
o servo5motor. )sses valores podem ser os mesmos usados anteriormente. Ao usarmos 2:I# ele
virar para a esquerda e ao usarmos 2FI# ele virar para a direita.
Aps reali$ar esses movimentos# podemos notar que uma das pernas -icou atrs da outra.
,ara que seja possvel virar o bpede novamente# devemos lev5la para a -rente# utili$ando os
mesmos procedimentos de inclinar e deslocar a perna para a -rente.
A implementa!(o completa do ;peedKutton)squerda mostrada a seguir.
...
"" 0erifica se o bot#o 14s5!erda2 foi pressionado
if (SpeedB!tton4s5!erda..o3n = tr!e) then
begin
"" .ei<a o b6pede com as d!as pernas no c=#o
+it.Ser%oMotor7n(Ser%o)nclina$100);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca o b6pede para a es5!erda
+it.Ser%oMotor7n(Ser%o.esloca$1;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" )nclina o corpo do b6pede o lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
CI
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
...
A implementa!(o do ;peedKutton9ireita mostrada a seguir.
...
"" 0erifica se o bot#o 1.ireita2 foi pressionado
if (SpeedB!tton.ireita..o3n = tr!e) then
begin
"" .ei<a o b6pede com as d!as pernas no c=#o
+it.Ser%oMotor7n(Ser%o)nclina$100);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca o b6pede para a direita
+it.Ser%oMotor7n(Ser%o.esloca$1:0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" )nclina o corpo do b6pede o lado
+it.Ser%oMotor7n(Ser%o)nclina$;;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .esloca a perna li%re para a frente
+it.Ser%oMotor7n(Ser%o.esloca$1;0);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
end;
end;
end.
C2
>om os comandos de movimenta!(o -eitos# podemos agora implementar o bloco if do
;peedKutton@epouso. )le ser utili$ado para manter o bpede com as duas pernas no ch(o# sendo
um procedimento til para ser -eito antes de deslig5lo.
)sse bloco if ser um pouco di-erente dos outros. >omo ele s precisa ser -eito uma nica
ve$# devemos utili$ar mais uma condi!(o# alm do -ato do ;peedKutton@epouso estar pressionado.
/ a que precisamos da varivel Kipede@epouso.
A outra condi!(o para que esse bloco if seja executado ser de que a varivel
Kipede@epouso dever ser di-erente de 2# o que pode ser -eito atravs do operador QR. Ao
pressionar o bot(o 0niciar# ser atribudo o valor I a essa varivel. ;endo assim# caso o
;peedKutton@epouso estiver pressionado# as linhas de cdigo re-erentes a ele ser(o executadas. ;
que no -inal do bloco if# vamos atribuir o valor 2 ? varivel. ;endo assim# teremos certe$a de que
esse bloco n(o ser executado novamente# a n(o ser que o bot(o 0niciar seja pressionado de novo.
O cdigo para o ;peedKutton@epouso come!ar assim8
...
"" 0erifica se o bot#o 1-epo!so foi pressionado e se
"" Bipede-epo!so > diferente de 1
if (SpeedB!tton-epo!so..o3n = tr!e) and (Bipede-epo!so ?@ 1) then
begin
end;
end;
end;
end.
O primeiro passo ser alinhar as pernas do bpede. 9evemos ent(o inclinar seu corpo para
um lado e deslocar a perna livre de modo que ela -ique ao lado da perna a qual o bpede se apia.
>omo no nosso exemplo utili$amos os valores 2FI e 2:I para desloc5la para -rente e para trs# o
valor adequado dever estar aproximadamente entre eles. O valor 2BI -oi o mais adequado para a
utili$a!(o nesse exemplo. 6(o podemos nos esquecer das pausas de 2 segundo no programa.
...
"" 0erifica se o bot#o 1-epo!so foi pressionado e se
"" Bipede-epo!so > diferente de 1
if (SpeedB!tton-epo!so..o3n = tr!e) and (Bipede-epo!so ?@ 1) then
begin
"" )nclina o corpo do b6pede para o lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
C:
"" Alin=a a perna li%re com a 5!al o b6pede se apAia
+it.Ser%oMotor7n(Ser%o.esloca$180);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
end;
end;
end;
end.
9esse modo# as pernas estar(o alinhadas# mas o corpo do bpede ainda estar inclinado.
9evemos ent(o acionar o servo5motor de inclina!(o novamente# utili$ando como par+metro um
valor adequado para deix5lo com as duas pernas no ch(o. )sse valor deve ser o mesmo que -oi
utili$ado para virar o bpede# que no exemplo -oi 2II.
;endo assim# completamos os procedimentos para manter o bpede em posi!(o de repouso.
Agora podemos atribuir ? varivel Kipede@epouso o valor 2# evitando que esses procedimentos se
repitam.
...
"" 0erifica se o bot#o 1-epo!so foi pressionado e se
"" Bipede-epo!so > diferente de 1
if (SpeedB!tton-epo!so..o3n = tr!e) and (Bipede-epo!so ?@ 1) then
begin
"" )nclina o corpo do b6pede para o lado
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" Alin=a a perna li%re com a 5!al o b6pede se apAia
+it.Ser%oMotor7n(Ser%o.esloca$180);
"" 9era !m atraso de 1 seg!ndo
SleepAndTest(100);
"" .ei<a o b6pede com as d!as pernas no c=#o
+it.Ser%oMotor7n(Ser%o)nclina$80);
"" 0alor 1 atrib!6do B %ari&%el$ e%itando 5!e os
"" procedimentos de repo!so se repitam
Bipede-epo!so:= 1;
end;
end;
CA
end;
end.
O nosso prximo passo agora ser criar as rotinas para o desligamento do bpede. )ssas
linhas de cdigo ser(o escritas depois do end! do la!o while principal# aquele ao qual nosso
programa estar preso enquanto a -un!(o ;leepAnd3est -or verdadeira. ,ode parecer estranho ?
primeira vista# mas elas ser(o mesmo escritas no procedure do bot(o 0niciar# mas somente ser(o
executadas quando a -un!(o ;leepAnd3est -or -alsa# pois assim o nosso programa sair do la!o
while principal. 9evemos desligar todos os servo5motores atravs da -un!(o ;ervo*otorO--.
...
end;
"" As f!n'Ces a seg!ir desligar#o o b6pede e ser#o e<ec!(
"" tadas 5!ando o programa sair do loop 3=ile principal$
"" o! se,a$ 5!ando SleepAndTest retornar !m %alor falso
"" .esliga os motores
+it.Ser%oMotor7ff(Ser%o)nclina);
+it.Ser%oMotor7ff(Ser%o.esloca);
end;
end.
6osso programa est quase pronto. Kasta agora implementar o cdigo a ser executado
quando o bot(o ,arar -or pressionado. =oltamos ent(o ao nosso <orm# apertando a tecla <2:# e
damos um duplo clique sobre esse bot(o# abrindo o seguinte manipulador.
...
procedure TformMain.B!ttonarar*lic+(Sender: Tob,ect);
begin
end;
end.
A nica coisa que precisamos -a$er atribuir ? varivel ;top o valor 3rue# o que -ar com
que a -un!(o ;leepAnd3est retorne um valor -also e# consequentemente# o bpede seja desligada.
...
procedure TformMain.B!ttonarar*lic+(Sender: Tob,ect);
begin
CC
"" D!ando o bot#o for pressionado$ a %ari&%el Stop ser& %er(
"" dadeira$ conse5!entemente a f!n'#o SleepAndTest ser& fal(
"" sa e o f!ncionamento do b6pede ser& interrompido
Stop := tr!e;
end;
end.
>hegamos ent(o ao -im da programa!(o para o -uncionamento do bpede. ;e todos esses
passos -orem seguidos corretamente# o programa poder ser compilado e executado.
8 Dicas
,odemos acrescentar algumas -uncionalidades a mais ao do bpede# exercitando assim a
criatividade e os conhecimentos de @obtica adquiridos. )m rela!(o ao programa de controle do
bpede# pode5se implementar o cdigo para que o movimento do bpede seja modi-icado
automaticamente quando algum ;peedKutton -or pressionado# sem a necessidade de se apertar o
bot(o 0niciar.
3ambm possvel -a$er com que o bpede -ique em posi!(o de repouso automaticamente
quando o bot(o ,arar -or pressionado.
O bpede mesmo pode ser incrementado. >om alguns conhecimentos de )letrnica e
,rograma!(o# possvel -a$er uma vers(o que siga ou -uja da lu$# utili$ando J9@s. >om um sensor
de dist+ncia possvel -a$er coisas bem interessantes tambm# como uma vers(o que n(o caia em
buracos (caso o bpede esteja em cima de uma mesa"# com o sensor apontado para a -rente num
+ngulo de CB graus.
CB

Você também pode gostar