Crazymakers

Faites-le vous même!

Chinese (Simplified)EnglishFrenchGermanItalianRussianSpanish
SOUTENEZ-NOUS!
Déjà 23 personnes nous ont soutenu.
Nous vous en sommes très reconnaissants.
44.157303370787 %
RETROUVEZ NOUS SUR:
  • Youtube
  • facebook
  • Instagram
  • Twitter
Logo CrazyMakers

Scanner 360° Automatique - Ep 2 - Conception et Fabrication

Voici comment fabriquer un système de scanner 360° qui permet de mettre automatiquement en rotation une pièce et de la prendre en photos sur 360°. L'appareil photo peut être piloté avec ou sans ...




La culture maker (de l'anglais make, lit. faiseur) est une culture (ou sous-culture) contemporaine constituant une branche de la culture Do it yourself (DIY) (qu'on peut traduire en français par « faites-le vous-même »).          (Source: Wikipedia)
les "Crazy Makers" sont les plus fous et les plus passionnés des makers...

Catégorie

Arduino

Niveau de difficulté

temps nécessaire

5 heures

Scanner 360° Automatique - Ep 2 - Conception et Fabrication



Voici comment fabriquer un système de scanner 360° qui permet de mettre automatiquement en rotation une pièce et de la prendre en photos sur 360°.
L'appareil photo peut être piloté avec ou sans fil!

Schéma, matériels et STL:
http://www.crazymakers.fr/videos-youtube/scanner_36a_automatique_ep_2_conception_-art-EHY5VoH2eYw.html

Découvrez la présentation du fonctionnement sur la vidéo dédiée:
https://youtu.be/jp5YLMT-MGQ

➕ INFORMATIONS: ➕
⁉️ Catégorie: Arduino.
⏰ Temps: 5 heures.
💪 Difficulté: 4/10.

⭐️ COMMENT NOUS AIDER ? ⭐️
🚨Un petit geste sur Youtip: https://www.utip.io/myprofile
❤️️ Soutenez-nous: http://www.crazymakers.fr/don-crazymakers.html
👍 Pensez à "liker" la vidéo.
🔗 Partagez nos vidéos et parlez de nous autour de vous

📡 NOUS SUIVRE OU NOUS CONTACTER: 📡
🔹Site Internet: http://www.crazymakers.fr
🔹Facebook: https://www.facebook.com/CrazyMakers/
🔹Twitter: https://twitter.com/CrazymakersF
🔹Instagram: https://www.instagram.com/crazymakers_fr/
🔹Chaine Youtube: https://www.youtube.com/c/CrazyMakersFr

#scanner360 #Photogrammétrie #scanner3d



Matériel:

Plateau tournant: https://www.ebay.fr/sch/i.html?_nkw=250+mm+Lazy+Susan+Palier
Ecran OLED i2c: https://www.ebay.fr/itm/0-96-I2C-Iic-Spi-Serial-128X64-Weis-Oled-Lcd-Led-Anzeigemodul-Fur-Arduino-FELK/362866814645
Rotary Encoder module: https://www.ebay.fr/itm/Ky-040-Rotary-Encoder-Module-Brick-Sensor-Development-For-Arduino-Modul-FE/233270240264
Driver a4988: https://www.ebay.fr/sch/i.html?_nkw=a4988
Moteur Nema 17: https://www.ebay.fr/sch/i.html?_nkw=17HS4023
Arduino UNO Proto Shield: https://www.ebay.fr/itm/UNO-Arduino-Prototyping-Prototype-Shield-ProtoShield-Module-Mini-Breadboard/112503418903
DC Jack: https://www.ebay.fr/itm/5-PCS-12V-5-5x2-1mm-Female-DC-Power-Socket-Jack-Connector-Cable-Plug-Wire-CCTV/142616079883
1 Arduino UNO
1 Optocoupleur PC 817
1 Led IR
2 résistances 100 Ohms
Connecteurs XH 2.54mm Male + Femelle


Pièces à imprimer en 3D

Boitier
fixation Plateau
Support Carte

 

Le projet a demandé d'innombrable heures de travail, du prototypage, des tests.
C'est pourquoi nous avons décidé de diffuser les fichiers .STL pour impression après un don. Peu importe le montant, vous pouvez donner n'importe quel montant, nous vous serions très reconnaissant de contribuer au projet.

Utilisez le bouton ci-dessous pour faire le don, nous vous enverrons les fichiers .STL à votre adresse e-mail Paypal.

... Cependant, si vous ne pouvez / ne voulez pas faire un don pour une raison quelconque, contactez-nous, nous vous enverrons les fichiers malgré tout. Si vous aimez le projet, vous pouvez faire un don à tout moment. Nous vous remercions!!


Schéma électronique

Schéma

Programme pour Arduino

#include <Arduino.h>
#include <EEPROM.h>
#include <multiCameraIrControl.h>
#include "logo.h"

//OLED
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

//Encoder
#define outputA 2
#define outputB 4
#define buttonPin 3
int counter = 0;
int aState;
int aLastState;

//Driver 4988
#include "BasicStepperDriver.h"
#define MOTOR_STEPS 6125
#define RPM 10
#define MICROSTEPS 2
#define DIR 9
#define STEP 8
BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP);

//Librairie APN Diode IR
Canon D5(11);

//Variales diverses
boolean do_update_screen=true;
int mode_menu=0;
int nombre_photos=EEPROM.read(1);
int delai_photos=EEPROM.read(5)*100;

void setup() {
// Encoder
pinMode (outputA,INPUT_PULLUP);
pinMode (outputB,INPUT_PULLUP);
pinMode (buttonPin,INPUT_PULLUP);
aLastState = digitalRead(outputA);

//OLED
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

//Stepper
stepper.begin(RPM, MICROSTEPS);

//Affichage du logo
display.clearDisplay();
display.drawBitmap(0, 0, fan_off, 128, 64, 1);
display.display();
delay (5000);
}

void loop() {
//Bouton validation
if (digitalRead(buttonPin)==LOW) {mode_menu ++;delay(500);do_update_screen=true;}

//Rotary et ajustement de valeur en fonction du mode
if (mode_menu==0){nombre_photos=read_encoder(nombre_photos,1);if (nombre_photos<4){nombre_photos=4;}if (nombre_photos>64){nombre_photos=64;}}
if (mode_menu==1){delai_photos=read_encoder(delai_photos,250);if (delai_photos<0){delai_photos=0;}if (delai_photos>5000){delai_photos=5000;}}

//Actualisation de l'écran si nécessaire
if (do_update_screen==true){update_screen();do_update_screen=false;}

//Cycle si mode 2 atteint
if (mode_menu==2){cycle(nombre_photos, delai_photos); mode_menu=0;}
}

int read_encoder(int initial_value, int increment){
aState = digitalRead(outputA);
if (aState != aLastState){
if (digitalRead(outputB) != aState) {initial_value = initial_value+increment;do_update_screen=true;}
else {initial_value =initial_value-increment;do_update_screen=true;}}
aLastState = aState;
return initial_value;}

void update_screen()
{
int xpos=10;
int ypos=0;
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1); // Draw 2X-scale text
display.setCursor(xpos, ypos);
display.println(F("Nombre de Photos"));
ypos+=9;
display.setTextSize(2); // Draw 2X-scale text
if (mode_menu==0){display.setCursor(1, ypos);display.println(F(">"));}
display.setCursor(xpos, ypos);
display.println(nombre_photos);
ypos+=15;
display.setTextSize(1); // Draw 2X-scale text
display.setCursor(xpos, ypos);
display.println(F("Delai prise photo"));
ypos+=9;
display.setTextSize(2); // Draw 2X-scale text
if (mode_menu==1){display.setCursor(1, ypos);display.println(F(">"));}
display.setCursor(xpos, ypos);
display.println(delai_photos);
ypos+=15;
display.setTextSize(2); // Draw 2X-scale text
if (mode_menu==2){display.setCursor(1, ypos);display.println(F(">"));}
display.setCursor(xpos, ypos);
display.println(F("Demarrer le scan"));
display.display(); // Show initial text
}

void cycle(int nombre_photos, int delai_photos)
{
EEPROM.write(1, nombre_photos);
EEPROM.write(5, delai_photos/100);
for (int i = 0; i < nombre_photos; i++) {
stepper.rotate(360 / nombre_photos);
digitalWrite(12,HIGH);
D5.shutterNow();
delay(delai_photos);
digitalWrite(12,LOW);
if (digitalRead(buttonPin)==LOW) {asm volatile (" jmp 0"); break;}
}
mode_menu=0;
update_screen();
}



Commentaires déposés sur Youtube

Voir les commentaires du site

### Déposer un commentaire ###



Par: jean paul bredeche le 2020-02-09T12:54:29Z
super boulot, chapeau

Par: Christian m le 2020-01-28T11:40:40Z
Très joli projet, designer une pièce pour 10h d'impression et la réussir au mm près du premier coup, chapeau. intégration des éléments top.
Juste une remarque je ne comprends pas qu'on utilise encore des arduino avec des shields alors qu'il y a des esp8266 ou esp32 bien plus puissants, plus petits, avec du wifi et du bluetooth qui dans ce projet auraient été bien utiles. Ils se programment avec le même ide auduino et franchement c'est top pour piloter des leds ou des moteurs.
Mon lampadaire :) https://www.youtube.com/watch?v=9TxUNcG-ITk

Par: Frogger1805 le 2020-01-28T05:21:51Z
bonour, bon travail:-) dis voir,tu as utilise quoi comme materiaux dans F360 pour donner cette impression de plastique imprime ? merci

Par: Benoit Machu le 2020-01-25T23:53:13Z
Moi j’avais eu une idée bien plus simple pour les prise de photo packshot a 360. Un arduino nano avec un Moteur et j’en plaque avec des contacts en étole reliés ensemble. On appuie sur un bouton et ça tourne de x degrés en fonction de l’étoile de contact, quand ça arrive à un contact ça stoppe 3s ça shoot avec un octocoupleur relié à la prise de l’appareil photo, ça repart et on indique simplement dans le code le nombre de branche de contact pour les pauses et la vitesse du moteur le bouton de départ et en code c’est super simple. Mais j’ai pas prit le temps de fabriquer le plateau juste foutu ça en banc d’essai je n’avais plus l’utilité de toutes façons

Par: Benoit Machu le 2020-01-25T23:48:10Z
Dommage que ce soit pas très efficace comme système de numérisation, d’ailleurs le code peut tout à fait être adapté pour un slider j’ai fait presque le même avec la bibliothèque oled et easystepper, le truc qui ma le plus cause des soucis c’est l’encodeur rotatoire, j’ai filtré et modifié mon code maintenant j’ai la technique et c’est ultra précis mais quelle prise de tête ce truc de mer de

Par: Fred Petit le 2020-01-24T17:57:50Z
Hello,


pour les problèmes de fonds qui ne tournent pas en même temps que le sujet, et qui posent problème aux logiciels de photogrammétrie, une solution est utilisée par des gens très biens (https://zookeys.pensoft.net/articles.php?id=24584) : ils prennent une première photo normale, suivie d'une seconde en fort contre-jour. Cette deuxième photo produit une silhouette en noir et blanc qui peut être utilisée comme un "masque" dans les logiciels genre photoscan, afin de supprimer le fond des photos.

Par: Crazy Seb le 2020-01-24T17:00:38Z
Good job
Comme d’hab !
Ça devient lassant la perfection 😋

Par: Jean Bernard Jovelet le 2020-01-24T10:56:01Z
Bravo pour le travail, mais juste une petite question au lieu d'utiliser un convertisseur 5 volts pourquoi tu n'as pas utilisé l'entrée Vin de l'arduino ?

Par: barcelone931 le 2020-01-24T07:09:09Z
bravo beau travail.

Par: Thomas Bétrancourt le 2020-01-24T06:55:12Z
Fatals Picards ! Super video !



Crazymakers le 2020-01-26 13:33:20
En fait, la sortie de l'optocoupleur (PC817) sert d'interrupteur.
Le mieux en cas de doute c'est d'acheter un interrupteur filaire de la marque de l'APN sur ebay (1-2?) et remplacer l'interrupteur mécanique par la sortie du PC817

Emmanuelle Collado le 2020-01-26 11:18:38
Bonjour, je suis sur un projet similaire et je bute sur la connectique des appareils photos. Je travaille en nikon et fuji et toutes les broches de contactes sont différentes. Comment avez vous résolu le problème pour vous ?


Commentaires par Page
5 - 10 - 20

Vos commentaires seront lus par d'autres visiteurs et seront affichés en page d'accueil.
Merci de bien vouloir soigner la rédaction de vos messages.



Attention, suite aux nombreux spams et messages anonymes, en postant un commentaire,
comme sur un forum,votre ip:3.219.217.107 sera stockée sur notre base de données.
En postant un commentaire, vous recevrez un message à chaque fois qu'un utilisateur y répondra.