telem me revoila
5 participants
Page 1 sur 1
telem me revoila
bonsoir a tous
j'ai réalisé une transmission entre deux Arduino en 433mhz le message c'est "bonjour " ca fonctionne très bien
maintenant je vais passer au stade supérieur avec un programme plus adapté a notre hobbies c'est a dire une télémesure avec 8 a 10 entrées analogiques
@+rjc
j'ai réalisé une transmission entre deux Arduino en 433mhz le message c'est "bonjour " ca fonctionne très bien
maintenant je vais passer au stade supérieur avec un programme plus adapté a notre hobbies c'est a dire une télémesure avec 8 a 10 entrées analogiques
@+rjc
runfola jean claude- Messages : 657
Date d'inscription : 01/04/2016
Age : 80
Localisation : missillac
RoC- Messages : 1185
Date d'inscription : 27/03/2016
Age : 49
Re: telem me revoila
Excellent Jean Claude
Tu vas mesurer quoi avec tes entrées analogiques?
Tu as pris quels modules pour la télémetrie?
Tu vas mesurer quoi avec tes entrées analogiques?
Tu as pris quels modules pour la télémetrie?
TELEM ME REVOILA
BORIS j'ai réussi a transmettre 6 voies analogiques avec un petit module de fréquence 433mhz que j'ai fait venir de chine pour quelques euros avec ce système je peux avec des cartes Arduino mega envoyer au sol au moins deux mesures ana et le reste (soit 14 ) les phases de vol soit 5 voies donc au total 7 voies mais comme les mesures de pression et accélération occupe de nombreuses entrées supplémentaires je suis obligé d'utiliser une carte méga j'ai pensé a alléger le système en utilisant un 4051 et je gagne 5 entrées mais il faut faire un programme qui tourne en boucle pour commander ce multiplexeur et comme tu le sais je ne suis pas un expert en programmation
les phases de vol sont des mesure analogiques 0 a 5v qui sont converti en numérique et pour le résultat sur l'IDE tu vois que cela passe de 0 a 1023 ou plus suivant le nombre de bit et d'octet utilisé pour le code
j'aurai besoin de tes services car avec Virtualwire j'ai des problèmes et en plus il est obsolète donc il faut que je trouve une autre solution
@+RJC
les phases de vol sont des mesure analogiques 0 a 5v qui sont converti en numérique et pour le résultat sur l'IDE tu vois que cela passe de 0 a 1023 ou plus suivant le nombre de bit et d'octet utilisé pour le code
j'aurai besoin de tes services car avec Virtualwire j'ai des problèmes et en plus il est obsolète donc il faut que je trouve une autre solution
@+RJC
runfola jean claude- Messages : 657
Date d'inscription : 01/04/2016
Age : 80
Localisation : missillac
Re: telem me revoila
Bonjour jean claude
Je retiens Arduino Méga
J'ai vu avec google pour virtual wire et pour (livre aussi) le CD4051
Je vois très bien pour commander les entrées A B C de ce multiplexeur
Je vais retrouver mes anciens programmes Arduino faits pour mon club d'Arras
Inspiration pour recréer un programme d'empaquettage avant envoi (octet de contrôle par sum inclus),
oui mais il faut un peu de temps
Bonne journée
Je retiens Arduino Méga
J'ai vu avec google pour virtual wire et pour (livre aussi) le CD4051
Je vois très bien pour commander les entrées A B C de ce multiplexeur
Je vais retrouver mes anciens programmes Arduino faits pour mon club d'Arras
Inspiration pour recréer un programme d'empaquettage avant envoi (octet de contrôle par sum inclus),
oui mais il faut un peu de temps
Bonne journée
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: telem me revoila
merci Patrick
runfola jean claude- Messages : 657
Date d'inscription : 01/04/2016
Age : 80
Localisation : missillac
Re: telem me revoila
Encore moi
En fait c'est le Arduino Uno que j'ai
Mais je vais retrouver les instructions en C pour configurer et commander l'USART et le convertisseur A/D
Pour le CD4051, je vais simplement regarder mes exos simples de commande de LEDs par l'Arduino
Cela me rappelle le projet NEMESIS du G S A en été 2000 à La Courtine, c'était différent pour nous déjà
J'avais placé ma voiture pas loin de la tente 'télem' le temps permis
Il y avait en effet, un PC (avec un programme en C) stockant les octets reçus par les deux ports COM1 & COM2
En effet (par l'intermédiaire des deux démod XR2211 fabriqués 'maison'), je reçevais les télémesures de notre
fusée exp, d'un côté par leur récepteur VHF CNES et de l'autre par mon récepteur (fabriqué à partir d'un kit réception FM)
Le codage dans la fusée était fait par un µc motorola 68*11 (de mémoire)
Le décodage des octets, stockés dans un fichier, avec un programme en C (que j'avais fait)
L'expérience a dicté de rajouter deux octets de comptage de trames (modulo 2^16) à chacune des trames transmises
ce en plus des octets de synchronisation, de vérification par somme (modulo 2^
C'est une question de temps. Je ne dis pas 'il suffit' 'je peux' car cela appartient au vocabulaire 'yakafaucon'
A+
En fait c'est le Arduino Uno que j'ai
Mais je vais retrouver les instructions en C pour configurer et commander l'USART et le convertisseur A/D
Pour le CD4051, je vais simplement regarder mes exos simples de commande de LEDs par l'Arduino
Cela me rappelle le projet NEMESIS du G S A en été 2000 à La Courtine, c'était différent pour nous déjà
J'avais placé ma voiture pas loin de la tente 'télem' le temps permis
Il y avait en effet, un PC (avec un programme en C) stockant les octets reçus par les deux ports COM1 & COM2
En effet (par l'intermédiaire des deux démod XR2211 fabriqués 'maison'), je reçevais les télémesures de notre
fusée exp, d'un côté par leur récepteur VHF CNES et de l'autre par mon récepteur (fabriqué à partir d'un kit réception FM)
Le codage dans la fusée était fait par un µc motorola 68*11 (de mémoire)
Le décodage des octets, stockés dans un fichier, avec un programme en C (que j'avais fait)
L'expérience a dicté de rajouter deux octets de comptage de trames (modulo 2^16) à chacune des trames transmises
ce en plus des octets de synchronisation, de vérification par somme (modulo 2^
C'est une question de temps. Je ne dis pas 'il suffit' 'je peux' car cela appartient au vocabulaire 'yakafaucon'
A+
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: telem me revoila
Bonjour
Voici quelques instructions en C pour ARDUINO (cela remonte à 2013 pour moi)
exemple commande LED :
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// put your setup code here, to run once:
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(entreeONb, INPUT_PULLUP);
pinMode(entreeOFFb, INPUT_PULLUP);
}
// the loop routine runs over and over again forever:
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
//read the pushbutton value into a variable
sensorONb = digitalRead(entreeONb);
sensorOFFb = digitalRead(entreeOFFb);
}
et d'autres pour USART, A/D
// Debugging output
Serial.begin(9600);
// envoi à monitor
Serial.print("D: "); Serial.print(compteur4); Serial.println();
Serial.print("A: "); Serial.print(compteur1); Serial.println();
Serial.print("P: "); Serial.print(compteurP); Serial.println();
// envoi à monitor
Serial.print("Z: "); Serial.print(compteurZ); Serial.println();
// read the input on analog pin tensionalim:
sensorValue = analogRead(tensionalim);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
voltage = sensorValue * (5.0 / 1023.0) * 3;
Voici quelques instructions en C pour ARDUINO (cela remonte à 2013 pour moi)
exemple commande LED :
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// put your setup code here, to run once:
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(entreeONb, INPUT_PULLUP);
pinMode(entreeOFFb, INPUT_PULLUP);
}
// the loop routine runs over and over again forever:
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
//read the pushbutton value into a variable
sensorONb = digitalRead(entreeONb);
sensorOFFb = digitalRead(entreeOFFb);
}
et d'autres pour USART, A/D
// Debugging output
Serial.begin(9600);
// envoi à monitor
Serial.print("D: "); Serial.print(compteur4); Serial.println();
Serial.print("A: "); Serial.print(compteur1); Serial.println();
Serial.print("P: "); Serial.print(compteurP); Serial.println();
// envoi à monitor
Serial.print("Z: "); Serial.print(compteurZ); Serial.println();
// read the input on analog pin tensionalim:
sensorValue = analogRead(tensionalim);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
voltage = sensorValue * (5.0 / 1023.0) * 3;
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: telem me revoila
Bonjour
Voici cette esquisse faite aujourd'hui pour un Arduino Uno
/**********
Arduino Uno est utilisé ainsi que compilateur 1.5.2 et driver USB inf : Arduino UNO (REV3)
Uno :
dimensions 52*65 mm
µcontrôleur Atmel ATmega 328
quartz 16 MHz
32k octets mémoire programme (flash)
2k octets mémoire données (RAM)
1k octets mémoire EEPROM
14 lignes E/S logique (40mA maxi par ligne)
6 entrées analogiques
digital 13 = led
alimentation extérieure 9volts
le compilateur a été téléchargé sur http://www.arduino.cc/ ET http://arduino.cc/en/Main/Software
livre arduino tavernier, 24.9
arduino uno, 32
shield afficheur 2*16, 32
**********/
//librairie de base
#include
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int muxA = 12;
int muxB = 11;
int muxC = 10;
// utiliser entrées logiques 7 8 9 10
int entreeA = 7;
int entreeB = 8;
int entreeC = 7;
int entreeD = 8;
// utiliser entrée analogique 0
int tensionmesure = 0;
/
/* variables */
int sensorValue;
int sensorOctet;
byte octetMesure;
int sensorA;
int sensorB;
int sensorC;
int sensorD;
byte compteurTrames; //Compter les Trames envoyées (int 16 byte
byte ssum; // checksum
// Serial.println(); pour envoi puis 'à la ligne'
// if avec != ou ==
void acquisenvoimesure(void)
{
// read the input on analog pin tensionalim:
sensorValue = analogRead(tensionmesure);
// Convert the analog reading (which goes from 0 - 1023) to a octet (0 -- 255)
sensorOctet = sensorValue / 4;
octetMesure = sensorOctet;
// envoi à monitor
Serial.print(octetMesure);
//
ssum = ssum + octetMesure
}
/**** principaux ****/
void setup() {
// put your setup code here, to run once:
// initialize the digital pin as an output.
pinMode(led, OUTPUT); // Debugging output
pinMode(entreeONb, INPUT_PULLUP);
pinMode(entreeOFFb, INPUT_PULLUP);
Serial.begin(9600);
compteurTrames = 0;
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
// envoi à monitor
Serial.print(85); Serial.print(170);
Serial.print(90); Serial.print(165);
// hypothèse que les mesures ne donneront pas la séquence 0x55 0xAA 0x5A 0xA5
ssum = 0;
digitalWrite(muxA, LOW);
digitalWrite(muxB, LOW);
digitalWrite(muxC, LOW);
acquisenvoimesure();
digitalWrite(muxA, LOW);
digitalWrite(muxB, LOW);
digitalWrite(muxC, HIGH);
acquisenvoimesure();
digitalWrite(muxA, LOW);
digitalWrite(muxB, HIGH);
digitalWrite(muxC, LOW);
acquisenvoimesure();
digitalWrite(muxA, LOW);
digitalWrite(muxB, HIGH);
digitalWrite(muxC, HIGH);
acquisenvoimesure();
digitalWrite(muxA, HIGH);
digitalWrite(muxB, LOW);
digitalWrite(muxC, LOW);
acquisenvoimesure();
digitalWrite(muxA, HIGH);
digitalWrite(muxB, LOW);
digitalWrite(muxC, HIGH);
acquisenvoimesure();
digitalWrite(muxA, HIGH);
digitalWrite(muxB, HIGH);
digitalWrite(muxC, LOW);
acquisenvoimesure();
digitalWrite(muxA, HIGH);
digitalWrite(muxB, HIGH);
digitalWrite(muxC, HIGH);
acquisenvoimesure();
//read the pushbutton value into a variable
sensorA = digitalRead(entreeA);
sensorB = digitalRead(entreeB);
sensorC = digitalRead(entreeC);
sensorD = digitalRead(entreeD);
octetMesure = 0;
if (sensorA != 0) octetMesure = octetMesure + 1;
if (sensorB != 0) octetMesure = octetMesure + 2;
if (sensorC != 0) octetMesure = octetMesure + 4;
if (sensorD != 0) octetMesure = octetMesure + 8; // octetMesure += 8
Serial.print(octetMesure);
ssum = ssum + octetMesure;
compteurTrames++;
// envoi à monitor
Serial.print(compteurTrames);
ssum = ssum + compteurTrames;
Serial.print(ssum);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500);
}
}
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: telem me revoila
merci PATRICK Je vais faire le montage et essayer ce programme pour voir si cela fonctionne je te ferai le cr des que je pourrai
je vais mettre tout cela en musique des que possible
RJC
je vais mettre tout cela en musique des que possible
RJC
runfola jean claude- Messages : 657
Date d'inscription : 01/04/2016
Age : 80
Localisation : missillac
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|