collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[Ontem às 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Duvidas gerais.  (Lida 41532 vezes)

0 Membros e 2 Visitantes estão a ver este tópico.

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #30 em: 09 de Setembro de 2013, 00:26 »
obrigado pela resposta, o motor é de 100 rpm
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #31 em: 09 de Setembro de 2013, 00:30 »
isso na roda de 3cm de raio dá uns 31cm/s ou 0,31m/s. Considerando que a acelaração seria teoricamente aquele valor, demoras 0,10s a chegar aos 31cm/s

Acho que está porreiro.
« Última modificação: 09 de Setembro de 2013, 00:33 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #32 em: 09 de Setembro de 2013, 00:33 »
Boa noite a todos, venho aqui por mais umas duvidas, estou a pensar fazer um primeiro robot, e ele no máximo dos máximos vai pesar 3kg, andei a ver uns motores que vão ser aplicados para fazer rodar as "lagartas" ou seja dois motores e quando andei a pesquisar, encontrei uns motores a bom preço, tive a ver as informações e o motor tem 2,7kg.cm de torque mas em stall, esse motor vai ser suficiente para mover o robot com "genica" rasoavel?

Ai depende se é numa superficie plana ou inclinada.

Primeiro tens de saber o tamanho da roda.
Se tive 3cm de raio, 2,7/3=0,9kg. 0,9/9,8=8,82N
Com 3kg, 8,82/3=2,94m/s*s (segundo quadrado). Esta é a acelaração.
Quanto maior o raio menor a acelaração e maior a velocidade, e vice-versa

Qual é o rpm dos motores?

pelo que estou a ver e me recordo essa formula já interfere com as leis de newton certo?
a roda é mais pequena, amanha já vou alterar as medidas para ver que velocidade dá, muito obrigado pela ajuda.
Cumprimentos,
Jaime

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #33 em: 11 de Setembro de 2013, 11:17 »
Boas a todos, estive a pesquisar aqui pelo forum e vi os vários tópicos que mostram como se montam e se podem programar os famosos "smalluinos", sei que com esses robot's podemos criar uma sequência de movimentos, (frente, traz lados etc) e que podem haver pausas entre esses movimentos á nossa escolha, a minha duvida é se é possível determinar quanto tempo é que um smalluino por exemplo pode estar a andar para a frente (tanto faz o lado) , alguém me pode ajudar?
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #34 em: 11 de Setembro de 2013, 13:13 »
Depende como controlas o motor mas dá sempre.

Se for servos com PWM por sofware (PWM criado por codigo, com interrupts e tal) agora assim serve:

Código: [Seleccione]
for(int i=0;i<50;i++){

servo(frente);             //não me lembro da função para o servo
delay(1);
}

Assim ele vai para a frente 50ms. Mudas o i<x, e cada valor é 1 ms.


Se for PWM por hardware basta meter um delay à escolha. O timer dentro do uControlador continua a dar o PWM para os motores apesar de o codigo parar.
« Última modificação: 11 de Setembro de 2013, 13:26 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #35 em: 11 de Setembro de 2013, 21:09 »
no meu caso não eram servos, eram dois motores, ponte H, como posso fazer? num codigo como este que fiz:
Código: [Seleccione]
const int Motor1Pin1 = 8;
const int Motor1Pin2 = 9;
const int Motor2Pin1 = 10;
const int Motor2Pin2 = 11;

void setup() {               
  pinMode(Motor1Pin1, OUTPUT);   
  pinMode(Motor1Pin2, OUTPUT);   
  pinMode(Motor2Pin1, OUTPUT);   
  pinMode(Motor2Pin2, OUTPUT);     
}


void loop() {
  GoForward();
  delay(3000);
  GoBackward();
  delay(2000);
  GoRight();
  delay(2000);
  GoLeft();
  delay(2000);
  Stop();
  delay(2000);             
}

void GoForward(){
  digitalWrite(Motor1Pin2, LOW);
  digitalWrite(Motor1Pin1, HIGH);
  digitalWrite(Motor2Pin2, LOW);
  digitalWrite(Motor2Pin1, HIGH);
}

void GoBackward(){
  digitalWrite(Motor1Pin1, LOW);
  digitalWrite(Motor1Pin2, HIGH);
  digitalWrite(Motor2Pin1, LOW);
  digitalWrite(Motor2Pin2, HIGH);
}

void GoLeft(){
  digitalWrite(Motor1Pin1, LOW);
  digitalWrite(Motor1Pin2, HIGH);
  digitalWrite(Motor2Pin2, LOW);
  digitalWrite(Motor2Pin1, HIGH);
}

void GoRight(){
  digitalWrite(Motor1Pin2, LOW);
  digitalWrite(Motor1Pin1, HIGH);
  digitalWrite(Motor2Pin1, LOW);
  digitalWrite(Motor2Pin2, HIGH);
}

void Stop(){
  digitalWrite(Motor1Pin2, LOW);
  digitalWrite(Motor1Pin1, LOW);
  digitalWrite(Motor2Pin1, LOW);
  digitalWrite(Motor2Pin2, LOW);
}
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #36 em: 11 de Setembro de 2013, 21:33 »
Nesse codigo basta:

frente();
delay(500);
parado();

O tempo do delay determina quanto tempo vai para a frente.
Que ponte-H usas? Falta um PWM para a velocidade ou ligas directamente ao VCC?

Olha vê assim, o delay para o codigo. Durante esse tempo o codigo não sai dali.
Mas o estado dos pins não é mudado logo a direção dos motores mantêm-se a mesma.
Se usares PWM por hardware no 3º pin da ponte-H o mesmo acontece. Esse PWM mantêm-se porque é gerado por um componente interno do microcontrolador.
« Última modificação: 11 de Setembro de 2013, 21:39 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #37 em: 11 de Setembro de 2013, 21:40 »
estou ainda a estudar o caso, mas em principio, quando fizer o meu projecto vou usar a L293D  , a pelo peso que o robot vai ter, a velocidade penso ser a ideal para o que quero fazer com ele, mas se depois, se for preciso uso PWM,
desculpa a pergunta mas o que é VCC?
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #38 em: 11 de Setembro de 2013, 21:43 »
VCC é alimentação, sem ser o ground. Devia especificar melhor pois pode ser qualquer valor acima ou abaixo do GND.
Neste caso estava a falar de +5V. A L293D tem 2 VCC+. Um para os motores e outro para alimentar a propria ponte.

Olha que essa ponte H para alem das 2 portas que controlam a direção ainda tens outra para controlar a velocidade através de PWM
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #39 em: 11 de Setembro de 2013, 21:56 »
Mas não é obrigatório usar PWM ou é? fogo fiz aquele código, baseando-me no que já sei e pesquisei, mas com aquele código é necessário usar a ponte H? pelo que estive a ver melhor o arduino é que controla tudo, já ando aqui as voltas por causa deste assunto e ainda não percebi bem o que é que a L293D está ali a fazer (até estou com vergonha, mas é a única maneira de ficar esclarecido) não é o arduino que está a fazer tudo ao tornar certos pin's "hight" ou "low"?
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #40 em: 11 de Setembro de 2013, 22:13 »
Mas não é obrigatório usar PWM ou é? fogo fiz aquele código, baseando-me no que já sei e pesquisei, mas com aquele código é necessário usar a ponte H? pelo que estive a ver melhor o arduino é que controla tudo, já ando aqui as voltas por causa deste assunto e ainda não percebi bem o que é que a L293D está ali a fazer (até estou com vergonha, mas é a única maneira de ficar esclarecido) não é o arduino que está a fazer tudo ao tornar certos pin's "hight" ou "low"?

Primeiro tens de ver como se controla a direção de um motor.
Tens um motor com 2 contactos, contacto 1 (C1) e contacto 2 (C2).
Se ligares 12V ao C1 e GND ao C2 o motor anda numa direção, por exemplo contra-ponteiro do relogio.
Se em vez disso, ligares o GND ao C1 e os 12V ao C2 o motor irá girar noutra direção.

Agora vê o consumo de um motor pode ser algo como 100mA andando livre ou 500mA-1A em stall.
Um pin do arduino apenas pode levar uns 20mA, acho que 40mA se tanto. Logo directo rebentas com o pin.

Vê esta imagem de um ponte-H básica:

Como vês neste caso é necessário 4 interruptors/transistors, 4 pins digitais para os controlar, para controlar a direção de 1 unico motor.
O L293D já é uma ponta-H mais complexa que permite usar apenas 2 pins para controlar a direção e ainda suporta um extra que controla a velocidade.

O controlo funciona com os interruptores em pares. O High left com o low right e o high right com o low left.
Faz assim com o dedo.
Imagina o High Left ligado e o Low right tambem. Faz o caminho da corrente com o dedo.
Agora faz isso com os outros dois.
Reparas como o +/positivo está ligado a contactos diferentes do motor nos 2 casos?

Edit: O PWM não é necessário. Assim tens sempre a velocidade ao maximo ou a nada.
Podes ligar o pin do L293D do PWM aos 5V que assim a velocidade é sempre maxima
« Última modificação: 11 de Setembro de 2013, 22:18 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #41 em: 11 de Setembro de 2013, 22:33 »
sim, fiz aqui com o dedo e realmente é verdade, entao, se já temos os "interruptores" a função da L293D é ??
Cumprimentos,
Jaime

Offline msr

  • Mini Robot
  • *
  • Mensagens: 798
Re: Duvidas gerais.
« Responder #42 em: 11 de Setembro de 2013, 23:21 »
sim, fiz aqui com o dedo e realmente é verdade, entao, se já temos os "interruptores" a função da L293D é ??

Os "interruptores" nao são mecanicos, são electricos. O que o L293D tem são esses interruptores que possibilitam que o motor possa puxar mais corrente do que a necessária para controlar os interruptores, é por isso que a parte digital que controla os motores (arduino?) tem (ou deve ter) uma fonte de alimentação diferente da dos motores. Um pino digital em geral só consegue fornecer ~20mA.

Offline cyberTron

  • Mini Robot
  • *
  • Mensagens: 100
  • it's all about connections
Re: Duvidas gerais.
« Responder #43 em: 18 de Setembro de 2013, 22:17 »
Em relação á ponte H estou esclarecido, mas a algum tempo fiz uma pergunta, se era possível determinar o tempo que queríamos, que por exemplo, um smalluino" anda-se para a frente, e responderam-me que era o tempo do delay seguinte como está em baixo:

Nesse codigo basta:

frente();
delay(500);
parado();

O tempo do delay determina quanto tempo vai para a frente.
Que ponte-H usas? Falta um PWM para a velocidade ou ligas directamente ao VCC?

Olha vê assim, o delay para o codigo. Durante esse tempo o codigo não sai dali.
Mas o estado dos pins não é mudado logo a direção dos motores mantêm-se a mesma.
Se usares PWM por hardware no 3º pin da ponte-H o mesmo acontece. Esse PWM mantêm-se porque é gerado por um componente interno do microcontrolador.

a minha questão é, se eu quiser que por exemplo o smalluino ande para a frente 40 segundos, ele vai depois ficar parado durante esse tempo todo? como posso fazer para ele passar ao "comando" seguinte em pouco tempo? ou a seguir ao movimento que quero que ele faça meto o delay com o tempo que eu quero que ele faça tal coisa?
Cumprimentos,
Jaime

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.224
    • Clube de Robotica
Re: Duvidas gerais.
« Responder #44 em: 18 de Setembro de 2013, 23:46 »
tu no frente(), se for pwm por hardware, deves ter configurado a porta de forma a estar ligada um timer que gera uma frequencia com um certo duty. Isto mantêm-se até alterares isso.
Qualquer coisa que corra no codigo depois disto, deste que nao altere o estado desse pin, não vai alterar a velocidade dos motores.

tu fazes frente(). Ele em pouco tempo mete-se a um certo duty. Para ai uns micros ou assim (nao tenho grande noçao de velocidades de processamento).
Se tu metere logo parado() ele nem deve andar.
Tipo:
frente()
parado()

o tempo entre ele andar e parar é minusculo. logo por si so os comandos sao rapidos. Praticamente para o que deves usar é como se fosse instantaneo.
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/