• Welcome to LusoRobótica - Robótica em Português.
 

O meu primeiro 'bot!

Started by amando96, 28 de February de 2009, 19:33

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TigPT

Sim senhor, temos aqui um belo TT com aquelas rodas ;)

Continua que está a ficar muito bom, dá gosto ver! Fiquei com vontade de ir agarrar nos meu que está em standby :S


amando96

Quote from: TigPT on 21 de March de 2009, 22:32
Muito bom ;)

Tens ai fotos dos meus em standby
http://lusorobotica.com/index.php/topic,288.0.html
http://lusorobotica.com/index.php/topic,10.0.html


tmb vais por-lhe um braço em cima? eu tmb lol mas estou a preocupar-me com o peso... 700 gramas :S talvez no futuro lhe ponha motores DC...

está mesmo fixe, já anda?

Bem ao meu adicionei um rodízio de cadeira de escritório :P
e fiz uns sensores de lz para colar no para choques, sim´já consegui fazer o programa bem  :o não custou mt...  :-\  ;D

http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action=view&current=100_2523.jpg

o fio azul é 0v o vermelho 5v e o amarelo é do sinal, como os servos básicamente.

http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action=view&current=100_2524.jpg

ficou assim ;D agora é por os sensores do três e ver como vai  :D :D :D


amando96

bem acabei por usar sensores IV do tutorial do tres...

http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action=view&current=100_2568.flv&newest=1

mas quando faltam 14 segundos para o fim do video, ele vareia e depois volta ao normal ??? lol enfim, agora só tem um sensor no mei, mas vou polo na periferia, e outro ainda do lado oposto ;D apenas com uma LED IV para os dois, no meio, em cima do para choques...

enfim, não usei foi o transistor, não tinha PNP por aqui acabei por ligar ao pino 13, e já agora, o pino 13 tem resistencia integrada ou não???

amando96

bem o braço está feito  :D mas um dos servos grandes tem dois dentes partido numa das engrenagens  :-\ quando comçar a escola logo arranjo... mas tirando isso até está engraçado ;D poderia ter escolhido melhor o sítio onde pus o braço  ::) mas não havia mais sitio...

enfim cá esta ele a agarrar no mini-bot  :D
http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action-view&current=100_2569.jpg

Fifas

o invejoso tá a tentar destruir o mini-bot ;D

parabens ;) parece estar muito bom :)

amando96

ps o minibot dorme na gaveta, é mais quente :P ;D
e o outro dorme na mesa...

obrigado :)

amando96

#22
boas.

alguem me poderia explicar porque que este código não funciona, e a maneira de o fazer funcionar?

void loop(){
 val = digitalRead(inPin);
 tim = analogRead(Potpin);            
 tim = map(val, 0, 1023, 0, 10000);  
 if (val == HIGH)        
   {
   myservo.write(66);              
   delay(tim);
   
 } else {                                      
   myservo.write(54);              
   delay(15);  
 }
 }



eu quero que o Potpin controle o delay  :-\

Reonarudo

#23
void loop(){
 val = digitalRead(inPin);
 tim = analogRead(Potpin);            
 tim = map(tim, 0, 1023, 0, 10000);  
 if (val == HIGH)        
   {
   myservo.write(66);              
   delay(tim);
   
 } else {                                      
   myservo.write(54);              
   delay(15);  
 }
 }

Penso que este fosse o teu problema... não tas a ler valores de 0 a 1023 de digital mas sim do analog
Leonardo Marques

amando96

eii obrigado  :)

estive fore destas cenas um tempinho esqueci tudo o que sabia  :-X

amando96

só mais uma coisa, quando eu digo para esperar 10 segundos, tenho de carregar no botão 10 segundos  :-\

como faço para tipo carregar uma só vez rápido e conseguir os mesmos resultados?

Reonarudo

pseudo codigo

prestate = LOW
state=readDigital();
if(state=HIGH && prestate=LOW){
espera();
prestate=HIGH;
}
if(state=LOW && prestate=HIGH)
prestate=LOW;

Acho que basta isso
Leonardo Marques

amando96

#27
Quote from: Reonarudo on 07 de June de 2009, 19:47
pseudo codigo

prestate = LOW
state=readDigital();
if(state=HIGH && prestate=LOW){
espera();
prestate=HIGH;
}
if(state=LOW && prestate=HIGH)
prestate=LOW;

Acho que basta isso


tive de modificar para compilar

deu nisto


void loop(){
 val = digitalRead(inPin);
tim = analogRead(Potpin);            
 tim = map(val, 0, 1023, 0, 10000);  
prestate = LOW;
state=digitalRead(inPin);
if(state == HIGH && prestate == LOW){
delay(100);
prestate=HIGH;
}


if(state == LOW && prestate == HIGH){
prestate=LOW;
}
myservo.write(66);              
delay(2000);

myservo.write(54);              
delay(15);  
}



mas ele só pulsa  :-\

retirei alguma parte fundamental?

Reonarudo

#28
Como disse era pseudo codigo para teres de pensar um cadito  :P

void loop(){
 val = digitalRead(inPin);
tim = analogRead(Potpin);            
 tim = map(val, 0, 1023, 0, 10000);  
prestate = LOW;
state=digitalRead(inPin);
if(state == HIGH && prestate == LOW){
delay(10000); //é suposto serem 10 segundos não é?
prestate=HIGH;
}


if(state == LOW && prestate == HIGH){
prestate=LOW;
}
myservo.write(66);              
delay(2000); //isto é para quê?

myservo.write(54);              
delay(15);   //e isto?
}


Eu não sei para que é o código direcionado... podes indicar-me as tuas intenções? ja percebi que tens um servo um pot e um push o que queres fazer com eles?
Leonardo Marques

amando96

o push vai ser subsituido por um LDR, mas ainda não o tenho, por isso uso o push.

mas é assim, eu carrego no push que vai activar o servo e rodalo uns 17º, e o pot vai determinar o tempo depois de carregar no push que o servo se move.

mas tenho uma glitch, se eu quero que o servo se mova 10 segundos depois de carregar no push, tenho de carregar 10 segundos no push, mas não vai dar assim... =/

tem de ser um só toque num curto espaço de tempo...