• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

NuGuN

Primeiro Robot

29 mensagens neste tópico

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 ;)

Video 1 Tráfego Nacional

Video 2 Tráfego Nacional

Estejam a vontade para criticar tirar duvidas... ca estarei  :cheesygrin:

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ;)

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim senhor :cheesygrin: Olha que para primeiro robot está bem porreirito :P

Podias era meter ai dois motores de 100cv para isso andar mais pá! ;) Kidding :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ;)

cumps

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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  :cheesygrin:

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:

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...

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á  :cheesygrin:

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

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  :mad:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pa... poe aí umas fotos... os filmes n são muito praticos para uma primeira olhadela

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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 :cheesygrin:

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 :D 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 :P

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

cumps

1.JPG

2.JPG

3.JPG

4.JPG

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha um futuro colega ;) 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) :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja consegui ver os filmes

ta muito fixe, tambem tou a pensar fazer o meu primeiro robot, mas nao sei por onde começar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acabei o 12º este ano,e tb quero ver se entro em eng. electrónica em aveiro.desde os 3 anos k desmonto tudo e + alguma coisa.e o primeiro robot k fiz ja la vao uns anitos.

Mas agora sobre esse robot.

Primeiro que tudo,nao me parece muito apropriado o uso de motores passo-a-passo no robot.

realmente dão-te um controlo exepcional para fazeres essas curvas de 90º,mas é desnecessário,já k o motor por mais forca que tenha esá sempre em esforço.

Normalmente utilizam-se motores servo para as rodas dos robots. são um bocado caros (30euros cada)

mas sem dúvida dão-te, no minimo, 3kgf de binário, o k chega a vontade! normalmente os motores servo sao utilizados para movimentos limitados (0º, 90º e 180º) ou seja, n dao a volta completa.portanto ao comprares os motores, tens de os desmanchar, retirar o bloqueio (numa roda dentada) e retirar o circuito e fazer ligação directa ao motor.

Os motores servo funcionam por pwm (pulse width modulation) e possuem no seu interior um circuito que detecta a duração dos impulsos,e roda o motor para certos ângulos (um impulso de 1.25ms-> 0 graus. 1.50 ->90º 2ms -> 180º). a parte mecânica, é apenas um motor normal de corrente contínua, e um redutor. e é esse redutor que faz toda a diferenca,e o que tu realmente precisas.

quanto aos mosfets, e ao l293d. O l293d é uma ponte em H.o k dá jeito para inverter o sentido dos motores.deve ter sido para isso k o usaste. quanto aos mosfets,realmente podes comutar uma grande corrente,mas tu num robot desse tamanho,se consomes 5 amperes para o por a andar, é realmente um abuso! Ja agora,sugiro.te colocares os motores num circuito de alimentacao separado(se calhar até ja fizeste isso). Utilizas o l293d para os controlares.

depois de meteres os motores servo,para controlares a velocidade (que passará a ser demais) utilizas pwm para os alimentares em intervalos de tempo regulares (18ms ligado, 2desligado, p exemplo).

espero ter ajudado [ ]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela dicas ;)

Eu quenado comessei pensei em utilizar Mosfet's mas de não utilizei, e utilizei motores de passo porque não conheço o funcionamento dos servos (agora ja sei mais um pouco). Por exemplo no motor de passo queria que ele roda-se 180º dava um deteterminado numero de passos, com um servo consigo ter este controlo?

Encontrei estes links com controlos para servos, será que servem para issu que falaste ou tenho de fazer outra coisa ??

http://www.miniplanes.net/SERVO2.GIF

http://www.miniplanes.net/SERVO3.GIF

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem porreiro :) Eu provavelmente também vou arranjar alguns motores desses para começar a criar qualquer coisa nas férias :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Encontrei estes links com controlos para servos, será que servem para issu que falaste ou tenho de fazer outra coisa ??

http://www.miniplanes.net/SERVO2.GIF

http://www.miniplanes.net/SERVO3.GIF

Se usares uma PIC, dependendo dela podes ter já um PWM, mesmo usando o PC podes fazer, usando software. Só que para isto precisas de um kernell de tempo real, porque como o windows é multitarefa seria dificil conseguires ter os tempos pretendidos.

Eu usaria uma PIC, que comunicava com o PC via RS232, e a PIC controlava os motores/sensores. Assim o PC só comandava a alto nivel as tarefas, basicamente um driver de hardware ;)

Para aprenderes umas cenas porreiras de robos, sugiro, que me deu muito jeito, o site da seatle robotics. Concretamente para servos podes ver aqui http://www.seattlerobotics.org/guide/servos.html

Basicamente o que um servo faz é um controlador P (proporcional) de posição. Ou seja através de um enconder, podes saber quanto é que rodou o motor. A partir daqui se ele para rodar 180º tinha de dar 10 pulsos, se rodou 11, tem de rodar 1 no sentido contrario. O servo já faz isto. Mas nada impede que tu pegues num motor DC ou AC, numa caixa de redução (rodas dentadas) e num encoder, que pode ser o de um rato velho. Depois por software (usando uma PIC) fazes o controlador de posição. Repara que isto seria um servo de alta precisão, já que os comerciais, mais baratos apenas usam um potenciometro.

Se usares uma PIC com PWM, controlar isto é "canja de galinha" :P, basta pores o tempo que queres no registo, e ele roda os graus que queres, tipo 1.50 ms, 90 graus ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais uma vez obrigado pelas dicas :P

O meu grande problema é que o meu conhecimento na área da electrónica é mt reduzido e de PIC's não percebo quase nada, ando agora a tentar aprender a trabalhar com ele para tentar fazer alguma coisa  ;)

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora