LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: DanBar em 14 de Julho de 2009, 14:45
-
Bem então como estou á espera de peças para acabar a minha aranha. Decidir dar um avanço ao meu novo projecto.
Mini RoboCar Explorador.
Não é nada de especial, apenas para devertimento.
Com base num Atmega128 a controlar 1 L293D + Radio RF
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar1.jpg&hash=06545e1fa6e6399ba68390d528ef3ae08d36a3bf)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar2.jpg&hash=a152ab28665ce22737b1ea69e1c58c0fd8ef1b98)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar3.jpg&hash=727655a6234968f8d1dc780493db0d2321322de8)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar4.jpg&hash=77d80811f2d5be777b1649b0ee395657ec348112)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar5.jpg&hash=d3de0895dce9fb74d350ef3c744eb3f89c0d4d25)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar6.jpg&hash=211304f707b9b27ee2e2274ed4af33d3e7cfad1c)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar7.jpg&hash=67091424feb8a127ace4f14f62f19c1835171e28)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobocar8.jpg&hash=f6e2ae3531a800eb38311e8f71645d0c819c94c9)
Já agora mostro como já está a minha familia...
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Ffamilia_robot1.jpg&hash=37ffa2f98cc69c3f15d6ed07bb3aa520647d5821)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Ffamilia_robot2.jpg&hash=b08bd5213053f23970c2622d35799300b887647e)
-
Sempre com novos projectos :D E realmente a familia está a crescer :P
Algum objectivo para este ou vai ficar mesmo como divertimento?
-
Muito bom... apanhaste-lhe o gosto :D
-
Bem este será o robot base para fazer testes.
Testar novos sensores, gps, etc...
-
icar, pk não pôr-lhe uns sensores e pô-lo a fazer mapeamento de zonas? tipo.. pô-lo a andar pela casa a explorar e enviar dados sobre 'o terreno' pró pc, de forma a conseguir chegar a uma pseudo-planta da casa?
-
Porque é que achas que ele se chama de Explorador.
É isso mesmo que eu estou a desenvolver já algum tempo. Esse projecto tem estado arrumado numa gaveta, mas agora saiu. ;D
-
Estou a tentar fazer um com essa base da Dagu. A ideia é a mesma, mas o projecto tem estado meio parado por falta de tempo e por ter estado a testar outras coisas com o Arduino antes de integrar tudo (LCD, IR, LDR, RF)
PS - Depois vou-te metralhar com perguntas.
-
Sem problemas
-
Porque é que achas que ele se chama de Explorador.
boa, boa! assim é k é.. ;)
-
muito fixe! não vêm uns videos? ;D
esyou curioso é do microduino 8)
-
Microduino foi desmanchado. Necessitei dos componentes para esse robot.
Estou á espera de mais componentes depois faço outro. 8)
-
mete um tutorial 8) se não for pedir demasiado :)
-
Sim. Eu faço ;)
-
Elaa isso e um todo terreno, não tem dificuldade em curvar com tracção as quatro rodas.
-
As rodas não viram.
os 2 motores é que controlam as rodas (1 para as rodas da direita e o outro das rodas da esquerda)
Tens 3 maneiras via programação de faze-lo virar:
1 - Rotação - 1 motor anda para a frente e o outro anda para trás - o robot faz rotação sem sair do lugar.
2 - Media Rotação - 1 motor anda para a frente e o outro fica parado - o robot vai virando para o lado que o motor para
3 - Rotação suave - 1 motor anda para a frente com uma voltagem e o outro anda mais devagar - O robot vira para o lado do motor mais lento (a minha preferida, pois é mais suave)
;)
-
está muito porreiro! e a ideia de construir um explorador para fazer mapeamentos é altamente!!! :)
quero ver isso a evoluir ;)
também ando a brincar com o chassis da Dagu, mas até agora só está a ser remotamente comandado 8)
-
Utiliza o que the interface radio ?
Eu estou a tentar usar o RF 433Mhz, mas não estou a ter exito, ele é muito lento e trabalha sozinho, com intrefencias.
Pode exemplificar o código do comando via rádio.
Eu estou a utilizar o Nunchuck da Wii ;D
-
Eu na aranha utilizo o xbee, não dá problema nenhum e é fixe.
-
Também já tentei usar uns módulos semelhantes RF mas sem êxito nenhum.. dão muito trabalho para ter uma comunicação fiável, comigo ora conseguia receber uns bytes ora não recebia nada...
De momento o meu comando é o G-Remote e também uso Xbee :)
-
Pois vou mesmo acabar com os RF só dão trabalho.
Só é pena o preço das Xbee :(
-
pois é... :( o que é bom paga-se bem..
-
Aqui estão algumas fotos actualizadas:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar9.jpg&hash=6fdc5a51cf92f163ba3000409da7a7ea5cd76b8a)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar10.jpg&hash=40c3d97ccd3b68f855829ea815efee2483a8955d)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar11.jpg&hash=65445107f270a0db0cc0ce85e37ae8287eb4ea61)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar12.jpg&hash=38d77461669a4b513f3f86390596f48e9f087c3b)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar13.jpg&hash=144acc8605ac6bf0dddc00df7ce3f5b5882f2983)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar14.jpg&hash=0e853c8d8f6a712e2679975e0401d62a8d857666)
Agora deparei-me com um dilema grande. Quando os motores não estão ligado e o todos os circuitos estão. O robot funciona bem (só não anda). Mas quando ligo tudo e os motores começão a trabalhar o Servo encosta-se para a direito (0 graus) e não sai daí.
Já revi todo o código e até faço detach do ServoTimer2 para ter a certeza. mas o problema continua.
Dá ideia que a voltagem que vem da bateria directamente para a alimentação do circuito L293D (motor control) interfere com o servo.
Claro será dizer que ele vai contra tudo e todos pois o sensor ir fica virado para o lado direito como vê nesta imagem a baixo:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2Frobocar%2Frobotcar10.jpg&hash=40c3d97ccd3b68f855829ea815efee2483a8955d)
Alguém já encontrou-se com este dilema?
-
Aqui está o código para me ajudarem a analizar o problema e já agora para vos ajudar também.
-
É engraçado...se eu parar as rodas / motores com a mão o servo volta ao sítio certo.
Estranho.. ::)
-
realmente isso está estranho. Tipo garantes que a bateria aguenta isso tudo?
-
As tensões do servo mantém-se.
-
experimenta meter uma bateria só pró servo, só pa testar..
-
Coloca um diodo em série com a alimentação positiva do servo, e a seguir ao díodo um condensador de 100uF ou mais, do díodo para a massa.
Os fios da alimentação vão da bateria para o L293D e só depois daí para o servo?
-
Tenho 7,5v directos para o L293D / MOTORES e 4,5v para o Arduino / Servo com o Ground comum.
Vou experimentar ligar o diodo com o condensador.
-
Desculpa, enganei-me da história do diodo. O que queria sugerir era o diodo+condensador não ligado ao servo mas sim ao Arduino. Contudo, como estás a ligar o servo ao arduino (melhor dizendo, "através do arduino"), não é possível fazer isso. Então sugiro apenas que coloques um condensador de 100uF ou mais (ou 2 em paralelo) na alimentação que vai para o servo.
Actualização: Espera lá... esses 4,5V vêm de onde? Não estás a usar o regulador de tensão que está embutido no arduino? Arranja-nos um diagrama que mostre as ligações da alimentação, envolvendo as baterias, arduino e servo, e mostrando fielmente de onde saiem e onde entram os fios com a energia.
-
Não tenho nenhum regulador de tensão. o chip Atmega está alimentado directamente das 3 pilhas de 1,5volts. (4,5v)
o Circuito L293D e MOTORES estão ligados directamente ás 5 pilhas de 1.5v (7,5) .
Vou experimentar hoje ligar os condensadores ao servo.
-
Igual. A mesma porra. Soldei um condensador de 220uF/25v na alimentação do servo e ficou na mesma.
Com os motores a trabalhar o servo encosta-se á direita e se eu parar os motores com a mão o servo centra.
-
Agora deparei-me com um dilema grande. Quando os motores não estão ligado e o todos os circuitos estão. O robot funciona bem (só não anda). Mas quando ligo tudo e os motores começão a trabalhar o Servo encosta-se para a direito (0 graus) e não sai daí.
Parece que tens aí um problema de interferências.
Os motores são excelentes geradores de ruídos.
Coloca um condensador cerâmicos entre 10nF e 100nF aos terminais dos motores, faz com que os fios que ligam do lm293 aos motores sejam o mais curtos possível e que não passem junto do uP e fios do servo.
jp_
-
OK. Vou experimentar.
-
Naaa. Na mesma. Instalei 2 condensadores ceramicos nos motores, encurtei o fios e nada. Continua a interferir com o servo. >:(
-
EUREKA !!!!
Vocês não vão acreditar....Era o SERVO. Troquei o servo para um HXT900 e ficou a funcionar perfeitamente.
Por isso volto a reforçar a minha opnião NÃO COMPREI NUNCA ESTES SERVOS
turnigy Micro Servo 16g 2.7kg 12sec
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.2mhi.com%2Ficar%2Farduino%2FSpiderDuino%2FLista%2Fimagel6.jpg&hash=e9f563b8697e196c25198a5fc75a04377c5a26aa)
Resolvido. Já posso continuar a desenvolver o bixinho.
-
boa!! :) não te esqueças de postar o teu Explorador no LMR ;)
-
Quando o desenvolver mais um pouco. ;D
-
Bem.. Detei foguetes antes de tempo... :o
Voltou tudo ao normal novamente. Isto é voltou tudo ao anormal.
O servo volta a encostar-se a 0 graus quando os motores trabalham. Não consigo perceber. :P
-
Tenta colocar aqui uma imagem com o esquema de ligações.
-
é te possível verificar, atráves de um osciloscópio, qual o sinal que está o servo a receber? O MCU pode estar de facto a enviar o sinal PWM para o servo rodar sempre para esse lado.
-
Já encontrei alguma coisa. Quando o motor do lado direito não trabalha, volta tudo ao normal. Portanto o problema ou é do motor ou das ligações. Vou investigar...
-
Bem está muito melhor, apesar de ainda haver alguma interferencias !!!
Mudei os pins de controlo no arduio para o L293D
Estava em
int motor_left[] = {11, 12};
int motor_right[] = {9, 10};
ficou assim:
int motor_left[] = {6, 5};
int motor_right[] = {8, 7};
acho que os pinos devem estar muito próximos dos contactos da bateria deve fazer interferencia. ???
-
Consegues ligar isso por Serial e meter um Write("Inicio") no setup para ver se o arduino está a reiniciar.
Isso acontecia-me quando a alimentação não chegava para tudo.
Tenta com mais pilhas, ligadas em série, e com um regulador externo, liga ao +5v do Arduino.
-
Não a alimentação chega, eu consiguo monotorizar o sensor ir através da porta série.
-
É que se reparares, o servo movimenta-se quando o Arduino inicia. O que pode estar a acontecer é ele reiniciar infinitamente, quando tem pouca bateria.
-
Bem está muito melhor, apesar de ainda haver alguma interferencias !!!
Mudei os pins de controlo no arduio para o L293D
Estava em
int motor_left[] = {11, 12};
int motor_right[] = {9, 10};
(...)
O 9, 10 e 11 são pinos de PWM. Não estás, em alguma altura no teu código, a usar o analogWrite em nenhum deles?
Já percebi que tás a usar um "arduino custom", só agora é que olhei bem para as fotos.
Se forem problemas de baixas de tensão devido à corrente puxada da bateria pelos motores, então isola o arduino+servo (ou só o servo, uma vez que o Arduino não parece ter problemas de reset) com o tal método que referi atrás (diodo seguido de condensador grande e só depois o arduino+servo).
A propósito, estás a desaproveitar as pilhas, uma vez que tás a drenar (pelo que percebi do que disseste) algumas mais depressa do que as outras (um servo ainda consome qualquer coisa).
-
Acho mesmo que estás com problemas de alimentação.
Eu pegava nos 7,5v e regulava-os para 5v e alimentava o Arduino e o Servo a partir daí. Certifica-te que tens a bateria completamente carregada.
-
Problema resolvido. Tinha um a mais e instalei na alimentação do ATMega e servo.
5V DC to DC Step Up
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.sparkfun.com%2Fcommerce%2Fimages%2Fproducts%2F08290-03-L_i_ma.jpg&hash=a250f785322db9786fa7c78cee36e04e2dab5a4a)
Entra 4,5v das 3 pilhas e sai 5volts a 300mA certinhos. "O milagre da multiplicação" ;D
Era problema de alimentação e interferencia dos motores, pois assim que liguei o servo noutros pinouts mais afastados ficou bom.
-
iCAR tive o mesmo problema que tiveste com o servo a encostar ao lado quando os motores DC arrancam. Realmente é mesmo do ruído que eles metem na alimentação. Soldei 3 condensadores de 10nF em cada motor, 1 entre os terminais e os restantes entre cada terminal e a carcaça do motor. Deixou de existir problemas.
Abraço
-
Pois é acabei por fazer o mesmo. :P