LusoRobótica - Robótica em Português

Software => Software e Programação => Tópico iniciado por: andnobre em 02 de Fevereiro de 2009, 22:15

Título: robo com infravermelhos
Enviado por: andnobre em 02 de Fevereiro de 2009, 22:15
ola a todos
alguem sabe qual e o codigo ou dicas do codigo p este robo? é tipo o "smalluino" mas com o sensor infravermelhos.
http://lab.guilhermemartins.net/?p=288 (http://lab.guilhermemartins.net/?p=288) ou http://lab.guilhermemartins.net/?p=288. (http://lab.guilhermemartins.net/?p=288.)
podem dar uma ajuda? sff
abracos
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 02 de Fevereiro de 2009, 23:50
o guilherme anda por aqui, pode ser que tenhas sorte.. :)
Título: Re:robo com infravermelhos
Enviado por: guibot em 03 de Fevereiro de 2009, 00:11
apenas traduzi o tutorial para português.. nunca programei picaxe   8)
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 03 de Fevereiro de 2009, 00:15
pronto. n tens sorte..  :-\
Título: Re:robo com infravermelhos
Enviado por: guibot em 03 de Fevereiro de 2009, 00:24
mas se olhares bem para o código está tudo comentado .. é relativamente simples de entender as rotinas

Título: Re:robo com infravermelhos
Enviado por: TigPT em 03 de Fevereiro de 2009, 00:57
Fica aqui, retirado do LMR, da autoria do fritsl.

Código: [Seleccione]
Symbol dangerlevel = 70 ' how far away should thing be, before we react?
symbol turn = 300 ' this sets how much should be turned
symbol servo_turn = 700 ' This sets for how long time we should wait for the servo to turn (depending on it´s speed) before we measure distance

main: ' the main loop
readadc 1, b1 ' read how much distance ahead
if b1 < dangerlevel then
gosub nodanger ' if nothing ahead, drive forward
else
gosub whichway ' if obstacle ahead then decide which way is better
end if
goto main ' this ends the loop, the rest are only sub-routines


nodanger:' this should be your combination to make the robot drive forward, these you most likely need to adjust to fit the way you have wired your robots motors
high 5 : high 6 : low 4 : low 7
return


whichway:
gosub totalhalt ' first stop!

'Look one way:
gosub lturn ' look to one side
pause servo_turn ' wait for the servo to be finished turning
readadc 1, b1
gosub totalhalt


'Look the other way:
gosub rturn ' look to another side
pause servo_turn ' wait for the servo to be finished turning
readadc 1, b2
gosub totalhalt

' Decide which is the better way:
if b1<b2 then
gosub body_lturn
else
gosub body_rturn
end if
return

body_lturn:
high 6 : low 5 : low 7 : high 4 ' this should be your combination that turns the robot one way
pause turn : gosub totalhalt
return

body_rturn:
high 5 : low 6 : low 4 : high 7 ' this should be your combination that turns the robot the other way
pause turn : gosub totalhalt
return

rturn:
servo 0, 100 ' look to one side
return

lturn:
servo 0, 200 ' look to the other side
return

totalhalt:
low 4 : low 5 : low 6 : low 7 ' low on all 4 halts the robot!
Servo 0,150 ' face forward
wait 1 ' freeze all for one second
return
Título: Re:robo com infravermelhos
Enviado por: guibot em 03 de Fevereiro de 2009, 01:06
Tiago, não queres traduzir isto para C (Arduino) ??   :P
Título: Re:robo com infravermelhos
Enviado por: TigPT em 03 de Fevereiro de 2009, 01:09
Tiago, não queres traduzir isto para C (Arduino) ??   :P
Fica para amanha ;)

Basicamente é o que vai ser o Smalluino V2.0, com uma ou duas coisas a mais.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 03 de Fevereiro de 2009, 12:07
oi a todos muito obrigado mais uma vez a vc... pela atenção se quiserem posso dar o meu msn.
como eu n gosto nada de programacao e n entendo la muito mas faço um esforço e o arduino ate tem ajudado.
abraço e estou ansioso por essa versao.
depois eu colo o meu robo aqui que ja esta contruido,mas comandado pelo comando da wii.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 00:19
alguem pode dar uma luzes posso tentar traduzir o programa original p C do arduino
abracos
Título: Re:robo com infravermelhos
Enviado por: guibot em 05 de Fevereiro de 2009, 00:23
eu posso-te ajudar com o Arduino.. se quizeres podemos ir trabalhando porções de código aos poucos
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 00:29
ok assim vou aprendendo ja que estou desempregado.
abracos
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Fevereiro de 2009, 01:02
ola a todos
alguem sabe qual e o codigo ou dicas do codigo p este robo? é tipo o "smalluino" mas com o sensor infravermelhos.
http://lab.guilhermemartins.net/?p=288 (http://lab.guilhermemartins.net/?p=288) ou http://lab.guilhermemartins.net/?p=288. (http://lab.guilhermemartins.net/?p=288.)
podem dar uma ajuda? sff
abracos

O código que o Tig meteu aqui em C Arduino, pode precisar de alterações mas creio que é basicamente isto:

Código: [Seleccione]
#define dangerlevel 70
#define turn 300
#define servo_turn 700
#define sensorPin 0
#define servo 10

int b1, b2;
void main (){
b1 = analogRead(sensorPin);
if (b1 < dangerlevel) nodanger();
else whichway();
}

void nodanger(){ //esta funçao parece-me que define a rotaçao dos motores, isto é, poe-nos a andar pa frente, 1 motor ligado aos pinos 5 e 4 e outro aos pinos 6 e 7
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
}

void wichway(){
totalhalt();
lturn();
delay(servo_turn);
b1 = analogRead(sensorPin);
totalhalt();
rturn();
delay(servo_turn);
b2 = analogRead(sensorPin);
totalhalt();
if(b1<b2) body_lturn();
else body_rturn();
}

void body_lturn(){
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
delay(turn);
totalhalt();
}

void body_rturn(){
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(4, lOW);
digitalWrite(7, HIGH);
delay(turn);
totalhalt();
}

void rturn(){
analogWrite(servo, 102);  // Estes valores podem e devem ser alterados dependendo da posiçao do servo e do tipo
}

void lturn(){
analogWrite(servo, 152); // Estes valores podem e devem ser alterados dependendo da posiçao do servo e do tipo
}

void totalhalt(){
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(4, lOW);
digitalWrite(7, LOW);
analogWrite(servo, 127); // Estes valores podem e devem ser alterados dependendo da posiçao do servo e do tipo
delay(1000);
}



Espero ter ajudado :D
Título: Re:robo com infravermelhos
Enviado por: TigPT em 05 de Fevereiro de 2009, 01:05
Obrigado pela ajuda tr3s, tenho estado com stack overflow de tarefas agendadas, desculpem se não posso ajudar mais nesta altura.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 13:27
obrigado pela ajuda vou trabalhar no codigo hj a tarde...
abraços
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 16:19
mas o codigo em cima e para motores de dc e nao servos.
acho que havera  uma diferença.
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 05 de Fevereiro de 2009, 16:23
há diferenças, sim..

vê isto: http://www.ladyada.net/make/mshield/use.html (http://www.ladyada.net/make/mshield/use.html)
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Fevereiro de 2009, 16:35
Sim o código é para motores DC como método de deslocação, contudo tb tem código para controlar o servo onde está montado o Sensor.
:D
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 17:23
sim eu sei mas como eu tenho 3 servos dois p as rodas e outro p o infravermelho ...
ja tirei uns erros do codigo mas ainda falta este:

error: two or more data types in declaration of 'main

consegues dar umas luzes?
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Fevereiro de 2009, 17:31
sim eu sei mas como eu tenho 3 servos dois p as rodas e outro p o infravermelho ...
ja tirei uns erros do codigo mas ainda falta este:

error: two or more data types in declaration of 'main

consegues dar umas luzes?

Claro, desculpa em vez de main é loop :P é o habito em fazer as cenas para PIC... :P

Código: [Seleccione]
void loop(){
b1 = analogRead(sensorPin);
if (b1 < dangerlevel) nodanger();
else whichway();
}
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 17:48
novo erro 
In function 'void loop()':
error: 'whichway' was not declared in this scope

penso que na questao de motores p servo e fazer umas modificações mas tb ja estou a ler o link que deste.
obrigado
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Fevereiro de 2009, 17:54
Falta um 'h' na função void whichway() :P
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Fevereiro de 2009, 18:20
Couldn't determine program size: C:\Documents and Settings\andnobre\Os meus documentos\Arduino\arduino-0012\hardware/tools/avr/bin/avr-size: 'C:\DOCUME~1\ANDREA~1\DEFINI~1\Temp\build34093.tmp\carroinfraredservo.hex': No such file

que erro e este ?
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Fevereiro de 2009, 18:30
Ve lá se não falta por aí alguma chaveta ou assim...

Ja sei o que é, faltava isto,

void setup(){}

é estúpido... a função não é usada... mas o compilador precisa dela pq na função main que o IDE chama na compilação vem la:
...
setup();
for( ; ; ) loop();
...

Se ele n tiver la esta função no ficheiro que estamos a escrever devia declará-la vazia no mínimo...
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 17:22
bem estive a tentar modificar o programa para servos e nao motores dc.
tipo o programa e feito p 2 motres dc e um motor servo.
bem eu tenho tudo servos.
alguem pode dar umas luzes?
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 17:28
explica-te melhor e pode ser que aqui o noob te dê umas luzes.. o que é k tu queres fazer??
Título: Re:robo com infravermelhos
Enviado por: Fifas em 06 de Fevereiro de 2009, 17:31
o  codigo que esta atras esta feito para motores dc, e ele queria para servos :P é isso certo?
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 17:38
sim e isso mesmo ...
o que eu ando a errar?
tenho andado a ver o codigo nem sei qual e o pino p o sensor infravermelho nem para o servo que anda com ele a volta ( claro n kero que faça 360º)
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 17:45
ui.. n vi o código, mas se já andas a brincar com iv's, tás um (ou mais) passo(s) à frente (de mim)..

mas se o teu problema for só com o servo eu posso ajudar..

tás a falar dum servo a dar 360? só modificado..

tens uma forma mt simples de trabalhar com servos e com o angulo em queres que ele descreva.. repara neste código:

Código: [Seleccione]
#include <ServoTimer1.h>

ServoTimer1 servo1;

void setup() {
  Serial.begin(9600);     
  servo1.attach(9);
}


void loop() {

  servo1.write(90);
  delay(1000);

  servo1.write(0);
  delay(1000);

  servo1.write(90);
  delay(1000);

  servo1.write(180);
  delay(1000);

  servo1.write(90);
  delay(1000);

}

este código faz a rotação de um servo de 0 a 180 graus, passando pelo intermédio 90 graus.. (se queres o servo a rodar um iv a 180 graus isto é mais ou menos o que tu precisas) o servo tá ligado da seguinte forma: branco/amarelo ligado ao pin 9, vermelho ao pin de 5v e preto ligado ao pin GND..

modifico o post só pra deixar aqui a biblioteca servotimer1 (a extraír na pasta do arduino, em hardware/library/ )
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 17:49
certo mas isso é o código para o servo que anda com o sensor as costas :D  mas o que eu tenho se fazer p que o outros dois andem?? tipo desviar dos obstaculos? fente traz etc... usando o codigo que estava a ser feito ?
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 17:54
mas tu tens os servos modificados para rotação contínua??

onde é k tá o código k tás a falar? posta aí, pa dar uma olhada..
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 18:06
porque que não utilizas o código do smalluino ?
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 18:19
sim eu tenho os servos em rotacao 360º
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 18:21
posta código.. ou então faz como o tig diz, usa o do smalluino..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 18:39
epa as bruxas andam aqui... do tipo tenho o alimentacao no Vin e GND e nao funciona o programa esta quieto o robo so quando coloco nos 5V e que o robo anda mas so as voltas...
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 18:42
Weard...

Podes explicar melhor?
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 18:44
tenho as ligacoes todas feitas tenho a alimentao no Vin e GNd com diz no pdf faço a compilacao do prgrama envio p o arduino depois ligo o robo e ele andas as voltas e nao sai dai sempre as voltas....
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 18:49
Calibraste os servos?

Para calibrar os servos faz-se um programa que manda 127 e depois com uma chave de fendas rodas o parafuso até o servo tar totalmente parado, sem sequer tremer (pode demorar alguns minutos a conseguir o ponto pois ao tirar a chave ele roda ligeiramente)
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 18:52
ainda bem k avisas (agora).. lol.. :D :P

(as voltas k eu dei por causa disso até perceber o k era.. lol)
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 18:54
mas já agora, o 127 faz o quê??

eu acertei-os com o angulo de 90º..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 18:55
bem os meus servos modifiquei do tipo tirei o potenciometro depois coloquei fiz um divisor de tensao com duas resistencias de 10K.
eu vi esta modificacao na elector de agosto.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 18:56
ja agora que programa e esse dos 127 desculpa la todo este trabalho.
Título: Re:robo com infravermelhos
Enviado por: guibot em 06 de Fevereiro de 2009, 18:59
Citar
bem os meus servos modifiquei do tipo tirei o potenciometro depois coloquei fiz um divisor de tensao com duas resistencias de 10K.
eu vi esta modificacao na elector de agosto.

tiraste o batente certo?
Título: Re:robo com infravermelhos
Enviado por: metRo_ em 06 de Fevereiro de 2009, 18:59
mas já agora, o 127 faz o quê??

eu acertei-os com o angulo de 90º..

0     -     0º
127 -   90º
255 - 180º

127 vai colocar o servo no meio em 90º...
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 19:00
sim sim, fizeste bem, agora tens que os calibrar.

Ao enviar 127, estamos a mandar o servo ir para o meio, pois o analogWrite varia de 0 a 255, e o 127 é o meio.

Assim calibramos o servo para no meio ficarem parados, assim conseguimos mandar 127 para parar o servo, 120 para andar num sentido, 130 para andar no outro.

Código: [Seleccione]
int servo = 11;

void setup()
{
  pinMode(servo, OUTPUT);
}

void loop()
{
  digitalWrite(servo,127);
  delay(1000);
}
Utiliza este código e liga o servo no pin 11 para o calibrar ;)
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 19:02
hmmm.. obrigado, metro_ .. não sabia disso.. nunca fiz isto como o tig aki tá a dizer, mas hei-de experimentar..
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 19:03
No fundo, todos os servos acabam por sair da fábrica ligeiramente diferentes pois não há duas coisas iguais.

Assim podemos calibra-los com esse potenciómetro de ajuste que eles trazem para que fique exactamente como queremos, evitando fazer os ajustes no código.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 19:03
da um erro
In function 'void setup()':
error: 'ledPin' was not declared in this scope
Título: Re:robo com infravermelhos
Enviado por: guibot em 06 de Fevereiro de 2009, 19:04
substitui 'ledpin' por 'servo'
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 19:04
Código: [Seleccione]
int servo = 11;

void setup()
{
  pinMode(servo, OUTPUT);
}

void loop()
{
  digitalWrite(servo,127);
  delay(1000);
}

Foi de fazer à pressa, este está correcto, desculpa.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 19:11
bem o servo nem se mexe .....
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 19:12
tens o amarelo/branco ligado ao pom 11??
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 19:13
ate te posso dar o meu msn p verespor web cam as ligacoes mas esta tudo com vc dizem
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Fevereiro de 2009, 19:15
então em vez de 127 põe 130 e diz se ele roda..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Fevereiro de 2009, 19:26
ele mexe mas e muito pouco n faz os 90º
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Fevereiro de 2009, 19:28
Os servos alterados para rotação continua quando se dá valores diferentes de 127, ficam a rodar constantemente nesse sentido, não se consegue indicar uma posição de destino. Só a velocidade de rotação e direcção!

Para se poder dar a posição que se quer o servo, tem que ser um servo não alterado.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 09 de Fevereiro de 2009, 18:26
bem fiz alteracao aos meus servos coloquei um multivoltas de 50K bem era o que havia no mercado algum problemas ja se resolveram... os programas q colocaram por aqui ja funciona ou pelo menos faz o que o programa manda fazer.
mas ainda n continuo a entender pk nao faz o o programa do smalluino.
pk ainda continua as voltas as voltas e nao sai dali.
Título: Re:robo com infravermelhos
Enviado por: TigPT em 09 de Fevereiro de 2009, 22:42
multivoltas de 50K?

não entendi  ??? :P
Título: Re:robo com infravermelhos
Enviado por: andnobre em 10 de Fevereiro de 2009, 00:05
bem o potenciometro multivoltas foi p substituir o divisor resistivo, etve de ser de 50K pk nao havia mais baixo.
Título: Re:robo com infravermelhos
Enviado por: TigPT em 10 de Fevereiro de 2009, 00:16
mas meteste um potenciometro em vez das duas resistencias? se assim é, o servo fica maluco k n sabe para onde andar.

Tens que ter as resistências a simular um potenciómetro sempre a meio, para ele pensar que a roda lá está, e por isso parar quando pwm de 50%



Isso vai para ai uma confusão rapaz, a ver se compro um servo e se faço um vídeo de como fazer a modificação e afinação do inicio ao fim para perceberes bem ;)

Acho que estás a complicar demasiado.
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 10 de Fevereiro de 2009, 00:24
andnobre.. simplifica.. pega no potenciómetro e num multímetro.. põe-o a dar a resistencia que devias ter garantida com as duas resistências (espero n tar a ser confuso), mete-lhe um pingo de super-cola pa esse valor nunca alterar, põe-o dentro do servo num sítio em k n estorve, cola-o, fecha o servo, liga-o ao arduino e experimenta o código k já te demos.. vais ver que tudo passa a funcionar..

mas faz tudo com calma..
Título: Re:robo com infravermelhos
Enviado por: tr3s em 10 de Fevereiro de 2009, 00:47
Vê este link

Calibrar servo (http://www.kronosrobotics.com/Ares101/Adjustmets/Adjservo.shtml)

A ultima linha diz TUDO: " Com uma chave de fendas pequena roda o parafuso la dentro. Roda no mesmo sentido que o servo está a girar até este não girar mais"
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 10 de Fevereiro de 2009, 00:54
n lhe dês ideias, tr3s, o servo já foi modificado, essa dica já n funciona como seria suposto..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 10 de Fevereiro de 2009, 13:58
oi depois de ter configurado como o ricardo reis disse.Mesmo assim os programas do smalluino, tigpt (do 127 depois passar p 130) .
bem eu n sei o que mais fazer em relacao a tudo... bem queria mostrar ao pessoal o meu robo mas n deve ser possivel assim...
se ainda tiverem mais ideias avisem... eu vou andar a pesquisar mais pk n funciona... :-[ :-[
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 10 de Fevereiro de 2009, 14:07
manda um vídeo do robot.. ainda que meio maluco, é um robot.. :P

eu continuo a achar que essas modificações aos servos é k não correram bem, pk o código se funciona pra alguns, tb devia funcionar pra ti..

conseguiste chegar ao valor das duas resistencias (que n sei qual é) com o potenciómetro que puseste nos servos?
Título: Re:robo com infravermelhos
Enviado por: guibot em 10 de Fevereiro de 2009, 14:30
ja agora manda fotos desse servo e das ligações que fizeste, talvez a malta te consiga ajudar melhor
Título: Re:robo com infravermelhos
Enviado por: andnobre em 10 de Fevereiro de 2009, 14:31
bem eu substitui as duas resistencias de 10K pk um multivoltas de 50k(so havia esse na loja) mas depois regulei para 10K e mesmo assim nada de nada. se kiseres dou o meu mail e depois vez por video

Título: Re:robo com infravermelhos
Enviado por: andnobre em 19 de Fevereiro de 2009, 20:06
alguem pode ajudar no programa inicial do projecto?
pelo que sei o programa esta a motores dc.
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 19 de Fevereiro de 2009, 20:27
explica melhor o que precisas, and..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 19 de Fevereiro de 2009, 20:48
bem o que eu queria era ajuda na programacao. Eu queria que o robo anda-se como o do link que eu coloquei no inicio.
Mas o meu robo usa dois servos para mover e para o infravermelhos tenho outro servo.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Março de 2009, 18:53
ca estou eu a voltas dos servos ...
goatava de saber como sei a posicao de paragem dos servos com o programa do tigpt.
e explicar esses valores de posicao 0-127-255;
0-0º;127-90º;255-180º sera isto?
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 05 de Março de 2009, 19:11
nop.. esses valores de 0 a 255 correspondem à velocidade do servo para cada um dos lados.. supostamente 126 ou 127 será o meio, fará com que o servo páre.. mas está sujeito à regulação do mesmo.. não tem a ver com ângulos..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Março de 2009, 22:21
entao como programa do tigpt nao consigo fazer nada com os servos ou seja saber a posicao de parado... mas com o teu programa (ricardo-reis) consigo.
Título: Re:robo com infravermelhos
Enviado por: tr3s em 05 de Março de 2009, 22:31
andNobre, faz um video onde nos mostras em que ponto estás e onde explicas o que fizeste até ao momento, um diagrama ou esquema das ligações que fizeste, mostra-nos o código que tas a usar e diz-nos todo o material que estás a usar!

De outra forma é-nos muito dificil conseguir ajudar-te eficazmente...
Título: Re:robo com infravermelhos
Enviado por: andnobre em 05 de Março de 2009, 23:48
boas encontrei aqui um codigo na net com servo ate esta em anexo o link e tb o codigo mas acho que esta em basic.
por isso ando a tentar modificar p "linguagem arduino".
mas se kiseres ajudar e sempre bem vinda.
mas tenho a duvida que aqueles valor sejam p o meu caso devido as famosas complicacoes dos meus servos.
 :-\ :-\ :-\
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 00:43
Realmente já estou como o tr3s, tens que nos fazer um ponto de situação geral com o máximo de informação pois não sabemos o que estar por traz e pode já estar algo completamente diferente que nunca mais iremos descobrir.

A ver se a plataforma java avança para fazermos depois facilmente códigos destes de debug entre outras coisas.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 00:48
aqui deixo o codigo modificado do original
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 00:53
Isso compila?

Tem defines de keywords iguais para valores diferentes, métodos que não conheço :|

Returns antes do fechar do método :|

Nem sei por onde começar!!!

Ando a fazer o código para o smalluino V2 depois posto para utilizares ;)
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 01:24
aqui estao as fotos.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg26.imageshack.us%2Fimg26%2F8160%2Fimg0092o.jpg&hash=e12b312a32bdf8d76e401982f60195ba1b844082) (http://img26.imageshack.us/my.php?image=img0092o.jpg)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg26.imageshack.us%2Fimg26%2F2302%2Fimg0086e.jpg&hash=b1cf40a0da96becd6b746dbaa086e8ad81f3b988) (http://img26.imageshack.us/my.php?image=img0086e.jpg)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg26.imageshack.us%2Fimg26%2F694%2Fimg0087a.jpg&hash=bcf30ea5d2b4ae1f534ba076dc3a21e7bb85bd31) (http://img26.imageshack.us/my.php?image=img0087a.jpg)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg26.imageshack.us%2Fimg26%2F1446%2Fimg0089t.jpg&hash=e2f7b98a48cc3d68b214e57ed1a855251095ce8d) (http://img26.imageshack.us/my.php?image=img0089t.jpg)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg26.imageshack.us%2Fimg26%2F8160%2Fimg0092o.jpg&hash=e12b312a32bdf8d76e401982f60195ba1b844082) (http://img26.imageshack.us/my.php?image=img0092o.jpg)
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 01:30
sim compila mesmo acredita que sim
eu de programacao n entendo la muito da p ver :-[ :-[ :-[ :-[ :-[
Título: Re:robo com infravermelhos
Enviado por: Fifas em 06 de Março de 2009, 11:26
tá nice ;D

que tipo de material usaste para a base do robo? parece-me cobre de pcb ???
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 11:54
O servo parece ter as ligações correctas,

Tenta fazer:
Código: [Seleccione]
void setup() {
  pinMode(10, OUTPUT);
}

void loop() {
  analogWrite(10, 0);
  delay(2000);
  analogWrite(10,127);
  delay(2000);
  analogWrite(10,255);
  delay(2000);
  analogWrite(10,127);
  delay(2000);
}

E diz-me o que aconteceu ao servo.

Andou, não andou, para onde andou, fez barulho estranho, etc..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 13:43
o servo so anda num sentido (sentido horario) anda e faz uma pausa depois volta andar.
o video
http://www.youtube.com/watch?v=AlNue7Yxal4
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 15:24
Hum.. como previa, o servo ficou ou mal modificado, ou mal calibrado.

Quando faz out 0 deveria de andar num sentido, com o out 127 estar parado, e o out 255 andar no outro sentido.

Experimenta apagar tudo menos o analogWrite(10,127) e o delay, para ver o que ele faz. Prevejo que fique a andar para o mesmo lado, e deveria de ficar parado. Depois diz o que aconteceu para ver como te podemos ir ajudando.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 15:54
pois tens razao ficou andar mas sei que deveria ficar parado,mas com o codigo do ricardo que eu configurei os servos ficou bem andava p um lado e p o outro.
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 15:56
Ok, ficou a andar porque o potenciometro que deixaste lá dentro não ficou no meio, o que deves fazer agora é

Desmontas o servo e ligas tal como está agora (desmontado) mentes a correr o código de 127, e vais mudando o potenciometro de sitio até ele ficar parado. Quando tiver ele está calibrado e podes então deixa-lo assim e montar.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 16:01
mas sempre como teu codigo
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Março de 2009, 16:08
sim, é melhor com o código dele pk te dá a possibilidade de controlar velocidade de rotação..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 16:29
parei o servo no 127 como indicas depois testes com o codigo normal e o gajo nada
mas qd eu parei o servo aos 127 o servo parece que esta a vibrar entendes o que eu quero dizer?
Título: Re:robo com infravermelhos
Enviado por: ricardo-reis em 06 de Março de 2009, 16:37
é pk n tá mesmo parado.. falta um jeitinho minimo pra um dos lados..
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 16:51
o servo n pode estar a vibrar do tipo estar em carga mas n mexe.
Título: Re:robo com infravermelhos
Enviado por: TigPT em 06 de Março de 2009, 17:04
Exacto, como já te disseram esse vibrar é normal da fase de calibração, terás que dar pequenos toques até ficar totalmente parado, pode demorar bastante tempo pois o simples tirar da chave pode fase-lo voltar a vibrar.

Quando ele tiver totalmente parado em 127, fica pronto funcionar para os dois lados a velocidades diferentes. ;)
Título: Re:robo com infravermelhos
Enviado por: andnobre em 06 de Março de 2009, 17:15
bem eu n consigo mesmo fazer parar  de vibrar n sei o q fazer mesmo ...
 :-\ :-\
Título: Re:robo com infravermelhos
Enviado por: TigPT em 07 de Março de 2009, 00:59
Não desesperes agora que estás quase a conseguir ficar com o servo bem modificado.

Para teres uma ideia, eu ontem tive a calibrar os meus servos de rotação continua, e mesmo já com alguma experiência demorei cerca de 5~10min a conseguir fase-los deixar de vibrar (para cada um)... Sei que é desesperante andar ali a dar toquezinhos mas é assim que se faz um bom servo para depois o poder parar sem que ele fique em esforço.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 07 de Março de 2009, 15:08
depois de uma hora a tentar parar o servo parei por completo.
bem vou fazer uma pausa infelizmente.
 ??? ???
Título: Re:robo com infravermelhos
Enviado por: TigPT em 07 de Março de 2009, 16:30
depois de uma hora a tentar parar o servo parei por completo.
bem vou fazer uma pausa infelizmente.
 ??? ???
Boa sorte.. entretanto se encontrar melhores técnicas eu digo-te.
Título: Re:robo com infravermelhos
Enviado por: andnobre em 07 de Março de 2009, 18:57
qd tu falas de vibrar e quando ja tens o teu servo ja parado?
é assim tenho 2 situacoes do servo ja parado mas esta sempre a vibrar e nao sai daquele estado e temos qd o servo muda de posicao ( tipo da direita p a esquerda) e eu tenho de encontrar a posicao de viragem ...certo é ai que temo de ter o nosso servo parado?
qual delas é?
sei que parece confuso mas de verificares tens estas duas situacoes nos servos.
ja dessoldei o potenciometro original e coloquei resistencias de 10K e nada ja coloquei um multivoltas e fico na sitacao anteriormente referida com o original acontece a mesma situacao.