Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Photographie Haute Vitesse : Capturez les Gouttes d'Eau avec Arduino Nano

Composants et Fournitures

Composant Quantité
Arduino Nano R3 1
Module Laser KY-008 1
Module Capteur de Lumière LM393 1
Transistor NPN Usage Général 3
Potentiomètre Rotatif 1
Interrupteur Poussoir C&K PTS 645 1

Applications et Services en Ligne

À Propos du Projet

Ce projet est né de l'envie d'explorer la photographie haute vitesse. Voici une configuration simple basée sur Arduino pour capturer des gouttes d'eau en plein vol.

Prérequis Matériel Photo

La télécommande de l'appareil a été modifiée en ajoutant un connecteur 3 broches pour permettre le pilotage par Arduino. À l'intérieur, trois lames métalliques assurent les contacts : (1) Obturateur, (2) Masse, (3) Autofocus. L'appui sur le bouton court-circuite successivement (2-3) puis (1-2).

Le câble de synchronisation du flash fonctionne sur le même principe : court-circuiter les contacts du connecteur PC déclenche le flash.

Principe de Détection

Le module laser KY-008 et le capteur LM393 sont positionnés face à face. La goutte en chute interrompt le faisceau laser, ce que détecte le capteur. La sensibilité du LM393 s'ajuste via son potentiomètre intégré. Les modules peuvent être écartés pour s'adapter à la hauteur de chute.

Technique de prise de vue : Obscurité totale, pose longue (plusieurs secondes). Seule l'éclair du flash fige l'image.

Schéma Électrique

Le circuit utilise 3 transistors NPN pour piloter :

Le capteur LM393 est lu sur la broche 6. Un potentiomètre sur A5 règle le délai entre détection et flash (1 à 500 ms). Un bouton poussoir sur la broche 2 arme le système.

Fonctionnement Détaillé

  1. Appui sur le bouton : L'Arduino simule l'appui sur le déclencheur de l'appareil (autofocus puis obturateur), ouvrant le rideau pour une pose longue. Le système autorise le tir du flash.
  2. Passage de la goutte : La goutte coupe le faisceau laser → le capteur LM393 change d'état.
  3. Délai programmable : Après un délai réglé par le potentiomètre (1-500 ms), l'Arduino déclenche le flash via le câble de synchronisation.
  4. Réarmement : Les gouttes suivantes ne déclenchent pas le flash. Il faut réappuyer sur le bouton pour une nouvelle prise de vue.

Un optocoupleur peut être ajouté sur la sortie flash pour isoler la haute tension du flash de l'électronique basse tension.

Paramètres du Code

// Broches
const byte BUTTON_PIN = 2;
const byte FOCUS_PIN = 3;
const byte SHUTTER_PIN = 4;
const byte FLASH_PIN = 5;
const byte SENSOR_PIN = 6;
const byte RESISTOR_PIN = A5;

// Délais (ms)
const unsigned int FOCUS_DELAY = 100;
const unsigned int SHUTTER_DELAY = 100;
const unsigned int FLASH_DELAY = 10;

// Plage délai flash (ms)
const unsigned int FIRE_DELAY_MIN = 1;
const unsigned int FIRE_DELAY_MAX = 500;

Mode Débogage (DBG_MODE) : Décommentez #define DBG_MODE pour tester sans appareil ni flash. La LED intégrée de l'Arduino simule l'obturateur (allumée) et le flash (éteinte).

Réglage de l'Installation

  1. Activez DBG_MODE, compilez, téléversez.
  2. Appuyez sur le bouton → LED intégrée s'allume (simulation obturateur ouvert).
  3. Faites passer un objet dans le faisceau laser → LED s'éteint (simulation flash).
  4. Ajustez la position laser/capteur et la sensibilité LM393 jusqu'à fiabilité parfaite.
  5. Désactivez DBG_MODE, recompilez, téléversez. C'est prêt !

Résultats

Les photos montrent différentes phases de l'impact : couronne d'éclaboussure, colonne de rebond, gouttes satellites. En variant le délai (potentiomètre), vous capturez chaque instant précis de la dynamique des fluides.

Code Arduino Complet

//#define DBG_MODE
const byte BUTTON_PIN = 2;
const byte FOCUS_PIN = 3;
const byte SHUTTER_PIN = 4;
const byte FLASH_PIN = 5;
const byte SENSOR_PIN = 6;
const byte RESISTOR_PIN = A5;

const unsigned int FOCUS_DELAY = 100;
const unsigned int SHUTTER_DELAY = 100;
const unsigned int FLASH_DELAY = 10;
const unsigned int FIRE_DELAY_MIN = 1;
const unsigned int FIRE_DELAY_MAX = 500;

boolean prevButton, currButton;
boolean prevSensor, currSensor;
boolean allowFlash;
unsigned long fireDelay;

void openShutter() {
  #ifndef DBG_MODE
  digitalWrite(FOCUS_PIN, HIGH);
  delay(FOCUS_DELAY);
  digitalWrite(SHUTTER_PIN, HIGH);
  delay(SHUTTER_DELAY);
  digitalWrite(SHUTTER_PIN, LOW);
  delay(FOCUS_DELAY);
  digitalWrite(FOCUS_PIN, LOW);
  #else
  digitalWrite(LED_BUILTIN, HIGH);
  #endif
}

void fireFlash() {
  #ifndef DBG_MODE
  digitalWrite(FLASH_PIN, HIGH);
  delay(FLASH_DELAY);
  digitalWrite(FLASH_PIN, LOW);
  #else
  digitalWrite(LED_BUILTIN, LOW);
  #endif
}

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(FOCUS_PIN, OUTPUT);
  pinMode(SHUTTER_PIN, OUTPUT);
  pinMode(FLASH_PIN, OUTPUT);
  pinMode(SENSOR_PIN, INPUT);
  #ifdef DBG_MODE
  pinMode(LED_BUILTIN, OUTPUT);
  #endif
  digitalWrite(FOCUS_PIN, LOW);
  digitalWrite(SHUTTER_PIN, LOW);
  digitalWrite(FLASH_PIN, LOW);
  prevButton = digitalRead(BUTTON_PIN);
  prevSensor = digitalRead(SENSOR_PIN);
  allowFlash = false;
}

void loop() {
  currButton = digitalRead(BUTTON_PIN);
  if (prevButton != currButton) {
    prevButton = currButton;
    if (currButton == LOW) {
      allowFlash = true;
      prevSensor = HIGH;
      fireDelay = map(analogRead(RESISTOR_PIN), 0, 1023, FIRE_DELAY_MIN, FIRE_DELAY_MAX);
      openShutter();
    } else {
      delay(50);
    }
  }
  currSensor = digitalRead(SENSOR_PIN);
  if (prevSensor != currSensor) {
    prevSensor = currSensor;
    if (currSensor == HIGH) {
      if (allowFlash) {
        allowFlash = false;
        delay(fireDelay);
        fireFlash();
      }
    }
  }
}

Schéma de Câblage

Schéma complet disponible dans les fichiers du projet (fichier PNG).

Processus de fabrication

  1. Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
  2. Surveillance qualité de l'eau IoT et IA pour protéger la vie aquatique
  3. JX Wave Generator – Générateur DDS compatible Arduino avec affichage OLED
  4. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  5. Surveiller la température de votre maison n'importe où avec Arduino Cloud
  6. Connecter un module GPS NEO‑6M à l'Arduino Mega : Guide pas à pas
  7. Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python
  8. Intégrer le capteur de pouls MAX30100 avec Arduino : Guide complet
  9. Construire l'application Fridgeye avec un écran Nextion : guide étape par étape