t'aurais quelques photos à partager ? via un hébergeur comme https://www.casimages.com/ sans inscription
normalement il y a une butée mécanique derrière la loadcell ! sinon elle peut aller se déformer au delà de sa limite et ça la flingue
t'aurais quelques photos à partager ? via un hébergeur comme https://www.casimages.com/ sans inscription
normalement il y a une butée mécanique derrière la loadcell ! sinon elle peut aller se déformer au delà de sa limite et ça la flingue
pour le même prix j'ai pu acheter en mai dernier des 32" MSI en bord fin et 2560x1440 144hz incurvé......
les 3 écrans 32" pour le prix d'un 49" ?
getmlh : sorry, en fait j'ai des écrans IIYAMA ProLite E2481HS-B1 bords fins 1920 x 1080, temps de réponse de 2 ms
ce sont des 24"
c'est vrai qu'en 27" je ne gagne que peu en comparaison (vs 22 -> 27)
mais avec un GB2760QSU-B1 WQHD 2560x1440 pixels en 144Hz https://www.materiel.net/produit/201706020028.html
je gagnerai en confort visuel, non ? c'est maintenant la question
Fullthrottle Max : le double 27" comme ils disent sur le site que tu indiques, ça me plaît bien aussi ! j'aime pas du tout quand je roule et que je prends une épingle, de voir le montant et en plus le changement d'angle de l'écran modifie l'image en mouvement...
Bonjour d'Amazon.es,
Il y a eu un retard dans l'expédition de votre commande. Nous ferons de notre mieux pour que le produit retardé vous parvienne le plus rapidement possible. Désolé pour les perturbations.
Détails Reverb G2
Commandé le vendredi 31 juillet 2020
Nouvelle date de livraison prévue:
Pas encore disponible. Nous vous enverrons un e-mail lorsque nous aurons une date de livraison.
hello !
j'ai un triple écran 22" depuis 7 ans et je me tâte pour upgrader en 144Hz, avec des bords encore plus fins et dans une taille supérieure !
option 1 : je reste en triple pour la bureautique et pour le simracing (et je continue comme aujourd'hui où je dois déplacer le cockpit entre les sessions pour l'approcher en face du bureau)
option 2 : je garde mon triple pour la bureautique et je dédie un seul écran au cockpit que je laisserai dans un coin
mais j'aurai un écran plus grand : genre une Télé qui irait pour du gaming !
vous avez des avis sur les télé gaming ? l'immersion est comment ?
j'aurai d'avantage de hauteur, je trouve que ça me manque actuellement sur mon triple
merci pour vos retours d'expérience ou vos avis !
clair !!
merci pour les infos !
un test sur timespy donne : RX 6800 faster than GeForce RTX 3070
mais quelle réf est l'équivalent (ou supérieur) à la RTX3080 ?
j'aime la boule Nova 360 mais il leur faudrait du Heave pour que ce soit top !
mais la maintenance annuelle à 150 000$ ...
pour le choix et l'appro les fils, il y a un topic dédié
je suis preneur d'un kit CSP pour mon v1 si ça va aussi !
si le moteur bloque alors l'intensité va monter au max possible (fonction de la résistance interne du bobinage je dirai) et si le driver n'utilise pas une sonde de courant pour se protéger d'une sur-intensité alors OUI le driver crame
et le moteur aussi potentiellement car ne tournant plus, les bobinages ne sont plus refroidis.
super
ces vérins ont-ils déjà été utilisés ? sont-ils encore sous garantie ?
as-tu des photos à partager (via un hébergeur) ?
PT Mover : comment démarrer ?
A l'époque lorsque je suis passé de X-sim à Simtools, ça a été l'effet waouh des plugins de jeu par dizaines, un abord plus simple que X-sim, gratuit...
Et puis en voulant m'y remettre cette année, j'ai été hyper déçu de ne pas m'y retrouver
les nouvelles modifs ont apporté trop d'écrans, pleins d'applis compagnons, les subtilités de profil par défaut, des réglages de gains un peu partout... j'ai même pas réussi à simuler les mouvements dans Output testing...
Et là, second effet WAOUH avec Fly TPMover
bravo à FlyPT c'est le boss
en 5 minutes en suivant les explications ci-dessous ça marchait avec la souris et en jeu (après reboot du PC car le firewall avait bloqué le flux entre Mover et DirtRally).
La logique est... hyper logique !
Et c'est gratuit ! Bon, je suis tellement content que j'ai craqué un billet pour le développeur !
j'y retourne
PT Mover : comment configuer un seul DOF
Add a source, the game you want to use.fly2.png
Add a simple direct with:
-Give a name to the actuator, maybe Belt
-Put the number of bits used by the controller to position the actuator, I used 10
-In the value for the actuator, use Longitudinal acceleration
-In range to bit range, we are going to map the values received to the actuator travel
I want it to move just for braking, not acceleration, so I would use 0 to 10m/s^2 (+-1g).
This means that for position zero of the actuator (bit value=0) we have 0 acceleration, and for the maximum bit value we have 10m/s^2.
An example, the scale of values might be wrong, I don't have a seat belt tensionner.
-In the filter, use a logistic to limit the values to a range of -10 to 10 with infinitesimal approach to 10.
Any value above near or above 10, approaches more and more the limit of 10.
So with this we define how to move the actuator.
We will never use the -10 on braking, because we crop them on the actuator (remember 0 to 10 in the range)
-So now that we have an actuator, we need to output it's data with a serial output:
Just put the name of the actuator there, in this case <Belt>.
You need to setup it accordingly to your hardware.
Note: Might have accelerations swapped, maybe it should be 0 to -10
And the scale of the value might not be the best, but it's a way to start.
► Maintenant que j'ai réussi à paramétrer 1 DOF avec l'accélération longitudinale ! je vais paramétrer un tensionneur avec 2 DOF (2 moteurs) pour sentir comment est l'auto dans le freinage : serrer le harnais plus à droite qu'à gauche si la voiture est en virage.
Mais je vais devoir passer par Pose -> Rig pour faire le mixage. L'effet Simple Direct ne permettant qu'une mesure de télémétrie en entrée...
(code et réglages ci-après)
Tips :
- tout se fait au clic de droite (ça m'a fait bizarre de n'avoir ni barre d'outils ni menu)
- vérifier votre firewall
- vérifier le serial du code arduino en face car Mover c'est Binaire (ou Décimal) mais pas hexa
exemples :
Mover = output "Binary" et "10bits"
Arduino =
Byte Data[2]
Data[0] = Serial.read();
Data[1] = Serial.read();
result = (Data[0] * 256 + Data[1]);
OU
Mover = output "Binary" et "8bits"
Arduino =
Byte Data
Data = Serial.read(); on obtient directement le résultat
code arduino (4 axes) :
// Multi Direct
// -> 4 servos
// <255><LeftBelt><127><127><RightBelt>
// Rig : Bit output -> 8 bits
// avec inversion
// PT Mover envoie de 0 à 255 par axe
/*Mover = output "Binary" et "10bits"
Arduino = Byte Data[2]
Data[0] = Serial.read();
Data[1] = Serial.read();
result = (Data[0] * 256 + Data[1]);
OU
Mover = output "Binary" et "8bits"
Arduino = Byte Data
Data = Serial.read(); on obtient directement le résultat*/
#include <Servo.h> // local library "Servo.h" vs library partagée <Servo.h>
const byte nbServos = 4;
// create servo objects to control any servo
Servo myServo[nbServos];
const byte servoPin[nbServos] = {2, 3, 4, 5}; // pins digitales (pas forcément ~pwm)
const byte inversion[nbServos] = {1, 1, 0, 0 }; // paramètre à changer si un servo part le mauvais sens
int OldSerialValue[nbServos] = {0, 0, 0, 0};
int NewSerialValue[nbServos] = {0, 0, 0, 0};
// servo span:
int servoHomeDegres[nbServos] = { 0, 0, 0, 0}; //sera mis à jour avec la mesure de pression initiale
int servoMaxDegres[nbServos] = { 90, 90, 90, 90}; // cuisseG, cuisseD, côtéG, côtéD
int servoPositionTarget[nbServos] = {0, 0, 0, 0};
const byte deadZone = 0;
// =======================================
// Variables for info received from serial
// =======================================
int bufferPrevious = 0; // To hold previous read fom serial command
int bufferCurrent = 0; // To hold current read fom serial command
int bufferCount = 0; // To hold current position in bufferCommand array
// byte bufferCommand[2*nbServos] = {0}; // (*2 if 10 bits) To hold received info from serial
int bufferCommand[4] = {0}; // To hold received info from serial
void setup()
{
Serial.begin(115200); // opens serial port at specified baud rate
// attach the Servos to the pins
for (byte i = 0; i < nbServos; i++) {
// pinMode(servoPin[i], OUTPUT); // done within the library
myServo[i].attach(servoPin[i]); // attaches the servo on servoPin pin
}
// move the servos to signal startup
MoveAllServos255toDegres(125); // mi-course
delay(1000);
// send all servos to home
MoveAllServos255toDegres(0);
}
void loop()
{
// SerialValues contain the last order received (if there is no newer received, the last is kept)
if (Serial.available())
{
bufferPrevious = bufferCurrent; // Store previous byte
bufferCurrent = Serial.read(); // Get the new byte
bufferCommand[bufferCount] = bufferCurrent; // Put the new byte in the array
bufferCount++; // Change to next position in the array
if (bufferCurrent == 255) bufferCount = 0; // one 255 is the start of the position info
if (bufferCount == nbServos) //si 8 bits, nbServos // si 10 bits nbServos*2
//Having reach buffer count, means we have the new positions and that we can update the aimed position
{
for (byte i = 0; i < nbServos; i++) {
NewSerialValue[i] = bufferCommand[i];
//NewSerialValue[i]= (bufferCommand[i*2] * 256) + bufferCommand[i*2+1]; // si 10 bits
}
bufferCount = 0;
}
}
// Update orders sent to motor driver
for (byte i = 0; i < nbServos; i++) {
if (abs(OldSerialValue[i] - NewSerialValue[i]) > deadZone) {
if (inversion[i] == 1)
{
envoiServoConsigne255toDegres(i, (255 - NewSerialValue[i]));
}
else
{
envoiServoConsigne255toDegres(i, NewSerialValue[i]);
}
OldSerialValue[i] = NewSerialValue[i];
}
}
}
void envoiServoConsigne255toDegres(byte servoID, int val )
{
byte targetDegres;
val = constrain(val, 0, 255); // constrain coupe au dessus et en dessous : écrêtage et pas mise à l'échelle (comme map)
// sécurité pour éviter les cas où Simtools enverrait du négatif ou au-delà de 255
targetDegres = map(val, 0, 255, servoHomeDegres[servoID], servoMaxDegres[servoID]);
// map(value, fromLow, fromHigh, toLow, toHigh)
myServo[servoID].write(targetDegres); // tell servo to go to position in variable : in steps of 1 degree
// servo.write(angle) -> angle: the value to write to the servo, from 0 to 180
}
void MoveAllServos255toDegres( int target)
{
// send all servos to home
for (byte i = 0; i < nbServos; i++) {
envoiServoConsigne255toDegres(i, target);
}
}
Afficher plus
► voici mes réglages PT Mover en 2 DOF (avec fichier joint)
anthony1605 tu devrais compléter ton profil pour y indiquer ta localisation c'est toujours sympa
et puis en plus pour ton annonce, ça permet d'envisager une remise en main propre ou un essai ?
pouvoir éditer le pid en temps réel
le Graal !!