collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[Ontem às 15:31]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: iBot  (Lida 32771 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #30 em: 07 de Janeiro de 2010, 12:31 »
Antes de construir o meu projecto em acrilico decidi construir em K-line para ver mais ou menos as dimensões e como vai ficar distribuido o material!

algumas fotos:



Material todo testado






Mais tarde explico o funcionamento detalhado do projecto.


cumprimentos,



durza

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #31 em: 19 de Janeiro de 2010, 00:37 »
Explicação:

vai ter um menu com tres opçoes:
- Controlo remoto
- Autonomo
- Seguir movimentos

controlo remoto -

com o joystick do lado esquerdo o robot anda para a frente ou para tras, com o joystick do lado direito o robot anda para o lado esquerdo ou para o lado direito

trabalha atraves de radio frequencia, de modulos de um carrito telecomandado que tinha velho,
o modulo emissor fica dentro do comando de uma ps2, para ler os valores analogicos dos joysticks coloquei um picaxe 14m e atraves dos valores liga os contactos no modulo emissor por transistors, pilha de 9v e um regulador de tensao (lm7805).

modulo receptor, ligo a entradas no picaxe 40x1 e conforme as entradas forem activadas atraves do comando ligo saidas para os servos que vao servir de motores, usando um l293b para os poder controlar.

Autonomo -

Em modo autonomo o robot detecta obstaculos atraves de sensores de infra-vermelhos e ultra sons, infra-vermelhos para detectar objectos a esquerda ou a direita e falta de piso, o ultra sons para descubrir o melhor caminho ou caminho mais livre para seguir perante obstaculo, perante um obstaculo e o local dele desvia-se controlando os servos (motores) atraves do l293b com as mesmas saidas do picaxe.

Seguir movimentos -

Em modo Seguir movimentos o robot detecta um obstaculo (ex. mão) com os infra-vermelhos e compara as distancias, se as distancias forem diferentes o robot roda ate as distancias igualarem, ou seja, vai "olhar" sempre para a "mão".



Em todos os modos as medidas que o robot estiver a medir, como o ultra sons, infra-vermelhos, temperatura e ldr vão aparecer no lcd 20x4 (lcd ligado por i2c) e conforme o valor da ldr as luzes nocturnas ligam ou desligam.


entretanto ja fiz uma maquete para saber as medidas e testar o material e ver o robot a mexer, estou a espera das lagartas por isso coloquei uma rodas para poder fazer testes

algumas fotos e videos:
















teste de limites dos servos:








a cabeça abana muito porque nao esta muito rigido mas o projecto final vai ser em acrilico!

criticas, apoios, ajudas, comentarios é tudo bem vindo

cumprimentos

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: iBot
« Responder #32 em: 19 de Janeiro de 2010, 01:19 »
Parece que isso tá a andar a passos largos, hein? Muito bom, paraéns e força nisso!

Offline Tyran

  • Mini Robot
  • *
  • Mensagens: 293
Re: iBot
« Responder #33 em: 19 de Janeiro de 2010, 03:00 »
Hehe muito fixe   :D

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: iBot
« Responder #34 em: 19 de Janeiro de 2010, 09:18 »
Está a ficar muito bom! Só aconselhava para fazer movimentos mais lentos com a cabeça senão ela espeta-se no chão. Suavizar um pouco não custa nada!

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #35 em: 19 de Janeiro de 2010, 11:14 »
Obrigado a todos!  ;D  sim está a andar rapido, o tempo começa a ficar apertado :S


Está a ficar muito bom! Só aconselhava para fazer movimentos mais lentos com a cabeça senão ela espeta-se no chão. Suavizar um pouco não custa nada!

obrigado! Como posso diminuir a velocidade dos servos? ???  ajuda aqui

cumprimentos

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: iBot
« Responder #36 em: 19 de Janeiro de 2010, 11:24 »
Se pretenderes ir da posição 0 para a posição 90

Moves para a posição 10, depois 20, depois 30, etc até à 90.

Com um ciclo destes e tempos controlados entre cada iteração, a cabeça do robot vai rodar de forma mais suave. (se mesmo assim andar aos soluções baixa o delta de 10 para uns 5 ou menos)

Ex:
Código: [Seleccione]
sevoFromTo(int from, int to){
  int negativo (from > to);
  int actual = from;
  while( actual != to){
    moveServo(actual += negativo?((to - actual) %10):((to - actual) %10)*-1);
    delay(10);
  }
}

Qualquer coisa deste genero. Não garanto que o código funcione pois foi escrito agora às 3 pancadas mas dá para transmitir a ideia.

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #37 em: 19 de Janeiro de 2010, 11:35 »
Se pretenderes ir da posição 0 para a posição 90

Moves para a posição 10, depois 20, depois 30, etc até à 90.

Com um ciclo destes e tempos controlados entre cada iteração, a cabeça do robot vai rodar de forma mais suave. (se mesmo assim andar aos soluções baixa o delta de 10 para uns 5 ou menos)

Ex:
Código: [Seleccione]
sevoFromTo(int from, int to){
  int negativo (from > to);
  int actual = from;
  while( actual != to){
    moveServo(actual += negativo?((to - actual) %10):((to - actual) %10)*-1);
    delay(10);
  }
}

Qualquer coisa deste genero. Não garanto que o código funcione pois foi escrito agora às 3 pancadas mas dá para transmitir a ideia.

estou a fazer em picaxe portanto axo ke o codigo, segundo o que escreves te fica:

Código: [Seleccione]
servopos 7, 70
servopos 7, 80
servopos 7, 90
servopos 7, 100

mas acho que assim a velocidade é a mesma, pk so altero a posiçao do servo e nao a velocidade :S

cumprimentos

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: iBot
« Responder #38 em: 19 de Janeiro de 2010, 11:57 »
Os servos não digitais não permitem alterar a velocidade por isso terás que fazer por software. Assim deves de dar passos pequenos e inserir delays (tempos de espera) entre cada passo para que ele passe a demorar mais tempo.

Experimenta, vais ver que fica mais lento.

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #39 em: 19 de Janeiro de 2010, 16:36 »
Os servos não digitais não permitem alterar a velocidade por isso terás que fazer por software. Assim deves de dar passos pequenos e inserir delays (tempos de espera) entre cada passo para que ele passe a demorar mais tempo.

Experimenta, vais ver que fica mais lento.

Ok, então vou tentar por pausas e varias posições para ver se fica mais lento e seguido! obrigado

Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #40 em: 26 de Janeiro de 2010, 02:08 »
controlar velocidade de servos em picaxe:


Código: [Seleccione]
controlar velocidade dos servos –



init:
symbol headpos = b13
symbol headmax = 200
symbol headmin = 165
symbol headmiddle = 180
symbol head = 6
symbol neckpos = b12
symbol neckmax = 200
symbol neckmin = 70
symbol neckmiddle = 130
symbol neck = 7
servo 6, 180
servo 7, 130



“ define a saída 7 para o servo do pescoço e a saída 6 para o servo da cabeça, guarda a posição da cabeça e do pescoço em memorias,
 através dos símbolos definidos defeni o limite máximo e o limite mínimo e o ponto intermédio dos servos”




rt:
for headpos=180 to headmax step 1:servopos head, headpos:pause 10:next
for headpos=200 to headmin step -1:servopos head, headpos:pause 10:next
for headpos=headmin to headmiddle step 1: servopos head, headpos:pause 10:next
for neckpos=130 to neckmax step 1:servopos neck, neckpos:pause 10:next
for neckpos=200 to neckmin step -1:servopos neck, neckpos:pause 10:next
for neckpos=neckmin to neckmiddle step 1: servopos neck, neckpos:pause 10:next
pause 1000
goto rt



“Coloca a posição 180 na memoria e depois sobe a posição de 1 em 1 até a posição máxima do servo com intervalos de 10 milissegundos,
procedendo desta forma para todos os movimentos, aumentando ou diminuindo a posição na memoria de 1 em 1, para definir a posição que quero
basta escolher o símbolo já definido e mover a memoria de 1 em 1”



video:



Offline durza

  • Mini Robot
  • *
  • Mensagens: 60
Re: iBot
« Responder #41 em: 03 de Fevereiro de 2010, 12:17 »
Amanha ja é a primeira avaliação do projecto!!

não sei o que dizer sobre o projecto, ou pelo menos como começar :s

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re: iBot
« Responder #42 em: 03 de Fevereiro de 2010, 22:22 »
parece muito bem encaminhado! força com isso!!

à muito que não via um robot engraçado por aqui   :)

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: iBot
« Responder #43 em: 03 de Fevereiro de 2010, 22:52 »
Uma pergunta, onde arranjaste esses analógicos (joystick). Só encontro na sparkfun.
Retiraste de um comando da ps2 ou pc?
Eu queria saber se é possível retirar e trabalhar com eles a parte?
Se fosse ia ao chinês compra um comando XD

Desculpa ser um pouco egoísta XD, continua o trabalho, bem bonito.

Cumprimentos

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re: iBot
« Responder #44 em: 03 de Fevereiro de 2010, 22:59 »
Raul isso que perguntas é muito possível, vê aqui   ;)