Premier panel
Premier panel
#1Salut,
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
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é 4180 fois
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#3Oui ! C'est les débuts . Avec des solutions techniques (rail placo) aux problèmes qui se posent .
...Après, on sait où ça mène
...Après, on sait où ça mène
Pilote indépendant de F16 block 50/52 sur Falcon BMS - HOTAS Cougar modé FCC1 - Saitek Pro Rudder Pedals - ED TRacker - 2x MFD Cougar - ICP "CatPlombe" - 1x Carte Pokeys - un cockpit F16 en chantier - CM MSI B650 Gaming ; AMD Ryzen 7800X3D 4,20GHz ; 32 Go DDR5 Corsair ; AMD Radeon RX7900XTX 24Go DDR6 ; Ecran Hisense 55" 4K
Re: Premier panel
#5Bonjour,
Merci pour vos réactions
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.
Sinon bon vol
Merci pour vos réactions
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.
Sinon bon vol
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#6Tu 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...
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...
Re: Premier panel
#7100 % 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
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é 3950 fois
-
- Joystick a bas de 'arduino micro pro' ou plutot 'sparkfun micro pro'
- gazelle_joystick_0.jpg (147.99 Kio) Consulté 3950 fois
-
- Jauge à aiguille avec moteur pas à pas et capteur a effet hall
- jauge_moteur_pap_0.jpg (150.16 Kio) Consulté 3950 fois
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#9Ouiap. C'est encore un peu du prototypage mais ça marche.
On sent que le mal progresse . T'es foutu. Bienvenue chez les fous.
On sent que le mal progresse . T'es foutu. Bienvenue chez les fous.
Pilote indépendant de F16 block 50/52 sur Falcon BMS - HOTAS Cougar modé FCC1 - Saitek Pro Rudder Pedals - ED TRacker - 2x MFD Cougar - ICP "CatPlombe" - 1x Carte Pokeys - un cockpit F16 en chantier - CM MSI B650 Gaming ; AMD Ryzen 7800X3D 4,20GHz ; 32 Go DDR5 Corsair ; AMD Radeon RX7900XTX 24Go DDR6 ; Ecran Hisense 55" 4K
Re: Premier panel
#10@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
@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
- Pièces jointes
-
- arduino_mega.jpg (115.14 Kio) Consulté 3853 fois
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#11Si 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.
Info pour le montage
http://www.zem.fr/decouverte-du-composa ... -register/
ou
http://www.instructables.com/id/Arduino ... egisters-/
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 ?
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.
Info pour le montage
http://www.zem.fr/decouverte-du-composa ... -register/
ou
http://www.instructables.com/id/Arduino ... egisters-/
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
- 74hc595.jpg (125.19 Kio) Consulté 3814 fois
-
- Panneau de led pour les alarmes
- panneau_led.jpg (95.38 Kio) Consulté 3814 fois
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#12A 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...
J'y arriverai !
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...
J'y arriverai !
- Pièces jointes
-
- App kivy Dcs Bios
- kivy.jpg (131.38 Kio) Consulté 3735 fois
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#13Salut Vmf214
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
Cdt
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
Cdt
Re: Premier panel
#14Salut Hombre
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.
Par contre pour le montage il existe des 74hc595 sur pcb que tu peux par exemple trouver là : https://www.amazon.fr/MagiDeal-74hc595- ... 5+breakout
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é
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.
Code : Tout sélectionner
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é 3613 fois
Dernière modification par Vmf214 le sam. mars 17, 2018 9:32 pm, modifié 3 fois.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#15Merci pour l'info.
Voici ce que j'ai écrit
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);
int val = registers;
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;
}
void onConfDiravChange(unsigned int newValue) {
warning_lamp[1] = newvalue; //DIRAV
}
DcsBios::IntegerBuffer confDiravBuffer(0x6044, 0x1000, 12, onConfDiravChange);
void onConfAChange(unsigned int newValue) {
warning_lamp[2] = newvalue; //LEFT FLAPS
}
DcsBios::IntegerBuffer confABuffer(0x6044, 0x0400, 10, onConfAChange);
void onConfFChange(unsigned int newValue) {
warning_lamp[3] = newvalue; //RIGHT FLAPS
}
DcsBios::IntegerBuffer confFBuffer(0x6044, 0x0800, 11, onConfFChange);
void onConfCrossChange(unsigned int newValue) {
warning_lamp[4] = newvalue; //CROSS
}
DcsBios::IntegerBuffer confCrossBuffer(0x6044, 0x4000, 14, onConfCrossChange);
void onConfFreinChange(unsigned int newValue) {
warning_lamp[5] = newvalue; //FREIN
}
DcsBios::IntegerBuffer confFreinBuffer(0x6044, 0x2000, 13, onConfFreinChange);
void onConfAuxChange(unsigned int newValue) {
warning_lamp[6] = newvalue; //AUX LANDING
}
DcsBios::IntegerBuffer confAuxBuffer(0x604c, 0x0004, 2, onConfAuxChange);
void onConfGChange(unsigned int newValue) {
warning_lamp[7] = newvalue; //LEFT LANDING
}
DcsBios::IntegerBuffer confGBuffer(0x604c, 0x0002, 1, onConfGChange);
void onConfDChange(unsigned int newValue) {
warning_lamp[8] = newvalue; //RIGHT LANDING
}
DcsBios::IntegerBuffer confDBuffer(0x604c, 0x0008, 3, onConfDChange);
void update_warning_panel(){
int i;
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
void loop() {
DcsBios::loop();
update_warning_panel();
}*]
Voici ce que j'ai écrit
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);
int val = registers;
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;
}
void onConfDiravChange(unsigned int newValue) {
warning_lamp[1] = newvalue; //DIRAV
}
DcsBios::IntegerBuffer confDiravBuffer(0x6044, 0x1000, 12, onConfDiravChange);
void onConfAChange(unsigned int newValue) {
warning_lamp[2] = newvalue; //LEFT FLAPS
}
DcsBios::IntegerBuffer confABuffer(0x6044, 0x0400, 10, onConfAChange);
void onConfFChange(unsigned int newValue) {
warning_lamp[3] = newvalue; //RIGHT FLAPS
}
DcsBios::IntegerBuffer confFBuffer(0x6044, 0x0800, 11, onConfFChange);
void onConfCrossChange(unsigned int newValue) {
warning_lamp[4] = newvalue; //CROSS
}
DcsBios::IntegerBuffer confCrossBuffer(0x6044, 0x4000, 14, onConfCrossChange);
void onConfFreinChange(unsigned int newValue) {
warning_lamp[5] = newvalue; //FREIN
}
DcsBios::IntegerBuffer confFreinBuffer(0x6044, 0x2000, 13, onConfFreinChange);
void onConfAuxChange(unsigned int newValue) {
warning_lamp[6] = newvalue; //AUX LANDING
}
DcsBios::IntegerBuffer confAuxBuffer(0x604c, 0x0004, 2, onConfAuxChange);
void onConfGChange(unsigned int newValue) {
warning_lamp[7] = newvalue; //LEFT LANDING
}
DcsBios::IntegerBuffer confGBuffer(0x604c, 0x0002, 1, onConfGChange);
void onConfDChange(unsigned int newValue) {
warning_lamp[8] = newvalue; //RIGHT LANDING
}
DcsBios::IntegerBuffer confDBuffer(0x604c, 0x0008, 3, onConfDChange);
void update_warning_panel(){
int i;
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
void loop() {
DcsBios::loop();
update_warning_panel();
}*]
Re: Premier panel
#16oups, ma faute : vire la ligne
Ca revient à redéclarer ton tableau et c'est interdit par le compilateur.
Et là tu indiques combien tu as de 74hc595, si tu as 10 lampes tu as au minimum 2
Il faut aussi le #define ci dessus qui reprend la valeur du define précédent.
Bon courage, ça va marcher
Code : Tout sélectionner
unsigned int warning_lamp[15]={0};
Code : Tout sélectionner
//How many of the shift registers - change this
#define number_of_74hc595s 2
Code : Tout sélectionner
//do not touch
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];
Bon courage, ça va marcher
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#18bonjour,
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);
int val = registers;
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;
}
void onConfDiravChange(unsigned int newValue) {
warning_lamp[1] = newValue; //DIRAV
}
DcsBios::IntegerBuffer confDiravBuffer(0x6044, 0x1000, 12, onConfDiravChange);
void onConfAChange(unsigned int newValue) {
warning_lamp[2] = newValue; //LEFT FLAPS
}
DcsBios::IntegerBuffer confABuffer(0x6044, 0x0400, 10, onConfAChange);
void onConfFChange(unsigned int newValue) {
warning_lamp[3] = newValue; //RIGHT FLAPS
}
DcsBios::IntegerBuffer confFBuffer(0x6044, 0x0800, 11, onConfFChange);
void onConfCrossChange(unsigned int newValue) {
warning_lamp[4] = newValue; //CROSS
}
DcsBios::IntegerBuffer confCrossBuffer(0x6044, 0x4000, 14, onConfCrossChange);
void onConfFreinChange(unsigned int newValue) {
warning_lamp[5] = newValue; //FREIN
}
DcsBios::IntegerBuffer confFreinBuffer(0x6044, 0x2000, 13, onConfFreinChange);
void onConfAuxChange(unsigned int newValue) {
warning_lamp[6] = newValue; //AUX LANDING
}
DcsBios::IntegerBuffer confAuxBuffer(0x604c, 0x0004, 2, onConfAuxChange);
void onConfGChange(unsigned int newValue) {
warning_lamp[7] = newValue; //LEFT LANDING
}
DcsBios::IntegerBuffer confGBuffer(0x604c, 0x0002, 1, onConfGChange);
void onConfDChange(unsigned int newValue) {
warning_lamp[8] = newValue; //RIGHT LANDING
}
DcsBios::IntegerBuffer confDBuffer(0x604c, 0x0008, 3, onConfDChange);
void onConfRougeChange(unsigned int newValue) {
warning_lamp[9] = newValue; // RED LANDING
}
DcsBios::IntegerBuffer confRougeBuffer(0x604c, 0x0001, 0, onConfRougeChange);
void onConfSpadChange(unsigned int newValue) {
warning_lamp[10] = newValue; //SPAD
}
DcsBios::IntegerBuffer confSpadBuffer(0x6044, 0x8000, 15, onConfSpadChange);
void update_warning_panel(){
int i;
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
update_warning_panel();
}[*]
Comment fais tu pour mettre le prog dans une fenêtre comme tu l'as fait?
Merci
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);
int val = registers;
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;
}
void onConfDiravChange(unsigned int newValue) {
warning_lamp[1] = newValue; //DIRAV
}
DcsBios::IntegerBuffer confDiravBuffer(0x6044, 0x1000, 12, onConfDiravChange);
void onConfAChange(unsigned int newValue) {
warning_lamp[2] = newValue; //LEFT FLAPS
}
DcsBios::IntegerBuffer confABuffer(0x6044, 0x0400, 10, onConfAChange);
void onConfFChange(unsigned int newValue) {
warning_lamp[3] = newValue; //RIGHT FLAPS
}
DcsBios::IntegerBuffer confFBuffer(0x6044, 0x0800, 11, onConfFChange);
void onConfCrossChange(unsigned int newValue) {
warning_lamp[4] = newValue; //CROSS
}
DcsBios::IntegerBuffer confCrossBuffer(0x6044, 0x4000, 14, onConfCrossChange);
void onConfFreinChange(unsigned int newValue) {
warning_lamp[5] = newValue; //FREIN
}
DcsBios::IntegerBuffer confFreinBuffer(0x6044, 0x2000, 13, onConfFreinChange);
void onConfAuxChange(unsigned int newValue) {
warning_lamp[6] = newValue; //AUX LANDING
}
DcsBios::IntegerBuffer confAuxBuffer(0x604c, 0x0004, 2, onConfAuxChange);
void onConfGChange(unsigned int newValue) {
warning_lamp[7] = newValue; //LEFT LANDING
}
DcsBios::IntegerBuffer confGBuffer(0x604c, 0x0002, 1, onConfGChange);
void onConfDChange(unsigned int newValue) {
warning_lamp[8] = newValue; //RIGHT LANDING
}
DcsBios::IntegerBuffer confDBuffer(0x604c, 0x0008, 3, onConfDChange);
void onConfRougeChange(unsigned int newValue) {
warning_lamp[9] = newValue; // RED LANDING
}
DcsBios::IntegerBuffer confRougeBuffer(0x604c, 0x0001, 0, onConfRougeChange);
void onConfSpadChange(unsigned int newValue) {
warning_lamp[10] = newValue; //SPAD
}
DcsBios::IntegerBuffer confSpadBuffer(0x6044, 0x8000, 15, onConfSpadChange);
void update_warning_panel(){
int i;
for (i=0; i<10; i++){
if ( warning_lamp== 1){
setRegisterPin(i, HIGH);
}
else {
setRegisterPin(i, LOW);
}
}
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES
}
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
update_warning_panel();
}[*]
Comment fais tu pour mettre le prog dans une fenêtre comme tu l'as fait?
Merci
Re: Premier panel
#19Gargl oui il manque la section setup. Si ça marche toujours pas je me ferai un mini projet qu'avec le panneau de leds, comme ça ça sera enfin complet
Dans l'éditeur avancé il y une mise en forme <> <>
Code : Tout sélectionner
/// à l 'intérieur de void setup :
pinMode(SER_Pin, OUTPUT);
pinMode(RCLK_Pin, OUTPUT);
pinMode(SRCLK_Pin, OUTPUT);
//reset all register pins
clearRegisters();
writeRegisters();
}
/////
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#20Bonjour,
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?
Les warning_lamp c'est de 0 à 7 ou 1 à 8?
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?
Les warning_lamp c'est de 0 à 7 ou 1 à 8?
Re: Premier panel
#22Ouf c'est beau quand ça fonctionne
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...
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...
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: Premier panel
#23Ah ouai, je vois que tu maîtrisses le sujet...
Bon maintenant que cela fonctionne je m'attaque à la réalisation des cartes électroniques.
Bon maintenant que cela fonctionne je m'attaque à la réalisation des cartes électroniques.
Re: Premier panel
#24Bonjour,
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
Cdt
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
Cdt
Re: Premier panel
#25Salut,
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.
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.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/