Antenne pour micro-controleurs

Cet espace est réservé aux échanges entre développeurs informatiques pour les projets de systèmes embarqués. Les visiteurs et membres du forum n'y ont pas accès. Cependant, l'équipe de modération a les mêmes exigences concernant le contenu des messages dans cette partie que sur le reste du forum.
leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Antenne pour micro-controleurs

Messagepar leal » 22 Aoû 2012 23:14

Bonjour,
Je me permet de créer ce poste pour montrer cette antenne fonctionnant en 41 à 45 Mhz
http://www.zartronic.fr/kit-communication-radio-apc220-p-74.html
Je pense mais il faut confirmation quelle peut être utiliser pour nos sous marins
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute

Avatar de l’utilisateur
coaxial
Messages : 3656
Enregistré le : 23 Jan 2010 19:35
Localisation : saint orens 31
Contact :

Re: Antenne pour micro-controleurs

Messagepar coaxial » 23 Aoû 2012 08:48

Caractéristiques
•Portée maximale : 1000m (en extérieur) à 2400 bps
•Puissance d'émission : de 1 à 20 mW (réglable, puissance à utiliser en Europe : 10 mW)
•Vitesse de transmission RF : de 2400 à 9600 bps
•Vitesse UART : 1200 à 57600 bps
•Tampon (Buffer) de 256 octets
•Haute sensibilité (-112dbbm à 9600 bps)
•Modulation GFSK
•Interface UART / TTL
•Fréquence : de 418 Mhz à 455 Mhz (réglable, fréquence à utiliser en Europe : 433 Mhz)
•Plus de 100 canaux (intervale de 200 Khz)
•Alimentation : 3,5V à 5,5V, 42 mA (maxi)
•Courant en réception : 28 mA, en veille : 5 uA
•Logiciel de configuration
•Le module interface série USB / TTL à base de CP2102 est compatible Windows, Mac et Linux.
•Dimensions d'un module : 38 x 19 x 7 mm
•Dimensions d'une antenne : longueur : 58 mm, diamètre 7,7 mm
•Poids d'un module avec son antenne : 10 grammes
Moins je réfléchis plus fort et plus j'agis moins vite
Les bons crus font les bonnes cuites => Pierre Dac .
.... la simplicité est-ce bien la plus simple solution ..........?
La femme est l'avenir de l'homme .

Avatar de l’utilisateur
gagouze
Messages : 1961
Enregistré le : 24 Jan 2010 22:39
Localisation : Brest (29)

Re: Antenne pour micro-controleurs

Messagepar gagouze » 23 Aoû 2012 11:52

J'ai des doute sur la transmission avec l'antenne dans le sous-marin :!: :!: :!: :!:

Il ya toujours la solution de la bouée antenne remorqué et qui flotte à la surface
Etienne
Un Galathée
Un voilier caboteur en construction : Le Narval
Un classe Alfa en construction.

leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Re: Antenne pour micro-controleurs

Messagepar leal » 23 Aoû 2012 13:15

c'est justement pour éviter la bouée flottante que j'ai proposer ce module il faudrait tester
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute

Avatar de l’utilisateur
Geeks
Messages : 3584
Enregistré le : 03 Juil 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Antenne pour micro-controleurs

Messagepar Geeks » 23 Aoû 2012 13:42

Comme avec tout ce qui est dans la gamme haute des fréquences, il faudra une antenne hors d'eau et étanche.

La seule solution pour utiliser une telle transmission est de monter un fil issue du sous-marin, vers une balise qui restera en surface avec l'antenne.

Une piste à explorer. Je suis dessus depuis longtemps sans avoir pu essayer faute de schéma correct. Prendre la bande des 27 Mhz, dans une fréquence d'entre deux fréquence utilisé dans cette bande. Mettre un codage numérique dans une porteuse radio en vue de moduler. A l'opposé, un récepteur à synthèse de fréquence, une démodulation et un décodage numérique permettrait alors d'avoir l'antenne immergée dans le sous-marin ! Hélas, il faut que cette game soit éloigné de nos fréquences de pilotage.

27 Mhz / 41 Mhz c'est moyen mais ça peut le faire.
27 Mhz / 35 Mhz, c'est trop proche pour gérer émission / réception.

Pour m'être renseigné auprès de personnes compétente en la matière. Ce serais pourtant une solution "convenable" à notre problématique.

Au passage, cherchez pas sur le net des modules tout fait, ils sont tous en 433 Mhz / 1.2 Ghz... :Oo:
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01

leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Re: Antenne pour micro-controleurs

Messagepar leal » 26 Juin 2013 17:15

Bonjour,
Je relance ce sujet pour dire que j'ai acheter ce module et que je l'ai programmé avec une arduino pour faire fonctionner un servo et un moteur( récup d'une perceuse) dans l'objectif de faire un bateau radiocommandée par ordinateur. Et que suite aux tests, j'ai abouti à un montage fonctionnel(voir vidéo).

http://youtu.be/6YAWnerFz08



Le système fonctionne avec une carte arduino et sur l'ordinateur le logiciel processing :

code arduino :

Code : Tout sélectionner

#include <Servo.h> //librairies permettant la commande de servomoteur

 // déclaration des variables
int temps, LEDPin=13, mosfet1Pin=5, servoPin=9, carlu, valmotor, valmotorneg, valservo, DEMI_PERIODE_LED_MS=250, PERIODE_SERVO_MS=50, PERIODE_MOTEUR_MS;
long DebutChronoLedMs=millis(), DebutChronoServoMs=millis(),DebutChronoMoteurMs=millis(), tempsBoucle=millis(), compteur=0;
boolean EtatLed = HIGH;
Servo myservo;

//initialisation
void setup()
{   
  Serial.begin(9600);   
  pinMode(mosfet1Pin, OUTPUT);
  pinMode(LEDPin, OUTPUT);
  myservo.attach(servoPin);
  myservo.write(90);
  analogWrite(mosfet1Pin, 0);
}
 
//programme répété en continu
void loop()
{
//récupération des commandes venant de l'ordi
  if(Serial.available() != 0)
  {
    carlu = Serial.read();
  }
  //commande du moteur
  if (carlu > 0 && carlu < 149.5)
  {
    valmotor = map(carlu, 1, 149, 0, 255);
    analogWrite(mosfet1Pin, valmotor);
    Serial.println(valmotor);
  }
//commande du servo
  else if (carlu > 149.5 && carlu < 255.5)
  {
    valservo = map(carlu, 150, 255, 0, 180);
    myservo.write(valservo);
    Serial.println(valservo);
  }
  //pour arrêter le moteur
  else if (carlu == 255)
  {
    analogWrite(mosfet1Pin, 0);
  }
  //actualisation de la valeur envoyé
  if(millis()-DebutChronoMoteurMs >= PERIODE_MOTEUR_MS)
  {
    analogWrite(mosfet1Pin, valmotor);
  }
  if(millis()-DebutChronoServoMs >= PERIODE_SERVO_MS)
  {
    myservo.write(valservo);
  }
  //clignotement d'une LED signalant la bonne marche du programme
  if(millis()-DebutChronoLedMs >= DEMI_PERIODE_LED_MS)
  {
    digitalWrite(LEDPin, EtatLed);
    EtatLed =! EtatLed;
    DebutChronoLedMs=millis();
  }
  /compteur pour savoir le nombre de boucle réalise(100 000 réalisée en 8,5 secondes en moyenne)
  if (compteur > 100000)
  {
    Serial.print("Tps 100000 boucle : ");
    Serial.print(millis()-tempsBoucle);
    Serial.println(" us");
    tempsBoucle=millis();
    compteur=0;
  }
  //réinitialisation des variables
  carlu = 0;
  compteur++;
}


code processing :

Code : Tout sélectionner

//librairies
import procontroll.*;
import processing.serial.*;
import java.io.*;

//déclarations des variables
ControllIO controll;
ControllDevice device;
ControllSlider axeY;
ControllSlider axeX;
ControllSlider axeZ;
ControllSlider rotationZ;
ControllButton b0,b1,b2,b3,b4,b5,b6,b7;
Serial  myPort;

//initialisation
void setup() {
  size(400,400);
  controll = ControllIO.getInstance(this);
  for (int i = 0; i < controll.getNumberOfDevices(); i++)
  {
    ControllDevice device = controll.getDevice(i);   
  }
  device = controll.getDevice("Cyborg V.1 Stick");
  println(device.getName()+" has:");
  println(" " + device.getNumberOfSliders() + " sliders");
  println(" " + device.getNumberOfButtons() + " buttons");
  println(" " + device.getNumberOfSticks() + " sticks");
  device.printSliders();
  device.printButtons();
  device.printSticks();
  device.setTolerance(0.05f);
  device.rumble(100,1);
  axeX = device.getSlider(0);
  axeY = device.getSlider(1);
  axeZ = device.getSlider(2);
  rotationZ = device.getSlider(3);
  b0 = device.getButton(0);
  b1 = device.getButton(1);
  b2 = device.getButton(2);
  b3 = device.getButton(3);
  b4 = device.getButton(4);
  b5 = device.getButton(5);
  b6 = device.getButton(6);
  b7 = device.getButton(7);
  println(Serial.list());
  myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n');
  background(255);
  fill(0);
  rectMode(CENTER);
 
}

void draw() {
  background(0);
  float x = axeX.getTotalValue();
  if( x > 1 || x < -1)
  {
  x = x/2;
  }
  x = x/12.5;
  x = (x*(-148)+1);
  float y = axeY.getTotalValue();
  if(y > 1 || y < -1)
  {
  y = y/2;
  }
  y = y/12.5;
  y = (y*52.5+202.5);
  float Z1 = axeZ.getTotalValue();
  if(Z1 > 1 || Z1 < -1)
  {
  Z1 = Z1/2;
  }
  Z1 = (Z1*(-127.5)+127.5+500);
  float Z2 = rotationZ.getTotalValue();
  if( Z2 > 1 || Z2 < -1)
  {
  Z2 = Z2/2;
  }
  Z2 = (Z2*90+1000);
  //envoi des commandes
  myPort.write((int(y)));
  if(x >= 1)
  {
  myPort.write((int(x)));
  }
  axeX.reset();
  axeY.reset();
  axeZ.reset();
  rotationZ.reset();
  delay(250);
}

//fonction pour recevoir les comptes rendu de l'arduino
void serialEvent (Serial myPort) {
 String inString = myPort.readStringUntil('\n');
 if (inString != null) {
 inString = trim(inString);
 int inValue = int(inString);
 if (inValue != 0)
 {
 println("reçu " + inValue);
 }
 }
 }


Je créerais surement un post pour présenter mon bateau, une fois celui-ci terminé.

EDIT : mise du code dans les cadres adaptés.
Modifié en dernier par leal le 26 Juin 2013 20:02, modifié 2 fois.
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute

Avatar de l’utilisateur
papy94
Messages : 623
Enregistré le : 23 Jan 2010 14:31
Localisation : Champigny sur marne
Contact :

Re: Antenne pour micro-controleurs

Messagepar papy94 » 26 Juin 2013 18:26

c'est cool ton truc,
honnêtement mes compétences en programmation sont nuls et donc je ne peux t'apporter une quelconque aide

mais comme je le dis, le principal est que cela fonctionne et que tu te fasse plaisir
A+
Thierry
Image

leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Re: Antenne pour micro-controleurs

Messagepar leal » 26 Juin 2013 19:01

Merci :)
niveau programmation, je me débrouille de façon suffisante pour ce type de projet bien que j'ai eu de nombreux problèmes lors des tests, mais la ce qui me gêne plus c'est que pour finir mon bateau la place manque cruellement :x , et les problèmes mécaniques ne sont pas finis...
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute

leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Re: Antenne pour micro-controleurs

Messagepar leal » 26 Juin 2013 20:05

Après avoir regarder tes autres posts, tes compétences en programmation sont loin d'être nuls et bravo pour ce que tu as fait :Up:
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute

leal
Messages : 125
Enregistré le : 12 Mai 2012 15:07
Localisation : cote d'or

Re: Antenne pour micro-controleurs

Messagepar leal » 09 Mai 2016 22:31

Je déterre ce sujet pour dire que jài continue la construction de la péniche et ayant désormais un caisson étanche fonctionnel j'ai pu testé à 1m de profondeur le module pour une liaison arduino<-> ordinateur
Et cela passait sans problème, je pense donc utiliser également l'apc220 pour mon sous marin.
J'essayerai de tester prochainement à une profondeur plus importante pour voir la limite (j'étais au fond de la rivière ...)
Léo

une péniche commandée par ordinateur en construction : le Jumetois
un sous marin en projet : l'Argonaute


Retourner vers « Le coin des développeurs »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron