Ca y est, je me lance j'ai rassemblé de quoi me faire des panels pour Dcs / Gazelle.
J'ai commencé très très léger avec une simple plaque de pvc et une impression papier du panel que je peuplerai progressivement avec les interrupteurs, boutons, jauges et autres.
Très vite j'ai vu que seule, la plaque de plexi, ça allait être galère alors j'ai fait un cadre métallique, en rail de placo... Pour ceux qui connaissent le ba13 et les bandes
Oui mon challenge c'est aussi de me servir un maximum de récup et pièces pas cher qui prennent 3 semaines à arriver.
J'ai opté pour DCS Bios couplé avec des arduinos qui seront soit utilisé en port com ou en tant que joystick (hid usb) (les arduinos avec des ATMEL 32u4)
Voilà ce dimanche soir j'ai de quoi démarrer la turbine inter et voyants 'Dem' et 'Rlt'. Pour arriver à ça j'ai du compiler Socat pour qu'il fonctionne avec mon pc et j'ai du me faire ma version de DCS bios en récupérant les éléments des pull requests...
Et pour m'encourager je vois bien à l'écran le levier du démarreur monter mais sans se lancer. Dans la seconde je le refais à la souris et la turbine se lance. Mystère... il y en aura beaucoup.
Je tatone depuis longtemps, j'ai déjà fait un collectif avec une carte leobodnar et aussi une app android pour Huey. Le collectif ça va je m'en sert encore, l'app tactile c'est pas une bonne solution au final.
Là je regarde les moteurs pas à pas pour faire des jauges.
Si ça intéresse quelqu'un je peux mettre en ligne Socat dans la dernière version.
Vous privez pas de critiquer, ça vole pas haut tout ça
Bon vol
Pièces jointes
Les branchements
WP_20180113_15_54_37_Pro.jpg (147.13 Kio) Consulté 3550 fois
En tout cas quand on voit les photos de réalisations, de Matbog par exemple, ça calme tout de suite.
C'est un sport complet les cockpit fidèles aux vrais . Documentation, modélisation, approvisionnement en composants, découpe, montage, peinture, programmation, etc...
Je vais juste essayer d'avoir un peu l''ergonomie d'un cockpit, parce qu' à part la programmation, je maitrise pas grand chose .
En attendant de recevoir mon arduino mega et des inter j'ai reçu mon écran oled de 128x64 pix. C'est vraiment tout petit, l'affichage est sympa, 7 euros livraison incluse. Je lui ai fait afficher en brut les données rotor rpm transmises par DCS bios. Seul problème, comme il fonctionne sur bus I2C et qu'il a une adresse fixe 0x3d, on peut pas en mettre plusieurs.
Sinon avec un moteur pas à pas 28BYJ (2€18), un interrrupteur de fin de course (0€36) et un arduino Nano (3€60) j'ai fait un prototype de jauge. Le programme qui gère tout ça fonctionne bien mais alors la 'realisation physique' ... à moi la peur.
Je sais pas trop vers quoi m'orienter, imprimate 3d, cnc, machine outil ??? Ou des matériaux pratiques à travailler. Si vous avez des suggestions je suis preneur.
Tu n'as pas besoin de t'équiper en machine automatique pour faire des instruments simples comme ceux la. Quelques scie trépants du bon diamètres, un couvercle de boite de conserve (comme celui que tu utilise comme cadran) dans lequel tu découpes les aiguilles et un cadran imprimer sur du papier autocollant et le tour est joué. C'est comme ça que j'ai fais les miens : http://www.checksix-forums.com/viewtopi ... 8#p1591958
Pour l'initialisation de tes moteur pas à pas je te conseillerais des fourchettes optiques ou des capteur a effet hall, c'est plus compacte que les interrupteurs...
100 % d'accord avec toi Matbog, en plus j'en avais des capteurs à effet hall.
Sinon j'ai encore fait un xième bricolage à la main, à comparer avec celui du moteur pas à pas ou là j'ai investi dans une imprimante 3d en kit.
C'est un joystick pour le tir des missiles HOT, j'espérais au moins avoir une peinture pas trop moche, mais elle a gelé cette hiver :(
marquage au typex
boitier de lecteur cd
C'est à base d'arduino 32u4, opérationnel en tant que joystick standard hid (sparkfun pro micro), mes enfants, de 9 et 12 ans, apprécient beaucoup de dégommer des chars.
Ils sont si mignons
J'essaye de récupérer un maximum d'éléments et après j'en fais un bien de panel, demain ... , l'année prochaine ...
Merci pour vos conseils et bon vols
Pièces jointes
Cablage anarchique à ne pas reproduire
gazelle_joystick_1.jpg (181.3 Kio) Consulté 3320 fois
Joystick a bas de 'arduino micro pro' ou plutot 'sparkfun micro pro'
gazelle_joystick_0.jpg (147.99 Kio) Consulté 3320 fois
Jauge à aiguille avec moteur pas à pas et capteur a effet hall
jauge_moteur_pap_0.jpg (150.16 Kio) Consulté 3320 fois
@Skydevil : merci, j'en suis au tout début, on le voit bien d'ailleurs sur mes images
@Vico : nan j'arrête quand je veux, si, pas du tout atteint
Mais bon il y a ce simulateur de vol et ces arduinos..., et puis ces composants ... et maintenant que j'ai installé tous les inter à levier 1 et 2 pos, ça serait dommage de pas ajouter les boutons poussoirs,mais après j'arrête... Ah oui j'oubliai les potentiomètres et les encodeurs
Je suis passé à l'arduino Méga mais il en faut un paquet de connexion
Si je continue comme ça je vais très vite saturer mon arduino méga, je me colle donc à la soudure pour démultiplier mes entrées/ sorties disponibles.
Pour faire mon panneau d'alerte et donc de disposer de plus de sorties digitales j'ai fait un module à base de 74hc595 qui permet de n'utiliser que 3 sorties digitales de l'arduino
pour obtenir 16 sorties dans mon cas. Avec 5 de ces composants j'aurai pu disposer de 40 sorties, toujours avec seulement 3 sorties de la carte.
j'ai utilisé des résistances 320 Ohms et 400 les leds éclairent largement assez.
Une fois terminé et lié à dcsbios ça le fait bien. Il faut encore que je me fasse les étiquettes des alertes.
Petite anecdote, si vous avez l'intention de réaliser des transparents avec une imprimante laser, prenez des consommables spéciales lasers sinon ça fond et bonjour les dégâts.
Je suis entrain de terminer un horizon artificiel avec un petit écran charlie OLED... J'espère ne pas me faire virer du forum à cause de cette vanne
Sinon plus sérieusement, un petit truc bien pratique, je me sert également de cet écran pour afficher des infos pour le débugage et vérifier les valeurs transmises par dcs bios.
Sinon il me faudrait de la 'petite visserie' parce que la fixation au panneau laisse à désirer. Du genre des tiges filletées en 3mm et 40 de long par exemple ça se trouve où ?
Je crois que drico bepot ils ont du 4mm ?
Pièces jointes
Montage à base de 74hc595 pour avoir plus de sorties sur une carte arduino
A la recherche d'écran pour faire un horizon artificiel, j'ai ressorti une solution qui me permettra d'avoir des écrans tactiles dans différentes tailles et en plus programmables.
Kivy est un framework python dont le code fonctionne sur :
- Android (Tablette et téléphone)
- IOS (idem)
- Mac
- Windows
- Linux
- Raspberry pi
Avec ma tablette et un vieux télépone android, je vais pouvoir ajouter deux écrans dans mon panel. Et encore avec un vieux pc portable je vais pouvoir en afficher des choses
L'intérêt principal c'est de profiter que DcsBios diffuse, quoi qu'il arrive, les infos du simulateur sur le réseau local (Broadcast UDP) donc mon pc principal n'est quasiment pas sollicité et les écrans 'intelligents' utilisent leur puissance de calcul.
Quand mon code sera un peu présentable je le mettrai sur Github, là pour l'instant j'ai que la vitesse et le vertical velocity avec l'aiguille rouge à la place d'être jaune...
Super travail.
Pour ma part moi aussi je travail sur un panel ou je mets pas mal de choses pour le M2000. Bien sur rien à voir avec une copie conforme du 2000
Je suis intéressé par ton travail sur le panneau d'alarme et l'utilisation du CI 74hc595. Je voudrais faire la même chose pour mon panneau d'alarme sur la partie du train d'atterrissage ,AF etc..
Mais pour chaque alarme ou indication j'ai une ligne de code DCSBios. Comment tu lies une dizaine de lignes de DCSBios pour une sortie 3 fils.
Merci
Voici le code, enfin un extrait de mes warnings.
A chaque fois que dcs bios appel onLowFuelChange... ou un onBatteryWarningChange... je mets à jour la lampe correspondante dans le tableau warning_lamp[13].
J'ai 13 lampes donc indices 0 a 12. Bien sûr mets les tien du mirage 2000 et adapte aussi les numéros de pin du arduino.
Puis dans void loop j'appel update_warning_panel(); qui mettra à jour l'affichage en fonction du tableau des lampes. Je suis pas revenu sur le code il peut être amélioré mais il fonctionne.
unsigned int warning_lamp[13]; // tableau des valeurs des 13 lampes
//// Code trouvé sur le site http://www.zem.fr/decouverte-du-composant-74hc595-8-bit-shift-register/
// 74hc595
int SER_Pin = 2; // 8; //pin 14 on the 75HC595
int RCLK_Pin = 3; // 9; //pin 12 on the 75HC595
int SRCLK_Pin = 4; // 10; //pin 11 on the 75HC595
//How many of the shift registers - change this
#define number_of_74hc595s 2
//do not touch
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];
//set all register pins to LOW
void clearRegisters(){
for(int i = numOfRegisterPins - 1; i >= 0; i--){
registers[i] = LOW;
}
}
//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters(){
digitalWrite(RCLK_Pin, LOW);
for(int i = numOfRegisterPins - 1; i >= 0; i--){
digitalWrite(SRCLK_Pin, LOW);
int val = registers[i];
digitalWrite(SER_Pin, val);
digitalWrite(SRCLK_Pin, HIGH);
}
digitalWrite(RCLK_Pin, HIGH);
}
//set an individual pin HIGH or LOW
void setRegisterPin(int index, int value){
registers[index] = value;
}
// fin du code trouvé sur Code trouvé sur le site http://www.zem.fr/decouverte-du-composant-74hc595-8-bit-shift-register/
////
void onBatteryWarningChange(unsigned int newValue) {
warning_lamp[2] = newValue; //BAT
}
DcsBios::IntegerBuffer batteryWarningBuffer(0x585c, 0x0200, 9, onBatteryWarningChange);
void onLowFuelChange(unsigned int newValue) {
warning_lamp[3] = newValue; //COMB
}
DcsBios::IntegerBuffer lowFuelBuffer(0x585c, 0x1000, 12, onLowFuelChange);
void update_warning_panel(){
int i;
for (i=0; i<13; i++){
if ( warning_lamp[i]== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
void setup(){
DcsBios::setup();
pinMode(SER_Pin, OUTPUT);
pinMode(RCLK_Pin, OUTPUT);
pinMode(SRCLK_Pin, OUTPUT);
//reset all register pins
clearRegisters();
writeRegisters();
}
void loop(){
DcsBios::loop();
update_warning_panel();
}
Je les ai découverts après avoir fait mon montage, ça aurait été moins galère.Voilà j'éspère que tu trouveras ce dont tu as besoin.
Ci joint la photo de mon panel, temporaire je vais essayer d'améliorer la présentation, si si. La photo diffuse plus la lumière qu'en réalité, ça fait vraiment un rectangle pour chaque lampe sans baver sur la lampe d'a coté
Pièces jointes
Panneau alarme 74hc595
warning_panel.jpg (73.01 Kio) Consulté 2983 fois
Dernière modification par Vmf214 le sam. mars 17, 2018 9:32 pm, modifié 3 fois.
Il m'affiche lorsque je vérifie le prog ceci: " conflicting declaration 'unsigned int warning_lamp [15] '
?????? Je ne comprends pas.
[#define DCSBIOS_DEFAULT_SERIAL
#include <DcsBios.h>
#include <Shifty.h>
unsigned int warning_lamp[10]; // tableau des valeurs des 10 lampes
int SER_Pin = 8; //pin 14 on the 75HC595
int RCLK_Pin = 9; //pin 12 on the 75HC595
int SRCLK_Pin = 10; //pin 11 on the 75HC595
unsigned int warning_lamp[15]={0};
boolean registers[numOfRegisterPins];
//set all register pins to LOW
void clearRegisters(){
for(int i = numOfRegisterPins - 1; i >= 0; i--){
registers = LOW;
}
}
//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters(){
digitalWrite(RCLK_Pin, LOW);
for(int i = numOfRegisterPins - 1; i >= 0; i--){
digitalWrite(SRCLK_Pin, LOW);
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
Bon après avoir corriger, la compilation c'est bien passée.
Je vois que tu n'as pas mis de " void setup ". Sans cela erreur de compil..
Voici mon fichier
Le câblage est bon mais rien ne s'allume, pourtant les bits passent bien à 1 lorsque je me mets en mode développeur sur l'extension dcsbios via windows?.
[*]
#define DCSBIOS_DEFAULT_SERIAL
#include <DcsBios.h>
#include <Shifty.h>
unsigned int warning_lamp[10]; // tableau des valeurs des 10 lampes
int SER_Pin = 10; //pin 14 on the 75HC595
int RCLK_Pin = 11; //pin 12 on the 75HC595
int SRCLK_Pin = 12; //pin 11 on the 75HC595
//How many of the shift registers - change this
#define number_of_74hc595s 2
//do not touch
#define numOfRegisterPins number_of_74hc595s *8
boolean registers[numOfRegisterPins];
//set all register pins to LOW
void clearRegisters(){
for(int i = numOfRegisterPins - 1; i >= 0; i--){
registers = LOW;
}
}
//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters(){
digitalWrite(RCLK_Pin, LOW);
for(int i = numOfRegisterPins - 1; i >= 0; i--){
digitalWrite(SRCLK_Pin, LOW);
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
Cela fonctionne toujours pas, j'ai refait le câblage au cas ou.
Au début du prog j'ai inclut la bibliothèque " include<Shifty.h>, je ne sais pas si cela a une importance, mais comme il s'agit du register 74hc595??
Pour toi c'est fonctionnelle ou tu rencontres des soucis?
Là je vais m'attaquer au PCF8575 pour multiplier les entrées digitales, j'essaye de rester sur un seul arduino mega couplé à DCS BIOS et un seul leonardo (ou 'micro pro' atmel 32u4') pour la partie purement joystick sans la partie dcs bios. Sinon après il faut faire communiquer les cartes entre elles, multiplier les alims, etc...
Je voudrais réaliser en utilisant une sortie analogique de 0 à 5 v pour afficher une valeur sur 2 afficheurs 7 segments. Quel circuit intégré utiliserais-tu?
Si tu veux j'aimerais utiliser la fonction"analogWrite" qui me sort ma valeur de 0 à 5 v et de la sur un afficheur.
Je trouve pas de réponse sur le net.
Merci
Euh... ça dépend de tes besoins et franchement en électronique je tâtonne beaucoup
Mais sinon peut être ça :
ou ça
Tu avais monté un truc comme ça ? :
Après plusieurs surprises lors des livraisons du style 'mince c'est tout petit', maintenant je me trace sur une feuille la taille de la pièce pour ne pas être trop surpris à l'arrivé
Là j'ai un minuscule écran de 2.5cm par 1.5cm par exemple
Attention par contre pour les modules I2C, tu peux en mettre plein à condition qu'ils aient chacun une adresse différente.
L'adresse est fixe sur certain composant et modifiable sur d'autres. Mais clairement tu ne peux pas avoir deux modules ayant la même adresse.