[BR] Grupo brasileiro de construção de simuladores  Topic is solved solved with post #23295

português

Moderator: tonquites

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Mon 24. Dec 2012, 03:09

Olha ai o que amurrei, levemente amassado na dianteria, mas que vai servir com uma luva no meu projeto, O melhor foi o preço, ganhei no CIF , zero cost , não servia mais para o dono, Quadro Kart Mini, Está agora com o mecânico , soldando os supostes do voltane e cambio e pedaleira , Mais o banco de kart que saiu em cif também. Image
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Mon 24. Dec 2012, 03:11

Acho que vou ficar só com 4 mesmo, lemberei que tem o assalto da receita federal, dobra o preço, me manda só 4 mesmo , murchei ! tinha esquecido
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby tonquites » Mon 24. Dec 2012, 03:41

Adriano,

Vc não vai precisar de 4 placas desta não, a não ser que queira montar mais de um simulador, uma AMC 1.6 já basta, veja este esquema que explica toda a logica da parte de eletrônica, da AMC 1.6 (a imagem esta desatualizada com a versão AMC 1.5 mas é só para ilustrar), passando pela ponte H (H-Bridge), motores e fonte de alimentação;


Para 4 motores, vc pode usar um esquema que eu vou fazer que é usando 2 pontes H, assim;


Mas lembre se, este meu esquema é um 2DOF, apesar de termos 4 motores, temos apenas dois eixos X e Y de liberdade.

Abraços
The myth always limits infinity.
User avatar
tonquites
 
Posts: 82
Joined: Thu 19. Apr 2012, 17:47
Has thanked: 4 times
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Wed 26. Dec 2012, 02:33

Ok, compreendi, então ficou com 2 amc1.6 por que ainda tenho que comprar as pontes H, em fase de escolha
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Wed 26. Dec 2012, 02:33

onde de estão as contas para depósito ?
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby MauroM3 » Wed 26. Dec 2012, 15:39

Bom dia, também quero comprar a AMC. Quero 2, se ainda tiver tempo de "entrar" na vaca. Vou fazer um projeto com Arduino Mega, mas tambem quero testar a solução do Thanos. Abs.
Last edited by MauroM3 on Wed 26. Dec 2012, 20:30, edited 1 time in total.
MauroM3
 
Posts: 21
Joined: Sat 1. Sep 2012, 01:04
Has thanked: 1 time
Been thanked: 0 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby zecaEU01 » Wed 26. Dec 2012, 16:29

Bom dia tenho certeza que todos passaram um ótimo Natal.
Por falta de de internet e por causa da chuva e raios no sábado minha internet foi para as cucuias (vai ser interessante os estrangeiros não vão entender nada hahahah) e também meu roteador então não vi nada nesses dias.
Bom realmente está crescendo o bando de loucos (como bom torcedor do timão) por simuladores isto é muito legal ainda mais em um fórum não brasileiro (talvez se fosse não teria no início tanta gente participando).
Uma sugestão para quem já fez caca e comprou uma placa errada (erro exclusivamente meu), tenho lido os nossos tópicos e reparei que necessitamos de mais esclarecimentos quanto a compra, custos e funcionalidade de determinados itens (ex. altas temperaturas em alguns componentes), visto que algumas montagens com outros componentes não apresentam esse tipo de problema, como comprar de quem comprar e que componentes comprar, compatibilidade de componentes etc.
Vcs podem até pensar que estou tentando esfriar a vontade de todos, más não é isso eu também estou morrendo de vontade de por o meu para rodar e não é de hoje, necessitamos de uma troca maior de informações principalmente na parte eletrônica pois a maioria dos componentes são importados e seus custos não são baratos, quanto a parte mecânica cada um tem seu projeto e em caso de erro é mais fácil de corrigir, volto a repetir é apenas uma sugestão ok.

ZECA
zecaEU01
 
Posts: 69
Joined: Mon 19. Nov 2012, 14:40
Location: AMERICANA SAO PAULO
Has thanked: 0 time
Been thanked: 4 times

Re: [BR] Grupo brasileiro de construção de simuladores

Postby MauroM3 » Wed 26. Dec 2012, 18:45

Pessoal, a minha intenção é fazer um simulador 4DOF utilizando o Arduino Mega. Estou brincando com o Arduino, e criando em software de CAD a estrutura do simulador. Adquiri um banco concha de corrida e estou montando a estrutura a partir do banco, na melhor posição de dirigir, mas é outra história. Em relaçao as pontes H, os sites de robótica do Brasil tem várias coisas a oferecer, nem sempre a um preço justo - mas com a vantagem de ser a pronta entrega, outra coisa interessante destes sites é que eles tem muita informação técnica, sobre motores, potencia e tal.
MauroM3
 
Posts: 21
Joined: Sat 1. Sep 2012, 01:04
Has thanked: 1 time
Been thanked: 0 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Wed 26. Dec 2012, 21:45

Oi mauro , bemvindo !

Estou trabalhando também com o arduino também, fiz um protópico com motores servo que funcionou legal, vê ai no youtube
http://www.youtube.com/watch?v=xvj6gTwMVX8 , agora estou adquirindo o hardware, ganhei um chassis de kart com banco, um pouco batido , mas vai servir e vai ficar legal.... é um chassis igual a este da foto que segue
http://i1259.photobucket.com/albums/ii5 ... 3b7661.jpg

OLha ai a compra das peças para aumentar o torque dos motores, peças de bicicleta :
http://i1259.photobucket.com/albums/ii5 ... 255904.jpg

O desenho do meu esquema, meio tosco aqui , só para ilustrar a ideia:
Visão quase de cima :
http://i1259.photobucket.com/albums/ii5 ... 953a83.jpg
Visão lateral da estrutura de um dos motores :
http://i1259.photobucket.com/albums/ii5 ... 519823.jpg
Por vacilo meu código do arduino ficou em fortaleza, estou tentando resgatar mas acho que vou ter que fazer novamente !
Bem , já vou ter reescrever mesmo para ter de calcular na mão o giro dos potenciometros, paciência ! Espero ter ajudado ! VOu postar daqui a pouco os motores que me indicaram para uso
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

Re: [BR] Grupo brasileiro de construção de simuladores

Postby adrianovrm » Wed 26. Dec 2012, 23:06

/*
Meu código para rodar a maquete do youtube que demonstrei no link passado
  4.294.967.294 bilhoes de posicoes
  Deve ficar num range de 19 posicoes - divisor igual a = 226050910.2105263 que ficaram no intervalo de
X~a01~Y~a02~
 */

#include <LiquidCrystal.h>
#include <Servo.h>

 
const int numRows = 2;
const int numCols = 16;
 
 int A = 2;
 int B = 3;
 int C = 4;
 int P = 5;
 int D = 6;
 int E = 7;
 int F = 8;
 int G = 9;
 int inByte;
 LiquidCrystal lcd(12, 11, A0, A1, A2, A3);
 int rowsel;
 int buffer[14];
 int counteri;
 char tempstr[10];
 int gearsmap = 0;
 unsigned int carspeed;
 unsigned int rpm;
 int pspeed;
 byte d1;
 byte d2;
 byte gaugerpm;
 //Servo servo1;
 //Servo servo2;
 Servo servoFR; //defenir os nomes dos servos
 Servo servoFL;
 Servo servoRR; //defenir os nomes dos servos
 Servo servoRL;
 int FG_longintudinal;
 int FG_lateral;
 
void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  //Serial.begin(9600);
  Serial.begin(9600);
  lcd.begin(numCols,numRows);
  pinMode(A, OUTPUT); 
  pinMode(B, OUTPUT); 
  pinMode(C, OUTPUT); 
  pinMode(P, OUTPUT); 
  pinMode(D, OUTPUT); 
  pinMode(E, OUTPUT); 
  pinMode(F, OUTPUT); 
  pinMode(G, OUTPUT); 

  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, OUTPUT);
  pinMode(A4, OUTPUT);
  pinMode(A5, OUTPUT);
 
  pinMode(5,OUTPUT); 
  pinMode(6,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);         
 
  //escrevadigito(-8);
  //digitalWrite(A0, LOW);
  //delay(2000);
  //rowsel = 0 ;
  //servo1.attach(A4);
  //servo1.write(0);
  servoRR.attach(5);
  servoFR.attach(6);
  servoFL.attach(9);
  servoRL.attach(10);
 
  //servoFR.write(180); // servos iniciao na posição 0
  //servoFL.write(0);
  //servoRR.write(180); // servos iniciao na posição 0
  //servoRL.write(0);

  servoFR.write(90); // servos iniciao na posição 0
  servoFL.write(90);
  servoRR.write(90); // servos iniciao na posição 0
  servoRL.write(90);


}

void loop() {
 
  if (Serial.available() > 10)
    {
      counteri = 0;    
      for (counteri = 0; counteri < 10; counteri++)
       {
         buffer[counteri] = Serial.read();
       }
      if (buffer[0] == 88)
       {
         lcd.setCursor(0,0);
         lcd.print("                ");
         lcd.setCursor(0,1);
         lcd.print("                ");
         lcd.setCursor(0,0);
         //escrevadigito(1);
         //lcd.println(buffer[3]);
         lcd.print('X');
         lcd.setCursor(1,0);
         lcd.print(buffer[1]);
         lcd.setCursor(5,0);
         lcd.print('Y');
         lcd.setCursor(6,0);
         lcd.print(buffer[2]);
         lcd.setCursor(10,0);
         lcd.print('G');
         lcd.setCursor(11,0);
         gearsmap = map(buffer[3],111,255,-1,8);
         lcd.print(gearsmap);
         lcd.setCursor(12,0);
         lcd.print('S');
         lcd.setCursor(13,0);
         d1 = buffer[4];           // store high byte of speed
         d2 = buffer[5];      // store low byte of speed
         carspeed = d1 * 256 + d2;
         carspeed = map(carspeed,32639, 65536,0,400);    
         //lcd.print(map(carspeed,224,255,0,450)); // carspeed
         lcd.print(carspeed);
         // carspeed(value,127,577,0,450);
         lcd.setCursor(0,1);
         lcd.print('R');
         lcd.setCursor(1,1);
         d1 = buffer[6];           // store high byte of speed
         d2 = buffer[7];      // store low byte of speed
         rpm = d1 * 256 + d2;
         rpm = map(rpm,33127, 65536,0,10000);
         lcd.print(rpm);
         gaugerpm =0;
         lcd.setCursor(7,1);
         lcd.print('O');
         lcd.setCursor(8,1);
         d2 = buffer[8]; // valor aceleracao longitudinal
         FG_longintudinal = 0;     
         //FG_longintudinal = map (d2,117,137,-10,10);
         FG_longintudinal = map(d2,0,255,-10,10);
         lcd.print(FG_longintudinal);
         // mesmas variaveis - forca lateral
         d2 = buffer[9]; // valor aceleracao lateral
         FG_lateral = 0;              
         FG_lateral = map(d2,0,255,-10,10);
         lcd.setCursor(11,1);
         lcd.print('A');
         lcd.setCursor(12,1);
         lcd.print(FG_lateral);
         atualiza_servo(FG_longintudinal,FG_lateral);
       }  
     }     
}

float mapfloat(float val, float i1, float i2, float o1, float o2)
{
  return o1+(o2-o1)*((val-i1)/(i2-i1));
}

void atualiza_servo(int f_longitudinal, int f_lateral)
{
  int angulo_servoRL;
  int angulo_servoRR;
  int angulo_servoFL;
  int angulo_servoFR;
 
  // servo RL diminuir angulos
  // servo RR aumenta angulo
  //  servo1.write(0); // servo1 vai para 180 graus
  // servo2.write(180);
  //angulo_servo1 = map(f_longitudinal,-4, 4,0,179);
// map(f_longitudinal,-10, 10,0,179);
  angulo_servoRR = f_longitudinal*15 + 90;
  angulo_servoRL = 180 - angulo_servoRR; 
 
  angulo_servoFR = -f_longitudinal*15 + 90;
  angulo_servoFL = 180 - angulo_servoFR;
 
  if (f_lateral > 0) //dobrando a esquerda
  {
    angulo_servoFR = angulo_servoFR + f_lateral*15;
    angulo_servoRR = angulo_servoRR + f_lateral*15;   
  }
  else if  (f_lateral <0) //dobrando a direita
  {
    angulo_servoFL = angulo_servoFL + f_lateral*15;
    angulo_servoRL = angulo_servoRL + f_lateral*15;   
  }
 
  // se algum angulo passar de 180. voltar para 180
  angulo_servoRL = map(angulo_servoRL,0,180,0,180);
  angulo_servoRR = map(angulo_servoRR,0,180,0,180);
  angulo_servoFR = map(angulo_servoFR,0,180,0,180);
  angulo_servoFL = map(angulo_servoFL,0,180,0,180);
 
  servoFR.write(angulo_servoFR); // servoFR iniciou na posição 0 ,sendo atualizado com nova posicao
  servoFL.write(angulo_servoFL); // servosFL iniciou na posição 180,sendo atualizado com nova posicao
  servoRR.write(angulo_servoRR); // servosRR iniciiou na posição 0,sendo atualizado com nova posicao
  servoRL.write(angulo_servoRL); // servosRL que iniciou na posição 180,sendo atualizado com nova posicao
}
adrianovrm
X-Sim Supporter
 
Posts: 214
Joined: Tue 20. Nov 2012, 07:35
Has thanked: 0 time
Been thanked: 1 time

PreviousNext

Return to Portuguese

Who is online

Users browsing this forum: No registered users and 1 guest