Bosco2509 Posté(e) Janvier 11, 2020 Posté(e) Janvier 11, 2020 (modifié) 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 : 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) Janvier 11, 2020 par Bosco2509
pascal91 Posté(e) Janvier 12, 2020 Posté(e) Janvier 12, 2020 salut j'ai pas tout lu mais cela peut, peut être, t'être utile https://sites.google.com/site/janbeck/3d-scanner-turntable-for-david4
bracame Posté(e) Janvier 12, 2020 Posté(e) Janvier 12, 2020 (modifié) 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) Janvier 12, 2020 par bracame
Bosco2509 Posté(e) Janvier 14, 2020 Auteur Posté(e) Janvier 14, 2020 Le 12/01/2020 at 23:59, bracame a dit : Edit : Dans "David" on peut régler les ordres émis donc c'est peut être jouable... A tenter C'est ce que j'avais vu initialement dans les tutos sur le logiciel... J'attend plus que la carte du controleur Bluetooth... et je verrais bien...
llaq Posté(e) Janvier 14, 2020 Posté(e) Janvier 14, 2020 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.
Bosco2509 Posté(e) Janvier 14, 2020 Auteur Posté(e) Janvier 14, 2020 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...
Bosco2509 Posté(e) Janvier 15, 2020 Auteur Posté(e) Janvier 15, 2020 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.
llaq Posté(e) Janvier 15, 2020 Posté(e) Janvier 15, 2020 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.
pascal91 Posté(e) Janvier 15, 2020 Posté(e) Janvier 15, 2020 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 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 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 1
Bosco2509 Posté(e) Janvier 16, 2020 Auteur Posté(e) Janvier 16, 2020 Il y a 9 heures, @pascal@91 a dit : voilà ......... si cela peut aider un peu C'est très intéressant... je met cela de côté pour une prochaine fois. Merci !
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant