Esta tradução foi feita com o consentimento do seu autor.
O artigo original encontra-se aqui.
Todas e quaisquer questões relativamente ao seu conteúdo deverão ser discutidas no forum LMR (se possivel em inglês) .
Todas e quaisquer questões relativas à tradução para português por favor comuniquem ao tradutor (eu) .
——————————————————————————-
Este projecto não requere conhecimento de electrónica, e não está no âmbito deste projecto aprofundar muito neste sentido, apenas vai fazer com que dês o primeiro passo na construção de um robot muito rapidamente. É baseado num sistema chamado Picaxe que apesar de ser muito simples é também bastante poderoso. Se quizeres experimentar outra plataforma igualmente simples e robusta existe o Arduino.
Tens aqui um projecto simples que usa um Arduino e uma breadboard para construir um simples perseguidor de luz.
Tempo de construção: 2 horas
Custos: $85 / 60€
- Dispositivos: 2 motores com redutoras
- CPU: Picaxe
- Fonte de alimentação: 4 pilhas AA
- Linguagem de programação: Picaxe basic
- Sensores / Dispositivo de input: Sharp IR
- Ambiente: interior
Bem-vindos(as). Antes de começarmos, aqui estão umas coisas que deves ler:
- Para teu próprio interesse, lê isto antes de continuares
- Se procuras um projecto ainda mais simples e menos dispendioso, este pode-te interessar: http://letsmakerobots.com/node/87
- Se nunca construiste um robot antes, este video pode-te inspirar, verás que é muito fácil e que não precisas nenhum material em especial para o fazer: http://letsmakerobots.com/node/35
- Para saberes onde poderás ir depois, aqui tens uma 2ª parte
OK – vamos começar ;-)
Como começar um robot fixe por aproximadamente 85$
Isto é fixe porque:
- A electrónica que se usa são “peças reais” (não se trata de peças inventadas que para funcionar precisam de muitas horas de modificação, e também não se trata de um simples kit de peças que é só montar e já está).
- É fácil e simples, terás um robot feito dentro de aproximadamente uma hora!
- Podes evoluir a partir daqui, mesmo com as mesmas peças, se não te importares de desmontar o teu robot.
- É barato.
- É um projecto a sério, e é divertido! É também o projecto mais divertido de construção de um Robot.. fim da história! :)
Estas links tratam-se apenas de sítios que uso para descobrir componentes na web. Podes usar qualquer loja que gostes é claro. Convém dares uma olhada nesta página para veres “onde podes adquirir Picaxe”
Os preços são sempre aproximados. Tenta ao máximo obter todos os componentes da mesma loja, e se possível de uma loja localizada no teu país para obteres os melhores preços e a maior rapidez na entrega.
1 PICAXE-28X1 Starter Pack
A placa de 28 pins neste pacote é como o jogo o Mario Bros, divertido e cheio de extras e coisas por descobrir, e faz com que queiras continuar a brincar uma e outra vez. O pacote inclui o cérebro principal, o PICAXE-28X1.
É um pouco dispendioso, mas é a única e a primeira vez que eu te recomendo a comprar, inclui muitas coisas básicas, um Cd-Rom com imensos manuais, cabos, a placa, o Microprocessador, etc.. Na verdade torna-se bastante barato. Pacotes similares costumam custar 10 vezes a mais o seu preço!
Certifica-te que obténs a versão USB, a imagem nas lojas pode não corresponder e mostra um cabo serial quando tu compras um cabo USB. Quando comprares a versão USB, não é necessário que compres o cabo USB pois este já vem incluido na caixa.
Uma vez que tiveres feito a compra, apenas precisas de comprar um Microcontrolador e uma placa nova para futuros projectos, sai muito mais barato e tornas-te num inventor de robots com todas as ferramentas necessárias.
Para fazeres ligações com mais facilidade aconselho-te a fazeres mais um pequeno investimento e compra female to female jumpers. Aconselho bastante esta compra, apesar de não ser estritamente necessário vais ver que te facilita a vida.
1 L293D Motor Driver – Controlador de 2 motores
O nome diz tudo, falaremos mais sobre este chip :)
1 PICAXE Servo Upgrade Pack
– Uma maneira simples de obter um servo coberto com todos os componentes necessários para este projecto.
Podes sempre obter um servo standard, os pins macho iguais na imagem e uma resistência de 330 Ohm em vez do chip amarelo fazem o mesmo.
O que é um Servo?
Um Servo é um componente bastante usado na robótica. Resumindo é como uma pequena caixinha preta com uns fios, e um eixo que gira cerca de 200 graus. Neste eixo podes montar um disco ou um outro qualquer periférico que aconpanhe o servo.
Os 3 fios são para: 2 para alimentação e um para envio de sinal.
O fio do sinal liga-se a algo que controle o servo, neste caso o microcontrolador.
O resultado é que o microcontrolador dá ordem ao servo para onde é que o eixo deva girar, e isto é muito útil; Tu podes programar algo para se mover para uma determinada posição.
1 Sharp GP2D120 IR Sensor – 11.5″ / Analógico
11.5″ou outro raido de alcance serve. Não compres a versão Digital dos sensores Sharp para este tipo de projectos, eles não medem as distâncias da mesma maneira que os analógicos.
Certifica-te que obténs o conector vermelho/preto/branco. Nem sempre vem incluido e não é um conector standard.
Este sensor não é o meu favorito, normalmente uso sensores de ultrasons, por ex o SRF05 (também se vendem loja-picaxe onde lhes chamam SRF005 e tem uma imagem da traseira do SRF04 na loja! Mas o correcto é o SRF05, eu já lhes disse mas….) Enfim, o SRF05 é muito mais fiável e preciso. Também é mais rápido e custa um pouco mais, é um pouco mais complicado de ser programado e mais complexo de se instalar – por isso não o vou usar aqui, se não tiveres experiência opta pelo Sharp.
Se optares pelo SRF05, está aqui um pequeno tutorial em que ensino a ligá-lo e a programá-lo
2 Motores com redutoras e rodas
Quanto mais alto o rácio, mais forte será o robot, quanto mais baixo mais rápido será o robot. Recomendo um rácio algures entre 120:1 e 210:1 para este tipo de projecto. A razão pela qual o robot é tão lento, é que este tem um rácio elevado. Lentidão é mais simples para inciantes, é mais simples de entender e de acompanhar o que acontece.
Preço total para 2+2: 15 USD
Podes comprar aqui
Também vais precisar:
- Fita adesiva de dupla face (aquela com a parte fofinha no meio é a melhor)
- Alguns fios
- Fita adesiva normal (poderá servir para isolar as ligações)
- Equipamento de soldar simples (qualquer um simples e barato serve)
- Uma tesoura, um alicate e um canivete podem sempre ser úteis
- Uma chave de parafusos
Podes também comprar já agora:
- Alguns LED´s de várias cores se quizeres que o teu robot comunique com o mundo através de efeitos luminosos engraçados
- Mais servos para fazer o teu robot mover por exemplo… braços? Ou servos moverem outros servos, etc..
- Um pequeno altifalante/speaker/piezzo se quizeres que o teu robot comunique sonoramente
- Rodas diferentes, por exemplo lagartas, robots com lagartas são engraçados, apenas mudam as formas das rodas, de resto a maneira de as controlar é igual Está aqui um exemplo do que podes fazer com um robot com rodas lagartas TAMYIA faz este tipo de rodas bem fixes, e este aqui também é um dos meus favoritos Aqui podes consultar mais informação sobre rodas lagartas
- Qualquer tipo de sensor que possibilite o robot seguir de linhas, ou um kit de robot lutador de sumo, ou que o faça evitar cair de mesas.
Onde encontrar manuais para os produtos Picaxe
OK! Fizeste a encomenda, já recebeste o material.. e deixa-me adivinhar, querer começar a construir o teu robot :) vamos lá começar!
Primeiro monta as rodas nos motores. Monta as tiras de borrachas nas rodas.
Uma maneira fácil e rápida de montar coisas no teu robot (e bastante sólida e duradoura) é usando fita adesiva (aquela que tem uma parte fofinha no meio) de dupla face.
Coloca as pilhas na caixa, assim terás uma ideia real do peso e do equilibrio do chassis do robot. Põe fita adesiva de dupla face na base da caixa e na base do servo também.
Escolhe o teu próprio design, se achares que o meu “design” é muito simples adicciona coisas como quizeres.
O principal é que tudo esteja bem colado. Pilhas, Servo e Roda. As rodas e o servo devem poder girar livremente, e o robot deve conseguir equilibrar-se nas rodas, balançando ou não.
Remove as pilhas para evitar algum curto circuito durante a montagem!
Agora o cérebro.
Deves ter uma placa de projecto semelhante a esta.
(isto pode ser do teu interesse: http://letsmakerobots.com/node/75)
Nota que tem um chip já inserido. Remove-o. Este chip é um Darlington-driver, não vamos precisar dele neste projecto, por isso podes removê-lo.
É fácil remover chips dos sockets, basta inserir com cuidado uma chave de fendas e fazer uma ligeira pressão e retirar o chip com muito cuidado.
Um chip novo normalmente não encaixa logo dentro do socket, terás que dobrar com muito cuidado os pins para o interior em ambos os lados. Pousa o chip lateralmente numa mesa e dobra os pins ligeiramente, repete o mesmo processo do outro lado. (os pins encaixam no socket)
Certifica-te de que todos os pins ficam encaixados.
Se compras-te o upgrade de Servo da loja Picaxe, tens contigo um chip amarelo. Mete-o no mesmo sitio do Darlington.
Nota que sobram dois orifícios do socket onde entra o chip amarelo. Não te preocupes pois é mesmo assim.
Este chip amarelo são 8 * Resistências de 330 Ohm´s num só pacote. Assim, se em vez do chip tiveres uma resistência podes apenas inseri-la na slot com o número “0”, este é o único que vamos usar pois só temos um servo neste projecto.
Insere também o chip maior, o cérebro, o microcontrolador, o Picaxe 28 (nº de versão) na placa de projecto.
É importante ter isto do lado correcto. Repara que há uma pequena marca num dos lados da placa.
O chip vai ser alimentado através da placa através de 2 dos seus pins.
Todos os restantes pins estão ligados à volta da placa, e serão todos programáveis, podes enviar voltagem se quizeres controlar algo ou receber voltagem se quizeres analizar algo.
Agora insere o controlador de motores L293D.
Este chip recebe quatro saidas (outputs) do microcontrolador, e transforma-as em 2. É estranho não é? Mas é assim mesmo acredita… Qualquer saída do microcontrolador tem sempre dois estados “on” ou “off”. Isto limitaria os movimentos do nosso robot, só poderiamos ter o estado de “andar” ou “parado”. Não seria possivel inverter a direcção do motor. Isto não seria muito agradável se o nosso robot fosse em direcção a uma parede.
A placa é feita de maneira inteligente, então os 2 outputs ficam com o seu próprio espaço com a marca (A) e (B) logo a seguir ao chip L293D (vê na figura abaixo). Falaremos sobre isto mais tarde.
Na parte de trás da placa encontras umas fitas de plástico. Podes removê-las pois não têm qualquer utilidade.
Usa 4 fios e solda-os nos orifícios “A” e “B”. Podes sempre usar terminais ou qualquer outro tipo de connector.
Se tiveres fita termoretráctil usa-a. Isto dá longevidade e isolamento às tuas ligações.
O fio correspondente 2 “A” vai para um pin do motor, e o fio do 2 “B” vai para outro pin do mesmo motor. Não importa qual é qual, desde que os fios “A” sejam ligados a um motor e os “B” a outro.
Agora vamos às ligações do servo.
Se leste a documentação do Picaxe, viste que recomendam usar duas fontes de alimentação diferentes quando se usam servos ou motores. Resumindo, sim é uma boa prática, mas como este robot é tão simples não é necessário.
Vais precisar de soldar um pin extra ao output “0”, se quizeres usar a ligação normal para o servo. Este pin vem como Picaxe Upgrade Pack (vem uma fileira destes pins), mas só vais precisar apenas de um para cada servo, e estes podem ser adquiridos em qualquer loja electrónica.
Se o cabo do teu servo for (Preto, Vermelho, Branco) ou (Preto, Vermelho, Amarelo), o Preto deve ficar na ponta da placa. O meu é (Castanho, Vermelho, Laranja) e então o castanho fica na ponta.
O truque é normalmente o Vermelho; a referência deste é “V”, “V+”, “+”, “1”.. qualquer umas destas referências é usada.
O fio preto ( ou castanho no meu caso) é “G”, “GND”, “0”, ou “-“. É conhecido como Ground, e é para onde a voltagem se dirige. Lembras-te dos 2 pólos das aulas de física?
A última cor é “o sinal” e pode ser Branco, Amarelo ou Laranja.
O servoo precisa de ambos “+ e -” ou “V e G” e sinal.
Alguns outros dispositivos podem precisar apenas de Ground e Sinal, outros poderão precisar de Ground, Voltagem, Sinal de entrada e Sinal de Saida. Pode ser confuso ao ínicio mas com o tempo habituas-te. Até eu me habituei :)
Vamos agora colocar a “cabeça”, o sensor Sharp IR.
Se estiveres a usar um sensor de ultrasom tipo o SRF005 vê isto porque a programação é diferente.
Há milhões de maneiras de fazer isto, seguem algumas pistas:
Vermelho precisa de ser ligado ao V1, isto é (nesta configuração) qualquer coisa marcada com “V”, terá que ser ligada aqui.
O Preto vai para o G.
O Branco liga-se ao Input Analógico 1.
O que vês na imagem é o seguinte, cortei o cabo de um servo velho e queimado, e uni o cabo do servo ao cabo do sensor e isto facilita a ligação.
Se usares este método ou outro qualquer para ligar o Sharp IR, deverás ligar também os 3 restantes inputs analógicos ao V. Eu tinham alguns “jumpers” de sobra, e podes que as 3 ligações que sobram estão cortadas. ( O último par, deixei-o ficar, são apenas dois “Ground”, e não precisamos de unir estes.)
A razão pela qual é importante ligar as entradas analógicas restantes, é porque são “left floating”. Isto significa que se não as ligasses, terias uma leitura dos valores do sensor cheia de “ruido”.
OK! Vamos agora ao que interessa :) “Let there be life”
Deverás ter o fio Vermelho vindo das pilhas (+) ligado ao Vermelho na placa. E o Preto (-) ligado ao (G).
A maneira como fazes estas ligações dependerá do teu projecto e dos teus componentes.
Certifica-te sempre que o (+) das pilhas liga ao (V) na placa. E o (-) das pilhas liga ao (G). Isto convém sempre sempre duplamente verificado, assim evitas que os componentes se danifiquem.
Não alimentes a placa com mais do que 6V (nem mesmo pilhas de 9V).
NOTA: estamos apenas a funcionar com uma fonte de alimentação. Mais tarde vais ter que partilhar o Ground, mesmo usando o V1 e o V2. Desta maneira poderás usar uma fonte de alimentação para a placa e outra fonte de alimentação (mais forte) para os motores.
Instala o Picaxe Programming Editor num PC, segue o manual para ligar o Jack / USB / Serial.
Instala as pilhas no teu robot (ainda sem cabeça), insere o jack na placa.. e no programa de edição do Picaxe escreve:
servo 0, 150
pressiona F5, espera que o programa transfira o código para a placa, e podes ver que o servo gira, ou dá um pequeno salto (dependendo da sua posição)
Se algo correr mal aqui, certifica-te que as ligações estão todas bem, volta a ler o manuel, e se mesmo assim não encontrares uma solução escreve nos forums (em inglês).
Se tudo estiver bem, para efectuar outro teste experimenta escrever:
servo 0, 200
e pressiona F5
O servo deverá girar um pouco e parar, para andar em sentido contrário escreve:
servo 0, 150
e pressiona F5
Agora o “pescoço” do teu robot está a olhar em frente.
Cola o Sharp IR no disco do servo, e isto vai ser a “cabeça” do teu robot.
“Olá Mundo, eu sou um robot, e esto pronto a obedecer às tuas ordens e explorar o mundo :)
Finalizas-te os passos básicos!
O design pode variar, podes ter usado outros componentes, peças, etc.. Mas se fizeste as ligações como descritas anteriormente, aqui estão algumas pistas para te iniciares na programação do robot:
Faz copy-paste deste código para o editor, e pressiona F5:
+++
main:
readadc 1, b1 ‘ lê a voltagem recebida no pin analógico 1, e assigna este valor à variável b1
debug ‘ aqui mostras o valor no na janela do editor. Selecciona “Byte” se estiver em “Word”
goto main
+++
Agora põe a tua mão na frente do robot e vê se a variável b1 é alterada. Vais usar este valor para decidir o que deverá acontecer quando existe algum obstáculo a determinada distância.
Deves também usar um qualquer tipo de suporte para apoiares o chassis do robot, pois as rodas vão começar a andar.
Copia este código para o editor e pressiona F5 com o robot ligado.
+++
high 4
low 5
+++
Uma das rodas deverá começar a rodar numa direcção. Verifica se ambas as rodas andam na mesma direcção e para a frente. Se for o caso, esta deverá ser a instrução de futuro para fazer o teu robot andar para a frente.
Se as rodas andarem para trás tenta desta maneira:
+++
low 4
high 5
+++
Para activares a outra roda escreve:
high 6
low 7
Já falámos anteriormente do servo.
Para um lado é:
servo 0, 75
Para o outro:
servo 1, 225
– ao centra:
servo 1, 150
Aqui está um pequeno programa que vai (ou que deverá, se tudo estiver correcto e se todos os parametros de controle de motores também estiverem correctos) fazer o robot andar, parar em frente das coisas, olhar para cada um dos lados para decidir qual a melhor alternativa, virar para esse lado e continuar a andar em procura de novas aventuras.
+++
Symbol dangerlevel = 70 ‘ a que distância devem estar as coisas antes de reagirmos ?
symbol turn = 300 ‘ o quanto devemos virar
symbol servo_turn = 700 ‘ quanto tempo devemos esperar que o servo vire (dependendo da sua velocidade) antes de medirmos as distâncias
main: ‘ o loop principal
readadc 1, b1 ‘ ler quanta distância está à nossa frente
if b1 < dangerlevel then
gosub nodanger ‘ se nada estiver à frente, continua em frente
else
gosub whichway ‘ se houver algum obstáculo decidir para que zona se deve ir
end if
goto main ‘ aqui termina o loop, o resto são sub-routinas
nodanger:’ aqui deverá estar a tua combinação para fazer o robot andar em frente, aqui precisas de ajustar os valores consoante a maneira como ligaste os teus motores
high 5 : high 6 : low 4 : low 7
return
whichway:
gosub totalhalt ‘ primeiro stop!
‘Olhar para um lado:
gosub lturn ‘ olha para um lado
pause servo_turn ‘ esperar que o servo termine de virar
gosub totalhalt
readadc 1, b1
‘Olhar para o outro lado:
gosub rturn ‘ olhar para o outro lado
pause servo_turn ‘ esperar que o servo termine de virar
gosub totalhalt
readadc 1, b2
‘ Decidir qual é a melhor via a seguir:
if b1<b2 then
gosub body_lturn
else
gosub body_rturn
end if
return
body_lturn:
high 6 : low 5 : low 7 : high 4 ‘ aqui deverá ser a combinação que vira o robot para um lado
pause turn : gosub totalhalt
return
body_rturn:
high 5 : low 6 : low 4 : high 7 ‘ aqui deverá ser a combinação que vira o robot para o outro lado
pause turn : gosub totalhalt
return
rturn:
servo 0, 100 ‘ olha para um lado
return
lturn:
servo 0, 200 ‘ olha para o outro lado
return
totalhalt:
low 4 : low 5 : low 6 : low 7 ‘ low nos quatro pins pára o robot!
Servo 0,150 ‘ olha em frente
wait 1 ‘ para tudo por 1 segundo
return
+++
Com alguma programação e adaptação a este código, podes fazer o robot andar e ao mesmo tempo ir virando a cabeça e tomar decisões, fazer pequenos ajustes à sua rota, virar em direcção a “zonas de interesse” por exemplo portas abertas, e tudo isto ao mesmo tempo enquanto ele se move. É muito engraçado o robot ir olhando para os lados enquanto anda. ;)
Não te esqueças de ver a 2ª parte deste tutorial.
Som:
Podes também adiccional um pequeno buzzer ao example pin 1 e ao ground e escrever:
Sound 1, (100, 5)
– ou então fazer algo de acordo com o programa que vimos anteriormente:
Sound 1, (b1,5)
– assim obtemos sons engraçados consoante a distância dos objectos.
Podes também adiccionar um LED ao pin 2 e ao ground, e escrever:
(notaq que os leds têm uma maneira correcta de serem ligados e podem precisar de uma resistência para não queimar)
High 2
acende o LED
Low 2
apaga LED ;)
————————————
– e que tal um apontador Laser montado num servo extra? Podes fazer com que o robot aponte o laser de um lado para o o outro, ligá-lo, desligá-lo.. podes fazer qualquer coisa que imaginares :)
Benvindo a um mundo muito divertido que é o de fazer robots, existe uma grande diversidade de sensores, actuadores, motores à espera de serem ligados e de darem vida a robots :)
Não te esqueças de partilhar connosco o que estás a fazer, o que tens aprendido, etc :)
Se chegaste até aqui podes sempre dar aqui uma olhada Part II ;)
muito bom