projet Quadcity challenger/générique

Robin, Piper, Cessna, Ultralight, ULM

Re: projet Quadcity challenger/générique

Messagede A320 hérétique » Mar 29 Avr 2014 08:33

Bonjour,
je suis très intéressé par tes travaux sur la Teensy, j'avais pour ma part acheté une Arduino pour interfacer des panels à FSX, mais le projet n'a pas évolué, juste quelques tests basiques entre la carte et inter/led, mais je n'avais pas établi la liaison avec FSX.
Je crois que la Teensy est compatible Arduino, quelle chaine logiciel as-tu mis en oeuvre pour aller de la carte à FSX ?
Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3355
Inscription: 2/09/12
Localisation: Pornic

Re: projet Quadcity challenger/générique

Messagede rockclodbuster » Mar 29 Avr 2014 16:50

salut Michel
dessoler mais je suis avec x-plane 9, le fabriquant à créer un plugin pour récupérer les donner du simu.

par contre le teensy, peux être programmer pour apparaître comme un joystick de 6 axe, 32 bouton et un hat (ça ressemble a un leo BU0836)http://pjrc.com/teensy/td_joystick.html

j'ai fait une petite recherche pour voir ce qui existe pour FSX, quelque lien (en anglais malheureusement):
https://code.google.com/p/arduino-fs/
http://stavroskcy.blogspot.ca/2011/12/connecting-arduino-to-flight-simulator.html
http://www.jimspage.co.nz/arduino_keys_beta.htm
http://forum.arduino.cc/index.php?topic=40208.0
http://forum.arduino.cc/index.php?topic=97357.0

j'espere que j'ai pu d'aider
rockclodbuster
 
Messages: 29
Inscription: 14/05/11
Localisation: témiscaming, québec

Re: projet Quadcity challenger/générique

Messagede A320 hérétique » Mar 29 Avr 2014 17:58

Merçi pour tes recherches, je n'avais pas regardé depuis quelques temps, et il y a eu manifestement des progrès depuis !
Je vais me replonger là-dedans ...
Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3355
Inscription: 2/09/12
Localisation: Pornic

Re: projet Quadcity challenger/générique

Messagede rockclodbuster » Mer 30 Avr 2014 17:47

bonsoir a tous
une petite mise à jour de mon cockpit. j'ai pu tester le montage de mes servos. après quelque tâtonnement principalement lier au protocole de communication du contrôleur de servo, j'ai réussi à les faire bouger en synchronie avec le simu.

ils sont monter sur une plaque de plastique pour les test, présenter dans ce petit video:


le plus dur, c'est de trouver les bon dataref (le nom des "offset" dans x-plane) pour chaque servo.

le code arduino ressemble a ceci:
Code: Tout sélectionner
#include <LiquidCrystal.h>

LiquidCrystal lcd(10,9,6,5,4,3);

// X-Plane objects
FlightSimInteger Avionic_power;
FlightSimInteger ComFrequencyHz;
FlightSimInteger Flap;
FlightSimInteger Engine_RPM1;
FlightSimInteger Engine_RPM2;
FlightSimInteger Oil_Temp;
FlightSimInteger Oil_Pressure1;
FlightSimInteger Oil_Pressure2;
FlightSimInteger Gauge_ASI;
FlightSimInteger Gauge_VSI;
FlightSimInteger Gauge_EGT1;
FlightSimInteger Gauge_EGT2;

// setup runs once, when Teensy boots.
//
void setup()
{
  // initialize all hardware
  Serial1.begin(4800);
  //setup serial servo controller
  for(int i=0;i<8;i++)
  {
    Serial1.print(128,BYTE);  //start
    Serial1.print(1,BYTE);    //device ID
    Serial1.print(0,BYTE);    //command; set parameters
    Serial1.print(i,BYTE);    //servo num: servo i
    Serial1.print(79,BYTE);   // servoi on, fwd, range 90
  }
  lcd.begin(16,2);
  lcd.print("COM1:");
  lcd.setCursor(0, 1);
  lcd.print("Flap:");

  // configure the X-Plane variables
  ComFrequencyHz = XPlaneRef("sim/cockpit2/radios/actuators/com1_frequency_hz");
  ComFrequencyHz.onChange(update_lcd);  // update the LCD when X-Plane changes
  Flap = XPlaneRef("sim/flightmodel2/wing/flap1_deg");
  Flap.onChange(update_lcd2);
  Engine_RPM1 = XPlaneRef("sim/cockpit2/engine/indicators/engine_speed_rpm[0]");
  Engine_RPM1.onChange(update_RPM1);
  Oil_Pressure1 = XPlaneRef("sim/flightmodel/engine/ENGN_oil_press_psi[0]");
  Oil_Pressure1.onChange(update_Pressure1);
  Gauge_EGT1 = XPlaneRef("sim/cockpit2/engine/indicators/EGT_deg_C[0]");
  Gauge_EGT1.onChange(update_EGT1);
  Engine_RPM2 = XPlaneRef("sim/cockpit2/engine/indicators/engine_speed_rpm[1]");
  Engine_RPM2.onChange(update_RPM2);
  Oil_Pressure2 = XPlaneRef("sim/flightmodel/engine/ENGN_oil_press_psi[1]");
  Oil_Pressure2.onChange(update_Pressure2);
  Gauge_EGT2 = XPlaneRef("sim/cockpit2/engine/indicators/EGT_deg_C[1]");
  Gauge_EGT2.onChange(update_EGT2);
  Oil_Temp = XPlaneRef("sim/flightmodel/engine/ENGN_oil_temp_c[0]");
  Oil_Temp.onChange(update_Temp);
  Gauge_ASI = XPlaneRef("sim/cockpit2/gauges/indicators/airspeed_kts_pilot");
  Gauge_ASI.onChange(update_ASI);
  Gauge_VSI = XPlaneRef("sim/cockpit2/gauges/indicators/vvi_fpm_pilot");
  Gauge_VSI.onChange(update_VSI);
  Avionic_power = XPlaneRef("sim/cockpit2/electrical/battery_on");
  Avionic_power.onChange(upgrade_avionic);
}

// loop runs repetitively, as long as Teensy is powered up
//
void loop()
{
  // normally the first step in loop() should update from X-Plane
  FlightSim.update();

  if (FlightSim.isEnabled())
  {
    lcd.display();
  }
  else
  {
    lcd.noDisplay();
  }
}

// write a number onto the LCD, first row, starting at 6th column
void update_lcd(long val)
{
  lcd.setCursor(6, 0);
  lcd.print(val);
  lcd.print("  ");
}

void update_lcd2(long val)
{
  lcd.setCursor(7, 1);
  lcd.print(val);
  lcd.print("  ");
}

void update_RPM1(long val)
{
  int RPM = map(val,0,7000,127,0);
  Serial1.print(128,BYTE);   //start
  Serial1.print(1,BYTE);      //device ID
  Serial1.print(2,BYTE);      //command: set position
  Serial1.print(0,BYTE);    //servo num: servo 0
  Serial1.write(RPM);   // servo0 position
}

void update_Pressure1(long val)
{
  int PSI = map(val,0,100,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(3,BYTE);
  Serial1.print(PSI,BYTE);
}

void update_EGT1(long val)
{
  int EGT = map(val,0,1200,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(4,BYTE);
  Serial1.print(EGT,BYTE);
}

void update_RPM2(long val)
{
  int RPM = map(val,0,7000,0,127);
  Serial1.print(128,BYTE);   //start
  Serial1.print(1,BYTE);      //device ID
  Serial1.print(2,BYTE);      //command: set position
  Serial1.print(1,BYTE);    //servo num: servo 0
  Serial1.write(RPM);   // servo0 position
}

void update_Pressure2(long val)
{
  int PSI = map(val,0,100,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(PSI,BYTE);
}

void update_EGT2(long val)
{
  int EGT = map(val,0,1200,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(5,BYTE);
  Serial1.print(EGT,BYTE);
}

void update_Temp(long val)
{
  int Temp = map(val,20,150,0,127);
  Serial1.write(128);  //start
  Serial1.write(1);    //device ID
  Serial1.write(2);    //command; set position
  Serial1.write(1);    //servo num: servo 1
  Serial1.write(Temp);   // servo0 position
}

void update_ASI(long val)
{
  int ASI = map(val,0,150,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(3,BYTE);
  Serial1.print(ASI,BYTE);
}

void update_VSI(long val)
{
  int VSI = map(val,-3000,3000,0,127);
  Serial1.print(128,BYTE);
  Serial1.print(1,BYTE);
  Serial1.print(2,BYTE);
  Serial1.print(4,BYTE);
  Serial1.print(VSI,BYTE);
}

void upgrade_avionic(long val)
{
  if (val = 0)
  {
    lcd.noDisplay();
  }
  else
  {
    lcd.display();
  }
}


certain instrument, en fait presque touts, gagnerait a avoir plus de débattement, a tout le moins pour une prise direct. et pour info, j'ai 4 servo Hitec HS55(9g bonne qualité) et 2 servo chinois (9g les plus cheap possible). les 2 chinois sont ceux des RPM et j'ai remarquer qu'il sont moins précis et ne font même pas 90 degrés. je n'ai pas tester des servo standard puisque j'en ai pas de libre. pour des instrument qui ne bouge pas beaucoup (voltmètre, température huile, etc) ils peuvent faire l'affaire mais pas pour les autres.

maintenant, je doit attendre les engrenages et les axe pour faire les vrai instruments.
rockclodbuster
 
Messages: 29
Inscription: 14/05/11
Localisation: témiscaming, québec

Re: projet Quadcity challenger/générique

Messagede rockclodbuster » Sam 17 Mai 2014 14:29

j'ai reçu du matériel pour fabriquer ma radio, qui ne reproduit rien en particulier, juste une radio une fréquence. je n'ai pas trouver d'encodeur double a prix raisonnable, j'utiliserai donc deux bouton pour les réglage grossier et un encodeur simple pour les réglage fin. j'ai aussi modéliser un habillage pour ma clé de magnéto.

ma nouvelle imprimante 3D va avoir du boulot. j'ai quelque mécanisme et habillage que j'ai l'intention de refaire en imprimer. j'attend encore du filament noir et argent, j’espère avoir d'aussi bon résultat que Fabien avec sont curtiss.

Image
Image
rockclodbuster
 
Messages: 29
Inscription: 14/05/11
Localisation: témiscaming, québec

Re: projet Quadcity challenger/générique

Messagede fab » Sam 17 Mai 2014 18:29

Tu te débrouille pas mal avec l'Arduino et les servos ! ..

Les servos sont connectés sur quoi ?


rockclodbuster a écrit:j’espère avoir d'aussi bon résultat que Fabien avec sont curtiss.


il n'y a pas de raisons que se soit moche, bon je sais Fix dirait : "ça manque de ponçage et d'enduit dans certain cas"

tu as choisi quelle imprimante ?

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: projet Quadcity challenger/générique

Messagede algue14 » Sam 17 Mai 2014 18:40

rockclodbuster a écrit: je n'ai pas trouver d'encodeur double a prix raisonnable

le moins cher que je connaisse est chez Bodnar.
Bon, 18 Euros quand même pleurejaune
http://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=75&products_id=196
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: projet Quadcity challenger/générique

Messagede rockclodbuster » Dim 18 Mai 2014 05:34

Fabien,
j'ai une petite PrintrBot simple 2014 en kit. je suis encore en train de la règler pour de bon résultat avec du PLA. je vais devoir le modifier pour pouvoir imprimer ma radio, elle est trop grosse (130mm par 68mm environ) alors que je n'est que 100 par 100mm de surface d'impression tristounet . j'ai trouver un model qui me permettrai d'obtenir 165mm en X, suffisamment pour ma radio chouettedoights.

mes servo sont commandé par un Teensy 2.0 avec un plugin dans X-Plane. le teensy est configuré comme interface de simulateur de vol et programmer avec Arduino un peu a la maniere de SIOC.

Algue14,
merci de confirmer, je me demandais s'il y avais une autre source. de toute façon, je ne reproduit pas un model de radio exacte, je me suis donc permis quelque liberté pour le design.
rockclodbuster
 
Messages: 29
Inscription: 14/05/11
Localisation: témiscaming, québec

Re: projet Quadcity challenger/générique

Messagede fab » Dim 18 Mai 2014 07:31

Ok, 165, c'est une bonne taille ...

Si tu peux faire ta façade en PVC, se serait mieux, la finition est plus facile, je sais, l'impression est plus complexe ...

Mes premières pièces étaient en PLA, pour la restauration du CDU, depuis que j'utilise du PVC, c'est mieux !

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: projet Quadcity challenger/générique

Messagede fab » Dim 18 Mai 2014 07:43

rockclodbuster a écrit:. avec un plugin dans X-Plane....


Tu peux m'en dire plus ?
Le plugin fourni quoi et par quelle canal de communication : USB, série ?

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

PrécédenteSuivante

Retourner vers Aviation générale





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités