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

Distributeur intelligent pour animaux 3D imprimé avec Arduino Nano

Composants et fournitures

Composant Quantité Notes
Arduino Nano R3 1
Module RTC DS1307 1 Toute marque compatible
Module régulateur LM317 1
Servomoteur rotation continue 1
Distributeur de céréales (type Honey Can Do) 1
Aimants 8 × 3 mm 6 Pour roue codeuse
Capteur Hall unipolaire 1 Important : unipolaire pour ne pas avoir besoin d'inverser l'aimant
Écran LCD 16×2 RGB avec backpack I2C 1 Ou écran + backpack séparés
LED rouge 5 mm 1 Indication erreur capteur Hall
LED verte 5 mm 1 Indication alimentation
Boutons poussoirs momentanés 5 Navigation menu
Prise DC femelle (jack) 1
Alimentation 9-12 V (secteur) 1
Résistance 10 kΩ 1 Pull-up capteur Hall (Vcc vers Signal)
Résistance 330 Ω 2 Pour LEDs

Outils et machines

Quincaillerie supplémentaire

À propos du projet

L'histoire

Sans horaire fixe et avec de longues journées de travail, l'alimentation de ma chienne devenait irrégulière. Ma région étant sujette aux inondations et coupures de courant, j'ai voulu une solution autonome. Au lieu d'acheter un distributeur à 30-40 €, j'en ai construit un pour... un peu plus, mais avec des fonctionnalités sur mesure !

Fonctionnalités clés

Pièces 3D imprimées (PLA+)

Tous les fichiers STL et Fusion 360 sont sur GitHub. L'enceinte s'emboîte sans vis (4 languettes par composant). Le support de servo intègre le capteur Hall. La roue codeuse (6 aimants) donne un retour de position : 1 portion = 1/6 de tour (60°). Ajustez le nombre de portions selon la taille des croquettes (ex : 17 portions ≈ 170-177 g).

Structure en bois

  1. Base et arrière : deux pièces 1,27 × 20,32 cm assemblées en L, renforcées par équerres.
  2. Pied du distributeur : hauteur ~11,4 cm, percé d'un trou de 5,08 cm pour l'entonnoir.
  3. Fixation du pied au panneau arrière avec boulons/écrous M8.
  4. Support servo sur pièce de bois 3,8 × 3,8 cm (longueur ajustable).
  5. Pieds selon hauteur de la gamelle (traverses pour rigidité).
  6. Entonnoir, glissière et rail de chute pour guider les croquettes.

Électronique

Alimentation Arduino via broche Vin (7-20 V) ou USB (5 V uniquement). Point critique : souder la résistance 10 kΩ entre Vcc et Signal du capteur Hall, et relier toutes les masses communes. J'ai utilisé une barre d'alimentation découpée dans une plaque d'essai. Connecteurs personnalisés pour capteur Hall et servo (sortent par le bas de l'enceinte).

Code

Le sketch complet gère : menu à machine d'états, RTC, EEPROM, interruption capteur Hall, contrôle servo avec secousse anti-blocage, LEDs d'état.

// Version finale distributeur animaux
// Bibliothèques : JC_Button, Wire, LiquidCrystal_I2C, LiquidMenu, RTClib, Servo, EEPROM

#include <JC_Button.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidMenu.h>
#include <RTClib.h>
#include <Servo.h>
#include <EEPROM.h>

Servo myservo;

// Broches
#define ENTER_BUTTON_PIN 11
#define UP_BUTTON_PIN 10
#define DOWN_BUTTON_PIN 9
#define BACK_BUTTON_PIN 8
#define POWER_LED_PIN 5
#define MANUAL_BUTTON_PIN A1
#define hallPin 2
#define HALL_LED_PIN 7
#define SERVO_PIN 6

Button enterBtn(ENTER_BUTTON_PIN);
Button upBtn(UP_BUTTON_PIN);
Button downBtn(DOWN_BUTTON_PIN);
Button backBtn(BACK_BUTTON_PIN);
Button manualFeedBtn(MANUAL_BUTTON_PIN);

LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;

// Variables globales
unsigned long hallSensorTime, rotationTime = 400;
boolean manualFeed = false, hall_sensor_fail = false;
int count;
boolean feeding1_complete = false, feeding2_complete = false;
boolean feeding1_trigger = false, feeding2_trigger = false;
boolean servoOn = true;
volatile boolean hallSensorActivated = false;
volatile int isr_count = 1;

void hallActiveISR() {
  hallSensorActivated = true;
  digitalWrite(HALL_LED_PIN, HIGH);
  isr_count++;
}

enum { btnENTER, btnUP, btnDOWN, btnBACK };
enum STATES { MAIN, MENU_EDIT_FEED1, MENU_EDIT_FEED2, MENU_EDIT_TIME, MENU_EDIT_PORTION,
              EDIT_FEED1_HOUR, EDIT_FEED1_MIN, EDIT_FEED2_HOUR, EDIT_FEED2_MIN,
              EDIT_HOUR, EDIT_MIN, EDIT_PORTION };
STATES state;

int Hour, Minute, portion;
int feed_time1_hour, feed_time1_min, feed_time2_hour, feed_time2_min;
int userInput;
byte check_Char[8] = { B00000, B00000, B00001, B00011, B10110, B11100, B11000, B00000 };

void setup() {
  Wire.begin(); Serial.begin(9600);
  lcd.init(); lcd.backlight(); lcd.createChar(0, check_Char);
  if (!rtc.begin()) Serial.println("RTC non trouvé !");
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Décommenter 1ère fois
  
  enterBtn.begin(); upBtn.begin(); downBtn.begin(); backBtn.begin(); manualFeedBtn.begin();
  state = MAIN;
  
  pinMode(POWER_LED_PIN, OUTPUT); pinMode(HALL_LED_PIN, OUTPUT); pinMode(hallPin, INPUT);
  attachInterrupt(digitalPinToInterrupt(hallPin), hallActiveISR, FALLING);
  digitalWrite(POWER_LED_PIN, HIGH); digitalWrite(HALL_LED_PIN, LOW);
  
  get_feed_time1(); get_feed_time2(); get_completed_feedings(); get_portion();
}

void loop() {
  changing_states(); check_buttons(); check_feedtime(); check_rtc(); manual_feed_check();
}

// ... (fonctions complètes dans le code source original : menu_transitions, check_feedtime,
// display_*, set_*, startFeeding, servoStart/Stop, jiggle, EEPROM read/write, blinkFunction, etc.)
// Le code complet est disponible sur GitHub : https://github.com/russo08/Pet-feeder/blob/main/feeder_final.ino

Fichiers CAO (Fusion 360 + STL)

Tous les modèles sur GitHub (sauf le tube du capteur Hall, simple à modéliser).

Schéma électrique

Distributeur intelligent pour animaux 3D imprimé avec Arduino Nano

Processus de fabrication

  1. Colorier des pièces imprimées en 3D avec des crayons de cire : une technique de post-traitement novatrice
  2. Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
  3. Créer une API robuste de température et capteurs sur Raspberry Pi avec le module GY‑91
  4. Intégration d'un capteur thermocouple avec l'Arduino Portenta H7 via le MAX6675
  5. Élever le contrôle qualité : l'outillage 3D imprimé améliore la précision manufacturière
  6. Concevoir adaptateurs sacoches vélo 3D imprimés fonctionnels avec Kevlar CFF
  7. Réinventer le karting : pièces en carbone 3D pour une performance inégalée
  8. Webinar : Construire des pièces 3D plus solides avec le logiciel Eiger
  9. Drone imprimé 3D permet collecte de données rapide et rentable en Antarctique