[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 thunder1991 » Thu 31. Jan 2013, 21:10

Boa Tarde Galera, voltei...
Seguinte, consegui meio que reunir tudo que está relacionado ao meu projeto (similar ao do Florinskes) e estão faltando algumas peças para a finalização do mesmo. Claro que se o Meu amigo serralheiro não me enrolar mais do que já está.
Zeca, estou precisando a priore de 4 unidades do Uniboll, vc havia me perguntado se precisava e realmente preciso, me mande uma MSG para acertarmos valores e conta corrente para o depósito. Também estou com dificuldade no que diz respeito as molas, pois a mesmas precisam ser bem resistentes, caso alguém possa me dar um help em relação as mesmas lhe serei muito grato.
Acredito que daki a uns 5 ou 6 dias todas as peças devem estar no jeito e sem dúvida postarei algumas fotos aqui para obter mais ajuda para a montagem final.
Outra coisa que está meio que me deixando louco é o sistema (X-Sim) estou realmente perdido em relação ao mesmo, caso alguém possa me dar umas dicas serei eternamente grato. A finalidade deste projeto é um simulador para corrida e também utilizado em simuladores de voo. Acredito que deve haver diferença na configuração do sistema para os 2 modos, certo?

Mas uma vez agradeço a ajuda, e desde já me coloco a disposição para tentar ajudar no que puder.
Vou listar todos os ítens e colocar as referências de onde meu parceiro de trabalho comprou os equipamentos, mas até onde sei foi pelo Ebay.


Abço a todos,


Ricardo Moraes
thunder1991
X-Sim Supporter
 
Posts: 14
Joined: Tue 22. Jan 2013, 17:37
Has thanked: 0 time
Been thanked: 0 time

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

Postby zecaEU01 » Thu 31. Jan 2013, 21:21

Acabei de enviar um email alguns minutos antes de vc postar aqui no forum

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 adrianovrm » Fri 1. Feb 2013, 18:22

Caro Thunder, assim que tiver um tempo, vou fazer um vídeo de comoi eu uso o X-sim até segunda, não sou expert mas consegui fazer o programa funcionar com meu arduino. veja este vídeo do meu protótipo http://www.youtube.com/watch?v=xvj6gTwMVX8
Neste vídeo eu recebo os dados do USO - (universal serial output) do conversor... digo logo que apanhei um bom bocado para fazer funcionar. Abaixo ponho o código do arduino que faz a recepção da informação e posta em um LCD que tinha na protoboard, além de movimentar os servos claro. A programação não é a mesma para o modelo em escala real por que no vídeo estou usando servo library, é só dizer o angulo e o motor movimenta no angulo que se quer. no modelo real não é assim, os motores são CC e são preparados para trabalhar como servos através do uso de potenciometros. O potenciometros são fisados no eixo do motor e são lidos pelas portas analógicas do arduino com valores entre 0 e 1023 representando quase 360 graus, os potenciometros que uso tem angulo de rotaçao máximo de 300 graus , daí não posso usar caixas de aumento de torque com rotaçao livre pois meus pots iriam para o espaço quando o motor tentasse girar mais que 300 graus. minha conexão é direta estilo esta aqui a imagem 1 que vai anexa ! Algumas pessoas usam conexão do motor ao chassis com esquemas de coroa e pinhão, tipo transmissão de bicicleta para aumentar o torque mas adicionam complexidade ao projeto, estou tentando fungir da complicação. Outra , eu rodo os programas X-Extractor e X-Converter com privilégios de administrador. Uso o X-sim com o simulador rfactor , devemos copiar um plugin de dentro da pasta do extractor, é uma pasta de nome "Other stuff/rfactor" para a pasta de plugins do rfactor. Isto , obviamente depois de rodar os extractor pela primeira vez e inserimos os eventos/efeitos que queremos , tipo selecionamos o simulador na box da direita e depois no box da esquerda adicionamos os efeitos. Tem um momento que o programa pergunta se quer rodar tudo no mesmo computador, eu escolhi esta opção, mais simples claro. No x-converter eu adiciono um Axis para cada efeito que desejo, já vi uma turma adicionando vários efeitos em um único eixo mas não aceitei usar assim. Bem quando abre o converter , ele também pede para criar um perfil, e já busca os jogos que tem na cpu. eu faço o apontamento manual para o EXE do rfactor. Estou usando o converter 3.0.6 pois o 3.0.7 não tem o botão try send data daí não acertei funfa nele, voltei ao 3.0.6. Fica difícil dizer tudo , escrevendo, vou fazer o vídeo , assim que puder cara ! , um abraço.
Attachments
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 » Fri 1. Feb 2013, 18:35

Tentando completar, no Converter eu uso um AXIS para cada eixo; e na saída USO vc coloca a string que a informação vai, por default o converter é assim;
AXIS1 - A01;
AXIS2 - A02;

Ao criar um eixo A01 ele é vinculado a algum efeito , nós fazemos isto inserindo no eixo um efeito, tipo acerelação longintudinal , tipo acerelação lateral, esses são os dois efeitos que uso; Daí para receber os dados colocamos no output do USO a seguinte string ~A01~~A02~ , se tivesse um terceiro efeito seria
A01~~A02~~A03~ . O ~ fica como caracter especial que não é transmitido, assim eu fico recebendo 3 bytes se a informação que recebo tem 8 bits para cada eixo. Se A01 tivesse 16bis então eu recebo 4 bytes por vez. No meu teste com os servos eu estou usando 10 bytes por que capturo , angulo do meu volante e velocidade, aceleracao e rpm; tem que mexer um pouco nas conversões na aba MATH para ajustar cada eixo , no meu caso foi empirismo puro.
Segue o código arduino , EM C , que captura e mostra os dados. SÓ ILUSTRANDO já que tua tecnologia é diferente.

/*


4.294.967.294 bilhoes de possicoes
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); // servos iniciao na posição 0
servoFL.write(angulo_servoFL);
servoRR.write(angulo_servoRR); // servos iniciao na posição 0
servoRL.write(angulo_servoRL);
}

}
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 » Fri 1. Feb 2013, 18:46

no caso, meu padrão de saída USO é : XY~A01~~A02~~A03~~A04~~A05~~A06~ o código ascii do X é 88 e o Y 89, por isto testo daquela forma, colocando em um buffer[10] se sendo sempre
buffer[0] = 88
buffer[1] = 89
A01 - 8 bits - buffer[2] = Posicao Volante -127 --- 0 ---- 127
A02 - 8 buits - buffer[3] = Marcha corrente 127 = 0 e ré igual 111, daí mapeio da ré ao 8 marcha ,descobrir os valores de forma empirica- sofrimento;
A03 - 16 bits - buffer[4] e buffer[5] = valor 16 bits para representar a velocidade , com forma conversão dos dois bytes em um valor apresentá vel no lcd - mais empirismo aqui.
A04 - 16 bits - buffer[6] e buffer[7] = valor rpm, dali testes para descobrir os valores de conversão;
A05 - 8 bits ---buffer[8] = aceleracao longitudinal;
A06 - 8 bits -- buffer[9] = aceleracao lateral

de 0 a 9 temos 10 valores , posto , quando tivemos mais de 10 valores na serial é porque temos um conjunto completo de bytes para serem lidos, funcionou no arduino , tomara que funcione na tua programação,

Bem, disto istom, se alguém souber como faz para ter mais de um efeito/valor em um eixo, favor me avisar, por que eu não sei ainda
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 » Fri 1. Feb 2013, 18:52

para ajudar mais, ainda, aqui vai o meu profile para carregar no converter... espero que ajude !
Attachments
Adriano ProfileLF4.txt
(11.75 KiB) Downloaded 581 times
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 » Fri 1. Feb 2013, 18:52

favor renomear a extensão para rn2 quando baixar
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 thunder1991 » Sat 2. Feb 2013, 01:46

Boa Noite Adriano,

Cara nem sei como agradecer a tua imensa (grande mesmo) ajuda, amanhã vou me reunir com o pessoal (meu primo que é programador) para passar estes dados, pois ele é mais apto para isso.
Espero que a parte estrutural também esteja no jeito para que possamos começar a montar o esqueleto do sim.
Qualquer dúvida que eu venha a ter nesse processo do software não hesitarei em lhe chamar (se não for incomodo claro).

Não se esqueça de meus Uniboll Zeca!!!

Mais uma vez valeu pelas dicas e ajudas que com certeza serão de fundamental importância para a conclusão do projeto.


Abço

Moraes
thunder1991
X-Sim Supporter
 
Posts: 14
Joined: Tue 22. Jan 2013, 17:37
Has thanked: 0 time
Been thanked: 0 time

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

Postby adrianovrm » Sat 2. Feb 2013, 02:41

Beleza entao thunder , olha, tem que ter muita paciencia , é muita coisa para aprender , estou a disposicao , lembre , este codigo arduino que cokoquei é só para ensinar como trabsmitir os dados do xsim oara o microprocessador , nao é a progranacao final dos grandes motores , nisto ainda estoy trabalhando, meu sim anda devagar pw é um hobby de fim de senana , já sou chefe de familia , dai sobra pouco tempo, abraço e boa noite , farei o o video que proneti em breve
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 zecaEU01 » Sat 2. Feb 2013, 11:57

thunder1991 wrote:Boa Noite Adriano,

Cara nem sei como agradecer a tua imensa (grande mesmo) ajuda, amanhã vou me reunir com o pessoal (meu primo que é programador) para passar estes dados, pois ele é mais apto para isso.
Espero que a parte estrutural também esteja no jeito para que possamos começar a montar o esqueleto do sim.
Qualquer dúvida que eu venha a ter nesse processo do software não hesitarei em lhe chamar (se não for incomodo claro).

Não se esqueça de meus Uniboll Zeca!!!

Mais uma vez valeu pelas dicas e ajudas que com certeza serão de fundamental importância para a conclusão do projeto.


Abço

Moraes


Bom dia Morares e um abraço a todos

Eu preciso do seu email, lá vai o meu josecteixeira@terra.com.br

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

PreviousNext

Return to Portuguese

Who is online

Users browsing this forum: No registered users and 1 guest