Aller au contenu

Un flip flat pour 4 sous


gehelem

Messages recommandés

à l’instant, supaii a dit :

les deux mon captitaine

alors débranche moi physiquement les autres arduinos stp

parce que ça c'est un nid à embrouilles, je m'y suis déjà perdu

 

Lien vers le commentaire
Partager sur d’autres sites

Le 20/04/2019 à 00:36, supaii a dit :

arf je ne suis pas à coté , demain si tu le veut bien... ça sent le dodo :bye2:

oui, t'as raison, je vais y aller aussi

 

pour le debug, j'ai zappé de vous dire qu'il faut cocher tout ça :

image.png.7b09a0b74e5ec057f59e4f8ddd105535.png

Lien vers le commentaire
Partager sur d’autres sites

@gehelem

 

Je viens de mettre le firmware original et celui ci fonctionne très bien avec SGP.

Juste dans le programme penser à modifier le pin 13 de la led qui n'est pas PWM mais ca fonctionne au top, juste qu'il n'y a plus le flip pour le coup!!

 

aller je me remet sur le debug du fichier car demain travail a 7h!!! je fais vite ^^

 

et peux tu dire ou on les trouve dans la Tinker??

Lien vers le commentaire
Partager sur d’autres sites

Le 20/04/2019 à 00:41, olivier1986 a dit :

Je viens de mettre le firmware original et celui ci fonctionne très bien avec SGP.

 

parfait, merci bcp

 

Le 20/04/2019 à 00:41, olivier1986 a dit :

juste qu'il n'y a plus le flip pour le coup!!

vraiment pas difficile, c'est même pas 10 lignes à ajouter

 

Le 20/04/2019 à 00:41, olivier1986 a dit :

et peux tu dire ou on les trouve dans la Tinker??

je ne comprends pas ta question

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, olivier1986 a dit :

le fichier que je dois t'envoyer des pb INDI je sais pas ou le trouver, dans quel repertoire sur ma Tinker!! il est tard lol !!

scuse

quand tu actives le debug avec logfile, il t'indique à quel endroit se trouve le fichier

pour toi ce sera sans doute un truc du genre /home/nafa/.indi/logs/2019-04-19/indi_flipflat/indi_flipflat_22:35:48.log

image.png.e0261c89aed240102610c02e6a52801a.png

Lien vers le commentaire
Partager sur d’autres sites

J'appelle les copains parce que je pense qu'on a progressé 

@JMDSomme @Malik : à priori on a tout ce qu'il faut pour faire marcher le truc avec SGP

 

Le 20/04/2019 à 00:52, olivier1986 a dit :

@gehelem Bon ba ca commence mal en fait car moi je n'ai rien en debug!! en fait j'ai la même fenêtre que toi mais sans rien en dessous de périphérique de surveillance...

laisse tomber pour ce soir, là j'ai les yeux qui se croisent

on verra demain

merci encore pour ton aide

 

image.png

Lien vers le commentaire
Partager sur d’autres sites

@gehelem

ci joint le fichier log. Me demande pas pourquoi il me donne une heure alors que tout était à l'heure sur le système et que c'est le seul fichier log dispo.

 

Manip effectuées:

 

- connection

- ouverture et fermeture cap

- allumage et extinction led

 

bonne lecture !!

 

Merci à toi Gilles

indi_flipflat_22_55_08.log

 

Encore un petit tout frais pour la route!!

 

 

indi_flipflat_23_09_01.log

Lien vers le commentaire
Partager sur d’autres sites

ces deux logs n'indiquent pas de problème particulier à la connexion

donc à priori, le nano n'est pas en cause, la bidouille du condensateur semble marcher

c'est après que ça se gâte, il y a des timeout qui arrivent un peu comme ils veulent...

 

je ne vais pas être au taquet là-dessus aujourd'hui, chantier maison.

 

Lien vers le commentaire
Partager sur d’autres sites

Salut. On s'amuse bien ici! Vu les log, on dirai que l'arduino n'arrive pas a suivre. On dirai qu'il décroche quand indi envoit une commande tout de suite après qu'il ai répondu a une précédente requête. Les S000 arrivent souvent a moins d'1ms d'une réponse. 

Lien vers le commentaire
Partager sur d’autres sites

il y a 3 minutes, Cedric02700 a dit :

Salut. On s'amuse bien ici! Vu les log, on dirai que l'arduino n'arrive pas a suivre. On dirai qu'il décroche quand indi envoit une commande tout de suite après qu'il ai répondu a une précédente requête. Les S000 arrivent souvent a moins d'1ms d'une réponse. 

oui

je me demande si c'est pas lié à la détection de la fin de l'envoi d'une commande, avec les sauts de ligne

En mettant ça :

  Serial.readBytes( str, 5);

à la place de ça :

  Serial.readBytesUntil('\n', str, 20);
 Je pensais pouvoir régler l'affaire, mais à mon avis ce n'est pas si simple

Lien vers le commentaire
Partager sur d’autres sites

Qq coups scie après le café 

 

20190420_141143.thumb.jpg.d7cebd44291e3442297d53f543346cf5.jpg20190420_141259.thumb.jpg.61ca83ea3918e7ed16f3f481f1c27ecd.jpg20190420_141529.thumb.jpg.1194a100f3d56fcfcdfea118647e7d29.jpg20190420_141908.thumb.jpg.9346fb65462753b35f1456bcbe098940.jpg20190420_142853.thumb.jpg.9c73a4a58710c3e385bc7a3d91123c60.jpg20190420_142917.thumb.jpg.4e31d5abd30f813abc571eba6d7fe837.jpg

20190420_142853.jpg

 

Le 20/04/2019 à 14:26, Cedric02700 a dit :

L'envoi du >S000 à l'air d'être automatique après chaque réponse de l'Arduino. Il est peut être possible d'ajouter un petit délai avant l'envoi de cette requête dans le driver.

sans doute, mais autant que possible je voudrais éviter d'avoir à modifier le driver indi, qui semble fonctionner avec le flipflat original d'alnitak

Lien vers le commentaire
Partager sur d’autres sites

@gehelem et la maison alors???? ^^;)

 

Bon j'ai aussi remarqué qqchose dans le driver de base:

on sait que INDI envoie la commande >S000 à l'arduino. Mais avant même celle ci il envoie un >V000.

peut être déjà regarder ici non?

 

ah et aussi que dans le INO on a >V001 dans le parmamètre "get firmware version", pourquoi pas >V000? bon j'ai essayer en le remplacant mais toujours pas de résultats sur indi :(

 

c'est po zute.... ca marche chez Gilles et personne d'autre grrrrrrrr ^^

Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, olivier1986 a dit :

@gehelem et la maison alors????

  

Bon j'ai aussi remarqué qqchose dans le driver de base:

on sait que INDI envoie la commande >S000 à l'arduino. Mais avant même celle ci il envoie un >V000.

peut être déjà regarder ici non?

j'y retourne, caféf fini.

Lien vers le commentaire
Partager sur d’autres sites

Pour en revenir au panneau flat, j'ai regardé sur le boitier de commande du mien au format A3, il est précisé  : "Output 80-150V alternatif 800-2000Hz".

Je vois mal comment reproduire ce genre de signal avec un Arduino sans ajouté une électronique spécifique.

N'ayant pas d'expérience sur ce genre de technologie, je ne sais pas si les paramètres tension et fréquence dépendent des dimensions du flat ou pas.

Lien vers le commentaire
Partager sur d’autres sites

@gehelem @supaii @Cedric02700

 

Je viens de résoudre notre problème!! et ça marche du tonnerre! ça m'a travailé toute la journée ^^

Donc en fait je suis resté sur le message de Cédric02700 postulant l'implant d'un delai ... et magie c'était THE reponse!!! un délai dans la fonction void handleserial () juste avant le1er if, et ça a marché! bon biensur je n'ai pas testé cela en 1er et c'est pour cela qu'il est si tard! j'ai choisi après plusieurs essais la valeur de 100ms car:

- en dessous c'était instable avec SGP mais fonctionniel avec INDI

- au dessus on ressent la présence du delay et c'est dommage!!

 

En revanche, puisque pour le coup ce sont deux bonnes nouvelles et pas qu'une, c'est qu'en plus d'un driver indi qui fontionne au poil (essais avec le vrai matos ... un régal!!) et ba ça marche aussi avec SGP tester la aussi en vrai!!

ca devrait en faire plaisir à plus d'un!! héhé!!

 

Bon au dodo car il se fait tard maintenant, et voilà le code!! bonne nuit (bonjour??) tout le monde!!


 

Révélation

 

 /*
What: LEDLightBoxAlnitak - PC controlled lightbox implmented using the
    Alnitak (Flip-Flat/Flat-Man) command set found here:
   http://www.optecinc.com/astronomy/pdf/Alnitak Astrosystems GenericCommandsR3.pdf

Who:
    Created By: Jared Wellman - jared@mainsequencesoftware.com

When:
    Last modified:  2013/May/05


Typical usage on the command prompt:
Send     : >S000\n      //request state
Recieve  : *S19000\n    //returned state

Send     : >B128\n      //set brightness 128
Recieve  : *B19128\n    //confirming brightness set to 128

Send     : >J000\n      //get brightness
Recieve  : *B19128\n    //brightness value of 128 (assuming as set from above)

Send     : >L000\n      //turn light on (uses set brightness value)
Recieve  : *L19000\n    //confirms light turned on

Send     : >D000\n      //turn light off (brightness value should not be changed)
Recieve  : *D19000\n    //confirms light turned off.
*/

#include <Servo.h>
Servo myservo;

volatile int ledPin   = 6;      // the pin that the LED is attached to, needs to be a PWM pin.
volatile int servoPin = 9;      // the pin that the servo signal is attached to, needs to be a PWM pin.
int brightness = 0;

enum devices
{
    FLAT_MAN_L = 10,
    FLAT_MAN_XL = 15,
    FLAT_MAN = 19,
    FLIP_FLAT = 99
};

enum motorStatuses
{
    STOPPED = 0,
    RUNNING
};

enum lightStatuses
{
    OFF = 0,
    ON
};

enum shutterStatuses
{
    UNKNOWN = 0, // ie not open or closed...could be moving
    CLOSED,
    OPEN
};


int deviceId = FLIP_FLAT;
int motorStatus = STOPPED;
int lightStatus = OFF;
int coverStatus = UNKNOWN;

void setup()
{
  // initialize the serial communication:
  Serial.begin(9600);
  // initialize the ledPin as an output:
  pinMode(ledPin, OUTPUT);
  analogWrite(ledPin, 0);
  myservo.attach(servoPin,400,2500);  
}

void loop()
{
  handleSerial();
}


void handleSerial()
{
  delay(100);
  if( Serial.available() >= 5 )  // all incoming communications are fixed length at 6 bytes including the \n
  {
    char* cmd;
    char* data;
    char temp[10];
    
    int len = 0;

    char str[20];
    memset(str, 0, 20);
    
    // I don't personally like using the \n as a command character for reading.  
    // but that's how the command set is.
  //  Serial.readBytesUntil('\n', str, 20);
  Serial.readBytes( str, 5);

    cmd = str + 1;
    data = str + 2;
    
    // useful for debugging to make sure your commands came through and are parsed correctly.
    if( false )
    {
      sprintf( temp, "cmd = >%s%s;", cmd, data);
      Serial.println(temp);
    }
    


    switch( *cmd )
    {
      /*
        Ping device
            Request: >P000\n
            Return : *Pii000\n
                id = deviceId
      */
      case 'P':
          sprintf(temp, "*P%d000\n", deviceId);
          Serial.print(temp);
          break;

      /*
        Open shutter
            Request: >O000\n
            Return : *Oii000\n
                id = deviceId

            This command is only supported on the Flip-Flat!
      */
      case 'O':
          sprintf(temp, "*O%d000\n", deviceId);
          SetShutter(OPEN);
          Serial.print(temp);
          break;


      /*
        Close shutter
            Request: >C000\n
            Return : *Cii000\n
                id = deviceId

            This command is only supported on the Flip-Flat!
      */
      case 'C':
          sprintf(temp, "*C%d000\n", deviceId);
          SetShutter(CLOSED);
          Serial.print(temp);
          break;

      /*
        Turn light on
            Request: >L000\n
            Return : *Lii000\n
                id = deviceId
      */
      case 'L':
          sprintf(temp, "*L%d000\n", deviceId);
          Serial.print(temp);
          lightStatus = ON;
          analogWrite(ledPin, brightness);
          break;

      /*
        Turn light off
            Request: >D000\n
            Return : *Dii000\n
                id = deviceId
      */
      case 'D':
          sprintf(temp, "*D%d000\n", deviceId);
          Serial.print(temp);
          lightStatus = OFF;
          analogWrite(ledPin, 0);
          break;

      /*
        Set brightness
            Request: >Bxxx\n
                xxx = brightness value from 000-255
            Return : *Biiyyy\n
                id = deviceId
                yyy = value that brightness was set from 000-255
      */
      case 'B':
          brightness = atoi(data);    
          if( lightStatus == ON )
              analogWrite(ledPin, brightness);   
          sprintf( temp, "*B%d%03d\n", deviceId, brightness );
          Serial.print(temp);
        break;

      /*
        Get brightness
            Request: >J000\n
            Return : *Jiiyyy\n
                id = deviceId
                yyy = current brightness value from 000-255
      */
      case 'J':
        sprintf( temp, "*J%d%03d\n", deviceId, brightness);
        Serial.print(temp);
        break;
      
      /*
        Get device status:
            Request: >S000\n
            Return : *SidMLC\n
                id = deviceId
                M  = motor status( 0 stopped, 1 running)
                L  = light status( 0 off, 1 on)
                C  = Cover Status( 0 moving, 1 closed, 2 open)
      */
      case 'S':
        sprintf( temp, "*S%d%d%d%d\n",deviceId, motorStatus, lightStatus, coverStatus);
        Serial.print(temp);
        break;

      /*
        Get firmware version
            Request: >V000\n
            Return : *Vii001\n
                id = deviceId
      */
      case 'V': // get firmware version
          sprintf(temp, "*V%d001\n", deviceId);
          Serial.print(temp);
          break;
    }    

    while( Serial.available() > 0 )
        Serial.read();
            

  }
}

void SetShutter(int val)
{
    if( val == OPEN && coverStatus != OPEN )
    {
    myservo.write(180);
        coverStatus = OPEN;
        // TODO: Implement code to OPEN the shutter.
    }
    else if( val == CLOSED && coverStatus != CLOSED )
    {
   myservo.write(0);  
        coverStatus = CLOSED;
        // TODO: Implement code to CLOSE the shutter
    }
    else
    {
        // TODO: Actually handle this case
        coverStatus = val;
    }
    
}

 

 

  • Merci / Quelle qualité! 3
Lien vers le commentaire
Partager sur d’autres sites

Il y a 5 heures, olivier1986 a dit :

@gehelem @supaii @Cedric02700

 

Je viens de résoudre notre problème!! et ça marche du tonnerre! ça m'a travailé toute la journée ^^

Donc en fait je suis resté sur le message de Cédric02700 postulant l'implant d'un delai ... et magie c'était THE reponse!!! un délai dans la fonction void handleserial () juste avant le1er if, et ça a marché! bon biensur je n'ai pas testé cela en 1er et c'est pour cela qu'il est si tard! j'ai choisi après plusieurs essais la valeur de 100ms car:

- en dessous c'était instable avec SGP mais fonctionniel avec INDI

- au dessus on ressent la présence du delay et c'est dommage!!

 

En revanche, puisque pour le coup ce sont deux bonnes nouvelles et pas qu'une, c'est qu'en plus d'un driver indi qui fontionne au poil (essais avec le vrai matos ... un régal!!) et ba ça marche aussi avec SGP tester la aussi en vrai!!

ca devrait en faire plaisir à plus d'un!! héhé!!

 

Bon au dodo car il se fait tard maintenant, et voilà le code!! bonne nuit (bonjour??) tout le monde!!


 

  Révéler le contenu masqué

 

 /*
What: LEDLightBoxAlnitak - PC controlled lightbox implmented using the
    Alnitak (Flip-Flat/Flat-Man) command set found here:
   http://www.optecinc.com/astronomy/pdf/Alnitak Astrosystems GenericCommandsR3.pdf

Who:
    Created By: Jared Wellman - jared@mainsequencesoftware.com

When:
    Last modified:  2013/May/05


Typical usage on the command prompt:
Send     : >S000\n      //request state
Recieve  : *S19000\n    //returned state

Send     : >B128\n      //set brightness 128
Recieve  : *B19128\n    //confirming brightness set to 128

Send     : >J000\n      //get brightness
Recieve  : *B19128\n    //brightness value of 128 (assuming as set from above)

Send     : >L000\n      //turn light on (uses set brightness value)
Recieve  : *L19000\n    //confirms light turned on

Send     : >D000\n      //turn light off (brightness value should not be changed)
Recieve  : *D19000\n    //confirms light turned off.
*/

#include <Servo.h>
Servo myservo;

volatile int ledPin   = 6;      // the pin that the LED is attached to, needs to be a PWM pin.
volatile int servoPin = 9;      // the pin that the servo signal is attached to, needs to be a PWM pin.
int brightness = 0;

enum devices
{
    FLAT_MAN_L = 10,
    FLAT_MAN_XL = 15,
    FLAT_MAN = 19,
    FLIP_FLAT = 99
};

enum motorStatuses
{
    STOPPED = 0,
    RUNNING
};

enum lightStatuses
{
    OFF = 0,
    ON
};

enum shutterStatuses
{
    UNKNOWN = 0, // ie not open or closed...could be moving
    CLOSED,
    OPEN
};


int deviceId = FLIP_FLAT;
int motorStatus = STOPPED;
int lightStatus = OFF;
int coverStatus = UNKNOWN;

void setup()
{
  // initialize the serial communication:
  Serial.begin(9600);
  // initialize the ledPin as an output:
  pinMode(ledPin, OUTPUT);
  analogWrite(ledPin, 0);
  myservo.attach(servoPin,400,2500);  
}

void loop()
{
  handleSerial();
}


void handleSerial()
{
  delay(100);
  if( Serial.available() >= 5 )  // all incoming communications are fixed length at 6 bytes including the \n
  {
    char* cmd;
    char* data;
    char temp[10];
    
    int len = 0;

    char str[20];
    memset(str, 0, 20);
    
    // I don't personally like using the \n as a command character for reading.  
    // but that's how the command set is.
  //  Serial.readBytesUntil('\n', str, 20);
  Serial.readBytes( str, 5);

    cmd = str + 1;
    data = str + 2;
    
    // useful for debugging to make sure your commands came through and are parsed correctly.
    if( false )
    {
      sprintf( temp, "cmd = >%s%s;", cmd, data);
      Serial.println(temp);
    }
    


    switch( *cmd )
    {
      /*
        Ping device
            Request: >P000\n
            Return : *Pii000\n
                id = deviceId
      */
      case 'P':
          sprintf(temp, "*P%d000\n", deviceId);
          Serial.print(temp);
          break;

      /*
        Open shutter
            Request: >O000\n
            Return : *Oii000\n
                id = deviceId

            This command is only supported on the Flip-Flat!
      */
      case 'O':
          sprintf(temp, "*O%d000\n", deviceId);
          SetShutter(OPEN);
          Serial.print(temp);
          break;


      /*
        Close shutter
            Request: >C000\n
            Return : *Cii000\n
                id = deviceId

            This command is only supported on the Flip-Flat!
      */
      case 'C':
          sprintf(temp, "*C%d000\n", deviceId);
          SetShutter(CLOSED);
          Serial.print(temp);
          break;

      /*
        Turn light on
            Request: >L000\n
            Return : *Lii000\n
                id = deviceId
      */
      case 'L':
          sprintf(temp, "*L%d000\n", deviceId);
          Serial.print(temp);
          lightStatus = ON;
          analogWrite(ledPin, brightness);
          break;

      /*
        Turn light off
            Request: >D000\n
            Return : *Dii000\n
                id = deviceId
      */
      case 'D':
          sprintf(temp, "*D%d000\n", deviceId);
          Serial.print(temp);
          lightStatus = OFF;
          analogWrite(ledPin, 0);
          break;

      /*
        Set brightness
            Request: >Bxxx\n
                xxx = brightness value from 000-255
            Return : *Biiyyy\n
                id = deviceId
                yyy = value that brightness was set from 000-255
      */
      case 'B':
          brightness = atoi(data);    
          if( lightStatus == ON )
              analogWrite(ledPin, brightness);   
          sprintf( temp, "*B%d%03d\n", deviceId, brightness );
          Serial.print(temp);
        break;

      /*
        Get brightness
            Request: >J000\n
            Return : *Jiiyyy\n
                id = deviceId
                yyy = current brightness value from 000-255
      */
      case 'J':
        sprintf( temp, "*J%d%03d\n", deviceId, brightness);
        Serial.print(temp);
        break;
      
      /*
        Get device status:
            Request: >S000\n
            Return : *SidMLC\n
                id = deviceId
                M  = motor status( 0 stopped, 1 running)
                L  = light status( 0 off, 1 on)
                C  = Cover Status( 0 moving, 1 closed, 2 open)
      */
      case 'S':
        sprintf( temp, "*S%d%d%d%d\n",deviceId, motorStatus, lightStatus, coverStatus);
        Serial.print(temp);
        break;

      /*
        Get firmware version
            Request: >V000\n
            Return : *Vii001\n
                id = deviceId
      */
      case 'V': // get firmware version
          sprintf(temp, "*V%d001\n", deviceId);
          Serial.print(temp);
          break;
    }    

    while( Serial.available() > 0 )
        Serial.read();
            

  }
}

void SetShutter(int val)
{
    if( val == OPEN && coverStatus != OPEN )
    {
    myservo.write(180);
        coverStatus = OPEN;
        // TODO: Implement code to OPEN the shutter.
    }
    else if( val == CLOSED && coverStatus != CLOSED )
    {
   myservo.write(0);  
        coverStatus = CLOSED;
        // TODO: Implement code to CLOSE the shutter
    }
    else
    {
        // TODO: Actually handle this case
        coverStatus = val;
    }
    
}

 

 

 

Champion !!

On rapelle les copains pour qu'ils passent aussi un bon dimanche

@JMDSomme @Malik : zou, plus d'excuses 

 

@olivier1986 je comprends que ton montage est déjà complet ?

Faut nous mettre des photos! 

 

Allez. Je vais tondre la pelouse.

 

  • Merci / Quelle qualité! 1
Lien vers le commentaire
Partager sur d’autres sites

Aux mordus qui ont réussi cette exploit, bravo à tout :):):):)

 

Par contre 4 pages de tests et de trucs.......

 

C'est possible d'avoir un pac de ce qu'il faut et de ce qu'il faut faire ;) (pour SGP apr exemple)

pour qu'un débutant puisse y arriver.

 

Manu

 

 

Lien vers le commentaire
Partager sur d’autres sites

@gehelem

 

alors, non, hélas le montage n'est pas complet mais en banc d'essai dans le salon et le canapé!!

Pour les essais j'avais tout mis sur la platine d'essais et ma boite a flat branché aussi dessus.

donc je n'ai pas encore de vrai Flip Flat mais c'était pour essayer le bon fonctionnement.

 

@manudu74

 

Pour mes essai réel sur INDI j'ai procéder comme suit:

- BAF branché sur un relais en 12v et lui même connecté au pin 6 de l'arduino nano.

- servo connecté au pin 11 de l'arduino

- je lance Kstars/ Ekos et connecte le tout.

- je crée un job photos ou j'avais paramétré 3 photos luminance a l'APN et 5 flats automatiques d'une valeur régler à 2700 +- 100 dans les options

- je lance le job avec les option unpark monture et unpark cap et à la fin fermeture cap et monture.

-> que s'est il passé!!

-> le cap s'est ouvert

-> la monture est allée à la cible

-> la monture a pris ces 3 photos

-> le cap s'est refermé

-> la monture est retournée au park

-> la BAF s'est allumée prise d'une photo et réglage automatique du temps de pose pour arriver a 2700 adu +- 100

-> prise des 5 photos

-> extinction de la BAF

-> fermeture du job

-> extinction de INDI.

 

Bref au poil!

 

Pour SGP j'ai juste branché le montage d'essai et le matos sur mon pc et lancé l'appli. j'ai jouer avec la boite de dialogue qui allume bien la BAF et bouge le servo!

c'est un poil moins réactif que sur INDI mais c'est fonctionnel!

 

Olivier

Modifié par olivier1986
Lien vers le commentaire
Partager sur d’autres sites

il y a 54 minutes, manudu74 a dit :

C'est possible d'avoir un pac de ce qu'il faut et de ce qu'il faut faire ;) (pour SGP apr exemple)

pour qu'un débutant puisse y arriver.

Avec plaisir 

Je mettrai le premier post à jour + une petite vidéo avec tout bien expliqué : ça te va ?

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.