Autor Tópico: Primeiro Robot  (Lida 2684 vezes)

Offline NuGuN

  • Ah e tal
  • Unsigned User
  • *****
  • Mensagens: 1212
Primeiro Robot
« em: 27 de Junho de 2006, 20:26 »
Este foi o meu primeiro robot, e como é de esperar não é nada de especial. Tem algumas falhas pois os motores de passo que utilizei não tem muita força e por vezes falham  :mad:

O robot consiste no seguinte:

Tenho 1 programa com 3 funcionalidades, a primeira é um editor rudimetar de mapas, ou melhor.. nem sei se posso chamar akilo mapas porque apenas dá para dezenhar quadrados ou paralelipipedos e preenchelos em preto :-[ depois guarda-se em formato BMP e pronto...

A segunda funcionalidade é um editor de percursos rudimentar como o editor de mapas, pois o que faz é desenhar umas linhas a vermelho(segmentos de recta) inserir paragens em pontos do percurso, dá para carregar um mapa ja existente e dá tambem para guardar um percurso(em formato txt).

E a ultima funcionalidade é o controlo do robot ou seja, carrega-se um percurso e um mapa(opcional) e carrega-se no botão...


O que faz?
Percorre um percurso feito no programa assima falado
Contorna obstacolos
Faz paragens pré programadas

E pronto é apenas istu que faz  :P, deixo aqui uns videos para o veem em acção :cheesygrin:

Video 1 Tráfego Nacional

Video 2 Tráfego Nacional

Estejam a vontade para criticar tirar duvidas... ca estarei  ;)




cumps
 
« Última modificação: 07 de Outubro de 2006, 12:32 por RidelIght »

Offline UnKnowN

  • Unsigned User
  • *****
  • Mensagens: 1299
Re: Primeiro Robot
« Responder #1 em: 27 de Junho de 2006, 21:21 »
Muito Fixe MesmO!! :D
Em quanto e que te ficou € ?

Offline NuGuN

  • Ah e tal
  • Unsigned User
  • *****
  • Mensagens: 1212
Re: Primeiro Robot
« Responder #2 em: 27 de Junho de 2006, 21:34 »
O preço certo certo n te sei dizer porque foi a escola que pagou os componentes electrónicos, o robot em si gastei 40 euros, e esses 40 euros foram só nas correias e nas cremalheiras que estao nas rodas porque tive de comprar 2 correias de 10 euros cada e 2 kits de cremalheiras tambem de 10 euras cada, o resto da estrotura n gastei nada.

O aluminio era de outras peças que por aqui tinha, as rodas tb, e os motores eram da escola :P



cumps

Offline QuickFire

  • aka. Pedro Diogo
  • Unsigned User
  • *****
  • Mensagens: 2270
  • Olhóóóó peixe fresquinho!
Re: Primeiro Robot
« Responder #3 em: 27 de Junho de 2006, 21:56 »
Sim senhor :D Olha que para primeiro robot está bem porreirito :D
Podias era meter ai dois motores de 100cv para isso andar mais pá! :P Kidding :D

Offline deathseeker25

  • I was born in a State of Trance
  • Fundador
  • Stack Overflow
  • ******
  • Mensagens: 6405
    • http://www.portugal-a-programar.org
Re: Primeiro Robot
« Responder #4 em: 27 de Junho de 2006, 22:51 »
Tens aqui um bom primeiro projecto. Gostei dos vídeos, mas já estou como o QuickFire: isso precisa de uns motores bem potentes, porque realmente é muito lento  :)

Offline NuGuN

  • Ah e tal
  • Unsigned User
  • *****
  • Mensagens: 1212
Re: Primeiro Robot
« Responder #5 em: 27 de Junho de 2006, 23:14 »
A lentidão não tem bem a ver com a potência dos motores, os motores que la tenho são motores de passo, e aquela velocidade tão lenta deve-se a uma falha minha...

Quando fiz os circuitos e as placas de circuito impresso esquessime de meter uns condensadores para anular retornos, etc... e sem esses condensadores quando lhe meto mais velocidade como ele tem aquele cabo que vai dos circuitos ao robot, os fios desse cabo comessam a fazer de condensadores ou seila e fazem atracar os relés dos sensores e assim que esses relés atracam ele assume que econtrou um abstacolo e começa a virar  :wallbash:

Outra rasão para uma velocidade tão reduzida é a capacidade do computador a que ele esta ligado  :( mm que quise-se metelo a andar mais rapido, naquele computador não era capas....

A pouca força dos motores Limitão-me no peso do robot, e por vezes ao virar ou ate mm em marcha normal atrasa-se um motor ou outro o que o faz mudar ligeiramente de direcção :mad:



cumps

Offline UnKnowN

  • Unsigned User
  • *****
  • Mensagens: 1299
Re: Primeiro Robot
« Responder #6 em: 28 de Junho de 2006, 09:38 »
O preço certo certo n te sei dizer porque foi a escola que pagou os componentes electrónicos, o robot em si gastei 40 euros, e esses 40 euros foram só nas correias e nas cremalheiras que estao nas rodas porque tive de comprar 2 correias de 10 euros cada e 2 kits de cremalheiras tambem de 10 euras cada, o resto da estrotura n gastei nada.

O aluminio era de outras peças que por aqui tinha, as rodas tb, e os motores eram da escola :P



cumps

Como dizem ali os nossos amigos é comprares mais e mais para apostar nesse, ou quem sabe noutros, robots! :D

Offline Trifasico

  • void
  • *
  • Mensagens: 38
Re: Primeiro Robot
« Responder #7 em: 28 de Junho de 2006, 13:31 »
quando lhe meto mais velocidade como ele tem aquele cabo que vai dos circuitos ao robot, os fios desse cabo comessam a fazer de condensadores ou seila e fazem atracar os relés dos sensores e assim que esses relés atracam ele assume que econtrou um abstacolo e começa a virar  :wallbash:

Tens de colocar em serie com o motor um filtro LC, para anular os transitórios, senão o fizeres alem de correntes inversas perigosas vais ter o problema dos reles e mesmo a PIC ficar "louca". Em si a frequencia do filtro, tens de medir a indutância do motor em vazio e carga e depois fazer os calculos triviais para os transitórios.

Outra rasão para uma velocidade tão reduzida é a capacidade do computador a que ele esta ligado  :( mm que quise-se metelo a andar mais rapido, naquele computador não era capas....

A velocidade nos motores de passo tem unicamente a ver com a velocidade com que fazes a comutação dos passos, porque como deves saber cada vez que mudas o estado das saidas fazes um delay. Se alterares esse delay aumentas a velocidade. Para comutação sugiro o uso de um MOSFET, que te garante comutações muito rápidas e permite correntes bastante grandes (5 A ou mais, depende do Mosfet). Outra hipotese é o uso de integrados controladores, tipo o L293D ou outro


A pouca força dos motores Limitão-me no peso do robot, e por vezes ao virar ou ate mm em marcha normal atrasa-se um motor ou outro o que o faz mudar ligeiramente de direcção :mad:

Esse é o problema dos motores de passo, é o pouco binário que tem. Podes fazer batota aumentando a tensão. Quanto ao erro, se queres brincar a sério tens de fazer um controlador de posição, do tipo PID. Mas para isto terás de ter um encoder em cada roda.
Se precisares de mais força, terás de usar os motores de iman permanente, encoder, e respectivo controlador PID de velocidade e posição.


Abraço
« Última modificação: 28 de Junho de 2006, 13:35 por Trifasico »

Offline NuGuN

  • Ah e tal
  • Unsigned User
  • *****
  • Mensagens: 1212
Re: Primeiro Robot
« Responder #8 em: 28 de Junho de 2006, 18:08 »
Citar
Como dizem ali os nossos amigos é comprares mais e mais para apostar nesse, ou quem sabe noutros, robots!

Vou mesmo deixar este porcausa das limitações que tem e por ser pequeno demais para o que quero e vou começar a trabalhar num melhor  :w00t2:

Citar
Tens de colocar em serie com o motor um filtro LC, para anular os transitórios, senão o fizeres alem de correntes inversas perigosas vais ter o problema dos reles e mesmo a PIC ficar "louca".

Eu não utilizei nenhuma PIC  :biggrin: , o controlo é todo feito atravez de software, dai eu dizer que o computador me limita a velocidade dos motores. Para rodar os motores tenho um código deste genero:


Código (Visual Basic): [Seleccione]
Do While CompDesvia > 0
Aqui1:
    Out LPT1, Gera_Saida_MS_Frente(NPino)
    DoEvents
   
    'Comprimento2 = Comprimento2 - 1
   
    Espera2 = Espera
   
    Do While Espera2 > 0
        Espera2 = Espera2 - 1
    DoEvents
    Loop
   
    NPino = NPino + 1
   
    If NPino > 7 Then
        NPino = 0
        GoTo Aqui1
    End If
   
    CompDesvia = CompDesvia - 1
DoEvents
Loop


"Out LPT1, Gera_Saida_MS_Frente(NPino)" é o comando que utilizo para enviar os sinais para a porta paralela atravez de uma DLL


"CompDesvia" é a variavel que contem o numero de passos


Do While Espera2 > 0
        Espera2 = Espera2 - 1
    DoEvents
Loop

Este é o código que faz o compaço de espera entre cada passo do motor, e é a esta parte que me refiro quando digo que o PC tembem tem influencia na velocidade dos motores. Quanto mais potente for o PC mais rápido vai fazer este ciclos e mais rápido vai o motor rodar..


Sei que a maneira como fiz pode não ser a mais correcta :-[ mas o curso onde estou não tem mt a ver com robótica... apenas damos umas bases de electronica. Andei apesquisar como tudo istu funcionava e decidi fazer assim...


Citar
Para comutação sugiro o uso de um MOSFET, que te garante comutações muito rápidas e permite correntes bastante grandes (5 A ou mais, depende do Mosfet). Outra hipotese é o uso de integrados controladores, tipo o L293D ou outro

Foi mesmo esse integrado que utilizei(L293D), inicialmente esta tambem a pensar meter MOSFET's(k1118) nas saidas do integrado mas depois decidi não os meter lá  :P


Já agora deixo aqui em anexo o programa para terem uma ideia ;)

cumps
« Última modificação: 28 de Junho de 2006, 18:19 por NuGuN »

Offline jorruivo

  • void
  • *
  • Mensagens: 70
Re: Primeiro Robot
« Responder #9 em: 28 de Junho de 2006, 18:26 »
olá

os link dos filmes não funcionam, eu gostava de ver os filmes...

tas a usar a porta paralela?? 8 entrada e 5 saidas xegam pa um robot ou tas a usar shifts registers ???

Offline Trifasico

  • void
  • *
  • Mensagens: 38
Re: Primeiro Robot
« Responder #10 em: 28 de Junho de 2006, 18:55 »
Eu não utilizei nenhuma PIC  :biggrin: , o controlo é todo feito atravez de software, dai eu dizer que o computador me limita a velocidade dos motores. Para rodar os motores tenho um código deste genero:


Primeiro estás a fazer uma espera, delay, à martelo. Ou seja estás a fazer com que o processador fique entretido a fazer qualquer coisa, e assim provocar um delay. Pode-se fazer assim, mas geralmente è má ideia, porque podes ter processos em background que necessitem do processador. No PC não é tão critico mas em PICs é bastante.
Ora o que se customa fazer é criar uma interrupção por software ou hardware. Nas PICS usa-se o RTI (real time interrupt) e confuguras o registo para a cada x tempo provocar uma interrupção. Ou seja imagina que tinhas o RTI a disparar a cada 100 ms. Se quisesses esperar 500 ms, bastava teres um contador até 5.

Quanto à influencia do PC na velocidade de comutação das portas, não é por ai. Porque tu consegues fazer disparos na porta muito rápidos. A questão aqui, e para não estar a qui a encher muito o post, é para alterares a velocidade só mexes no delay. Agora porque razão existe esse delay, e porque razão tem de haver sempre ?, é que tu ao dares um pulso, o motor leva algum tempo até mover-se para a posição correcta. Se não fizesses este delay o motor começava a perder passos e mesmo não andava, tipo andava pra frente depois andava para trás.

A questão que te levou a pensar que quanto mais rápida é o PC maior será a velocidade do motor, foi de usares a tal solução a martelo. Ora cada instrução no processador do PC demora x segundos, mas se o clock do PC for mais rápido essa instrução já demora menos do que os x segundos. Isto não quer dizer que o teu motor é mais rápido consoante o PC. Se assim fosse era um erro grave de engenharia ...
Ou seja altera o teu ciclo de espera e vais ver como o motor fica mais rápido.


Mas agora em offtopic, continua com o gosto pela robotica, porque infelizmente muita gente anda em eng electrotecnica porque tem saida, mas depois é a desgraça, nem num ferro de soldar sabem pegar  :rant_01:  :mad:

Offline pedrotuga

  • Stack Overflow
  • ******
  • Mensagens: 6792
  • Electricista da casa
    • Querymash
Re: Primeiro Robot
« Responder #11 em: 28 de Junho de 2006, 19:02 »
pa... poe aí umas fotos... os filmes n são muito praticos para uma primeira olhadela

Offline NuGuN

  • Ah e tal
  • Unsigned User
  • *****
  • Mensagens: 1212
Re: Primeiro Robot
« Responder #12 em: 28 de Junho de 2006, 21:52 »
Citar
olá

os link dos filmes não funcionam, eu gostava de ver os filmes...

tas a usar a porta paralela?? 8 entrada e 5 saidas xegam pa um robot ou tas a usar shifts registers

Vê melhor os links eu conssigo fazer o download ;)

Sim estou a utilizar a Porta Paralela 8 saidas para os 2 motores e 2 entradas para os sensores nada mais.


Fotos não coloqueia ja aqui porque me esqueci :P sexta feira tiro umas e meto aqui;)

Agora posso apenas deixar umas fotos da estrotura anterior que depois tive de mudar porque desta forma os motores não tinhão força  :down:

Trifasico Obrigadão pelas dicas ;)

Eu estou a pensar em seguir robotica talvez daqui a um ano vou tentar entrar no IST.. vamos la ver se consigo :D, e agora ando a tentar perceber como funcionam os PIC's para começar a desenvolver outro robot, mas desta vez mais proficional  :cheesygrin:



cumps










« Última modificação: 28 de Junho de 2006, 21:55 por NuGuN »

Offline d_pintassilgo

  • David Pintassilgo
  • Administrador
  • Stack Overflow
  • ******
  • Mensagens: 7484
  • David Pintassilgo
    • http://david.pintassilgo.com
Re: Primeiro Robot
« Responder #13 em: 28 de Junho de 2006, 21:58 »
Muito fixe mesmo!!! vou ver os videos :D

Offline QuickFire

  • aka. Pedro Diogo
  • Unsigned User
  • *****
  • Mensagens: 2270
  • Olhóóóó peixe fresquinho!
Re: Primeiro Robot
« Responder #14 em: 28 de Junho de 2006, 22:22 »
Olha um futuro colega :D Eu também em princípio vou entrar para o IST no curso de LEEC (que posteriormente vai ter robotica no 4 ou 3º ano) :D