CNC et F18
Re: CNC et F18
#152(\_/)
(_'.')
(")_(") "On obtient plus de choses avec un mot gentil et un pistolet qu'avec le mot gentil tout seul" Al Capone.
Mon pit
(_'.')
(")_(") "On obtient plus de choses avec un mot gentil et un pistolet qu'avec le mot gentil tout seul" Al Capone.
Mon pit
Re: CNC et F18
#153Hello, pilour6 is back
j'ai enfin réussi à faire fonctionner mon code pour piloter des MCP 23017 sur un arduino uno ou mega (pas de nano ou de mega due). je peux grasse à ce dode ajouter au max 128 entrées sorties (numériques, pas d'analogique) à l'une de ces bestioles.
pour ce qui est du nano je n'arrive pas à piloter correctement l'I2C, et pour le due le problème vient de dcs bios mais le code que j'utilise est complètement indépendant de DCS BIOS donc sur le papier ça devrait marcher.
pour ceux intéressés par le code faites moi signe.
A+
j'ai enfin réussi à faire fonctionner mon code pour piloter des MCP 23017 sur un arduino uno ou mega (pas de nano ou de mega due). je peux grasse à ce dode ajouter au max 128 entrées sorties (numériques, pas d'analogique) à l'une de ces bestioles.
pour ce qui est du nano je n'arrive pas à piloter correctement l'I2C, et pour le due le problème vient de dcs bios mais le code que j'utilise est complètement indépendant de DCS BIOS donc sur le papier ça devrait marcher.
pour ceux intéressés par le code faites moi signe.
A+
Re: CNC et F18
#154Salut Pilour6, j'ai aussi rentré des MCP 23017 pour voir, mais en boitier smd donc à souder sur platine .... je suis passé à côté de ceux au format DIP !
Par contre je ne suis pas convaincu pour l'utilisation en sortie, comme c'est multiplexé il y a un risque de clignotement... à voir.
J'ai pensé à ça pour les inters principalement, pour les poussoirs des DDI 16 entrées c'est pas assez donc je vais essayer le câblage en matrice, ça limite les ficelles et ça ne complique pas plus que ça le pcb...
Par contre je ne suis pas convaincu pour l'utilisation en sortie, comme c'est multiplexé il y a un risque de clignotement... à voir.
J'ai pensé à ça pour les inters principalement, pour les poussoirs des DDI 16 entrées c'est pas assez donc je vais essayer le câblage en matrice, ça limite les ficelles et ça ne complique pas plus que ça le pcb...
Re: CNC et F18
#155pour les sorties tu as raison, aussi à cause du courant, par contre je rencontre des pb avec la mémoire de l'arduino à partir de 2 mcp, pourrais tu me passer ton code poursteph737 a écrit : ↑lun. janv. 31, 2022 2:40 pmSalut Pilour6, j'ai aussi rentré des MCP 23017 pour voir, mais en boitier smd donc à souder sur platine .... je suis passé à côté de ceux au format DIP !
Par contre je ne suis pas convaincu pour l'utilisation en sortie, comme c'est multiplexé il y a un risque de clignotement... à voir.
J'ai pensé à ça pour les inters principalement, pour les poussoirs des DDI 16 entrées c'est pas assez donc je vais essayer le câblage en matrice, ça limite les ficelles et ça ne complique pas plus que ça le pcb...
voir la différence et si le problème de mémoire sont identiques
Re: CNC et F18
#156J'ai fait une erreur ce n'est pas du multiplexage donc c'est bon pour des sorties aussi puisque ça conserve l'état visiblement. Mais il faudra mettre un circuit de puissance derrière les sorties ( uln.... ) comme j'ai fait avec mes registres à décalages pour les voyants parce que quand on fait un light test ça passe pas !!!
J'ai pas de code je n'ai pas encore utilisé ça.... En fait ce qui m’intéressait c'était les interruptions mais j'avais mal compris ce sont des entrées pas des sorties donc ça n'aide pas vraiment ( je voulais éviter de faire un scan en boucle des entrées mais c'est inévitable... )
Si je comprend bien, tu as mis 2 MCP sur le même bus IC2 et donc modifié les adresses avec les pin A0,A1,A2.... je n'ai pas trouvé comment on sélectionne le bon circuit dans le code, je n'ai trouvé que ça dans tous les exemples :
Adafruit_MCP23017 mcp;
void setup() {
mcp.begin(); // Default device address 0
Mais je suppose que ceci devrait marcher :
Adafruit_MCP23017 mcp1;
Adafruit_MCP23017 mcp2;
void setup()
{
Serial.begin(9600);
mcp1.begin();
mcp2.begin(1);
( en mettant la pin A0 du circuit N° 2 au +5v son adresse devient 1 )
J'ai pas de code je n'ai pas encore utilisé ça.... En fait ce qui m’intéressait c'était les interruptions mais j'avais mal compris ce sont des entrées pas des sorties donc ça n'aide pas vraiment ( je voulais éviter de faire un scan en boucle des entrées mais c'est inévitable... )
Si je comprend bien, tu as mis 2 MCP sur le même bus IC2 et donc modifié les adresses avec les pin A0,A1,A2.... je n'ai pas trouvé comment on sélectionne le bon circuit dans le code, je n'ai trouvé que ça dans tous les exemples :
Adafruit_MCP23017 mcp;
void setup() {
mcp.begin(); // Default device address 0
Mais je suppose que ceci devrait marcher :
Adafruit_MCP23017 mcp1;
Adafruit_MCP23017 mcp2;
void setup()
{
Serial.begin(9600);
mcp1.begin();
mcp2.begin(1);
( en mettant la pin A0 du circuit N° 2 au +5v son adresse devient 1 )
Re: CNC et F18
#157voici un bout du code que j'utilise
#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
#include <Wire.h>
#include <Adafruit_MCP23017.h>
// Basic pin reading and pullup test for the MCP23017 I/O expander
// public domain!
// Connecter le pin #12 du MCP à l'entrée analogique 5 de l'arduino uno (i2c clock)
// Connecter le pin #13 du MCP à l'entrée analogique 4 de l'arduino uno (i2c data)
// Connect les pins #15, 16 and 17 selection de l'acresse du MCP
// Connecter le pin #9 au 5V
// Connectet le pin #10 à la masse
// Connecter le pin #18 au 5v via une resistance de 10Kohms
// connecter les entrées à la masse pour les activer
Adafruit_MCP23017 mcp1;
Adafruit_MCP23017 mcp2;
Adafruit_MCP23017 mcp3;
int lastState[3][16]; // tableau de mémorisation des états des entrées
void setup() {
mcp1.begin(); // addresse 0
for (int thisPin1 = 0; thisPin1 < 16; thisPin1++) {
mcp1.pinMode(thisPin1, INPUT);
mcp1.pullUp(thisPin1, HIGH);
}
mcp2.begin(1); // use addresse 1
for (int thisPin2 = 0; thisPin2 < 16; thisPin2++) {
mcp2.pinMode(thisPin2, INPUT);
mcp2.pullUp(thisPin2, HIGH);
}
mcp3.begin(2); // use address 2
for (int thisPin3 = 0; thisPin3 < 16; thisPin3++) {
mcp3.pinMode(thisPin3, INPUT);
mcp3.pullUp(thisPin3, HIGH);
}
DcsBios::setup();
}
void loop() {
Switch2Pos ("LEFT_DDI_PB_01",0,1,0); // DDI gauche bouton 1
Switch2Pos ("LEFT_DDI_PB_02",0,1,1);
Switch2Pos ("LEFT_DDI_PB_03",0,1,2);
Switch2Pos ("LEFT_DDI_PB_04",0,1,3);
Switch2Pos ("LEFT_DDI_PB_05",0,1,4);
Switch2Pos ("LEFT_DDI_PB_06",0,1,5);
Switch2Pos ("LEFT_DDI_PB_07",0,1,6);
Switch2Pos ("LEFT_DDI_PB_08",0,1,7);
Switch2Pos ("LEFT_DDI_PB_09",0,1,8);
Switch2Pos ("LEFT_DDI_PB_10",0,1,9);
Switch2Pos ("LEFT_DDI_PB_11",0,1,10);
Switch2Pos ("LEFT_DDI_PB_12",0,1,11);
Switch2Pos ("LEFT_DDI_PB_13",0,1,12);
Switch2Pos ("LEFT_DDI_PB_14",0,1,13);
Switch2Pos ("LEFT_DDI_PB_15",0,1,14);
Switch2Pos ("LEFT_DDI_PB_16",0,2,0);
Switch2Pos ("LEFT_DDI_PB_17",0,2,1);
Switch2Pos ("LEFT_DDI_PB_18",0,2,2);
Switch2Pos ("LEFT_DDI_PB_19",0,2,3);
Switch2Pos ("LEFT_DDI_PB_20",0,2,4);
}
void Switch2Pos(char* msg, double arg, int chip, int pin) {
char state = NumToChip(chip).digitalRead(pin); // reads the Pin of the MCP
if (state != lastState[chip][pin]) {
sendDcsBiosMessage(msg, state == 0 ? "1" : "0");
}
lastState[chip][pin] = state;
}
Adafruit_MCP23017 NumToChip(byte num) {
switch (num) {
case 1:
return mcp1;
case 2:
return mcp2;
// case 3:
// return mcp3;
}
}
#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
#include <Wire.h>
#include <Adafruit_MCP23017.h>
// Basic pin reading and pullup test for the MCP23017 I/O expander
// public domain!
// Connecter le pin #12 du MCP à l'entrée analogique 5 de l'arduino uno (i2c clock)
// Connecter le pin #13 du MCP à l'entrée analogique 4 de l'arduino uno (i2c data)
// Connect les pins #15, 16 and 17 selection de l'acresse du MCP
// Connecter le pin #9 au 5V
// Connectet le pin #10 à la masse
// Connecter le pin #18 au 5v via une resistance de 10Kohms
// connecter les entrées à la masse pour les activer
Adafruit_MCP23017 mcp1;
Adafruit_MCP23017 mcp2;
Adafruit_MCP23017 mcp3;
int lastState[3][16]; // tableau de mémorisation des états des entrées
void setup() {
mcp1.begin(); // addresse 0
for (int thisPin1 = 0; thisPin1 < 16; thisPin1++) {
mcp1.pinMode(thisPin1, INPUT);
mcp1.pullUp(thisPin1, HIGH);
}
mcp2.begin(1); // use addresse 1
for (int thisPin2 = 0; thisPin2 < 16; thisPin2++) {
mcp2.pinMode(thisPin2, INPUT);
mcp2.pullUp(thisPin2, HIGH);
}
mcp3.begin(2); // use address 2
for (int thisPin3 = 0; thisPin3 < 16; thisPin3++) {
mcp3.pinMode(thisPin3, INPUT);
mcp3.pullUp(thisPin3, HIGH);
}
DcsBios::setup();
}
void loop() {
Switch2Pos ("LEFT_DDI_PB_01",0,1,0); // DDI gauche bouton 1
Switch2Pos ("LEFT_DDI_PB_02",0,1,1);
Switch2Pos ("LEFT_DDI_PB_03",0,1,2);
Switch2Pos ("LEFT_DDI_PB_04",0,1,3);
Switch2Pos ("LEFT_DDI_PB_05",0,1,4);
Switch2Pos ("LEFT_DDI_PB_06",0,1,5);
Switch2Pos ("LEFT_DDI_PB_07",0,1,6);
Switch2Pos ("LEFT_DDI_PB_08",0,1,7);
Switch2Pos ("LEFT_DDI_PB_09",0,1,8);
Switch2Pos ("LEFT_DDI_PB_10",0,1,9);
Switch2Pos ("LEFT_DDI_PB_11",0,1,10);
Switch2Pos ("LEFT_DDI_PB_12",0,1,11);
Switch2Pos ("LEFT_DDI_PB_13",0,1,12);
Switch2Pos ("LEFT_DDI_PB_14",0,1,13);
Switch2Pos ("LEFT_DDI_PB_15",0,1,14);
Switch2Pos ("LEFT_DDI_PB_16",0,2,0);
Switch2Pos ("LEFT_DDI_PB_17",0,2,1);
Switch2Pos ("LEFT_DDI_PB_18",0,2,2);
Switch2Pos ("LEFT_DDI_PB_19",0,2,3);
Switch2Pos ("LEFT_DDI_PB_20",0,2,4);
}
void Switch2Pos(char* msg, double arg, int chip, int pin) {
char state = NumToChip(chip).digitalRead(pin); // reads the Pin of the MCP
if (state != lastState[chip][pin]) {
sendDcsBiosMessage(msg, state == 0 ? "1" : "0");
}
lastState[chip][pin] = state;
}
Adafruit_MCP23017 NumToChip(byte num) {
switch (num) {
case 1:
return mcp1;
case 2:
return mcp2;
// case 3:
// return mcp3;
}
}
Re: CNC et F18
#158Sinon il y a le HT16K33 qui est très intéressant.
Il peut piloter 8x16 LEDs en même temps que lire l'état de 3x13 contacts.
Pour les LEDs ont peut même faire varier la luminosité sur 16 niveaux.
https://cdn-shop.adafruit.com/datasheet ... 33v110.pdf
Il peut piloter 8x16 LEDs en même temps que lire l'état de 3x13 contacts.
Pour les LEDs ont peut même faire varier la luminosité sur 16 niveaux.
https://cdn-shop.adafruit.com/datasheet ... 33v110.pdf
Re: CNC et F18
#159J'avoue que c'est encore un peu de l’hébreu ce langage pour moi, rien d'évident....
Regardes cet exemple https://github.com/dcs-bios/dcs-bios/issues/99 qui ressemble fortement à ce que tu utilises, au niveau des mcp.begin dans le setup, les adresses sont 0,2,4 et non 0.1.2.... ( codage binaire des pin A0,A1,A2 ).
Regardes cet exemple https://github.com/dcs-bios/dcs-bios/issues/99 qui ressemble fortement à ce que tu utilises, au niveau des mcp.begin dans le setup, les adresses sont 0,2,4 et non 0.1.2.... ( codage binaire des pin A0,A1,A2 ).
Re: CNC et F18
#160dans mon UFC j'en ai déjà 4, c'est top le HT16K33matbog a écrit : ↑mar. févr. 01, 2022 9:08 pmSinon il y a le HT16K33 qui est très intéressant.
Il peut piloter 8x16 LEDs en même temps que lire l'état de 3x13 contacts.
Pour les LEDs ont peut même faire varier la luminosité sur 16 niveaux.
https://cdn-shop.adafruit.com/datasheet ... 33v110.pdf
Re: CNC et F18
#161je m'en suis fortement inspiré mais c'est avec ce code que les problèmes de saturation mémoire arriventsteph737 a écrit : ↑mer. févr. 02, 2022 12:34 pmJ'avoue que c'est encore un peu de l’hébreu ce langage pour moi, rien d'évident....
Regardes cet exemple https://github.com/dcs-bios/dcs-bios/issues/99 qui ressemble fortement à ce que tu utilises, au niveau des mcp.begin dans le setup, les adresses sont 0,2,4 et non 0.1.2.... ( codage binaire des pin A0,A1,A2 ).
Re: CNC et F18
#162Je n'ai pas d'idée mais ça me fait penser que lors de la mise au point de mon UFC , d'abord sur breadboard ( et les miennes sont particulièrement pourries ! ) puis sur le proto final, j'ai eu pas mal de soucis de dysfonctionnement avec les circuits connectés sur le bus IC2, et au final ce n'était que des problèmes de mauvais contacts ou mauvaises soudures. Et si il y a un mauvais contact sur un seul circuit ça bloque le bus IC2 donc l'ensemble.
Ensuite il est souvent conseillé de mettre des résistances de tirage sur les lignes SDA SCL, ça peut limiter les parasites ....
Ensuite il est souvent conseillé de mettre des résistances de tirage sur les lignes SDA SCL, ça peut limiter les parasites ....
Re: CNC et F18
#163salut!
quel travail!
je regarde avec un amis , pour nous faire un ufc aussi pour le f18
y a t il moyen d’avoir les fichiers nécessaires? stl, pcb etc…. le « non gratuit « ne me derange pas du tout.
merci
quel travail!
je regarde avec un amis , pour nous faire un ufc aussi pour le f18
y a t il moyen d’avoir les fichiers nécessaires? stl, pcb etc…. le « non gratuit « ne me derange pas du tout.
merci
Re: CNC et F18
#164va voir par là c'est de tout ça dont je m'ispire:
https://github.com/ColdFrontWI/Hornet_Cockpit
https://github.com/bnepethomas/bne-ardu ... interfaces
https://github.com/jrsteensen/OpenHornet
https://github.com/Ben-F111/Ben-F18-Sim-Pit
avec tout ça tu vas avoir de quoi faire
A+
-
- Apprenti-Mécano
- Messages : 253
- Inscription : 06 septembre 2020
Re: CNC et F18
#166Bonjour,
Comme dit steph737, pour le bus I2C, il est conseillé d'ajouter des pull-up sur les lignes SDA et SCL surtout sur des montages maison.
https://docs.particle.io/cards/firmware ... stors-i2c/
Pas sûr que ça résoudra les problèmes de blocages rencontrés cependant.
Vérifier la vitesse du bus ?
Comme dit steph737, pour le bus I2C, il est conseillé d'ajouter des pull-up sur les lignes SDA et SCL surtout sur des montages maison.
https://docs.particle.io/cards/firmware ... stors-i2c/
Pas sûr que ça résoudra les problèmes de blocages rencontrés cependant.
Vérifier la vitesse du bus ?
Re: CNC et F18
#167je suis sur l'AMPCD en ce moment, je m'occuperai du code plus tard. J'ai fait fabriqué le, circuit imprimé de l'AMPCD aux USA, je les ai reçu aujourd'hui, du super boulot, double face à trous métallisés. j'ai du en commander 5, je doit en avoir un ou deux de réservé, donc il en reste deux si quelqu'un est intéressé qu'il me fasse signe, c'est 10€ + les frais de port. c'est cet AMPCD là: https://github.com/Ben-F111/Ben-F18-Sim ... main/AMPCD
Re: CNC et F18
#168pilour6 a écrit : ↑ven. févr. 18, 2022 6:25 pmje suis sur l'AMPCD en ce moment, je m'occuperai du code plus tard. J'ai fait fabriquer le, circuit imprimé de l'AMPCD aux USA, je les ai reçu aujourd'hui, du super boulot, double face à trous métallisés. j'ai du en commander 5, je doit en avoir un ou deux de réservé, donc il en reste deux si quelqu'un est intéressé qu'il me fasse signe, c'est 10€ + les frais de port. c'est cet AMPCD là: https://github.com/Ben-F111/Ben-F18-Sim ... main/AMPCD
-
- Apprenti-Mécano
- Messages : 253
- Inscription : 06 septembre 2020
Re: CNC et F18
#170Vous avez déjà pensé utiliser un ESP32 plutôt qu'un Arduino ?
Le ESP32 est doté de plus de mémoire et est plus rapide.
Le ESP32 est doté de plus de mémoire et est plus rapide.
Re: CNC et F18
#171Bien les eyebrow , ça va mettre un peu de couleur ! La moitié des voyants ne sont pas gérés pour l'instant par le module F18 .