Gen 2 808 Posté(e) juillet 27, 2018 Partager Posté(e) juillet 27, 2018 (modifié) yop Merci, pas besoin de traduire, je parle 6 langues.. ça devrait aller (comme il se la pète !!) Merci pour l'info, je vais étudier cela.. ++ GEN Modifié juillet 27, 2018 par Gen 1 1 Lien à poster Partager sur d’autres sites
Indi-Punky 18 365 Posté(e) juillet 27, 2018 Partager Posté(e) juillet 27, 2018 Re, Je me permets de m'incruster, mais là dans le cas présents, il te faut donc un câble d'un coté mini usb (ap) vers l'appareil de gen? Le jack osef il est propriétaire au contrôleur que tu utilise? Ou j'ai pas piger le concept :p Si tu veux contrôler l'appareil photo c'est miniusb<->usb Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 27, 2018 Partager Posté(e) juillet 27, 2018 yop les connecteurs, c'est pas le problème, on met ce que l'on veut sur le contrôleur. je regarde le comment du pourquoi cela déclenche.. je suis en mode bouffage d'infos pour le moment je vous re dès que j'aurai commencé. Par contre, ce que je peux déjà dire, c'est que l'encodeur rotatif me gonfle grave.. je crois que je vais passer en mode clavier déporté ou télécommande IR ++ GEN Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 27, 2018 Partager Posté(e) juillet 27, 2018 yop J'ai laissé tombé le rotatif qui ne me satisfaisait pas entièrement, je passe donc sur télécommande IR j'ai fait les premiers tests et ça tourne comme une horloge suisse ++ GEN 2 Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 28, 2018 Partager Posté(e) juillet 28, 2018 Yop Tadaahhh, c'est bouclé au niveau informatique. Juste un binss, le moteur que j'ai acheté ne fonctionne pas.. il est grippé. J'ai contacté le vendeur. Entre temps j'en ai commandé un autre ici en Espagne, ça devrait prendre 2 à 3 jours voici les tofs couleur led vert = au travail rouge = au repos bleu = en paramétrage le dernier setup est toujours gardé en mémoire automatiquement. voila un bébé de terminé.. Je ferai une vidéo dès que je reçois le moteur de remplacement Si qlq'un est intéressé par le proto, je le vend prix coutant.. mais il faudra me donner les spécifications techniques pour l'enclenchement de l'apn IR ou contact etc.. ++ GEN 1 Lien à poster Partager sur d’autres sites
Xtremeride 2 624 Posté(e) juillet 28, 2018 Auteur Partager Posté(e) juillet 28, 2018 Yep @Gen ! Du beau boulot que tu nous as fais la !! Tu va mettre quoi comme plateau, ou comme support pour mettre le sujet ? J'ai pas trouver plus d'info concernant le déclenchement a par ce site http://axotron.se/blog/time-lapse-shutter-release-based-on-arduino/ qui pourra peu être aider un peu ou pas ... Personnellement j'ai pas besoin de déclencheur comme il se fais via mon rail, je pourrais alors manuellement lancer la séquence de stacking, faire tourner de x degré le plateau, relancer la meme séquence de stacking, refaire tourner de x degré jusqu'a avoir les 360 degré ou moins. Tu peu faire tourner avec la télécommande le plateau ? Genre tu clique il tourne de x degré , sans partir dans une séquence , juste faire tourner le plateau ? Ou alors faire 2 clique et il fais un tour entier, je sais pas si c'est possible , mais tu vois dans l'idée A plouche ! Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 28, 2018 Partager Posté(e) juillet 28, 2018 Yop. je ne m'occupe pas de la partie mécanique, l'acquéreur mettra ce qu'il voudra : plateau, pince, griffe , aiguille, etc.. non j'ai rien prévu, mais je peux rajouter cette fonctionnalité de tourner à la demande hors séquence ++ GEN Lien à poster Partager sur d’autres sites
Xtremeride 2 624 Posté(e) juillet 28, 2018 Auteur Partager Posté(e) juillet 28, 2018 Yep ! Ok pas de soucis pour la partie mécanique, donc y'aura juste un 'embout' avec un filetage qui dépasse du boitier, et on pourra y mettre ce qu'on veux ? J'avais pas penser , mais est-ce que tu peu régler la vitesse de rotations si tu ajoute la fonctionnalité de faire des tour complet ? ++ Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 28, 2018 Partager Posté(e) juillet 28, 2018 yop Tu pourras mettre ce que tu veux sur l'embout qui est un méplat. Bien entendu il faudra en limiter le poids ou changer de moteur (c'est compatible moteur de 5 à 12V) ben tu regles le nombre de prise * le nombre de pas et ça fait un tour complet.. Pourquoi réinventer la roue à couper le beurre LOL ++ GEN 1 Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 29, 2018 Partager Posté(e) juillet 29, 2018 Yop Re @Xtremeride J'ai rajouté un menu manuel. il permet par une pression sur les flèches gauche/droite, d'avancer ou de reculer du nombre de pas programmés et en appuyant sur OK de faire un tour complet Bon.. fini de jouer, je retourne m'occuper du proto, voir ce qu'ont donnés les tests @++ GEN 1 Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 29, 2018 Partager Posté(e) juillet 29, 2018 (modifié) yop. Voici le code rotaryPlate.pdf (code et librairies) Téléchargez le, renommez le en Zip et procédez au décompactage. L'éditeur utilisé : ATOM #include <IRremote.h> #include <LiquidCrystal_I2C.h> #include <EEPROM.h> #include <Stepper.h> #define I2C_LCD_ADDRESS 0x3F //0x27 #define R_LED 2 #define G_LED 3 #define B_LED 4 #define IR_PIN 7 #define MOTOR_INPUT1 8 #define MOTOR_INPUT2 9 #define MOTOR_INPUT3 10 #define MOTOR_INPUT4 11 #define RED 1 #define GREEN 2 #define BLUE 3 #define NONE 4 int positionX[12] = {14,19,14,19,14,19, 0, 6, 7,12,13,19}; int positionY[12] = { 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3}; const int LCDROWS = 4; const int LCDCOLS = 20; const int NBSTEPS = 48 * 64 ; IRrecv irDetect(IR_PIN); LiquidCrystal_I2C LCD(I2C_LCD_ADDRESS,LCDCOLS,LCDROWS); Stepper MOTEUR(NBSTEPS,MOTOR_INPUT1,MOTOR_INPUT2,MOTOR_INPUT3,MOTOR_INPUT4); decode_results irIn; int NBPRISES,ANGLE,PAUSE; int menuPos_X; int menuPos_Y; bool run = false; unsigned long previousMillis; String introPage[4] = {"TURN IT AROUND V1.0", " by Gentronik ", " ", " gentronik@inbox.ru "}; String mainPage[4] = {"NB DE PRISES : ", "VALEUR ANGLE : ", "PAUSE M/SEC : ", " START STOP RESET "}; String manuelPage[4] = {" MODE MANUEL ", "Utilisez les fleches", "ou le bouton OK pour", "executer un cycle "}; byte selLeft[8] = { B10000, B11000, B11100, B11110, B11100, B11000, B10000, B00000 }; byte selRight[8] = { B00001, B00011, B00111, B01111, B00111, B00011, B00001, B00000 }; void trigger() { /* C'est ici que vous devez introduire le code correspondant au type de déclenchement de votre appareil n'oubliez pas la partie électronique et choisissez une pin de libre sur l'arduino */ } void loadMemory() { NBPRISES = memRead(10); ANGLE = memRead(14); PAUSE = memRead(18); } void memWrite(int address, long value) { byte four = (value & 0xFF); byte three = ((value >> 8) & 0xFF); byte two = ((value >> 16) & 0xFF); byte one = ((value >> 24) & 0xFF); EEPROM.write(address, four); EEPROM.write(address + 1, three); EEPROM.write(address + 2, two); EEPROM.write(address + 3, one); } long memRead(long address) { long four = EEPROM.read(address); long three = EEPROM.read(address + 1); long two = EEPROM.read(address + 2); long one = EEPROM.read(address + 3); return ((four << 0) & 0xFF) + ((three << 8) & 0xFFFF) + ((two << 16) & 0xFFFFFF) + ((one << 24) & 0xFFFFFFFF); } int charToInt(char input) { return input - '0'; } void LCD_Initialization() { LCD.init(); LCD.createChar(4, selLeft); LCD.createChar(5, selRight); LCD.backlight(); LCD.setCursor(0,0); } void displayScreen(String theArray[], int length) { LCD.clear(); for(int i = 0; i <= length - 1; i++) { LCD.setCursor(0,i); LCD.print(theArray); }} void displayHorizontalSelection(int pos){ switch(pos) { case 1: LCD.setCursor( 0,3); LCD.write(4); LCD.setCursor( 6,3); LCD.write(5); break; case 2: LCD.setCursor( 7,3); LCD.write(4); LCD.setCursor(12,3); LCD.write(5); break; case 3: LCD.setCursor(13,3); LCD.write(4); LCD.setCursor(19,3); LCD.write(5); break; }} void displaySelection(int x, int y, bool blink = false){ for (int i = 0; i<= 11; i++) { LCD.setCursor(positionX,positionY); LCD.print(" "); } switch(y) { case 0 : case 1 : case 2: LCD.setCursor(14,y); LCD.write(4); LCD.setCursor(19,y); LCD.write(5); break; case 3: displayHorizontalSelection(x); break; }} char decodeIR(){ switch(irIn.value) { case 0xFF629D: return 'U'; break; case 0xFF22DD: return 'L'; break; case 0xFF02FD: return 'O'; break; case 0xFFC23D: return 'R'; break; case 0xFFA857: return 'D'; break; case 0xFF6897: return '1'; break; case 0xFF9867: return '2'; break; case 0xFFB04F: return '3'; break; case 0xFF30CF: return '4'; break; case 0xFF18E7: return '5'; break; case 0xFF7A85: return '6'; break; case 0xFF10EF: return '7'; break; case 0xFF38C7: return '8'; break; case 0xFF5AA5: return '9'; break; case 0xFF42BD: return '*'; break; case 0xFF4AB5: return '0'; break; case 0xFF52AD: return '#'; break; default: break; }} String formatNumberInXdigits(int number, int nbDigit){ String stringNumber = String(number); while(stringNumber.length() < nbDigit) { stringNumber = "0"+stringNumber; } return stringNumber;} void displayData(){ LCD.setCursor(15,0); LCD.print(formatNumberInXdigits(NBPRISES,4)); LCD.setCursor(15,1); LCD.print(formatNumberInXdigits(ANGLE,4)); LCD.setCursor(15,2); LCD.print(formatNumberInXdigits(PAUSE,4));} void runLed(int color){ switch(color) { case RED: digitalWrite(R_LED, HIGH); digitalWrite(G_LED, LOW); digitalWrite(B_LED, LOW); break; case GREEN: digitalWrite(R_LED, LOW); digitalWrite(G_LED, HIGH); digitalWrite(B_LED, LOW); break; case BLUE: digitalWrite(R_LED, LOW); digitalWrite(G_LED, LOW); digitalWrite(B_LED, HIGH); break; case NONE: digitalWrite(R_LED, LOW); digitalWrite(G_LED, LOW); digitalWrite(B_LED, LOW); break; }} void rainbow(){ for(int i = 0 ; i<= 3; i++) { runLed(RED); delay(200); runLed(GREEN); delay(200); runLed(BLUE); delay(200); } runLed(RED);} void setup(){ pinMode(R_LED,OUTPUT); pinMode(G_LED,OUTPUT); pinMode(B_LED,OUTPUT); Serial.begin(9600); Wire.begin(); MOTEUR.setSpeed(9); loadMemory(); LCD_Initialization(); irDetect.enableIRIn(); displayScreen(introPage,4); rainbow(); LCD.clear(); displayScreen(mainPage,4); displayData(); menuPos_X = 1; menuPos_Y = 3; displaySelection(menuPos_X,menuPos_Y); } void go_UP(){ menuPos_Y--; if(menuPos_Y < 0){menuPos_Y = 0;} displaySelection(menuPos_X,menuPos_Y);} void go_DOWN(){ menuPos_Y++; if(menuPos_Y >3){menuPos_Y = 3;} displaySelection(menuPos_X,menuPos_Y);} void go_LEFT(){ if(menuPos_Y == 3) { menuPos_X--; if(menuPos_X < 1){menuPos_X = 1;} displaySelection(menuPos_X,menuPos_Y); }} void go_RIGHT(){ if(menuPos_Y == 3) { menuPos_X++; if(menuPos_X > 3){menuPos_X = 3;} displaySelection(menuPos_X,menuPos_Y); }} void modifyValue(int field){ int newValue = 0; int counter = 0; int memoryPos[3] = {10,14,18}; int multiplicator[4] = {1000,100,10,1}; bool stayInLoop = true; run = false; runLed(BLUE); LCD.blink(); LCD.setCursor(15,field); while(stayInLoop) { if (irDetect.decode(&irIn)) { char entry = decodeIR(); Serial.print(entry); switch(entry) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': newValue = newValue + ((charToInt(entry)) * multiplicator[counter]); counter++; LCD.print(entry); if(counter==4) { LCD.noBlink(); memWrite(memoryPos[field], newValue); if(field==0){NBPRISES = newValue;} if(field==1){ANGLE = newValue;} if(field==2){PAUSE = newValue;} for(int i = 0; i<= 2; i++) { LCD.setCursor(15, field); LCD.print(" "); delay(200); LCD.setCursor(15, field); LCD.print(formatNumberInXdigits(newValue,4)); delay(300); } stayInLoop = false; } break; case '*': LCD.noBlink(); loadMemory(); displayData(); stayInLoop = false; break; } irDetect.resume(); } } runLed(RED);} void execute_treatement(){ switch(menuPos_Y) { case 0 : case 1: case 2: modifyValue(menuPos_Y); break; case 3 : if(menuPos_X == 1){if(NBPRISES>0){run = true;}} if(menuPos_X == 2){run = false;} if(menuPos_X == 3) { run = false; loadMemory(); displayData(); menuPos_X = 1; menuPos_Y = 3; displaySelection(menuPos_X,menuPos_Y); } break; }} bool doTreatement(char movementCommand){ switch(movementCommand) { case 'L': runLed(GREEN); MOTEUR.step(0-ANGLE); trigger(); runLed(RED); break; case 'R': runLed(GREEN); MOTEUR.step(ANGLE); trigger(); runLed(RED); break; case 'O': runLed(GREEN); MOTEUR.step(NBSTEPS); runLed(RED); break; case '#': return false; break; } return true;} void run_Once(){ bool stayInLoopRun_once = true; displayScreen(manuelPage,4); irDetect.resume(); while(stayInLoopRun_once) { if (irDetect.decode(&irIn)) { if(!doTreatement(decodeIR())) { stayInLoopRun_once = false; } irDetect.resume(); } } displayScreen(mainPage,4); displayData(); menuPos_X = 1; menuPos_Y = 3; displaySelection(menuPos_X,menuPos_Y);} void doRequest(char order){ switch(order) { case 'U': go_UP() ; break; case 'D': go_DOWN() ; break; case 'L': go_LEFT() ; break; case 'R': go_RIGHT(); break; case 'O': execute_treatement(); break; case '#': run_Once();break; }} void loop(){ if (irDetect.decode(&irIn)) { doRequest(decodeIR()); irDetect.resume(); } if(run) { runLed(GREEN); MOTEUR.step(100); if(millis() >= (previousMillis + PAUSE)) { trigger(); NBPRISES--; LCD.setCursor(15,0); LCD.print(formatNumberInXdigits(NBPRISES,4)); previousMillis = millis(); } if(NBPRISES == 0) { run = false; } } else { runLed(RED); }} Menu principal : flèches gauche/droite/haut/bas = déplacement dans menu OK = sélection * = annulation saisie # = passage menu manuel Menu manuel fleche droite/gauche = 1 déplacement dans le sens choisi d'un angle programmé dans le menu principal OK = un tour complet # = retour menu principal Voila les pinpins, vous avez tout sous la main pour réaliser vos montages, vous pouvez changer de moteur pour des charges lourdes Le proto est à vendre prix coutant car j'ai fait ce montage juste pour le fun et vous donner une base de travail câblage : BTN reset fil1 => RST / fil2 =>GND ECRAN LCD I2C = GND => GND / VCC =>VCC / SDA => SDA / SCL => SCL RECEPTEUR IR = VCC => VCC / GND => GND / Signal =>D7 LED TRICOLORE = GND => GND/ R => D2 / G => D3 / B => D4 PLATINE MOTEUR = GND => GND / VCC =>VCC / IN1 => D8 / IN2 => D9 / IN3 => D10 / IN4 => D11 Légende VIOLET = Arduino branchements de haut en bas -Signal -VCC -GND ATTENTION : vous devez mettre entre le GND de l'arduino et le GND de la led (-), une résistance de 470 Ohms 1/4W la télécommande utilisée : https://www.ebay.fr/itm/Kit-recepteur-IR-Telecommande-Infrarouge-Arduino-infrared-receiver-remote/183280020112?hash=item2aac572a90:m:m3husYwULJegcY-DGH7eg0A le kit moteur : https://www.ebay.fr/itm/28BYJ-48-Moteur-pas-a-pas-module-ULN2003-DIY-Arduino-4-phases-Stepper-Motor-5V/263231276522?hash=item3d49ce85ea:m:m2pBlD64WMxeBAT454xFN0Q Après, il vous faudra : un arduino UNO, une alimentation 5V/3A, boîtier, câbles dupont, câble secteur, afficheur LCD 4x20 I2c, bouton interrupteur, bouton poussoir etc etc.. Prix : +/- 50€ en fonction de vos sources d'approvisionnement et des divers frais de port. On est bien loin des prix pratiqués dans le commerce. Libre à vous de mettre un autre moteur plus puissant et d'arranger cela suivant vos besoins Si vous avez des questions n'hésitez pas à la poser ou laisser un com N-JOY ! ++ GEN Modifié juillet 29, 2018 par Gen 4 Lien à poster Partager sur d’autres sites
Xtremeride 2 624 Posté(e) juillet 29, 2018 Auteur Partager Posté(e) juillet 29, 2018 Yopla ! ben t'as pas chômer ce weekend ! Merci beaucoup pour ton temps @Gen ! c'est vraiment cool de ta part !! Le tour complet c'était au cas ou pour faire une vidéo et aussi pour placer le sujet ca aide beaucoup! Merci Par contre au niveau du méplat, je vois pas comment fixer quelque chose sans jeux et parfaitement centré comme y'as rien pour visser. Il existe des pièces avec un trou méplat a fixer directement dessus ? Parce que 0,01mm de décalage et encore moins et c'est le drame . En terme de poids tu as une idée du max avec ton moteur ? J'ai chercher dans les spécifications mais y'as rien de précisé. Que pense tu de ce moteur ? l'alimentation c'est du 12/24v par contre. C'est le type de moteur utiliser sur mon rail. https://www.ebay.com/itm/Nema-14-0-9deg-400-steps-rev-High-Precision-Stepper-Motor-0-4A-15-6oz-in-11Ncm-/231400432268 Une excellente journée a toi ! et aux autres qui passent par ici ! Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) juillet 29, 2018 Partager Posté(e) juillet 29, 2018 yop un disque de plexi et travailler le centre soigneusement à la dremel et si il y a du jeu, un peu de colle à chaud et le tour est joué Dans les 100/200 gr sans problème ben le moteur que tu présentes c'est plus du cheap cost, on tombe dans le sérieux là :-) ++ GEN Lien à poster Partager sur d’autres sites
Invité thayrod Posté(e) septembre 22, 2018 Partager Posté(e) septembre 22, 2018 hello xtremeride super matos vraiment super c est quoi que tu utilises comme objectif ? sur lightroom OU pinnacle 21 il y a moyen de travailler le 3D Lien à poster Partager sur d’autres sites
Invité JBdu14 Posté(e) septembre 22, 2018 Partager Posté(e) septembre 22, 2018 Saluation a toutes et tous, Désolé de dire ça mais c'est beaucoup de boulot alors qu'un simple plateau tournant présentoirs a bijou ??? 12€ https://www.ebay.fr/itm/Batterie-Energie-Presentoir-Plateau-Tournant-Rotatif-Porte-pour-Bijoux-Montre/263287121145?hash=item3d4d22a4f9:g:vLkAAOSwfERbdNTD Cordialement JB. Lien à poster Partager sur d’autres sites
Indi-Punky 18 365 Posté(e) septembre 22, 2018 Partager Posté(e) septembre 22, 2018 Bonjour Il ne s'agit pas d'un simple plateau rotatif, mais d'un plateau pas a pas pour faire de la photo de precision. Rien à voir donc. Lien à poster Partager sur d’autres sites
Xtremeride 2 624 Posté(e) septembre 24, 2018 Auteur Partager Posté(e) septembre 24, 2018 Yop, A la limite pour faire de la vidéo ca pourrais aller, histoire de se faire la main pour un début. Mais j'ai besoin de quelque chose de pilotable et avec une grande précision. Mais j'avais deja penser a ses présentoir quand je débutais les 360. Plouche Lien à poster Partager sur d’autres sites
cypriens 1 022 Posté(e) janvier 20, 2019 Partager Posté(e) janvier 20, 2019 (modifié) Salut @Xtremeride Est-ce que tu as trouvé pour le 3D ? Modifié janvier 20, 2019 par cypriens Lien à poster Partager sur d’autres sites
Xtremeride 2 624 Posté(e) janvier 20, 2019 Auteur Partager Posté(e) janvier 20, 2019 Hello @cypriens , Non toujours pas trouver mon bonheur, il existe bien quelque chose mais pas dans mes moyens.... J'ai laisser un peu tomber pour me consacrer qu'au stacking. Je garde en tête ce projet pour quand j'aurais un peu plus d'argent. Il y a aussi une connaissance en chine qui travail sur un système similaire avec 4 axe, j'espère que ca va vite sortir et à moindre coup. Je reviendrais par ici quand j'aurais trouver une solution A bientot ! 1 Lien à poster Partager sur d’autres sites
Messages recommandés