Catapulte intelligente pour friandises animales – Lancez automatiquement friandises, balles et jouets
Composants et fournitures
| Arduino UNO | 1 |
| Module servo (générique) – 180° | 2 |
| Servo à rotation continue | 1 |
| Interrupteur de fin de course (Micro Limit Switch) | 1 |
| Résistance 10 kΩ | 1 |
| Piles AA | 10 |
| Interrupteur à glissière | 2 |
| Plaque d'essai (breadboard) | 1 |
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Concept
Notre chienne adore sa nourriture et l'engloutit en quelques secondes. J'ai essayé plusieurs méthodes pour la ralentir : balles distributrices, dispersion dans le jardin... Elle est devenue aspirante ! J'ai donc conçu cet appareil pour l'aider à manger plus lentement et à s'amuser.
Regardez les deux vidéos du projet original pour bien comprendre le mécanisme.
En résumé : le servo Rotateur tourne et abaisse le bras de la catapulte jusqu'à toucher le fin de course. Le servo Déclencheur passe en position de maintien, bloquant le bras. Le Rotateur revient à sa position initiale. Le servo Distributeur fait tourner le tube pour déposer de la nourriture dans le godet du bras. Le Déclencheur libère alors le bras, et le ressort propulse la nourriture.
En test, des croquettes ont été projetées à plus de 10 mètres (avec roulement). Ajustez les servos et le ressort pour modifier la portée.
Électronique
Je ne détaille pas le câblage pas à pas (de nombreux tutoriels existent), mais voici les composants clés :
- Arduino Uno R3 (tout Arduino convient)
- 2 servos 180° (modèle Lofty Ambition S3003 ou équivalent, couple suffisant)
- 1 servo à rotation continue (FS5106R ou équivalent)
- Fin de course
- Résistance 10 kΩ
- 4 piles AA + boîtier
- 1 pile lanterne 6V (remplaçable par 5 piles AA en série)
- 2 interrupteurs (n'importe quel type)
- Fils de connexion, breadboard pour tests
Pour version permanente : circuit imprimé (perfboard), connecteurs 2 broches (optionnel).
Structure mécanique
La structure est entièrement personnalisable : bois, plastique, métal, selon vos outils et budget. J'ai utilisé :
- Tubes aluminium carré 25 mm et connecteurs « connect-it » pour la structure principale
- Supports moteurs en aluminium 25×3 mm
- Tube PVC 40 mm pour le distributeur (inspiré du projet IoT Pet Feeder)
- Bras de catapulte : lance-balle de tennis bon marché (2 €)
- Ressort de récupération (la force du ressort est cruciale : équilibrez force servo, force ressort, flexibilité bras)
- Fil de pêche pour tirer le bras, guidé par des anneaux, enroulé sur le fuseau du servo rotateur
- Élastique fin pour éviter que le fil ne s'emmêle lors du retour
- Boîtier électronique en panneau alvéolaire double paroi
L'ensemble est solide mais léger. La pile lanterne (la plus lourde) sera remplacée par des piles AA rechargeables.
Leçons apprises & modifications futures
- Bourrage alimentaire occasionnel dans le distributeur (parfois aucun croquette ne tombe – ce qui ajoute de l'imprévu, bon pour le jeu !).
- Structure en aluminium résistante aux chocs du chien.
- Amélioration esthétique du bras de catapulte prévue.
- Éléments modulaires pour maintenance (distributeur, boîtier électronique).
Projet très amusant, notre chienne adore ! Je répondrai volontiers à vos questions.
Code
Catapulte automatique – Code Arduino
/* Catapulte automatique pour animaux par Nathan King, juin 2018 */
#include <Servo.h>
int FoodDeliveryReleasePosition = 115;
int FoodDeliveryHoldPosition = 0;
int TriggerReleasePosition = 90;
int TriggerHoldPosition = 0;
int limit_switch = 3;
int switch_state = 0;
Servo fooddelivery;
Servo trigger;
Servo rotater;
void setup() {
rotater.attach(2);
trigger.attach(4);
fooddelivery.attach(5);
pinMode(limit_switch, INPUT);
Serial.begin(9600);
}
void loop() {
rotater.write(89); // arrêt servo rotation continue
delay(500);
// Positions initiales
fooddelivery.write(FoodDeliveryHoldPosition);
delay(1000);
trigger.write(TriggerHoldPosition);
delay(1000);
trigger.write(TriggerReleasePosition);
delay(1000);
// Boucle fin de course : le Rotateur abaisse le bras
switch_state = digitalRead(limit_switch);
Serial.println(switch_state);
while (switch_state == HIGH) {
switch_state = digitalRead(limit_switch);
Serial.println("Fin de course non atteint");
rotater.write(75); // rotation horaire
}
Serial.println("Fin de course atteint");
rotater.write(89); // arrêt Rotateur
// Maintien du bras sur le déclencheur + retour Rotateur à l'origine
trigger.write(TriggerHoldPosition);
delay(1000);
rotater.write(110); // rotation anti-horaire
delay(4500);
rotater.write(89); // arrêt
delay(2000);
// Distribution nourriture
fooddelivery.write(FoodDeliveryReleasePosition);
delay(500);
fooddelivery.write(FoodDeliveryReleasePosition);
delay(1000); // attente chute nourriture
fooddelivery.write(FoodDeliveryHoldPosition);
delay(150);
rotater.write(89);
delay(1000);
// LÂCHER LA CATAPULTE !
trigger.write(TriggerReleasePosition);
delay(3000); // délai pour que l'animal trouve la nourriture
}
Schémas
Schéma de câblage disponible dans le projet original (fichier Fritzing).
Processus de fabrication
- Conception hygiénique pour industries alimentaires et de transformation : De la nettoyabilité aux économies
- Choisir contrôleurs et enregistreurs pour la production alimentaire et des boissons
- Masterbatches acétal basse émission pour automobile et au‑delà — Développés par Tosaf Color Service
- B&R lance un ordinateur robuste haute performance pour véhicules agricoles et de construction autonomes
- Conseils professionnels d'usinage CNC du titane — Aérospatial, automobile et plus
- Automatisation de tournage à poulie mobile de précision pour production suisse et de série
- Maîtriser l'application des lubrifiants métalliques : éviter le sur-graissage et booster les performances
- Invar Insights : 5 tendances des entrepôts intelligents pour 2021 et au-delà
- Distributeurs alimentaires polyvalents : des snacks aux sandwichs frais