Aller au contenu

Un flip flat pour 4 sous


gehelem

Messages recommandés

il y a 39 minutes, Cedric02700 a dit :

@ursus As tu mis un condensateur anti reset? Je viens de regarder pour le pro mini, j'ai pas trouvé d'info la dessus. Je ne sais pas si le pro mini provoque un reste à l'établissement de de la communication série. Avis aux utilisateurs de pro mini.

Pas de reset sur mon promicro

Lien vers le commentaire
Partager sur d’autres sites

si il faut reculer le plexi ( amis augmenter la puissance aussi) et avoir peint l'interieur en blanc.

avant avec des bandes led sur le coté et le plexi à quelque millimetre. Resultat bof, vignetage inversé

DSC_0263.thumb.JPG.74d875e5a3ca7a1e2bb8ab453e519e17.JPG

 

J'ai reculé le plexi et il y avait une nette amélioration. Mais depuis , j'ai changer de led (la frequence du bandeau etait visible sur les flats).

 

Puis j'ai mis ce genre de led (neopixel) et cela fonctione bien sous indi (reconnu). Plus qu'à test sur un vrai flat et peintre l'intérieur (uniformité).

DSC_0342.thumb.JPG.aabf725984c095f32fe04760883dd317.JPG

 

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, supaii a dit :

la frequence du bandeau etait visible sur les flats

C'est du à l'utilisation d'un circuit PWM qui module plus ou moins rapidement le signale pour moduler la puissance envoyée aux led. Pour les yeux, la persistance rétinienne masque ce clignotement, pour les capteurs cela génère des bandes noires sur les flats. Pour éviter ce phénomène, j'utilise plutôt un régulateur linéaire de type LM317. Moins efficace au niveau de la consommation électrique, mais beaucoup plus adaptée à la réalisation de flats. Enfin...., c'est ma solution.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...
Il y a 15 heures, supaii a dit :

Ma première vidéo sur YouTube. 😂 

Voici le fonctionnement. 

https://youtu.be/aM7uLZ4IfAA

Top montage

Je veux bien les fichiers !(si c'est du freecad 😂)

 

Moi j'ai utilisé le mien en vrai une demi-douzaine de nuits avec eKos, c'est un vrai bonheur

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois plus tard...

Bonsoir tout le monde,

J'ai lu toutes les pages de cette conversation et je suis admiratif ! Voici un mois qu'il n'y a plus de messages mais j'espère que vous pourrez m'apporter quelques réponses s'il vous plaît !

Merci gehelem et supaii pour les vidéos et autres explications ; le problème est que dans ma petite tête j'ai du mal à suivre les progressions des divers montages et philosophies étudiées !

Serait-il possible, si vous avez le temps bien sur, de lister vos codes, schémas et matériel utilisés pour l'élaboration de vos montages respectifs cela me permettrait de ne pas m'égarer dans mes propres montages 😉 !

 

Par exemple supaii tu utilises des leds "en cercle" ; est ce que je pourrais utiliser ce genre de leds par exemple 

https://www.pcboard.ca/neopixel-ring

 

j'essaie de comprendre la programmation, les montages et le matériel mais là au fil de toutes ces pages je pars un peu "touzazimutes" 🙂

Merci de votre patience !

Bonne soirée !

Lien vers le commentaire
Partager sur d’autres sites

@Lucky062 Bonjour

 

Voici l'anneau que j'ai commandé.

https://fr.aliexpress.com/item/32888822638.html?spm=a2g0s.9042311.0.0.3da26c377j6M83

Il a une bonne puissance, je fait des flats de 0.02 secondes, en luminance, avec un reglage de 10 (sur 255 niveaux) en luminosité.

le voici en fausse couleur

 

Capture3.JPG.9f772f39abd9d2c90e014a2b4e64f700.JPG

 

Pour le branchement / wiring:

Captureneo.thumb.JPG.631a6de825662a585a7f4a2ab3b5cc96.JPG

 

Pour le code, je l'ai modifier car la bibliothèque pour controler les neopixels interfère avec celle du servo. J'ai pri une bibliothèque alternative pour controlé le servo.

 

Edit: code actuel

 

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 <Adafruit_NeoPixel.h>

//#include <Servo.h>
//Servo myservo;
#include <Adafruit_TiCoServo.h>
Adafruit_TiCoServo myservo;

#include <EEPROM.h>
int position_cap;

volatile int ledPin   = 6;      // the pin that the LED is attached to, needs to be a PWM pin.
volatile int servoPin = 10;      // the pin that the servo signal is attached to, needs to be a PWM pin.
int brightness = 0;
const int closeAngle=0;      //25  // Angle of the servo when the cap is close
const int openAngle=60;      //45  // Angle of the servo when the cap is open
const int slowAngle=30;         // Angle of the servo for approach to close/open

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 61 // Popular NeoPixel ring size
// Paramètre 1 = Le nombre de NéoPixels chainés
// Paramètre 2 = No de broche de données (Sur votre Arduino, la plupart convient)
// Paramètre 3 = Type de pixel (flags/drapeaux), a combiner ensemble en fonction du besoin:
//   NEO_KHZ800  flux de données à 800 KHz (plupart des NéoPixel basé sur les LEDs w/WS2812)
//   NEO_KHZ400  flux de données à 400 KHz (Pour les Pixels classiques 'v1' FLORA (pas les V2) pilotés par WS2811)
//   NEO_GRB     Pixels sont raccordés en flux de donnée GRB (GRB=Green,Red,Blue=Vert,Rouge,Bleu - la plupart des produits NéoPixel)
//   NEO_RGB     Pixels sont raccordés en flux de donnée RGB (RGB=Red,Green,Blue=Rouge,Vert,Bleu - Pixels FLORA v1, pas la v2)
Adafruit_NeoPixel pixels(NUMPIXELS, ledPin, NEO_GRB + NEO_KHZ800);

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 = EEPROM.get(position_cap,coverStatus);

void setup()
{
  // initialize the serial communication:
  Serial.begin(9600);
  // initialize the ledPin as an output:
  pinMode(ledPin, OUTPUT);
  //analogWrite(ledPin, 0);
  myservo.write(closeAngle);
  myservo.attach(servoPin,500,2500);
  pixels.begin();
  pixels.show(); // Initialise tous les pixels à 'off' (éteint)
}

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);
          EEPROM.put(position_cap,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);
          EEPROM.put(position_cap,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);
          // The first NeoPixel in a strand is #0, second is 1, all the way up
          // to the count of pixels minus one.
          for(int i=0; i<NUMPIXELS; i++) { // For each pixel...
                                           // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
                                           // Here we're using a moderately bright green color:
                                           pixels.setPixelColor(i, pixels.Color(255, 255, 255));
                                           pixels.setBrightness(brightness);
                                           pixels.show();   // Send the updated pixel colors to the hardware.
          }
          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);
          pixels.clear(); // Set all pixel colors to 'off'
          pixels.show();  // Send the updated pixel colors to the hardware.
          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);
          for(int i=0; i<NUMPIXELS; i++) { // For each pixel...
                                           // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
                                           // Here we're using a moderately bright green color:
                                           pixels.setPixelColor(i, pixels.Color(255, 255, 255));
                                           pixels.setBrightness(brightness);
                                           pixels.show();   // Send the updated pixel colors to the hardware.
          }
          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, EEPROM.get(position_cap,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 )
  {
    for (int angle = closeAngle; angle <= closeAngle + slowAngle; angle+=1)
    {
      myservo.write (angle);
      delay (70);
    }
    myservo.write (openAngle - slowAngle);
    for (int angle = openAngle - slowAngle; angle <= openAngle; angle+=1)
    {
      myservo.write (angle);
      delay (70);
    }
    coverStatus = OPEN;
    // TODO: Implement code to OPEN the shutter.
  }
  else if( val == CLOSED && coverStatus != CLOSED )
  {
    for (int angle = openAngle; angle > openAngle - slowAngle; angle-=1)
    {
      myservo.write (angle);
      delay (70);
    }   
    myservo.write (closeAngle + slowAngle);  
    for (int angle = closeAngle + slowAngle; angle > closeAngle; angle-=1)
    {
      myservo.write (angle);
      delay (70);
    }
    coverStatus = CLOSED;
    // TODO: Implement code to CLOSE the shutter
  }
  else
  {
    // TODO: Actually handle this case
    coverStatus = val;
  }
 
}

 

 

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

Bonjour Supaii,

 

Merci pour ton aide ! J'ai vu le lien pour l'anneau mais j'ai un doute sur le diamètre ; celui ci sera utilisé sur un telescope SW 150 mm de diamètre alors faut-il un 61 bits ou un 93 bits j'ai pas vu d'info sur les dimensions :-(

Le servo que j'ai commandé est un DS3218 270 °. Est ce correct pour toi ? Dernière chose je ne vois pas trop les branchements sur l'anneau du schéma et je me demande également ce qu'est ceci :

Capture.PNG.6306f5faebdfa8d5f995d956bd7f99a1.PNG 

Excuse les questions "bébettes" !

Ah oui ! Le site parle aussi de "pilotes intégrés" cela veut-il dire qu'aucun programme supplémentaire n'est necessaire !?

Merci encore du coup de main ;-)

Lien vers le commentaire
Partager sur d’autres sites

 
 
 
 
il y a 1 minute, Lucky062 a dit :

Bonjour Supaii,

 

Merci pour ton aide ! J'ai vu le lien pour l'anneau mais j'ai un doute sur le diamètre ; celui ci sera utilisé sur un telescope SW 150 mm de diamètre alors faut-il un 61 bits ou un 93 bits j'ai pas vu d'info sur les dimensions 😞

Le servo que j'ai commandé est un DS3218 270 °. Est ce correct pour toi ? Dernière chose je ne vois pas trop les branchements sur l'anneau du schéma et je me demande également ce qu'est ceci :

Capture.PNG.6306f5faebdfa8d5f995d956bd7f99a1.PNG 

Excuse les questions "bébettes" !

Ah oui ! Le site parle aussi de "pilotes intégrés" cela veut-il dire qu'aucun programme supplémentaire n'est necessaire !?

Merci encore du coup de main 😉

Il n'y a aucunes questions bêtes...:be:

Le diamètre du 61 neo est de 96mm, chaques anneau ajout environ 18-20mm au diamètre, donc pour le 93 je dirai  eniron 140mm.

Elles existent aussi en bande comme les autre leds...

Le neopixel seul est juste la pour faire le bon compte (60+1).

 

J'ai un servo de 270°  ( le meme d'ailleurs) mais je n'utilise que 90°.

 

les branchement des neopixels se font:

- Vcc avec Vcc

- Gnd avec Gnd

- In anneau1 avec l arduino, Out anneau1 avec In anneau2, Out anneau2 avec In anneau3, etc...

 

Les pilotes intégrés, sont des puces en leur sein. un peu comme celle ci.

https://shop.edwinrobotics.com/172-led-smd-5050-rgb-ws2812.html

 

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous,

Je viens demander de l'aide car j'avoue ne pas savoir comment faire.

je voudrais faire un simple cache pour ma lulu commandé via arduino et un logiciel sur le pc.

Pour le print de mes pièces ça pas de souci

Par contre j'ai les codes à injecter dans l'arduino mais ensuite ???????????

Comment faire pour le commander et avec quel logiciel ????

 

Merci de votre aide ;)

Manu

Lien vers le commentaire
Partager sur d’autres sites

Le 16/08/2019 à 15:09, manudu74 a dit :

Salut à tous,

Je viens demander de l'aide car j'avoue ne pas savoir comment faire.

je voudrais faire un simple cache pour ma lulu commandé via arduino et un logiciel sur le pc.

Pour le print de mes pièces ça pas de souci

Par contre j'ai les codes à injecter dans l'arduino mais ensuite ???????????

Comment faire pour le commander et avec quel logiciel ????

 

Merci de votre aide

Manu

J utilise kstar avec ekos sur Linux, mais je crois que SGP fonctionne, voir aussi le soft anlitak (le vrai flip flat). 

 

Le 16/08/2019 à 19:32, Lucky062 a dit :

Bonjour supaii,

Merci pour le code, mais il est où dans le post précédent c est ça !

Bon week-end 😉

C est bien ça 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour supaii,

Comme je n'ai pas encore d'anneaux led est ce que je peux tester avec une seule et une resistance sur le pin N°6 et le servo DS3218 ?

Qu'elle est la valeur du condensateur s'il te plaît ?

Merci ;-)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois plus tard...

Bonjour à tous

Je remonte un peu le sujet pour avoir un peu d'aide si possible.

Alors pour faire simple.

La motorisation du cache se fait bien avec sgp et N.I.N.A (malgré une petite erreur de positionnement avec nina qd le moteur bouge)

Par contre les leds, pas possible, elles s'allument uniquement quand je clique sur le bouton intensité ds SGP et s'éteignent aussitôt.

Pour info j'utilise pour les tests un bandeau led alimenté par usb.

 

Si quelqu'un a le courage de m'aider :):):)

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...

Hi,

 

I have made one light box( without motorize ) and with Leonardo board. I have tried gehelem code and can connect using INDI. But how come when I try SGpro, it keeps failed? Is there any coding error or I've missed out something in the code? Sadly I am not a coding guy. Hope you guys can help up.

 

Thanks a lot.

Tom

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

Il y a 5 heures, tlkw79 a dit :

Hi,

 

I have made one light box( without motorize ) and with Leonardo board. I have tried gehelem code and can connect using INDI. But how come when I try SGpro, it keeps failed? Is there any coding error or I've missed out something in the code? Sadly I am not a coding guy. Hope you guys can help up.

 

Thanks a lot.

Tom

Hi Tom

 

Try this on.

FlatpanelVersionFinaleSGP.ino

Lien vers le commentaire
Partager sur d’autres sites

Thanks a lot manudu. But sadly it doesn't work with SGP as well. Always failed to get status. :( But INDI is working very well.

 

Do I need to do anything in SGP besides of select the COM port? Any ASCOM driver need to install from alnitak? 

 

Regards,

Tom

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

il y a une heure, tlkw79 a dit :

Do I need to do anything in SGP besides of select the COM port? Any ASCOM driver need to install from alnitak? 

As tu installé les driver windows FTDI ou CH340 ou autre pour gérer le port série ? (*)

 

*Did you install windows FTDI or CH340 or other driver to handle serial communication ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

didon @gehelem

 

au detour d'une discussion avec un astram, celui me dit avoir acheté un flip flat pour sa lunette

moi je percute et me dit : didon ils nous fait des cachoterie le Gillou il a monté son pti bizness...

 

donc je tappe flip flat sur google et je tombe la dessus 😂

 

https://www.teleskop-express.de/shop/product_info.php/language/en/info/p7533_Optec-Alnitak-Flip-Flat-robotic-Flat-Fielder-for-Tubes-190---206-mm.html

 

donc

 

soit t'as sorti ton produit et t'es passé de 4 sous a 800 roro

soit ta piqué le nom à cette super société

soit cette super societé t'as piqué le nom

soit c'est une pure coincidence

 

😂😂

Lien vers le commentaire
Partager sur d’autres sites

il y a 20 minutes, Malik a dit :

didon @gehelem

 

au detour d'une discussion avec un astram, celui me dit avoir acheté un flip flat pour sa lunette

moi je percute et me dit : didon ils nous fait des cachoterie le Gillou il a monté son pti bizness...

 

donc je tappe flip flat sur google et je tombe la dessus 😂

 

https://www.teleskop-express.de/shop/product_info.php/language/en/info/p7533_Optec-Alnitak-Flip-Flat-robotic-Flat-Fielder-for-Tubes-190---206-mm.html

 

donc

 

soit t'as sorti ton produit et t'es passé de 4 sous a 800 roro

soit ta piqué le nom à cette super société

soit cette super societé t'as piqué le nom

soit c'est une pure coincidence

 

😂😂

Le système flip flat existe depuis longtemps, le nom a été repris pour créer ce sujet... et les prix sont il est vrai prohibitifs mais le matos est top....

Lien vers le commentaire
Partager sur d’autres sites

il y a 33 minutes, Malik a dit :

il a monté son pti bizness...

Jamais.

L'argent pervertit la pureté de la bidouille.

Plus exactement, ceux qui commercialisent la bidouille n'y survivent pas longtemps car ils ne peuvent pas argumenter de la façon suivante :

"ah, ça marche pas chez toi ? Mince. Moi pourtant ça le fait bien, avec un peu de perlinpinpin"

=> le perlinpinpin coûte très cher en fait.

 

Et oui oui, je confirme ce que dit @huguesmaillet le nom vient bien de là :

J'ai vu un driver indi pour ce machin

Je me suis dit tiens vla un truc pour moi.

Zou.

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.