LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: AcidDagger em 27 de Março de 2010, 18:36

Título: Smalluino Advanced
Enviado por: AcidDagger em 27 de Março de 2010, 18:36
Estou prestes a começar o meu primeiro projecto com arduino :b Estou so à espera que o material chegue da LR :)

Material:

Arduino

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F10-50-thickbox%2Farduino-duemilanove-com-atmega328.jpg&hash=5d20982f6b72233026e13cff87a3d8686382abb0)
http://loja.lusorobotica.com/microcontroladores/10-arduino-duemilanove-com-atmega328.html (http://loja.lusorobotica.com/microcontroladores/10-arduino-duemilanove-com-atmega328.html)

Dmotor Gear Box

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F81-429-thickbox%2Fdual-motor-gearbox.jpg&hash=84bbee32d611dada9f2fb621464945f9d8a45c25)
http://loja.lusorobotica.com/81-dual-motor-gearbox.html (http://loja.lusorobotica.com/81-dual-motor-gearbox.html)

TAMIYA 70096 OFF-ROAD TIRES

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F132-447-thickbox%2Ftamiya-70096-off-road-tires-2-tires.jpg&hash=f9a5c8c34fa45b4347fbc5c1a43f42c97e0b73ee)
http://loja.lusorobotica.com/132-tamiya-70096-off-road-tires-2-tires.html (http://loja.lusorobotica.com/132-tamiya-70096-off-road-tires-2-tires.html)

Phototransistor

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F64-196-thickbox%2Foptical-detector-phototransistor.jpg&hash=2ceb719cd59d40201f8e8228f98998d93f0c3873)
http://loja.lusorobotica.com/64-optical-detector-phototransistor.html (http://loja.lusorobotica.com/64-optical-detector-phototransistor.html)


Entre outros, mas este são os principais (que eu me lembre)


Esquema de montagem: (teste)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg33.imageshack.us%2Fimg33%2F465%2Fsmalluinoadvanced.jpg&hash=4778c53e0b83689e844c48120f9087223b3106d0)


Alguem me pode confirmar se o scketh que eu fiz está correcto?

Cumprimentos,
AcidDagger :)
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 27 de Março de 2010, 19:16
Sim parece bem :)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 27 de Março de 2010, 19:20
Em principio as cenas chegam na segunda feira, mas amanhã já posto fotos do chassis :b

ja agora, aquele fototransistor da para o robot distinguir o preto do branco?

Título: Re: Smalluino Advanced
Enviado por: metRo_ em 27 de Março de 2010, 19:23
Sim, é esse um dos objectivos dele ;)
Tens aqui um tutorial que explica +- como funcionam: http://lusorobotica.com/index.php/topic,837.0.html (http://lusorobotica.com/index.php/topic,837.0.html)
Título: Re: Smalluino Advanced
Enviado por: Fifas em 27 de Março de 2010, 23:23
Olha o AcidDagger :P Também vais começar na robótica? :D

Tens de arranjar um programazito para desenhar os esquemas melhor :) Esse está um pouco confuso. Vê estes posts:
http://lusorobotica.com/index.php?topic=2173.0 (http://lusorobotica.com/index.php?topic=2173.0)

Eu aconselho o Eagle para esquemas ;)

Tens também o Fritzing (http://lusorobotica.com/index.php?topic=242.0) que é mais simples e em certas partes melhor para este tipo de projectos :)

ps: Peço desculpa responder aqui, mas penso que serve de resposta a este (http://lusorobotica.com/index.php?topic=2164.msg21122#msg21122)  post tambem ;)

Cumprimentos

Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 28 de Março de 2010, 00:05
Boas, claro ^^ algum dia tinha de me iniciar...
Isto com o tempo vai lá :b

Tenho que fazer o esquema de novo que esse tá uma shit xD
Título: Re: Smalluino Advanced
Enviado por: Njay em 28 de Março de 2010, 03:17
Nessa lista de coisas que apresentaste não vejo o driver para os motores (L293D ou equivalente), e sem ele não podes controlar os motores.
Título: Re: Smalluino Advanced
Enviado por: Fifas em 28 de Março de 2010, 13:57
Mas ele tem no esquema, por isso não se deve ter esquecido.

Não percebi uma coisa. Porquê 3 fontes no esquema? São 3 pilhas ou algo assim? :D
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 28 de Março de 2010, 15:18
Sao, 3 caixas de 2 pilhas. 3x2= 6pilhas 6x1.5=9v

Eu nao me esqueci da H-Bridge, so me esqueci de a por no post xD

Mas ta no esquema. Quanto ao eagle nao percebo nada daquilo
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 29 de Março de 2010, 20:44
Oras boas noites,

vou buscar a encomenda amanha aos ctt;

e enquanto espero pelo arduino decidi ir fazendo o meu primeiro código :P

Código: [Seleccione]
int ledPin = 13;     // led no pin 13

void setup ()
{
  pinMode(13, OUTPUT);    // output pin 13
}

void loop() 
{
  digitalWrite(13, HIGH);     // serve para ligar o pin 13
  delay(1000);     // atraso 1s
  digitalWrite(13, LOW);    // desliga o pin 13
  delay(1000);    // como ta na função loop o led pisca de 1 em 1s
}

Estará correcto? :b
Título: Re: Smalluino Advanced
Enviado por: Fifas em 29 de Março de 2010, 21:05
O famoso "Hello World" :)

Sim está correcto ;)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 30 de Março de 2010, 00:22
Quero começar por baixo :b

Assim as quedas sao mais pequenas :)
Título: Re: Smalluino Advanced
Enviado por: TigPT em 30 de Março de 2010, 02:19
Quero começar por baixo :b

Assim as quedas sao mais pequenas :)

Fazes tu muito bem para poderes aprender a levantar-te ;)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 30 de Março de 2010, 20:24
PWM é so nos pinos analogicos certo? o 13 é digital correcto?

cumps,  :D
Título: Re: Smalluino Advanced
Enviado por: senso em 30 de Março de 2010, 20:39
PWM é só nos pinos que dizem pwm por baixo do numero, os analógicos são os onde podes fazer leituras com a ADC.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 30 de Março de 2010, 22:48
Noob question
;D
Título: Re: Smalluino Advanced
Enviado por: senso em 31 de Março de 2010, 00:24
Todas as perguntas têm o direito de ser feitas, não tenhas vergonha em perguntar seja o que for, estamos todos aqui para aprender-mos uns com os outros.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 31 de Março de 2010, 00:40
vergonha? eu?   ;D

Amanhã vai ser enviado o arduino, já ca tenho tudo. So falta mesmo o arduino, espero que sexta ja ca esteja  :P
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 16:56
Boas Tardes  ;D

Ontem adientei alguma coisa enquanto o arduino não chega. Montei a gear box e fiz a base para o robot...

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg534.imageshack.us%2Fimg534%2F6017%2Fdsc00214l.jpg&hash=f7ff091268d5715d13f5080af82a4578d1ca006a)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg706.imageshack.us%2Fimg706%2F2734%2Fdsc00216qv.jpg&hash=9039c5d9f23f247ec1073f85cedde1ff573041fc)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg156.imageshack.us%2Fimg156%2F1724%2Fdsc00218jq.jpg&hash=07d6bbfde13e2dd071e91f9316b65e10b4077cb6)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg405.imageshack.us%2Fimg405%2F715%2Fdsc00220k.jpg&hash=e781d58db6cd1d80597229fe66470b8b557a49ca)

Desculpa lá a má qualidade mas foram tiradas com o telemovel :/


Bem, agora uma pergunta. Que baterias/pilhas usar para a alimentar os motores, arduino e possiveis sensores?  ::)


Cumprimentos,  ;D
Título: Re: Smalluino Advanced
Enviado por: TigPT em 02 de Abril de 2010, 19:36
Começa por 4 pilhas AA ;)

A base está com bom aspecto!
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 19:48
A unica caixa de pilhas que tenho é de 6 e vou utilizar essa. Mas meto as 6 pilhas AA ou uso a 4 em serie e duas em paralelo?  :)

A base do robot ainda precisa de uma limadela... :b
Título: Re: Smalluino Advanced
Enviado por: TigPT em 02 de Abril de 2010, 20:10
6 pilhas dá 9V o que é demasiado para esses motores.

Usa apenas 4 pilhas, e não metas umas em série e outras em paralelo que ainda te metes em alhadas ;)
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 20:33
Não concordo com o TigPT e acho que deves meter 4 em série e 2 em paralelo e se te meteres em alhadas hás-de aprender alguma coisa com isso ;)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 20:41
Bem, os motores funcionam entre 3 e 6v. Então porque não por 3 em serial ligadas em paralelo com outras 3 em série? Assim fico com 4.5v que ja deve dar para os motores... E o arduino opera com que voltagem?

Cumps  ;D
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 20:46
Com os 4.5 o Arduino até funcionava o problema é que é nos limites dos limites e o que vai aocntecer é que os motores no arranque vão pedir mais corrente e isso vai fazer com que a tensão baixe e o atmega faça reset e depois não sabes porque não funciona.

O Arduino funciona entre 7V e 12V recomendados se ligares esta tensão no jack de entrada ou no Vin, ou então os tais 4.5-5V no pino 5V.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 20:56
Entao e se meter 9v no arduino e um regulador de voltagem para os motores? ou entao se alimentar os motores pelo arduino?  :)
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 21:02
Sim,é uma boa ideia.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 21:10
Mas qual delas?  ;D a primeira ou a segunda?  :)
Título: Re: Smalluino Advanced
Enviado por: TigPT em 02 de Abril de 2010, 21:16
O metRo_ referia-se à opção de 9V e regulador de 5V para os motores.
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 21:16
9V no Arduino e tirar os 5V do Arduino para os motores :)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 21:19
Decidam-se  ;D
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 21:31
Dissemos o mesmo ;)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 02 de Abril de 2010, 21:33
Pelo que entendi deve ser ligar o mais das pilhas ao Vin e o menos ao GND. E a alimentação dos motores é feita no pin do arduino de 5v certo?
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 02 de Abril de 2010, 21:48
sim :)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 23 de Abril de 2010, 16:02
Ora boas, depois de já ter lido algumas coisas e fazer algumas experiências ja fiquei um pouco mais familiarizado com o arduino:

Então segue-se as fotos do meu bot  ;D

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00223.jpg&hash=4aef438399d51a5c81a29a6599e92a92bcb42593)

Aqui a placa que segura o arduino:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00221.jpg&hash=f9feda8d3f98d76156d4c78f9f1f446feabb0bf3)

parte de tras:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00227.jpg&hash=d94b9960e54578c5348d989b4f9d78eaeeeb1160)

Frente:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00237.jpg&hash=1a5905387f8cb791151d5e71e3cf93de1b8a5199)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00234.jpg&hash=84addbbf67c5eefb2c6478d46ec407d1d9f03461)

Lado:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00226.jpg&hash=62871431cdf37b66a2a8b14591d41225b7f08f87)

Cima:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00225.jpg&hash=ce74160fb5f1b263424476ffaf46eda8a137fa6e)


Bem, ainda lhe falta muita coisa.

Material que está para chegar:
-Sensor sharp + servo
-QRD1114 para o robot nao cair, ou seja para saber quando nao existe "chao"
-QTR-8RC Reflectance Sensor Array para seguir linhas
Digital Temperature Sensor Breakout - TMP102 para indicar a temperatura ambiente
Basic 16x2 Character LCD

Quando chegar o material dou novidades :b

Tenho de fazer uns videos do bicho a mexer-se :P

Cumps
Título: Re: Smalluino Advanced
Enviado por: DanBar em 23 de Abril de 2010, 17:19
Está muito bom. Essas rodas são brutais  :o ;)
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 23 de Abril de 2010, 18:01
pois sao, so tem um defeito  ::) é na zona em que a borracha esta em contacto com o plastico (amarelo). Não agarra bem ai. mas nada que um pingo de cola nao resolva.

De resto 5*, acho que foi uma boa compra.
Título: Re: Smalluino Advanced
Enviado por: amando96 em 23 de Abril de 2010, 18:09
está com bom aspecto, o que é aquilo por baixo da madeira e do arduino? battery pack?
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 23 de Abril de 2010, 19:03
Sim, é a caixa de pilhas  :) Só que ainda não estão ligadas  :P
Título: Re: Smalluino Advanced
Enviado por: GnobarEl em 14 de Maio de 2010, 13:45
Como está este projecto?
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 14 de Maio de 2010, 19:39
um pouco mais avancado, e já tenho algum codigo feito... logo meto fotos  ;D
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 14 de Maio de 2010, 19:52
Aqui está
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg692.imageshack.us%2Fimg692%2F3691%2Fimg0962sx.jpg&hash=3b3587a532b931bae0203a8035d735349efbdf4a)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg143.imageshack.us%2Fimg143%2F9899%2Fimg0959r.jpg&hash=81d8a166f052f57a92cf2e0770c7d35251ad76d5)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg697.imageshack.us%2Fimg697%2F599%2Fimg0956r.jpg&hash=4fa2f2feb8f746fae77079e270c8904665a1c57f)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg204.imageshack.us%2Fimg204%2F1742%2Fimg0951h.jpg&hash=46d01376c86777c4606ab60d53914d3cda8efbd9)

O código vem mais logo com um video :b



Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 14 de Maio de 2010, 22:38
Código: [Seleccione]

/*
**************************************************************
Smalluino Advanced development code
v1.0 14/05/2010
by André Delgado
**************************************************************
*/

//inputs
#define sharp 2 // sensor ir no pino 2
int average = 0;

//outputs
#define led_vermelho 12 // led vermelho no pino 13
#define led_verde 13 // led verde no pino 12
int motor_esquerdo [] = {5,6}; // motor esquerdo nos pinos 5 e 6
int motor_direito [] = {9,10}; // motor direito nos pinos 9 e 10
int Speed = 0;

void setup () {
  int i;
  for(i = 0; i < 2; i++) {
    pinMode(motor_esquerdo[i], OUTPUT); // motor esquerdo
    pinMode(motor_direito[i], OUTPUT); // motor direito
  }
  pinMode(led_verde, OUTPUT);
  pinMode(led_vermelho, OUTPUT);
  digitalWrite(led_verde, HIGH); // led de aviso de movimento
  delay(1000);
  digitalWrite(led_verde, LOW); // blink
  delay(1000);
  digitalWrite(led_verde, HIGH); // blink
  delay(1000);
  digitalWrite(led_verde, LOW); // desligar o led de aviso
  delay(20);
}

void loop () { // runs over and over
  ler_sharp();
  if(average > 200){
    digitalWrite(led_vermelho, HIGH);
    andar_tras();
    delay(200);
    virar_esquerda();
    delay(110);
  }
  else {
    digitalWrite(led_verde, HIGH);
    andar_frente();
  }   
}

void ler_sharp() {
  average = analogRead(sharp);
  delay(20);
}

void motor_stop(){ // parar os motores
  digitalWrite(motor_esquerdo[0], LOW);
  digitalWrite(motor_direito[1], LOW);

  digitalWrite(motor_direito[0], LOW);
  digitalWrite(motor_direito[1], LOW);
  delay(25);
}

void andar_frente(){

  digitalWrite(motor_esquerdo[0], LOW);
  digitalWrite(motor_esquerdo[1], HIGH);

  digitalWrite(motor_direito[0], LOW);
  digitalWrite(motor_direito[1], HIGH);

}

void andar_tras(){  // para trás
  digitalWrite(motor_esquerdo[0], HIGH);
  digitalWrite(motor_esquerdo[1], LOW);

  digitalWrite(motor_direito[0], HIGH);
  digitalWrite(motor_direito[1], LOW);

}

void virar_esquerda(){ // esquerda
  digitalWrite(motor_esquerdo[0], LOW);
  digitalWrite(motor_esquerdo[1], HIGH);

  digitalWrite(motor_direito[0], HIGH);
  digitalWrite(motor_direito[1], LOW);
}

void virar_direita(){ //direita
  digitalWrite(motor_esquerdo[0], HIGH);
  digitalWrite(motor_esquerdo[1], LOW);

  digitalWrite(motor_direito[0], LOW);
  digitalWrite(motor_direito[1], HIGH);
}



Estou a usar este codigo... mas os motores nao estão a fazer o que eu lhes mando :S

Alguem poderia corrigir o codigo? :P

Cumps
Título: Re: Smalluino Advanced
Enviado por: OxyGen em 14 de Maio de 2010, 23:52
Quanto tempo achas que o arduino demora a executar uma instrução? Por exemplo aqui:
Código: [Seleccione]
void andar_frente(){

  digitalWrite(motor_esquerdo[0], LOW);
  digitalWrite(motor_esquerdo[1], HIGH);

  digitalWrite(motor_direito[0], LOW);
  digitalWrite(motor_direito[1], HIGH);

}

Tu aqui não vais ver rigorosamente nada... isto executa tão rápido que nem os motores sabem o que aconteceu... terás de por um delay() aqui... É como nos leds. se tu fizeres digitalWrite(ledPin,HIGH); sem ser dentro de um ciclo infinito não vês absolutamente nada. o sinal é tão rápido (16MHz de freq) que não vês nada... terás de por um delay ou qualquer coisa do género... Nesta função e nas outras...

Para começar recomendo a testares uma coisa de cada vez... coloca-o só a andar para a frente durante 5 segs por exemplo... Só quando conseguires ter isso na perfeição é que vais para as outras funções...

Testas cada uma delas individualmente e só no fim é que intercalas todas as funções...

Percebeste o que quis dizer?
Título: Re: Smalluino Advanced
Enviado por: msr em 15 de Maio de 2010, 00:09
Ora viva AcidDagger,

Já experimentaste o Arduino ligado às pilhas? Se sim, quantas pilhas estás a usar (e de que tensão cada)?

Bom trabalho!
Título: Re: Smalluino Advanced
Enviado por: amando96 em 15 de Maio de 2010, 01:53
Esperimenta tirar o sensor, e fazer só um código com delays, tipo, frente, trás, direita esquerda, se não funcionar algo está mal ligado...
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 15 de Maio de 2010, 10:45
ta tudo bem ligado  ;) experimentei o codigo do smalluino 1.5 e ta tudo ok

acho que é mesmo o que o oxygen disse. porque eu experimentei com dois leds a simular os motores e com os leds eles ligam/desligam quando o sensor detecta obstaculo.

Cumps

EDIT: Já agora alguem me dá um exemplo de um codigo: o robot andar sempre para a frente mas quando o sensor detectar algo o robot fique a andar sempre para tras.

So para experimentar e desenvolver a partir dai :P
Título: Re: Smalluino Advanced
Enviado por: OxyGen em 16 de Maio de 2010, 02:22
Podes fazer através de uma interrupção... mas atenção que aí não podes usar a função delay()

Exemplo do código: Vou usar uma interrupção supondo que o sensor envia um sinal a High para o arduino.

Consulta Isto: http://www.arduino.cc/en/Reference/AttachInterrupt (http://www.arduino.cc/en/Reference/AttachInterrupt)

Código: [Seleccione]
void andarParaFrente()
{
while(1){
attachInterrupt(0,andarParaTras,RISING); // Supondo que o sinal do sensor está sempre a LOW. O que esta interrupção faz é se detectar um sinal a subir (RISING) vindo do sensor, ele executa a função andarParaTras. o número "0" indica a linha de interrupções no pino 2.
// Aqui colocas as funções para o carro andar para a frente. Tem se ser dentro do ciclo infinito.
}
}

void andarParaTras()
{
While(1)
//Funções de andar para tras em ciclo infinito
}
Título: Re: Smalluino Advanced
Enviado por: andnobre em 26 de Maio de 2010, 15:52
boas alguem tem o programa do smalluino1.5
Título: Re: Smalluino Advanced
Enviado por: rafhit em 26 de Maio de 2010, 17:43
Citar
int motor1Pin1 = 5;    // Ponte H
int motor1Pin2 = 6;    // Ponte H
int motor2Pin1 = 10;   // Ponte H
int motor2Pin2 = 11;   // Ponte H

void setup() {

  // Definir os pinos outputs:
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
}


void loop() {
  //Vamos testar o gajo :)

    digitalWrite(motor1Pin1, HIGH);  // Este pino HIGH, em conjunto com o de baixo LOW
    digitalWrite(motor1Pin2, LOW);   // Fazem com que o motor da direita ande em frente
   
    digitalWrite(motor2Pin1, LOW);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motor2Pin2, HIGH);  // Fazem com que o motor da esquerda ande em frente
    delay (1500);                    // Tempo que vai ficar a fazer esta função
   
    //Agora é inventar....fazer como quiserem...
    //O ideal seria utilizar a funçao AnalogWrite para controlar a velocidade por PWM
    //Mas o digitalWrite torna as coisas mais simples
    //O inconveniente, é que anda sempre á velocidade máxima
    //O resto do código vai fazer o Smalluino Mexer :D
    //Dúvidas: www.lusorobotica.com (http://www.lusorobotica.com)
 
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
   
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
    delay (1500);
   

    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
   
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
    delay (1500);


    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
   
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
    delay (1500);
 
 }


Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 26 de Maio de 2010, 22:48
ja fiz o codigo para uma primeira versao, amanha posto  ;D
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 29 de Maio de 2010, 13:36
estava a experimentar codigos mais complexos e vi que os motores nao estavam a seguir as funçoes que eu lhes determinava.

Acho que a ponte H ta meio marada...  ::)

Código: [Seleccione]

const int motor1 = 5;
const int motor2 = 6;
const int motor3 = 10;
const int motor4 = 11;

void setup () {
  pinMode(motor1, OUTPUT);
  pinMode(motor2, OUTPUT);
  pinMode(motor3, OUTPUT);
  pinMode(motor4, OUTPUT);
}

void loop () {
  digitalWrite(motor1, HIGH);
  digitalWrite(motor3, HIGH);
  digitalWrite(motor2, LOW);
  digitalWrite(motor4, LOW);
  delay(5000);
  digitalWrite(motor1, LOW);
  digitalWrite(motor3, LOW);
  digitalWrite(motor2, LOW);
  digitalWrite(motor4, LOW);
  delay(5000);
}
 

quando meto este codigo a correr os motores nao fazem o loop, ou seja chega ao fim e nao volta ao incio, ou entao ficam a andar para a frente infinitamente...

È da ponte H?  ???
Título: Re: Smalluino Advanced
Enviado por: amando96 em 29 de Maio de 2010, 14:40
Não podes levar os dois punos da ponte H high, se não me engano isso vai fazer curto á bateria, mas talvez a ponte tenha alguma coisa para não deixar isso acontecer

é assim:

pino 1 high
pino 2 low
^^será num sentido
pino 1 low
pino 2 high

^^será no sentido oposto

pino 1 low
pino 2 low

^^ será parado.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 29 de Maio de 2010, 16:37
como eu tenho os pinos acho que o codigo ta bem
Título: Re: Smalluino Advanced
Enviado por: preytender em 29 de Maio de 2010, 17:40
Ola,

Antes de tudo parabens pelo teu projecto, vou estar atento para ver o video dele a andar  8). Tambem estou a espera de algum material para fazer o meu primeiro projecto (2 servos full rotation). Estou a pensar utilizar 2 servos como motores.

Ver o teu projecto levantou-me uma duvida, quais são os pros e contras entre utilizar 2 servos ou entao 2 motores DC ???  Qual é a melhor escolha ???  ???

Obrigado e continuação de bom trabalho.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 29 de Maio de 2010, 18:53
Motores DC

Pros:
Baratos

Contras:
Precisam de Ponte H
Precisam de gear-box


Servos;

Pros:
Ligação facil
Nao precisam de gearbox

Contras:

Caros e tens de fazer um mod para ele rodar 360º
Título: Re: Smalluino Advanced
Enviado por: amando96 em 29 de Maio de 2010, 18:57
É são lentos, motores é para todos os gostos, lentos rápidos, etc.
Título: Re: Smalluino Advanced
Enviado por: preytender em 30 de Maio de 2010, 01:01
Obrigado pelos esclarecimentos, a minha ideia era utilizar o servos porque pareciam mais faceis de utilizar para alguem com os meus conhecimentos mas a ideia seria mais tarde evoluir para os motores DC. Ainda nao tinha comprado os servos porque estavam esgotados na loja lusorobotica, pelo contrario todos os componentes para a solução motores DC estão disponiveis e pelo mesmo preco ate posso comprar as rodas  ;D

Estou a pensar então fazer a seguinte encomenda:
-Dual Motor GearBox
-H-Bridge Motor Driver 1A
-Tamiya 70096 Off-Road Tires (2 tires)
-LM7805 5V Regulator (Pelo esquema parece que preciso disto)  :-\

Acho que isto deve ser tudo o que preciso  ??? vou estudar melhor o esquema colocado neste topico (Obrigado AcidDagger) mas não sei se me vou desenrascar sozinho  :-[

 
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 30 de Maio de 2010, 11:35
Nós tamos aqui para ajudar!  :)

COmo ponte H e visto que tas a começar podias usar uma http://loja.lusorobotica.com/componentes/15-h-bridge-motor-driver-1a.html (http://loja.lusorobotica.com/componentes/15-h-bridge-motor-driver-1a.html)

Que é muito mais barata  :)

Sugiro tambem que veijas isto http://lusorobotica.com/index.php?topic=575.0 (http://lusorobotica.com/index.php?topic=575.0)  ;D
Título: Re: Smalluino Advanced
Enviado por: andnobre em 09 de Junho de 2010, 14:21
ola
Estou a usar um pouco do teu codigo para o meu robo mas tenho uma duvida, o robo quase que nem se mexe quando digo para virar ou para a direita ou para a esquerda parece que nem força tem.
sera que o tempo de delay e pouco estou a testar com 5000ms ou mais...


ps: estou usar o codigo do rafhit
Título: Re: Smalluino Advanced
Enviado por: rafhit em 09 de Junho de 2010, 15:10
lol o codigo n é meu! é do fifas  :P
mas tmb tou a ter o mesmo prob do andnobre!
tou a usar o kit Mr. Basic da DAGU...tipo se levanto o carrito no ar, ele la faz tudo que é suposto fazer...mas quando o ponho no chão ele caga-se todo pa andar e o l293d aquece mt! tipo ta a criar mt amperagem mas em cima do mr.basic so esta uma breadbord com a ponte h e o arduino....n era suposto ser do peso, ele havia de aguentar com isso tudo...digo eu lol
Título: Re: Smalluino Advanced
Enviado por: amando96 em 09 de Junho de 2010, 15:34
O mr basic deve ter motores baratos, costumam puxar muitos amps, a ld293d aguenta 1amp em continuo por canal?

Eu fiz assim para os motores da dual gearbox:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi40.tinypic.com%2F2cxzya9.jpg&hash=60dedc1031c7acf37ec3144354f67a784e03bb7b)

Assim não aquece(tanto), aquecimento é normal.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 09 de Junho de 2010, 19:43
eu meti um dissipador por cima  :P Tenho um amigo novo, uma v2 do meu Smalluino Advanced. :P

Entao vamos passar as fotos, o chassis ainda nao esta pronto, tem cerca de 10x10x10cm  ;)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg707.imageshack.us%2Fimg707%2F3316%2Fimg0914yo.jpg&hash=934e8eaf920311c705a2190b8db51b88a30479eb)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg535.imageshack.us%2Fimg535%2F8786%2Fimg0917x.jpg&hash=bb6765ea3ce4b1c329719b5168f6189566cdd4f1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg37.imageshack.us%2Fimg37%2F7793%2Fimg0918lw.jpg&hash=ab62ef460f962e02897f162f17b6a59d243b3468)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg685.imageshack.us%2Fimg685%2F6882%2Fimg0919s.jpg&hash=261e237bd1566985876ca091e088c8c1e46b8aab)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg189.imageshack.us%2Fimg189%2F266%2Fimg0920s.jpg&hash=23eed1224764a97eb62268ccae13a58df8b3c31a)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F8639%2Fimg0921h.jpg&hash=4f1976e3485021a210249ce4832682fee7172541)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg243.imageshack.us%2Fimg243%2F2337%2Fimg0922s.jpg&hash=8047708418c05666dbec8bf5fee0dea5d39d297c)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg18.imageshack.us%2Fimg18%2F8827%2Fimg0924dq.jpg&hash=8e4ba4be48b909c91831ab0865fcbbcfa7ef8ccf)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg121.imageshack.us%2Fimg121%2F1319%2Fimg0927od.jpg&hash=fddc4a525c9ac5cebc0c7aed5bc4342998fdf4b3)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg192.imageshack.us%2Fimg192%2F2491%2Fimg0928v.jpg&hash=1245d6b7d3c3e64797bc3adf5329a05e823ad343)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg535.imageshack.us%2Fimg535%2F1217%2Fimg0929c.jpg&hash=8c767828b13bf2e5db4280614892e1623542c83d)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg375.imageshack.us%2Fimg375%2F9013%2Fimg0930m.jpg&hash=97935325012d912805bef2de523d77a1b0b09367)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F9867%2Fimg0931v.jpg&hash=b988e5517031c05d8f7abf7acf855ff557b464c6)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg822.imageshack.us%2Fimg822%2F6755%2Fimg0932.jpg&hash=5906845bdf5be3801b41ef040caba8384fd68732)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg251.imageshack.us%2Fimg251%2F2341%2Fimg0933b.jpg&hash=bf58e6a2949cba9811cb1e6e810da6ff28d8df6f)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg692.imageshack.us%2Fimg692%2F2968%2Fimg0934b.jpg&hash=f15a1d940d3a2e4348ccfb689c3811b457a3bdbb)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg809.imageshack.us%2Fimg809%2F2224%2Fimg0935.jpg&hash=689715fba0d3428f3f791ef26112f27c66cf06e1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg411.imageshack.us%2Fimg411%2F5194%2Fimg0936u.jpg&hash=f70439e9459dd76f6640e50db83e8c0b7ea1e8b5)

O meu arduino gosta de pousar para a camera  :P
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F9651%2Fimg0937qk.jpg&hash=32b41a30199d778b6cf7cb729b1a29d82f49d8c1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F2748%2Fimg0938x.jpg&hash=032e1ebf215be791d7db1bad4de08925b5f11897)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg718.imageshack.us%2Fimg718%2F3360%2Fimg0939k.jpg&hash=19979ddf51859db689699d63ee87d1c664823bbc)


Título: Re: Smalluino Advanced
Enviado por: TigPT em 09 de Junho de 2010, 19:54
Wow.. essas rodas ficam lindas com essa carcaça de malha de metal... muito muito bom. Está com óptimo aspecto.

Podemos vê-lo em acção?

Conseguiste que fique em 10x10 de tamanho? Era ideal para sumo mini!
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 09 de Junho de 2010, 20:08
neps, o chassis é 10x10, as rodas e que passa meio cm de cada lado, e nao da mesmo para encurtar mais :S

Logo vai ser noite de codigo :P

Agora voces perguntam tanta foto, mas nao veijo sensores nenhuns  ???

Entao vamos lá

Led e receptores ir na parte de baixo para seguir linhas e detectar se o chão "acaba", para nao cair.
Sensor sharp para detectar obstaculos,
Breadboard shield, para poder testar prototipos :P

tambem vai ter um modo nao autonomo controlado pelo pc a partir de um gamepad :P


Obrigado ao fifas por me dar o comando do ubunto para inicializar a comunicação por serial

Qualquer perguntas estejam a vontade  ;D

Título: Re: Smalluino Advanced
Enviado por: TigPT em 09 de Junho de 2010, 20:23
É uma pena estas engrenagens não terem menos 1~2cm de largura para o robot ficar 10x10.

Ainda tenho que ver se consigo fazer um mini sumo com estas gearboxes.

Está muito bom, e gostei mt das fotos!
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 09 de Junho de 2010, 20:59
estas rodas tem uma aderencia do catano  :P

Acho que qualquer mini sumo ficaria logo derrotado  ;D eheheh xD
Título: Re: Smalluino Advanced
Enviado por: amando96 em 09 de Junho de 2010, 22:54
Está altamente, com essas rodas de diametro pequeno tem mais força ainda.

Podes sempre cortar um pouco do eixo da gearbox, sempre tiravas esses 5mm de cada lado.

que camera usaste para as fotos? até faz uns macros jeitosos.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 09 de Junho de 2010, 23:06
A maquina nao é nenhuma DSLR, é uma Canon Ixus 700, 7,2Mp  + Tripe

As fotos ao arduino foram tiradas com ISO 50 :P
Título: Re: Smalluino Advanced
Enviado por: Fifas em 09 de Junho de 2010, 23:34
esse robô tá muito bonito ;)

Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 10 de Junho de 2010, 00:08
Por enquanto e so um monte de peças empilhadas  ;D
Título: Re: Smalluino Advanced
Enviado por: XicoMBD em 10 de Junho de 2010, 00:24
Está muito fixe  ;)

Onde é que arranjaste essa placa de metal?
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 10 de Junho de 2010, 00:27
Eu sou modder... :P isto é da AC Ryan e chama-se mesh
Título: Re: Smalluino Advanced
Enviado por: XicoMBD em 10 de Junho de 2010, 00:34
Fixe,
mas isso é fácil de arranjar por cá?   ???
Título: Re: Smalluino Advanced
Enviado por: senso em 10 de Junho de 2010, 00:38
Numa serralharia devem ter desse tipo de placa, é chapa perfurada, á com vários diametros de furos, diferentes espaçamentos, diferentes espessuras e tanto há em aluminio como em ferro/aço e até inox, compras de aluminio.
Tambem há delas que os furos são hexagonais e coisas assim, mas é mais complicado de arranjar.
Título: Re: Smalluino Advanced
Enviado por: XicoMBD em 10 de Junho de 2010, 00:41
Ok, obrigado pela dica  :)

Quero ver se arranjo umas coisas dessas, tou farto de plásticos  :P
Título: Re: Smalluino Advanced
Enviado por: senso em 10 de Junho de 2010, 00:49
Com umas calhas de aluminio e uns perfis em L e em U, um berbequim, parafusos porcas e varões roscados já fazes muita coisa.
Título: Re: Smalluino Advanced
Enviado por: Fifas em 10 de Junho de 2010, 01:52
ó AcidDagger, mesh da AcRyan num robô? Robô de luxo ein? ;D já vale mais só por causa disso :D

Não conseguias arranjar uma mais barata num Aki, ou Leroy Merlin ou assim? Tenho ideia que a da ACRyan é carota
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 10 de Junho de 2010, 12:40
Era a que tinha por aqui  :) , é bastante leve  :P
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 02:37
Ola a todos, estou a precisar de uma ajudinha se for possivel  ;D

Em baixo esta uma fotografia com as ligações que fiz para testar os meus motores (são iguais aos utilizados neste topico pelo AcidDagger). O problema é que o arduino esta sempre a reiniciar  :'(

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg808.imageshack.us%2Fimg808%2F3894%2Fpowerproblem.jpg&hash=94167f7a18ed7a8c9b30afa5aef72826be9d9b35)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg821.imageshack.us%2Fimg821%2F7971%2Fimag0061o.jpg&hash=b552c6f197a5508932d3ae64569256ef3c0fecf5)

Ainda pensei abrir um novo topico para expor o meu problema mas penso que tem tudo a ver com o que foi falado nas primeiras páginas deste, em que se discutia como alimentar os motores.
Pelo que consegui perceber segui todas as indicações dadas excepto o regulador de 5v.

Se alguem souber o que é que esta errado aqui, qualquer ajuda é bem vinda.
Obrigado.

Esqueci-me de dizer que com relação as ligações da ponte e ao codigo parece estar tudo a funcionar porque consigo por os motores a andar para frente, tras, virar, parar etc.... pelo menos ate o arduino reiniciar misteriosamente.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 12 de Junho de 2010, 10:03
O arduino reinicia porque nao tem alimentação suficiente  :)

Resolução simples, 1,5v + 1,5v +1,5v = 4,5v

O arduino para ser alimentado por ai precisa do minimo de 7v

Experimenta alimentar o arduino no pino 5v e gnd

Resolução mais complicada, DC Bost ou lá como se chama, para teres os 5v a partir da caixa de pilhas

EDIT: As tuas pilhas nem sao de 1,5v sao 1,2v. Mais me ajudas xD

Arranja uma caixa de 4 pilhas que resolves a questao  :P
Título: Re: Smalluino Advanced
Enviado por: amando96 em 12 de Junho de 2010, 10:14
Pois, precisas de pelo menos um battery pack de 4 pilhas, se forem recrregáveis, dá, pois quando carregadas a tensão é muito perto dos 1.5v, os 1.2 é depois de algum uso.
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 10:58

Poix, na fotografia nao da para ver bem mas se virem bem a legenda aquilo é um pack de 6 pilhas.

Com 6 devia dar não devia ????
Título: Re: Smalluino Advanced
Enviado por: amando96 em 12 de Junho de 2010, 11:00
Devia sim,

a não ser que estiverem muito gastas?

esperimenta desligar os motores, e diz se ainda faz reset.
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 11:22
Obrigado pela resposta, se desligar os motores já não faz reset, alias o programa que estou a utilizar para testar os motores funciona com dados da porta de serie ou seja quando liga esta tudo parado e tubo bem se enviar a letra "f" anda para a frente se enviar "b" para tras e por ai fora .... o que acontece é que por exemplo quando digo aos motores para andar para a frente eles arrancam e depois o arduino reinicia isto esta a acontecer seja ligado com as pilhas seja ligado por USB.

Os fios dos motores não estão soldados estão apenas engatados nas patilhas dos motores fiz isto para os experimentar, não sei se é suposto soldar os fios ou se é melhor arranjar algum tipo de encaixe, achas que pode ser disto ????
Título: Re: Smalluino Advanced
Enviado por: microbyte em 12 de Junho de 2010, 12:08
Consegues tirar uma foto mais High Q. às ligações na breadboard?
Tira com luz natural sff  ;)
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 12:20

Tens razao, tirei a fotografia ontem a noite e ficou muito mal  ;D . Adicionei uma melhor em baixo da outra com os detalhes da ligação.

Acho que esta tudo bem ligado mas .... os motores vao para os pinos 5,6(Fios Amarelos) e 10,11(Fios Azuis) do arduino

Obrigado.
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 12 de Junho de 2010, 12:38
Não queres disponibilizar o codigo do teu robot? :P
Título: Re: Smalluino Advanced
Enviado por: microbyte em 12 de Junho de 2010, 12:54
Não é do código...

O problema é que estás a alimentar os motores com os mesmos 5v da lógica.

Tens de meter no pino mais à direita em baixo, nao os 5v, mas directamente a bateria.
Vais ligar esse pino do integrado ao pino Vin do Arduino e vais dizer se continua a festa to restart.
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 13:22

Muito muito muito muito obrigado, retirei aquele jumper cinzento e liguei esse pino do CI ao vin do arduino e funcionou perfeitamente.

Neste momento esta a funcionar ligado por USB ou seja o vin deve ter cerca de 5v mas quando ligar o pack das baterias o vin vai ter perto de 9v acho que os motores não vao gostar certo ??? devo usar um regulador para 5v ??? se sim como é que o ligo.

Com relação ao codigo, claro que o posso disponibilizar  ;D para ja só serve para testar os movimentos e velocidades dos motores mas assim que conseguir montar isto a ideia é fazer um segue linhas com controlo PID depois tambem posso dar esse codigo.

Aqui vai o codigo que fiz para os teste

Código: [Seleccione]

// Definiçao de pinos dos Motores
int motor_left[] = {5,6};
int motor_right[] = {10,11};

int max_vel = 70; // EStou a utilizar Pinos PWM em vez de escrever HIGH coloco os motores a 70.

void setup() { 

Serial.begin(19200);
Serial.println("Inicio");

//Inicializar Pinos Motores
int i;
for (i=0;i<2;i++) {
  pinMode(motor_left[i],OUTPUT);
  pinMode(motor_right[i],OUTPUT);
}

motor_stop(); //Para os motores
 
}

void loop() { 

  /***********************************************************************
  //Bloco Degub Motores com comandos serial */
 
  if (Serial.available()) {
   
   int val=0;
   val=Serial.read();
   if (val=='f') {
      drive_forward(); // Andar para a Frente
   }
   if (val=='b') {
      drive_backward(); //Andar Tras
   }
   if (val=='l') {
     turn_left(); // Virara Esquerda
   }
   if (val=='r') {
     turn_right(); // Virar Direita
   }

   if (val=='s') {     
     motor_stop(); // Parar
   }
   
   delay(500);
 }
 
 
}


// Funcoes para Gestão dos Motores

void motor_stop() {
  digitalWrite(motor_left[0],LOW);
  digitalWrite(motor_left[1],LOW);
 
  digitalWrite(motor_right[0],LOW);
  digitalWrite(motor_right[1],LOW);
  delay(25);
}

void drive_forward() {
  analogWrite(motor_left[0],max_vel);
  digitalWrite(motor_left[1],LOW);
 
  analogWrite(motor_right[0],max_vel);
  digitalWrite(motor_right[1],LOW); 
}

void drive_backward() {
  digitalWrite(motor_left[0],LOW);
  analogWrite(motor_left[1],max_vel);
 
  digitalWrite(motor_right[0],LOW);
  analogWrite(motor_right[1],max_vel); 
}


void turn_left() {
  digitalWrite(motor_left[0],LOW);
  analogWrite(motor_left[1],max_vel);
 
  analogWrite(motor_right[0],max_vel);
  digitalWrite(motor_right[1],LOW); 
}


void turn_right() {
  analogWrite(motor_left[0],max_vel);
  digitalWrite(motor_left[1],LOW);
 
  digitalWrite(motor_right[0],LOW);
  analogWrite(motor_right[1],max_vel); 
}



Título: Re: Smalluino Advanced
Enviado por: amando96 em 12 de Junho de 2010, 13:24
Os reguladores de tensão 7805 só aguentam 1.5 amp, os motores devem puxar mais ou menos isso cada um.

Pode é ter power supply separado, pilha de 9v para o arduino, e pilhas AA para os motores, separado do arduino.
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 12 de Junho de 2010, 13:26
Poix, na fotografia nao da para ver bem mas se virem bem a legenda aquilo é um pack de 6 pilhas.
Com 6 devia dar não devia ????

O problema é que estás alimentar os motores através do Arduino, e aqueles 5V onde estão ligados os motores são os mesmo 5V que alimentam o Atmega, no arranque os motores têm um pico de corrente e como o regulador não deve conseguir fornecer vai ter uma queda de tensão e isso faz com que o micro-controlador reinicie. Tenta colocar uns condensadores electrolíticos na breadboard onde estão os 5V e o GND. Ou então alimenta os motores directamente do pack! Não dos 7,2V mas tiras de lá do meio um fio com cerca de 5V.
Título: Re: Smalluino Advanced
Enviado por: FET_Destroyer em 12 de Junho de 2010, 13:59
Os reguladores de tensão 7805 só aguentam 1.5 amp, os motores devem puxar mais ou menos isso cada um.

Pode é ter power supply separado, pilha de 9v para o arduino, e pilhas AA para os motores, separado do arduino.

Os LM7805 só aguentam no máximo 1A contínuos e já convém ter um dissipador
Para 1.5A contínuos tem o LM317.

Cumps
Título: Re: Smalluino Advanced
Enviado por: Njay em 12 de Junho de 2010, 14:16
Podes alimentar esses motores pequenos a partir de 7.2V (os motores devem ser de 3V), mas tens que usar PWM e manter o ciclo activo baixo (analogWrite(X) com X < 100).

Quanto aos RESET, se continuares a alimentar os motores pelos 5V do Arduino, podes nunca conseguir vir a resolver definitivamente esse problema. O teste "mais duro" é prenderes o veio dos motores (não os deixar rodar) e ligá-los e desligá-los repetidamente (uma só vez pode ser suficiente).
Mesmo que consigas resolver esse problema metendo um montão de condensadores, ele vai voltar a aparecer quando as pilhas começarem a ficar um bocadinho mais fracas. Resumindo, alimentar esses motores dos 5V do Arduino é pedir problemas e instabilidade.

Já agora, para passar 1A continuo, um 7805 tem que ter um dissipador de calor enorme.
Título: Re: Smalluino Advanced
Enviado por: preytender em 12 de Junho de 2010, 14:28
Agradeco desde ja os conselhos de todos, já deve ter dado para perceber que é a primeira vez que faço isto e os meus conhecimentos de electronica são muito limitados.

Não sei se viram mas acho que ja consegui dar um pequeno passo em frente segui as indicações do microbyte (ver página anterior). Agora tudo funciona bem ligado por USB mas estou com medo de testar com as pilhas porque acho que o vin do arduino vai ficar com 7,2v e os motores so deviam levar com 3 a 6v.  Tenho aqui dois 7805 se colocasse um entre o vin e o CI acho que iria baixar tudo para 5v e ficava tudo bem. Disse alguma coisa estupida ?? Os ultimos comentarios dão a entender que não é boa ideia porque vai aquecer muito por isso acho que estou meio perdido.....  :-\

Título: Re: Smalluino Advanced
Enviado por: FET_Destroyer em 12 de Junho de 2010, 14:47
Já agora, para passar 1A continuo, um 7805 tem que ter um dissipador de calor enorme.

Isso é muito relativo.
Depende da tensão que lhe poes na entrada.
Tu sabes que P = U * I, imagina que o I=1A e que tens uma tensao de entrada de 7V logo U = (7-5)=2V
Logo P = 2 * 1 = 2W

Com o encapsulamento T0-220 e recorrento ao datashet no gráfico da potencia máxima ve-se que o integrado aguenta a 25ºC de temp ambiente 2,5W sem dissipador.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg576.imageshack.us%2Fimg576%2F4146%2F7805.jpg&hash=b5e6d08c7e9825ec7738bafc6b5bebaa6c211e1d)

Regra regal eu se usa-se a consumir 1A punha um dissipador, mas pelos vistos não é necessário.
Título: Re: Smalluino Advanced
Enviado por: Njay em 12 de Junho de 2010, 16:02
FET, estás a ler mal o gráfico. Repara que os 2.5W ficam acima da linha.

De qualquer forma, se puseres um 7805 a dissipar 0.25W continuamente, ele aquece ao ponto de nem lhe conseguires pôr os dedos em cima. Agora imagina com 2.5W.

Na verdade este integrado não se queima com temperatura, porque ele chega a um ponto que desliga sozinho até arrefecer o suficiente.. Só que isto acontece muito depressa (pode ligar e desligar muitas vezes por segundo), e isso causa ainda mais "instabilidade" num circuito que o utilizador não entende de onde vem. Por isso let's keep it simple...
Título: Re: Smalluino Advanced
Enviado por: FET_Destroyer em 12 de Junho de 2010, 18:18
FET, estás a ler mal o gráfico. Repara que os 2.5W ficam acima da linha.

De qualquer forma, se puseres um 7805 a dissipar 0.25W continuamente, ele aquece ao ponto de nem lhe conseguires pôr os dedos em cima. Agora imagina com 2.5W.

Na verdade este integrado não se queima com temperatura, porque ele chega a um ponto que desliga sozinho até arrefecer o suficiente.. Só que isto acontece muito depressa (pode ligar e desligar muitas vezes por segundo), e isso causa ainda mais "instabilidade" num circuito que o utilizador não entende de onde vem. Por isso let's keep it simple...

Tal como eu disse pelo datasheet um heatsink não é necessário pois digamos que no gráfico estão 2W, segundo o datasheet isso é o maximo que ele aguenta sem dissipador e acredito que no datasheet já tenha alguma margem, agora é claro que ele deve aquecer mas não ao ponto de ficar a ferver que não lhe possas tocar, mas eu para essa corrente nunca o usaria sem um heatsink, em relação ao que disses-te de poder desligar e ligar mtas vezes por segundo penso que isso não será assim como pensas.
Não tenho a certeza mas penso que a protecção disse seja com histerese, algo do genero, quando ele chega aos 170ºC desliga-se e só volta a funcionar aos 120ºC, logo isso do ligar e desligar mtas vezes por segundo penso que nunca aconteceria. Não tenho a certeza se é isto que acontece mas é o que tem mais logica.
Cumps
Título: Re: Smalluino Advanced
Enviado por: preytender em 13 de Junho de 2010, 00:12

Ola, o problema de reiniciar o arduino está resolvido  ;D o motivo pelo qual isso acontecia esta muito bem explicado na resposta do metRo_ em cima. A solução passou por ligar o fio rosa (ver foto) no pino 9v(vin) do arduino em vez de o colocar nos 5v da breadboard.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F841%2Fpontehbb.jpg&hash=149aee2e610de45a1d8ec68dd132237d242baf34)

A ligação em cima funciona perfeitamente quando ligado por USB, o arduino não faz reset e tal como sugerido pelo Njay fiz alguns teste "duros" tipo frente,tras,direita,esquerda,frente,para tudo muito  rápido.

Precisava agora de um conselho sobre qual a decisão mais correcta para a alimentação externa:

Opção 1: Ligar as baterias de 7,2v no jack do arduino e manter tudo como esta, nesse caso o vin vai passar a ter 7,2 o que não sei se pode danificar os motores.

Opção 2: Colocar aquele regulador que anda perdido na foto entre o vin e o pino do IC

Opção 3: Dedicar-me a pesca.  ;D


Obrigado, abraço.


Título: Re: Smalluino Advanced
Enviado por: Njay em 13 de Junho de 2010, 00:33
A datasheet só diz que o LM78xx desliga aos 150ºC, mais nada. Eu sei, por relatos de outros, que ele faz esse desligar/ligar muito rápido. Mas mesmo que o fizesse com um periodo de segundos, tás a ver a "cara" de espanto do pessoal sem perceber o que se passa...

Eu no teu lugar deixava tudo como está e usava PWM nos motores com ciclo activo abaixo de 100, preytender. Qualquer das outras soluções (incluindo a da pesca :)), é um desperdício de energia, ou seja as pilhas duram menos e tens componentes a aquecerem mais.
Título: Re: Smalluino Advanced
Enviado por: preytender em 13 de Junho de 2010, 00:38
Obrigado pela rápida resposta... por acaso no meu codigo ja estou a utilizar PWM, em vez de utilizar digitalwrite(HIGH) faço analogwrite(70) para nao forçar muito os motores.

Tudo a funcionar e não cheira a queimado  ;D ;D  notei uma coisa engracada fazer analogwrite(70) quando ligado pelas baterias parece que anda mais rápido do que ligado por USB.

Muito obrigado a todos pela ajuda e para os principiantes como eu podem usar o esquema em cima que vai funcionar.
Peço desculpa ao AcidDagger por ter monopolizado o topico dele, fico a aguardar para ver essa v.2 esta com bom aspecto.

Abraço.  ;D ;D ;D ;D
   
Título: Re: Smalluino Advanced
Enviado por: metRo_ em 13 de Junho de 2010, 01:01
Dizes que o analogwrite(70) funciona diferente com a USB e com as baterias o que é bom porque quer dizer que está tudo a funcionar correctamente :)

Com a USB tens 5V, o analogwrite varia entre 0 e 255, logo 5V*(70/255)=1,37V.
Com a bateria tens 7,2V, logo 7,2V*(70/255)=1,97V.

Para alem de que a USB só consegue fornecer 500mA!
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 13 de Junho de 2010, 23:20
Amanha ja tenho uma versão do codigo para mostrar :P
Título: Re: Smalluino Advanced
Enviado por: AcidDagger em 14 de Junho de 2010, 19:37
Ora bem, aqui fica o codigo base para quem se quiser lançar na construção de um robot é bastante simples (:

Código: [Seleccione]

void parar() { // para os motores
  digitalWrite(motor_esquerdo[0], LOW);
  digitalWrite(motor_esquerdo[1], LOW);
 
  digitalWrite(motor_direito[0], LOW);
  digitalWrite(motor_direito[1], LOW);
  delay(50);
}

void frente() { // anda em frente
  analogWrite(motor_esquerdo[0], velocidade_max);
  digitalWrite(motor_esquerdo[1], LOW);
 
  analogWrite(motor_direito[0], velocidade_max);
  digitalWrite(motor_direito[1], LOW);
  delay(50);
}

void tras() { // anda para tras
  digitalWrite(motor_esquerdo[0], LOW);
  analogWrite(motor_esquerdo[1], velocidade_max);
 
  digitalWrite(motor_direito[0], LOW);
  analogWrite(motor_direito[1], velocidade_max);
  delay(50);
}

void direita() { // vira para a direita
  analogWrite(motor_esquerdo[0], velocidade_max);
  digitalWrite(motor_esquerdo[1], LOW);
 
  digitalWrite(motor_direito[0], LOW);
  analogWrite(motor_direito[1], velocidade_max);
  delay(50);
}

void esquerda() { // vira para a esquerda
  digitalWrite(motor_esquerdo[0], LOW);
  analogWrite(motor_esquerdo[1], velocidade_max);
 
  analogWrite(motor_direito[0], velocidade_max);
  digitalWrite(motor_direito[1], LOW);
  delay(50);
}

void acelerar_frente() { // acelera os motores do 0 à velocidade máxima
  for(int valor_acelerar = 0 ; valor_acelerar <= velocidade_max; valor_acelerar +=10) {
      analogWrite(motor_esquerdo[0], valor_acelerar);
      digitalWrite(motor_esquerdo[1], LOW);
 
      analogWrite(motor_direito[0], valor_acelerar);
      digitalWrite(motor_direito[1], LOW);
      delay(30);
  }
}

void desacelerar_frente() { // desacelera os motores da velocidade máxima a 0.
  for(int valor_desacelerar = velocidade_max ; valor_desacelerar >=0; valor_desacelerar -=10) {
    analogWrite(motor_esquerdo[0], valor_desacelerar);
      digitalWrite(motor_esquerdo[1], LOW);
 
      analogWrite(motor_direito[0], valor_desacelerar);
      digitalWrite(motor_direito[1], LOW);
      delay(30);
  }
}