Photographie 360 avec plateau rotatif


Recommended Posts

yop

un 28BYJ-48 à 48 pas combiné à un réducteur de vitesse de 1 sur 64 ce qui 3072 positions angulaires différentes

précision angulaire de 0,08°

 

++

GEN

  • Like 2
Link to post
Share on other sites

Yop

 

Tes tofs sont RI-DI-CU-LES  @Xtremeride  Mouhahhahahaahah (je plaisante)

 

Voila les pinpins, j'ai reçu le matos, et j'ai décidé de faire la version 'DELUX' :-)

Qlq tofs de la construction en cours (je ferai un post didacticiel GDW par la suite)

Aller..rien que pour vos n'oeils ..

 

DSC_0196.JPG

DSC_0197.JPG

DSC_0198.JPG

DSC_0199.JPG

DSC_0200.JPG

DSC_0201.JPG

DSC_0203.JPG

DSC_0202.JPG

DSC_0204.JPG

 

Doit encore venir le sélecteur rotatif pour le menu, le câble secteur, le porte fusible etc..

 

on pourra définir :

vitesse de rotation

angle par pas

délais entre 2 mouvements

Sens de rotation

etc...

 

Voila un truc qui coute pas 600 boules mais 50 tout complet prêt à l'empois (fo arrêter de se foutre de la gueule des gens..)

 

@pluche pour la suite

GEN

Edited by Gen
  • Like 3
Link to post
Share on other sites
Guest elvirinix

salut  gen , le grand manitou de l ardunio,

 

putin ses dingue se que l on peux faire  avec cette carte :o

 

bon suis toujours dans ma lecture pour la room , pour le shield 

 

j'avoue j'en chie mais sa rentre doucement ;)

 

a bientot  et merci pour tous tes partages  :respect:

Link to post
Share on other sites

yop

 

Merci :-)

 

Je peux TOUT faire avec un arduino..Ma seule limite : Mon imagination

Ce que je propose c'est une version relativement complète cheap cost. Mais il y a également moyen de mettre un rail piloté par l'arduino en fait.

Mais pour faire cela, il faut une imprimante 3D .. Et je n'en ai pas.. ou du moins, pas encore :-)

 

je pense qu'une version rail + plateau tournant devrait tourner dans les 100/110€

 

++

GEN

Link to post
Share on other sites

Yepa !

 

T'est vraiment un génie @Gen , je comprend le pseudo maintenant ! :D 

Je sais c'est ridicule, c'est pour ca que tu va m'aider a m'améliorer :P 

 

C'est géniale ce plateaux ! j'ai hate de le voir terminer ! Si j'avais su , je t'aurais embêter plus tôt !

 

J'ai deja le rail, mais je sais pas si c'est possible de l'associer avec l'arduino juste en connectant le moteur, je pense que y'as tout un code derriere pour le contrôler.

 

L'idéale ce serais d'avoir une séquence du genre :

L'appareil fais une photo, le rail avance, l'appareil fais une photo, le rail avance etc pour la faire séquence stacking, ensuite le rail reviens a sa position initiale, le plateau rotatif tourne de x degré, et la séquence de stacking recommence,, le rail reviens sa position initiale et le plateau tourne a nouveau etc etc pour faire des 180 ou 360 degré, mais va falloir que j'investisse dans des disque dur, ca va faire beaucoup de photo .


Tu va prendre quoi comme base pour le rail ? est-ce qu'il y'aura un poids minimum a ton plateau ou a ton rail? Comme mon appareil photo est sur le rail ca fais comme même son poids.

 

IMG_3649.JPG

 

++

  • Like 2
Link to post
Share on other sites

yop @Xtremeride

 

Heu.. moi je fais rien, j'ai juste fait ce proto pour le fun..Je suis pas dans la photo

pour celui que cela intéresse, le proto sera à vendre. Je peux même ajouter le système de déclenchement (à définir en fonction de l'appareil utilisé)

 

Pour répondre à ta question, tous les moteurs pas à pas fonctionnent de la même manière et tous peuvent être commandé par un arduino.

Il y aura peut-être une question de tension de service à régler via un petit module

Mais ce que tu veux faire est totalement possible avec un arduino

 

++

GEN

  • Like 1
Link to post
Share on other sites

yop

 

Voila le bébé monté.  :-)

Ce WE, je termine les tests du proto et ensuite j'écrirai le prog

 

Face arrière, interrupteur + bouton RESET

DSC_0205.JPG

 

Du dessus

DSC_0206.JPG

 

Et le sélecteur rotatif sur la face avant

DSC_0207.JPG

 

pour le déclenchement automatique de l'appareil, Qu'est ce qu'il faut comme sortie ?

 

Le but du jeu est de programmer les séquences via le sélecteur, et ensuite l'engin se charge  de commander l'APN et de faire tourner l'objet, pendant que vous sirotez une binouze

 

++

GEN

  • Like 1
Link to post
Share on other sites

Yop

 

Je crois qu'il y a l'ancienne connectique (jack) et sinon les nouveaux c'est par USB.

Attend confirmation par Xtrem, mais en tout cas bcp sont pilotables par usb

 

Link to post
Share on other sites

Yop

 

Merci pour l'info, mais cela ne m'aide pas beaucoup

c'est quoi le signal : une tension, une fermeture de circuit, une trame de bits ?

 

++

GEN

 

Link to post
Share on other sites

Yopla,

 

C'est ce genre de cable que j'utilise, jack d'un coté ( pour le module de commande) et sorte de mini usb coté appareil photo. Le cable il a l'appellation suivant, nikon 3n ou nikon mc dc2.

 

Capture d’écran 2018-07-27 à 16.02.42.png

 

Pour ce qui est du signal j'ai aucune idée, j'ai trouver ca sur internet : https://www.instructables.com/id/Remote-Shutter-Release-Cable-for-Nikon/ ca pourra surement plus te parler que moi, mais c'est en anglais ... je veux bien traduire si y'as besoin ! A premiere vue ca ressemble a une fermeture de circuit, je vais voir si je trouve autre chose ! 


A plouche

Link to post
Share on other sites

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

Edited by Gen
  • Like 1
  • Haha 1
Link to post
Share on other sites

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

 

Link to post
Share on other sites

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

Link to post
Share on other sites

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

DSC_0209.JPG

 

++

GEN

  • Like 2
Link to post
Share on other sites

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

DSC_0264.JPG

DSC_0265.JPG

DSC_0266.JPG

 

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

  • Like 1
Link to post
Share on other sites

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 :D 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 :mdr:  

 

A plouche !

Link to post
Share on other sites

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

Link to post
Share on other sites

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 ? 


++

Link to post
Share on other sites

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

  • Like 1
Link to post
Share on other sites

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

  • Like 1
Link to post
Share on other sites

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

IR.jpg

 

de haut en bas

-Signal

-VCC

-GND

 

 

 

ledRGB.png

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

telecommande.jpg

 

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

 

moteur.jpg

 

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

 

Edited by Gen
  • Like 4
Link to post
Share on other sites

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 :D 

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 :mdr: . 

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 :D !

 

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 1 month later...

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 

Link to post
Share on other sites