Bonjour a tous

Portrait de michelflashman

Bien le bonjour,

Jeune homme de 66 ans, curieux d'un peu de tout.

je m'intéresse depuis peu a l'électronique et aux Arduino suite a l'automatisation de mon Microscope.

je suis passionné de photos microscopique de Diatomées, algues unicellulaire a squelette siliceux, 

Ces photos nécessitent l'emploi de la technique du stacking, multi photo par couches , avec recompilation grace a un logiciel , Hélicon focus, pour obtenir une photo representant une profondeur de champ qui couvre l'integralité du sujet.

environ de 5 a 150 clichés sont necessaire suivant le sujet.

mon projet est d'automatiser le Z du microscope et les prises de vus.

un moteur pas a pas connecter sur un Arduino Uno commence a le faire !

je voudrais pouvoir piloter grace a des bouttons poussoirs la valeur du pas en positif et negatif et grace a un potentiomètre, régler la luminosité de la LED d'éclairage 6W 12V du microscope.

Voila ma raison d'être parmi vous .

amicalement

Michel

Portrait de gael

Bonjour michel et bienvenue. Pour ton moteur il est possible de contrôler le nombre de pas grâce aux fronts montants pour "stocker" tes variables. Je te propose 3 boutons poussoir, 2 pour l'incrémentation + / -  et 1 pour valider ton choix. J'essaierai de faire ca cette semaine.

Pour ton éclairage, un MOFSET et une alimentation externe devrait faire l'affaire.

Au revoir.

Portrait de brossden

Salut Gael !

C'est super ton aide !

Je pense qu'il n'est pas plus avancé maintenant lol !

Portrait de michelflashman

Bonjours a vous deux,

merci pour votre intérêt , j,ai déja grace au net, des bouts de programmes et d'applis pour mon projet, je me demande si deux boutons pour incrementer ou décrementer le pas ne serait pas judicieusement remplacer par un potentiometre ?? 

Quand pensez-vous ?

Amicalement

Michel

Portrait de brossden

Bien sûr que des boutons + et - c'est beaucoup plus précis qu'un potentiomètre dont la position est presque aléatoire. 

Je voudrais savoir si le principe que je donne ci-après correspond à ta recherche ;

Suivant un nombre de photos prédéterminé à l'avance (de 5 à 150 selon ton hypothèse de départ ), après chaque cliché le Z est modifié par un stepper par un nombre de pas aussi réglé à l'avance puis un nouveau cliché est pris, et ainsi de suite jusqu'à obtenir le nombre fixé à l'avance. Un possibilité supplémentaire, faire varier très légèrement l'intensité lumineuse de l'ampoule 12 Volts depuis une valeur mini de départ à une autre valeur maxi finale ou même inversement, c'est à dire de diminuer en automatique cette intensité. Si c'est là ton soucis c'est très facile à réaliser (je ne parle pas de la mécanique !).

Si tu vois des erreurs dans ce que j'ai cru comprendre essaye de définir exactement ce que tu désires obtenir après chaque cliché!

Bonne journée  à tous  

Portrait de michelflashman

Bonjours a tous,

Je recapitule le probleme.

1er point , l'eclairage led du microscope est un sujet annexe , rien a voir avec l'automatisation du Z microscope.

Le Z microscope, dans un premier temps, pouvoir positionner le Z (mise au point) sur la partie haute du sujet,  determiner le pas du Z  a l'aide de deux bouttons poussoirs ou d'un potentiometre, appuyer sur un bouton pour lancer l'automatisation , et mettre un bouton d'arret.

Le protocole, le moteur pas a pas fait avancer le Z du pas indiquer, arret, l'appareil photo déclenche via un relai qui commande sa telecommande, puis avance du Z a nouveau du pas indiqué, arret, reclic photo,     etc.......

Le pas du Z peut varier de 2 a 400 environ d'ou peut etre un probleme avec les boutons !! Répétition auto ou appuies multiples ! 

Peut etre un potentiometre peut faire varier le pas plus facilement ?

La mecanique est presque prete !

Merci a vois tous

Michel

Portrait de gael

Bonjour, j'avais bien compris je suis sur ton montage. Pour le plus grand nombre de pas, je vais voir pour mettre un potentiometre avec un coefficient multiplicateur.

Posté avant ce soir si j'ai le temps.

@+

Portrait de gael

Bonsoir, chose promise voici un petit programme que je viens d'élaborer et qui fonctionne plutot pas mal pour ton projet. J'ai utilisé ce que j'avais sous la main (je suis en déplacement professionnel, j'enmene mon petit matos, donc je fais avec ce que j'ai), un driver A3967 pour piloter le moteur pas à pas. Il faudra adapter avec ce que tu veux. J'explique par la suite le programme.

P-S c'est bizzard, je n'ai plus le champ pour appliquer le code. Je le mets comme ca.

//Fonction des pins du module A3967
#define stp 6
#define dir 7
#define MS1 8
#define MS2 9
#define EN  11

unsigned long previousMillis = 0;
const long interval = 2000;

//Variable pour fonction

int x;

int coeff = A0; // potentiometre multiplicateur
int steps = coeff; // la valeur steps = coeff

int load;//memoire à charger pour le bouton RUN

int comptage = 0, ETATBP1, ETATBP3, ETATBP2, Memoire = LOW; // variable interruption + mémoire du comptage de pas

int valeur;//la valeur correspond au résultat finale du nombre de pas souhaité

void setup() {

  Serial.begin (9600);
  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);
  pinMode(EN, OUTPUT);
  pinMode (A3, INPUT_PULLUP);
  pinMode (A4, INPUT_PULLUP);
  pinMode (A5, INPUT_PULLUP);
  resetEDPins(); //reset par default du driver

}
void loop() {

  ETATBP2 = digitalRead(A4);

  if ((ETATBP2 != load) && (ETATBP2 == LOW))
  {
    Serial.println ("goo");
    if (digitalRead (A4) == LOW) {
      //si je presse sur le bouton A4, j'envoie la fonction Moteur
      digitalWrite(EN, LOW); //Pull enable pin low to allow motor control
      Moteur();
    }
  }

  load = ETATBP2;

  steps = analogRead (coeff);
  steps = map (steps, 0, 1023, 1, 11);// produit en croix pour déterminer la valeur du coefficient multiplicateur de pas

unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval) {

  previousMillis = currentMillis;

  Serial.println ("=====================================================");
  Serial.println ("VALEUR POTENTIOMETRE MULTIPLICATEUR");
  Serial.println (steps);
}
  /*====================================================================*/

  ETATBP1 = digitalRead(A3);

  if ((ETATBP1 != Memoire) && (ETATBP1 == HIGH))
  {

    comptage++;// je monte le nombre de pas
    valeur = (comptage * steps);// je multiplie le comptage qui x1 au multiplicateur qui est x le nombre choisie
    Serial.println ("=====================================================");
    Serial.println ("VALEUR AVEC COEFF");
    Serial.println (valeur);

    delay(250);
  }
  Memoire = ETATBP1;

  /*=====================================================================*/

  ETATBP3 = digitalRead(A5);

  if ((ETATBP3 != Memoire) && (ETATBP3 == HIGH))
  {
    comptage--;// je descends le nombre de pas

    valeur = (comptage * steps);

    Serial.println ("=====================================================");
    Serial.println ("VALEUR AVEC COEFF");
    Serial.println (valeur);

    delay(250);
  }
  Memoire = ETATBP3;

  /*=====================================================================*/
  resetEDPins();
}
//reset des pins
void resetEDPins()
{
  digitalWrite(stp, LOW);
  digitalWrite(dir, LOW);
  digitalWrite(MS1, LOW);
  digitalWrite(MS2, LOW);
  digitalWrite(EN, HIGH);
}

// fonctionnement du moteur
void Moteur()
{
  Serial.println("Moteur en marche");
  digitalWrite(dir, HIGH);
  for (x = 1; x < valeur; x++)
  {
    digitalWrite(stp, HIGH);
    delay(1);
    digitalWrite(stp, LOW);
    delay(1);
  }
  Serial.println("Attente d'une nouvelle consigne");
  Serial.println();

}
Voila. Tu as un potar pour choisir ton coefficient multiplicateur, (par défaut il est entre 1 et 11, à toi de modifier cette valeur). Ensuite trois boutons connectés sur A3, A4, A5. A3 pour descendre le nombre de pas, A4 pourlancer un "run" du moteur avec le nombre de pas désiré, A5 pour monter le nombre de pas. 

Tout est inscrit dans le moniteur série.

Pour le 12volts de ta led je verrais plus tard car le matos est chez moi.

Portrait de michelflashman

Un grand merci pour ce programme,

j,ai oublié de dire que je possédais deja un moteur pas a pas que voici

Moteur avec reducteur 28BYJ48 5V + driver ULN2003A

j,ai choisi le modele qui sert d'exemple sur la video des moteurs pas a pas de ce site par Alexandre Pailhoux

je pense que les connections sont différentes par rapport au model du programme.

si il etait possible d'avoir un correctif (si ,necessaire ?)

Merci

Michel

ps: je possede pour le moment un UNO , mais , j'ai commandé le KIT DevDuino !! je ne sais ce que j'en ferais mais j'ai cru de cette façon apporter une petite pierre a l'édifice !!

petite précision, le microscope est installé dans un camping car, 12 volts a volonté avec un panneau solaire de 360W et une batterie secondaire gel de 100A.

Portrait de gael

Bonsoir, à toi d'intégrer la librairie stepper.h, d'initialiser tes broches en remplaçant les tiennes par les miennes de cette facon : Moteur (valeur, 6, 7, 8, 9). valeur est rappelle toi, la variable dans lequelle est memorisée ton nombre de pas. Je pense en avoir fait pas mal. Avec un peu d'effort et des tutoriels sur internet, tu trouveras facilement. Les seuls endroits à modifier sont dans la déclaration de tes broches, en y ajoutant la variable, et la fonction "void moteur()". 

Si tu n'y arrives pas, poste ton programme avec tes modifications et je t'aiderai, mais pas trop de clé en main quand même.

Bon courage.

Gael.

Portrait de michelflashman

Un grand mercia toi pour ce magnifique boulot !

Je vais modifier le programme pour l'adapter a ma situation.

Je vais aussi ouvrir un nouveau sujet sur l'automatisation de mon microscope dans la bonne rubrique car la nous sommes dans la presentation !!

Encore merci

Michel

Portrait de michelflashman

Bonjour a tous,

Cela fait une semaine que j'envoie des messages concernant la panne de ma carte DEVDUINO, resté sans réponse ??? , peut etre que dans la presentation, les messages y sont lus !!!

Est ce habituelle ou a cause des ponts du mois de mai  ??

Portrait de brossden

Disons qui si personne ne répond c'est que personne n'a la solution c'est aussi simple que cela !

Portrait de michelflashman

Drole de reponse !!! Qui manque singulierement de  convivialité !

J'attend plutot une reponse du ou des responsables de ce site ou du site Devduino.cc, qui commercialise la carte Devduino.

Amicalement

Michel

Je vient de recevoir une reponse sur Devduino.cc, je pense que les ponts du mois de mai sont la cause de cette attente ! Tout va bien .

Portrait de Alex

Bonjour Michel,

Il me semble déjà vous avoir répondu sur le site devduino.cc.

Avez-vous pensé à reflasher le bootloader?

Portrait de michelflashman

Bonjour Alex,

Ce matin, je n'avais pas vu ta réponse sur Devduino.CC ! mes excuses.

merci pour cette réponse, j'ai effectivement tenté de flasher le boot mais une erreur intervient !

j'ai posté les détails dans Devduino.cc .

j'espère ne pas avoir grillé la carte ! sinon j'en achèterai une autre car je suis un archi débutant en électronique mais la motorisation de mon microscope m'a fait découvrir ce forum qui donne envie de continuer et d'approfondir votre domaine .

amicalement

michel

Portrait de Alex

Bonjour Michel,

Auriez-vous fait une manip en particulier qui aurait créée ce problème?

Portrait de michelflashman

ah ! si je s'avais cela, j'aurais deja commandé une autre carte !!

mais il serait dommage de la jeter si elle est recupérable ! une si belle carte !

Portrait de Alex

J'ai mis à jour la lib sur le site officiel.

Supprimez l'ancienne et installez la nouvelle puis refaites les tests.

Portrait de michelflashman

Bonjour,

rien n'y fait !!!

exactement le meme message d'erreur

pour faire bien, auparavant, j'ai réinstaller la version 1.8.5 et les librairie Devduino

que faire ??? la carte est elle grillé

je peux vous la faire parvenir ! frais de port a ma charge.

amicalement

michel

Portrait de Alex

Pourriez-vous me recopier en intégralité le message d'erreur?

C'est possible qu'elle soit grillée, mais j'ai mis une protection qui limite le risque.

Si vous êtes débutant, c'est aussi probable que ça ne soit pas un gros soucis.

Sinon envoyez moi un message privé via le formulaire de contact pour obtenir mon adresse pour que j'y jette un oeil.

Portrait de michelflashman

Bonjour,

Mail envoyé hier soir. L'avez vous reçu ?

Michel