Aller au contenu

GO Print

[Besoin d'aide] Plateau Tournant télécommandé pour Scanner 3D


Bosco2509

Messages recommandés

Salut les forumeurs et forumeuses !

Je viens solliciter vos lumières... plus exactement : Un coup de main pour programmer un Arduino Uno pour qu'il fasse tourner le moteur suivant les demandes par USB ou Bluetooth.

Pour ceux qui suivent ce que je fait, c'est le plateau de ce projet :

J'ai suivi ce plateau... à la lettre : https://www.thingiverse.com/thing:2832773

J'ai "commencé" à monter l'électronique :

IMG_20200111_140017.thumb.jpg.8145326a9985b75f43db7fae6faf708b.jpg

Je n'ai pas reçu la carte Bluetooth... sûrement dans un centre courrier de La Poste...

J'ai pris le "firmware du plateau" (fourni sur le lien thingiverse) :

AutoScan.ino

Révélation

#include <Stepper.h>

/*
Adafruit Arduino - Lesson 16. Stepper
*/

#include <Stepper.h>

int in1Pin = 12;
int in2Pin = 11;
int in3Pin = 10;
int in4Pin = 9;

boolean isScanning = false;
boolean isNextPhotoCount = false;
int maxPhotoCount = -1;
int currentPhotoCount = 0;

const float resolution  = 5.625;

const int REQUEST_START_PHOTO_SESSION = 1234;
const int START_PHOTO_SESSION_ACCEPTED = 2345;
const int NEXT_MESSAGE_PHOTO_COUNT = 3456;
const int PHOTO_SESSION_CANCELED = 4567;
const int NEW_IMAGE_CAPTURED = 5678;
const int NEW_ANGLE_IS_SET = 6789;
const int PHOTO_SESSION_COMPLETED = 7890;


Stepper motor(64, in1Pin, in2Pin, in3Pin, in4Pin);  

void setup()
{
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);

  // this line is for Leonardo's, it delays the serial interface
  // until the terminal window is opened
  while (!Serial);
 
  Serial.begin(9600);
  motor.setSpeed(40);
}

void loop()
{
  if (Serial.available())
  {
    int message = Serial.parseInt();
    
    switch (message) {
      case REQUEST_START_PHOTO_SESSION:
        if(!isScanning) {
          Serial.println(START_PHOTO_SESSION_ACCEPTED, DEC);
          isScanning = true;
        }
        break;
      case PHOTO_SESSION_CANCELED:
        isScanning = false;
        isNextPhotoCount = false;
        maxPhotoCount = -1;
        currentPhotoCount = 0;
        break;
      case NEXT_MESSAGE_PHOTO_COUNT:
        isNextPhotoCount = true;
        break;
      case NEW_IMAGE_CAPTURED:
        if(maxPhotoCount != -1) {
          delay(1000);
          currentPhotoCount++;
          if (currentPhotoCount >= maxPhotoCount) {
            Serial.println(PHOTO_SESSION_COMPLETED, DEC);
            isScanning = false;
            isNextPhotoCount = false;
            maxPhotoCount = -1;
            currentPhotoCount = 0;
            break;
          }
          motor.step(2048/maxPhotoCount);
          delay(700);
          Serial.println(NEW_ANGLE_IS_SET, DEC);
          break;
        }
      default:
        if(isNextPhotoCount && maxPhotoCount == -1) {
          maxPhotoCount = message;
          isNextPhotoCount = false;
        }
    }
  }
}

Je l'ai téléverser... tout s'est bien passer... mais : Par USB, cela ne veut pas fonctionner... et je veut dire par là : Que le moteur ne tourne pas, et n'est pas "reconnu" par le logiciel David Scanner 4.

C'est une supposition personnelle, mais le soucis doit provenir de l'absence de la carte Bluetooth...
Et... dans la mesure du possible, j'aimerais que le plateau tourne par USB... comme sur ces modèles :

https://www.thingiverse.com/thing:37222

https://www.thingiverse.com/thing:141287

Je vous l'avoue... cela est "légèrement" au dessus de mes compétences en Arduino...
Donc j'aimerais qu'une personne compétente, regarde ce qui doit être modifié... et me donne la marche à suivre... ou accessoirement le fichier prêt à téléverser.

Merci d'avance pour vos réponses.

Modifié (le) par Bosco2509
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

J'ai lus un peut 😉 .

Le firmware du plateau est conçu pour être piloté en bluetooth via l'application android "autoscan".

Il attends les ordres :

const int REQUEST_START_PHOTO_SESSION = 1234;
const int START_PHOTO_SESSION_ACCEPTED = 2345;
const int NEXT_MESSAGE_PHOTO_COUNT = 3456;
const int PHOTO_SESSION_CANCELED = 4567;
const int NEW_IMAGE_CAPTURED = 5678;
const int NEW_ANGLE_IS_SET = 6789;
const int PHOTO_SESSION_COMPLETED = 7890;

 

Si tu envoie "1234" ou une autre des ces combinaisons via la console série arduino , il devrait se passer quelque chose (Normalement).

Le firmware pour "David" est bien différent  ainsi que le mode de contrôle du moteur (En I2C et micro-stepping contrairement au projet du plateau)

Bref : C'est pas compatible à mes yeux.

Edit : Dans "David" on peut régler les ordres émis donc c'est peut être jouable... A tenter

Modifié (le) par bracame
Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, llaq a dit :

Yo @Bosco2509 .

C´est quoi le modèle de ton controleur moteur  ?

Je pense que c´est un ULN2208 mais si tu pouvais confirmer.

J´ai un code dans un de mes livres que je te passerai.

Merci d'avoir répondu...
Alors... si je me base sur ceci : https://fr.aliexpress.com/item/32888176158.html?spm=a2g0s.9042311.0.0.4d106c37bWxUhO
Et sur ce qui est indiqué sur le controleur... il s'agit d'un ULN2003.
Et non d'un ULN2208...

PS : J'ai acheté le livre "Arduino pour les nuls"... mais je serais franc : J'ai pas encore ouvert le bouquin pour regarder... par manque de temps et de patience...

Lien vers le commentaire
Partager sur d’autres sites

Rapide retour :

Laisser tomber !

J'ai ouvert le livre "Arduino pour les nuls"... j'ai suivi les indications donnés.
J'ai ouvert Arduino IDE.
J'ai téléverser sur l'Arduino... jusque là tout s'est bien passé.

Puis j'ai testé le plateau avec l'application "Autoscan"...

J'ai posé mon objet sur le plateau.
J'ai branché le transfo 9V 1A.
Tout les voyants se sont allumés.

Puis sur mon smartphone j'ai lancé l'appli...
J'ai lancé un scan de 20 photos...
Et au bout de 1 minutes...

Cela a fait "Pouf"... suivi d'une petite fumée grise provenant de l'Arduino...

Résultat : Carte Arduino Uno morte !

> Arduino de mauvaise qualité... qui a cramé quasi direct.

Je vais me débrouiller autrement pour le Scanner 3D... au pire je ferai sans plateau.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Bosco2509 a dit :

Rapide retour :

Laisser tomber !

J'ai ouvert le livre "Arduino pour les nuls"... j'ai suivi les indications donnés.
J'ai ouvert Arduino IDE.
J'ai téléverser sur l'Arduino... jusque là tout s'est bien passé.

Puis j'ai testé le plateau avec l'application "Autoscan"...

J'ai posé mon objet sur le plateau.
J'ai branché le transfo 9V 1A.
Tout les voyants se sont allumés.

Puis sur mon smartphone j'ai lancé l'appli...
J'ai lancé un scan de 20 photos...
Et au bout de 1 minutes...

Cela a fait "Pouf"... suivi d'une petite fumée grise provenant de l'Arduino...

Résultat : Carte Arduino Uno morte !

> Arduino de mauvaise qualité... qui a cramé quasi direct.

Je vais me débrouiller autrement pour le Scanner 3D... au pire je ferai sans plateau.

Ah les arduinos chinois.

J'utilise des geekcreit uno r3 (sur BG),elles ont fait de la fumée plusieurs fois mais elles marchent toujours.

Lien vers le commentaire
Partager sur d’autres sites

salut

première chose a savoir c'est que je suis hyper débutant en ce qui concerne l'arduino

mais j'ai réussi a faire marcher un plateau tournant avec déclenchement automatique des prise de vue avec un smartphone (64 photos par rotation)et cela sur 3 rotations

grâce a ça

41ejwOtn9SL.jpg.fd5e99f1ceb0d057abf83e25246ccefa.jpg

 

j'ai relié les deux pôles du bouton aux bornes R et E d'un transistor et la base a l'arduino (pin8)  et relié la masse au gnd ,

comme expliqué ici

https://www.youtube.com/watch?v=p4wvyCtlh5I

ensuite j'ai branché le moteur a une alimentation externe de 5v

mis un bouton poussoir (pin5) en INPULL_PULLUP pour démarrer le programme

20200115_234611.thumb.jpg.b966fdaccae8e808ab7e7afccac2f6cb.jpg

avec ça comme programme:

#include <Stepper.h>

int moteur = 48 * 64;
int pinBase = 8;// relier a la base du transiror
int bouton = 5;// interupteur declanchant le programme

Stepper monMoteur (moteur, 9, 11, 10, 6);


void setup()
{
  pinMode(bouton, INPUT_PULLUP);//
  pinMode(pinBase, OUTPUT);
  digitalWrite(pinBase, LOW);

}
void loop()
{ while (!digitalRead(bouton))// en attente de l'envoie d'un signal sur l’interrupteur
  for(int tour=0;tour<3;tour++)//permet une répétition du programme suivant puis stop
{
 
 
    for (int t = 0; t < 65; t++)// nombre de photos prises
    {
      monMoteur.setSpeed(3);// vitesse du moteur
      monMoteur.step(32);
      delay(500);
      digitalWrite(pinBase, HIGH);// déclenchement de la photo
      delay(50);//limite le risque de photos en rafale
      digitalWrite(pinBase, LOW);// stop photo
      delay(500);
    }
  delay(10000);// attente de 10s en fin d'un cycle pour pouvoir déplacer l'appareil photo avant le 2eme puis le 3eme
  }
}
 

ET BIEN ça marche.......................................

 

je sais que les puristes vont me sauter dessus !!

mais je m'en fout un peu .

voilà ......... si cela peut aider un peu

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...