telem me revoila

Aller en bas

telem me revoila Empty telem me revoila

Message par runfola jean claude le Ven 29 Mar - 20:39

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

runfola jean claude

Messages : 302
Date d'inscription : 01/04/2016
Age : 75
Localisation : missillac

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par RoC le Sam 30 Mar - 18:23

Cool !

_________________
Vers l'Infini et au-delà ...
RoC
RoC

Messages : 537
Date d'inscription : 27/03/2016
Age : 45

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par bdureau le Dim 31 Mar - 8:19

Excellent Jean Claude
Tu vas mesurer quoi avec tes entrées analogiques?
Tu as pris quels modules pour la télémetrie?
bdureau
bdureau

Messages : 2275
Date d'inscription : 28/03/2016
Age : 47
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

telem me revoila Empty TELEM ME REVOILA

Message par runfola jean claude le Dim 31 Mar - 9:10

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

runfola jean claude

Messages : 302
Date d'inscription : 01/04/2016
Age : 75
Localisation : missillac

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par lem75pat le Lun 6 Mai - 10:45

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

lem75pat

Messages : 55
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par runfola jean claude le Lun 6 Mai - 12:42

merci Patrick

runfola jean claude

Messages : 302
Date d'inscription : 01/04/2016
Age : 75
Localisation : missillac

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par lem75pat le Lun 6 Mai - 16:41

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^Cool

C'est une question de temps. Je ne dis pas 'il suffit' 'je peux' car cela appartient au vocabulaire 'yakafaucon'

A+

lem75pat

Messages : 55
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par lem75pat le Mer 8 Mai - 7:28

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;

lem75pat

Messages : 55
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par bdureau le Mer 8 Mai - 11:37

L'avantage avec l'Arduino c'est que ça a rendu les choses beaucoup plus simple
bdureau
bdureau

Messages : 2275
Date d'inscription : 28/03/2016
Age : 47
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par ASTROSQUALE le Mer 8 Mai - 12:24

What a Face

_________________
On improvise, on domine, on s'adapte...
ASTROSQUALE
ASTROSQUALE

Messages : 1500
Date d'inscription : 27/03/2016
Age : 49
Localisation : GIRONDE

http://astrosquale.free.fr/ASTROSQUALE/Bienvenue.html

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par lem75pat le Jeu 9 Mai - 8:47


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 Cool
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 : 55
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par runfola jean claude le Jeu 9 Mai - 9:31

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

runfola jean claude

Messages : 302
Date d'inscription : 01/04/2016
Age : 75
Localisation : missillac

Revenir en haut Aller en bas

telem me revoila Empty Re: telem me revoila

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum