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

Construire une distributeur automatique Arduino intelligent : guide méca complet

Présentation

Projet : distributeur automatique DIY piloté par Arduino. Processus complet : découpe/assemblage MDF, électronique, code Arduino.

Vidéo ou tutoriel écrit.

Vue d'ensemble

4 distributeurs (moteurs rotation continue DS04-NFC), système porteur (moteurs pas-à-pas), LCD 16×2, 4 boutons sélection, détecteur pièce.

Construire une distributeur automatique Arduino intelligent : guide méca complet

Le porteur ajoute de la complexité pédagogique (projet fin d'études méca/électro). Idéal pour étudiants et passionnés.

Construction mécanique

Structure MDF

Panneaux MDF 8 mm découpés scie circulaire (établi maison Creativity Hero). Mesures issues modèle 3D.

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

Modèle 3D Thangs. Ouvertures scie sauteuse (aussi utilisable pour découpes principales). Attention : machines dangereuses.

Construire une distributeur automatique Arduino intelligent : guide méca complet

Assemblage : colle bois + vis 3 mm, pré-perçage + fraisage, serre-joints 90° et F.

Construire une distributeur automatique Arduino intelligent : guide méca complet

Système rail (porteur)

Tubes alu : horizontal 16 mm × 27 cm (×2), vertical 20 mm × 45 cm (×3). Alésages Forstner sur bois 18 mm.

Construire une distributeur automatique Arduino intelligent : guide méca complet

Chariots : planche 21×21 cm, trous 8 mm, tiges filetées M8 + roulements 22 mm (horizontal : 16 mm). Problème jeu → resserrage rails (élargissement alésages, fentes perpendiculaires, tige filetée).

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

Démontage rails pour ajouter : boulon 5 mm gauche (poulie courroie horizontale + 2 roulements rail vertical gauche), moteur pas-à-pas horizontal droit (fixé sur MDF 8 mm + support + partie rainurée → chariot vertical).

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

Conteneur sur chariot horizontal (bois + colle). Réassemblage rails : époxy alésages + plaque latérale raidissement. Insertion entre rails verticaux. Résultat : coulissement excellent.

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

Courroie crantée horizontale : mesure, découpe, fixation chariot (collier). Moteur vertical haut (MDF + boulons), poulie bas, courroie verticale.

Construire une distributeur automatique Arduino intelligent : guide méca complet

Distributeurs (discharge units)

Bobine hélicoïdale : fil métallique 3 mm enroulé sur bombe 7 cm. Collage pistolet colle sur servo rotation continue.

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

Panneau avant

Porte : charnières + loquet magnétique. Acrylique 5 mm grande ouverture, tôle alu fine petite ouverture (4 trous boutons, fentes pièces/LCD). Électronique sur tôle → fixée sur porte (boulons 5 mm).

Construire une distributeur automatique Arduino intelligent : guide méca complet
Construire une distributeur automatique Arduino intelligent : guide méca complet

2 micro-switches position initiale porteur. Guide pièce → bas machine. Détecteur pièce : capteur IR proximité (détection passage pièce).

Schéma électronique

Construire une distributeur automatique Arduino intelligent : guide méca complet

Alim 12V ≥2A (2 pas-à-pas + LED porte). Buck converter LM2596 12V→5V (servos, Arduino, capteurs). Servos DS04-NFC 5V PWM. Pas-à-pas via drivers A4988. 4 boutons + 2 micro-switches → GND + pins digitales (pull-up internes).

Composants

Câblage fils volants (un peu désordonné mais fonctionnel). Bandes LED porte (éclairage intérieur).

Construire une distributeur automatique Arduino intelligent : guide méca complet

Code Arduino

/* DIY Vending Machine - Arduino Mechatronics */
#include <LiquidCrystal.h> 
#include <Servo.h>
LiquidCrystal lcd(27, 26, 25, 24, 23, 22); // rs, en, d4, d5, d6, d7
Servo servo1, servo2, servo3, servo4; // DS04-NFC

#define dirPinVertical 0
#define stepPinVertical 1
#define dirPinHorizontal 2
#define stepPinHorizontal 3
#define coinDetector 9
#define button1 13
#define button2 12
#define button3 11
#define button4 10
#define microSwitchV 15
#define microSwitchH 14

int buttonPressed;

void setup() {
  lcd.begin(16, 2);
  servo1.attach(4); servo2.attach(5); servo3.attach(6); servo4.attach(7);
  pinMode(dirPinVertical, OUTPUT); pinMode(stepPinVertical, OUTPUT);
  pinMode(dirPinHorizontal, OUTPUT); pinMode(stepPinHorizontal, OUTPUT);
  pinMode(coinDetector, INPUT);
  // Pull-ups internes
  pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP);
  pinMode(button3, INPUT_PULLUP); pinMode(button4, INPUT_PULLUP);
  pinMode(microSwitchV, INPUT_PULLUP); pinMode(microSwitchH, INPUT_PULLUP);
  
  // Position initiale verticale (haut)
  digitalWrite(dirPinVertical, HIGH);
  while (true) {
    if (digitalRead(microSwitchV) == LOW) { moveUp(70); break; }
    digitalWrite(stepPinVertical, HIGH); delayMicroseconds(300);
    digitalWrite(stepPinVertical, LOW); delayMicroseconds(300);
  }
  // Position initiale horizontale (gauche)
  digitalWrite(dirPinHorizontal, LOW);
  while (true) {
    if (digitalRead(microSwitchH) == LOW) { moveLeft(350); break; }
    digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300);
    digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300);
  }
}

void loop() {
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Insert a coin!");
  while (true) { if (digitalRead(coinDetector) == LOW) break; }
  delay(10);
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Select your item");
  lcd.setCursor(0,1); lcd.print(" 1, 2, 3 or 4?");
  
  while (true) {
    if (digitalRead(button1) == LOW) { buttonPressed = 1; break; }
    if (digitalRead(button2) == LOW) { buttonPressed = 2; break; }
    if (digitalRead(button3) == LOW) { buttonPressed = 3; break; }
    if (digitalRead(button4) == LOW) { buttonPressed = 4; break; }
  }
  
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Delivering...");
  
  switch (buttonPressed) {
    case 1: // Emplacement 1 (haut gauche)
      moveUp(4900); delay(200); moveLeft(1700); delay(300);
      servo1.writeMicroseconds(2000); delay(950); servo1.writeMicroseconds(1500); delay(500);
      moveRight(1700); delay(200); moveDown(4900); break;
    case 2: // Emplacement 2 (haut droite)
      moveUp(4900); delay(200);
      servo2.writeMicroseconds(2000); delay(950); servo2.writeMicroseconds(1500); delay(500);
      moveDown(4900); break;
    case 3: // Emplacement 3 (bas gauche)
      moveUp(2200); delay(200); moveLeft(1700); delay(300);
      servo3.writeMicroseconds(2000); delay(950); servo3.writeMicroseconds(1500); delay(500);
      moveRight(1700); delay(200); moveDown(2200); break;
    case 4: // Emplacement 4 (bas droite)
      moveUp(2200); delay(200);
      servo4.writeMicroseconds(2000); delay(950); servo4.writeMicroseconds(1500); delay(500);
      moveDown(2200); break;
  }
  
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Item delivered!");
  delay(2000);
}

// Fonctions déplacement pas-à-pas (quart de pas A4988)
void moveUp(int steps) {
  digitalWrite(dirPinVertical, LOW);
  for (int x=0; x

Explications clés

  • Pull-ups : boutons/micro-switches = HIGH au repos, LOW quand pressés.
  • Homing : boucle while vers micro-switches, puis léger décalage (70/350 pas).
  • Détection pièce : capteur IR → LOW = pièce détectée → sortie boucle.
  • Sélection : attente appui bouton → variable buttonPressed.
  • Déplacement : drivers A4988 en quart de pas → 4900 pas = haut, 2200 = milieu, 1700 = gauche. Valeurs à calibrer.
  • Distribution : servo rotation continue : 2000 µs = rotation, 1500 µs = arrêt. 950 ms ≈ 1 tour complet hélice.
  • Retour position initiale après chaque distribution.

Simple et efficace ! Amusez-vous bien, questions en commentaires, découvrez mes projets Arduino.

Processus de fabrication

  1. Les distributeurs automatiques : une industrie américaine de 36,6 milliards de dollars
  2. Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
  3. Construire une console de contrôle Photoshop DIY avec Arduino Nano RP2040
  4. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  5. Construire un dispositif de lévitation ultrasonique avec Arduino – Guide étape par étape
  6. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  7. Construire un Capteur de Rythme Cardiaque Infrarouge Fiable avec Arduino : Guide Étape par Étape
  8. Morpion sur matrice LED MAX7219 avec boîtier en carton
  9. Construire un voltmètre DIY avec Arduino et écran Nokia 5110