Рейтинг@Mail.ru
Перейти к содержимому

Рекомендованные сообщения

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ага, именно этот человек делал мою платформу :popcorn:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@GranDoxin,

Ишь, оживился…

Не хрен на моушен-платформы отвлекаться — баранку делай давай : )

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кстати да - заказывать мне еще один q1r маму или нет? :popcorn:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ишь, оживился…

Так это же наоборот хорошо.. ))

 

кстати да - заказывать мне еще один q1r маму или нет?

Ну погоди, заказывать надо когда будет к чему... ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

китайцы радуют доставка за 12 дней.

 

[spoiler=Готовь кокпиты летом]

0_32b014_94d3a222_XL.jpg

 

 

 

Заканчиваю первый этап, остались моторы дождаться и начинаю собирать стенд.

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавляем к нашим расходам +1500р. П.О по извлечению данных из игр, оказывается стоит денег) Кряка я не нашел, а я искал (нет)

затраты на сегодняшний день:

  1. Два мотора 2400р экзист автодок
     
  2. Адруино и МоторМосты 500р али
     
  3. два БП 12вольт 16А примерно 2000р (БУ)авито
     
  4. Поты 300р 10шт(продаются партиями) али
     
  5. ПО simtools 1500р
     
  6. Провода и расходы на пайку
     
  7. Кардан, расходы на сварку и металл еще неизвестны.

[spoiler=Мотор от ланоса]https://fotki.yandex...80/view/2120681

 

 

[spoiler=наша схема и что получилось]https://fotki.yandex...80/view/2120680

https://fotki.yandex...80/view/2120679

 

 

В. Почему нужен мотор от ланоса?

О. У него масса не на корпусе, а отдельным проводом!

 

З.Ы. еслиб я знал, что все не так просто я бы не начал! это только начало, а уже столько гемороя. надеюсь хватить сил
  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
П.О по извлечению данных из игр, оказывается стоит денег)

Для самодельщиков бесплатно. Тебе надо у них на форуме завести тему про свою конструкцию (на англ, через гугл транслейт), такая тема является как бы подтверждением того, что тебе нужна DIY-лицензия

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кардан

https://goo.gl/photo...r5YZHxMG247KuDA

https://goo.gl/photo...6xHeNx4ttJWHct7

при покупке обращать внимание на состоянии крестовины, чтобы легко вращалась)

 

UPD

Хорошие новости "оно заработало" видео с полей

https://www.youtube.com/watch?v=fYMBm8TMLGw

Изменено пользователем mypkuh
  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вж вж насколько тихо или громко для уха?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вж вж насколько тихо или громко для уха?

ну на столе слышно, после установки моторы стоят за креслом, пилот обычно в наушниках и шлеме, врятли услушит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
пилот обычно в наушниках и шлеме, врятли услушит

Ну это смотря какой пилот.. у меня вот и шлема то нет : )

На самом деле я не за пилота беспокоюсь, а за окружающих. Насколько оно может или не может досаждать им... В домашних условиях это немаловажно.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нормально со звуком. шум лично у меня только от вентиляторов, охлаждающих сам мост adruino. пения птиц и скрипов, как с актуторами, тут тоже нет. икто не жаловался, хотя и вечером бывает гоняю

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот и первые головняки, хз чо с левым мотором

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какой софт используешь?

Когда я ради экперимента делал на ардуино и 6 рулевых машинках миниплатформу 6dof, одна их машинок тоже дергалась. На форуме XSimulator никто вразумительного ответа не дал. Начал разбираться, и оказалось что нужно было увеличить время задержки в настройках софта. После этого всё заработало как надо. На картине эток параметр установлен на 20 м.сек. Я его повышал до тех пор пока сбои не прекратились.

simtools-game-engine-interface.jpg

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какой софт используешь?

Когда я ради экперимента делал на ардуино и 6 рулевых машинках миниплатформу 6dof, одна их машинок тоже дергалась. На форуме XSimulator никто вразумительного ответа не дал. Начал разбираться, и оказалось что нужно было увеличить время задержки в настройках софта. После этого всё заработало как надо. На картине эток параметр установлен на 20 м.сек. Я его повышал до тех пор пока сбои не прекратились.

 

измение данной настройки увы не помогает. единственное что остается это либо в коде ардуино что-то или мотор такой глюченый.

вот мой код мб кто разбирается в таких?)

 

[spoiler=код ардуино]

/*
Arduino code for dynamic playseat 2DOF
Created 24 May 2011 by Jim Lindblom SparkFun Electronics https://www.sparkfun.com/products/10182 "Example Code"
Created 24 Apr 2012 by Jean David SEDRUE Version betatest26 - 24042012 http://www.gamoover.net/Forums/index.php?topic=25907
Updated 20 May 2013 by RacingMat in english http://www.xsimulator.net/2dof-wiper-motor-playseat/ in french : http://www.gamoover.net/Forums/index.php?topic=27617
Updated 30 April 2014 by RacingMat (bug for value below 16 corrected)
*/
#define BRAKEVCC 0
#define RV 2 //beware it's depending on your hardware wiring
#define FW 1 //beware it's depending on your hardware wiring
#define STOP 0
#define BRAKEGND 3
////////////////////////////////////////////////////////////////////////////////
#define pwmMax 255 // or less, if you want to lower the maximum motor's speed
// defining the range of potentiometer's rotation
const int potMini=300;
const int potMaxi=800;
////////////////////////////////////////////////////////////////////////////////
#define motLeft 0
#define motRight 1
#define potL A0
#define potR A1
////////////////////////////////////////////////////////////////////////////////
// DECLARATIONS
////////////////////////////////////////////////////////////////////////////////
/* VNH2SP30 pin definitions*/
int inApin[2] = {
7, 4}; // INA: Clockwise input
int inBpin[2] = {
8, 9}; // INB: Counter-clockwise input
int pwmpin[2] = {
5, 6}; // PWM input
int cspin[2] = {
2, 3}; // CS: Current sense ANALOG input
int enpin[2] = {
0, 1}; // EN: Status of switches output (Analog pin)
int statpin = 13; //not explained by Sparkfun
/* init position value*/
int DataValueL=512; //middle position 0-1024
int DataValueR=512; //middle position 0-1024
////////////////////////////////////////////////////////////////////////////////
// INITIALIZATION
////////////////////////////////////////////////////////////////////////////////
void setup()
{
// serial initialization
Serial.begin(115200);
// initialization of Arduino's pins
pinMode(statpin, OUTPUT); //not explained by Sparkfun
digitalWrite(statpin, LOW);
for (int i=0; i<2; i++)
{
pinMode(inApin[i], OUTPUT);
pinMode(inBpin[i], OUTPUT);
pinMode(pwmpin[i], OUTPUT);
}
// Initialize braked for motor
for (int i=0; i<2; i++)
{
digitalWrite(inApin[i], LOW);
digitalWrite(inBpin[i], LOW);
}
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Main Loop ////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void loop()
{
int sensorL,sensorR;
readSerialData(); // DataValueR & L contain the last order received (if there is no newer received, the last is kept)
// the previous order will still be used by the PID regulation MotorMotion Function
sensorR = analogRead(potR); // range 0-1024
sensorL = analogRead(potL); // range 0-1024
motorMotion(motRight,sensorR,DataValueR);
motorMotion(motLeft,sensorL,DataValueL);
}
////////////////////////////////////////////////////////////////////////////////
// Procedure: wait for complete trame
////////////////////////////////////////////////////////////////////////////////
void readSerialData()
{
byte Data[3]={
'0','0','0' };
// keep this function short, because the loop has to be short to keep the control over the motors
if (Serial.available()>2){
//parse the buffer : test if the byte is the first of the order "R"
Data[0]=Serial.read();
if (Data[0]=='L'){
Data[1]=Serial.read();
Data[2]=Serial.read();
// call the function that converts the hexa in decimal and that maps the range
DataValueR=NormalizeData(Data);
}
if (Data[0]=='R'){
Data[1]=Serial.read();
Data[2]=Serial.read();
// call the function that converts the hexa in decimal and maps the range
DataValueL=NormalizeData(Data);
}
}
if (Serial.available()>16) Serial.flush();
}
////////////////////////////////////////////////////////
void motorMotion(int numMot,int actualPos,int targetPos)
////////////////////////////////////////////////////////
{
int Tol=20; // no order to move will be sent to the motor if the target is close to the actual position
// this prevents short jittering moves
//could be a parameter read from a pot on an analogic pin
// the highest value, the calmest the simulator would be (less moves)
int gap;
int pwm;
int brakingDistance=30;
// security concern : targetPos has to be within the mechanically authorized range
targetPos=constrain(targetPos,potMini+brakingDistance,potMaxi-brakingDistance);
gap=abs(targetPos-actualPos);
if (gap<= Tol) {
motorOff(numMot); //too near to move
}
else {
// PID : calculates speed according to distance
pwm=195;
if (gap>50) pwm=215;
if (gap>75) pwm=235;
if (gap>100) pwm=255;
pwm=map(pwm, 0, 255, 0, pwmMax); //adjust the value according to pwmMax for mechanical debugging purpose !
// if motor is outside from the range, send motor back to the limit !
// go forward (up)
if ((actualPos// go reverse (down)
if ((actualPos>potMaxi) || (actualPos>targetPos)) motorGo(numMot, RV, pwm);
}
}
////////////////////////////////////////////////////////////////////////////////
void motorOff(int motor){ //Brake Ground : free wheel actually
////////////////////////////////////////////////////////////////////////////////
digitalWrite(inApin[motor], LOW);
digitalWrite(inBpin[motor], LOW);
analogWrite(pwmpin[motor], 0);
}
////////////////////////////////////////////////////////////////////////////////
void motorOffBraked(int motor){ // "brake VCC" : short-circuit inducing electromagnetic brake
////////////////////////////////////////////////////////////////////////////////
digitalWrite(inApin[motor], HIGH);
digitalWrite(inBpin[motor], HIGH);
analogWrite(pwmpin[motor], 0);
}
////////////////////////////////////////////////////////////////////////////////
void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
////////////////////////////////////////////////////////////////////////////////
{
if (motor <= 1)
{
if (direct <=4)
{
// Set inA[motor]
if (direct <=1)
digitalWrite(inApin[motor], HIGH);
else
digitalWrite(inApin[motor], LOW);
// Set inB[motor]
if ((direct==0)||(direct==2))
digitalWrite(inBpin[motor], HIGH);
else
digitalWrite(inBpin[motor], LOW);
analogWrite(pwmpin[motor], pwm);
}
}
}
////////////////////////////////////////////////////////////////////////////////
void motorDrive(uint8_t motor, uint8_t direct, uint8_t pwm)
////////////////////////////////////////////////////////////////////////////////
{
// more readable function than Jim's (for educational purpose)
// but 50 octets heavier -> unused
if (motor <= 1 && direct <=4)
{
switch (direct) {
case 0: //electromagnetic brake : brake VCC
digitalWrite(inApin[motor], HIGH);
digitalWrite(inBpin[motor], HIGH);
break;
case 3: //Brake Ground (free wheel)
digitalWrite(inApin[motor], LOW);
digitalWrite(inBpin[motor], LOW);
break;
case 1: // forward : beware it's depending on your hardware wiring
digitalWrite(inApin[motor], HIGH);
digitalWrite(inBpin[motor], LOW);
break;
case 2: // Reverse : beware it's depending on your hardware wiring
digitalWrite(inApin[motor], LOW);
digitalWrite(inBpin[motor], HIGH);
break;
}
analogWrite(pwmpin[motor], pwm);
}
}
////////////////////////////////////////////////////////////////////////////////
// testPot
////////////////////////////////////////////////////////////////////////////////
void testPot(){
Serial.print(analogRead(potR));
Serial.print(";");
Serial.println(analogRead(potL));
delay(250);
}
////////////////////////////////////////////////////////////////////////////////
void testpulse(){
int pw=120;
while (true){
motorGo(motLeft, FW, pw);
delay(250);
motorOff(motLeft);
delay(250);
motorGo(motLeft, RV, pw);
delay(250);
motorOff(motLeft);
delay(500);
motorGo(motRight, FW, pw);
delay(250);
motorOff(motRight);
delay(250);
motorGo(motRight, RV, pw);
delay(250);
motorOff(motRight);
Serial.println("testpulse pwm:80");
delay(500);
}
}
////////////////////////////////////////////////////////////////////////////////
// Function: convert Hex to Dec
////////////////////////////////////////////////////////////////////////////////
int NormalizeData(byte x[3])
////////////////////////////////////////////////////////////////////////////////
{
int result;
if ((x[2]==13) || (x[2]=='R') || (x[2]=='L')) //only a LSB and Carrier Return or 'L' or 'R' in case of value below 16 (ie one CHAR and not 2)
{
x[2]=x[1]; //move MSB to LSB
x[1]='0'; //clear MSB
}
for (int i=1; i<3; i++)
{
if (x[i]>47 && x[i]<58 ){//for xA to xF
x[i]=x[i]-48;
}
if ( x[i]>64 && x[i]<71 ){//for x0 to x9
x[i]=x[i]-55;
}
}
// map the range from Xsim (0 <-> 255) to the mechanically authorized range (potMini <-> potMaxi)
result=map((x[1]*16+x[2]),0,255,potMini,potMaxi);
return result;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для того чтобы убедиться в том что мотор глючный или нет, переподключи его на место того мотора который не дёргается.

С кодом помочь к сожалению не могу.

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для того чтобы убедиться в том что мотор глючный или нет, переподключи его на место того мотора который не дёргается.

С кодом помочь к сожалению не могу.

В общем дело явно в коде, при переключении мотора работает без пробелем

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

честно говоря сомневаюсь, что дело в коде, но попробуй SMC3, имхо он самый продвинутый

https://www.xsimulator.net/community/threads/smc3-arduino-3dof-motor-driver-and-windows-utilities.4957/

 

еще можно поменять местами мотомонстеры для проверки - у них тоже качество сильно плавает

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

честно говоря сомневаюсь, что дело в коде, но попробуй SMC3, имхо он самый продвинутый

https://www.xsimulator.net/community/threads/smc3-arduino-3dof-motor-driver-and-windows-utilities.4957/

 

еще можно поменять местами мотомонстеры для проверки - у них тоже качество сильно плавает

На русском форуме подсказали что это норма и под нагрузкой пройдет. И вообще настройкой моторов только под нагрузкой заниматся. Возможно дело в мотомонстре

 

Тем временем https://photos.app.goo.gl/0HmoMAUyXKnTmJNE2

Изменено пользователем mypkuh
  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сталь? тяжеловасто будет.. зато железобетонно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С заделом на будущие, кто знает вдруг психану и моторы помощнее поставлю)

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Похожие публикации

    • Автор: mypkuh
      Два мотор редуктора от шевроле ланос. "STARTVOLT VWF0547" 60 об/мин, 12В, 2.5А
      Состояние "почти новый" пробег около 20 часов.
      Цена за два 1800

    • Автор: Skyroad

       
      Разработчик: Milestone
      Издатель: PQube
      Жанр игры: Racing Simulation
      Дата выхода: Весна 2015
      Платформа: PC, PlayStation 3, PlayStation 4, Xbox 360, Xbox One
       
      http://youtu.be/fdUSqOH4lhQ
       
      http://youtu.be/sE7Zn8KpD1Q
    • Автор: Ghostb
      Продам аккаунт от iRacing. Набор трасс и автомобилей прилагается :)
      Набор трасс: Circuit de Spa Francorchamps, Road America, Silverstone Circuit, Suzuka International Racing Course, Brands Hatch + стандартные полученные при подписке
      Набор автомобилей: Ford GT, Ford Mustang FR500S, Lotus 79, Skip Barber Formula 2000, VW Jetta TDI Cup, Radical SR8, Star Mazda + стандартные полученные при подписке
       
      Цена: 100$ + разумный торг
       
      Контакты: личка и мыло - ghostb-design собака rambler тчк ru
       
      п.с. Телефон не указываю т.к. нахожусь в Киев, Украина, если кому понадобиться номер - пишите в тему, в личку или на мыло.
      п.п.с. Если вдруг кому понадобятся доказательства - пишите я отправлю.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×