Dossier de projet complet avec fichiers .STL, liste des pièces, schéma de câblage, instructions de construction et code Arduino.
Estimation du coût électronique du projet : 85 € ou 95
J'ai conçu et imprimé ce lanceur de balles de tennis puissant et automatique pour notre berger allemand trop actif. Parce qu'il a assez d'espace pour courir partout ici, cela pourrait être un lanceur de balles assez puissant. Et c'est ce qu'il est devenu ! Le GIF dans les images montre le premier test. (Sans le boîtier) C'était environ 10-12 mètres, mais après quelques ajustements mineurs, il tire maintenant régulièrement à 30-35 mètres. La liste des pièces avec les liens internet, les schémas électriques et le code Arduino sont tous dans le dossier. Si vous rencontrez encore des problèmes pendant la construction, vous pouvez toujours me er via mon e-mail. J'ai ajouté mon adresse e-mail dans la première ligne du code Arduino.
J'ai fabriqué le boîtier avec du carton mousse blanc de 5 mm en combinaison avec du ruban adhésif blanc. Bon marché, facile à travailler, léger, solide et aussi une finition soignée ! Le fichier .STEP du boîtier se trouve également dans le dossier si vous avez besoin de mes dimensions.
- Lanceur de balles de tennis Liste des pièces
Électronique :
1x MG996R Servo
1x Arduino Nano
1x XT60 connector set
2x Moteur sans balais 5010 - 360KV
2x ESC 30A, 4S
Roulements :
2x Roulement 625ZZ
Vis :
11x Vis M3x10mm
12x Vis M3x20mm
8x Vis M3x30mm
8x Vis M4x20mm
2 vis M5x25mm
24x Vis M6x30mm
Inserts filetés :
Insert fileté 31x M3 en laiton
8x M4 insert fileté en laiton
Matériaux pour le boîtier (en option) :
2x Panneau de mousse 5mm, 1000x700mm
1x Rouleau de ruban adhésif blanc, largeur 50mm
Code Arduino :
#include
// Définir les broches pour les ESC et le servo d'arrêt de balle
const int esc1Pin = 9 ;
const int esc2Pin = 10 ;
const int servoPin = 6 ;
const int sensorPin = 7 ;
// Créer des objets Servo pour les ESC et la butée à bille
Servo esc1 ;
Servo esc2 ;
Servo ballStopper ;
void setup() {
// Attachez les ESC et le servo aux broches correspondantes
esc1.attach(esc1Pin) ;
esc2.attach(esc2Pin) ;
ballStopper.attach(servoPin) ;
// Initialiser le servo du stoppeur de balle à la position initiale
ballStopper.write(0) ; // Ajustez cette valeur si nécessaire pour qu'elle corresponde à votre configuration
// Initialiser le moniteur série pour le débogage
Serial.begin(9600) ;
// Configurer la broche du capteur
pinMode(sensorPin, INPUT) ;
}
void loop() {
// Lire la valeur du capteur
int sensorValue = digitalRead(sensorPin) ;
// Si le capteur est déclenché, lancer la balle
if (sensorValue == HIGH) {
// Génère un délai aléatoire entre 5 et 15 secondes
int randomDelay = random(5000, 15001) ;
delay(randomDelay) ;
// Lancer la balle après le délai
launchBall() ;
}
// Court délai avant la prochaine itération de la boucle
delay(100) ;
}
void launchBall() {
// Démarrer les moteurs du volant d'inertie
esc1.writeMicroseconds(2000) ; // Ajustez cette valeur pour vos ESCs
esc2.writeMicroseconds(2000) ; // Ajustez cette valeur pour vos ESCs
// Attendez que les volants d'inertie atteignent leur vitesse maximale
delay(2000) ; // Ajustez ce délai en fonction de votre configuration
// Relâchez la balle à l'aide du servo d'arrêt de la balle
ballStopper.write(90) ; // Ajustez cette valeur pour relâcher la balle
delay(500) ; // Attendre que la balle soit lancée
ballStopper.write(0) ; // Réinitialise le stoppeur de balle
// Arrêter les moteurs du volant d'inertie
esc1.writeMicroseconds(1000) ; // Ajustez cette valeur pour vos ESCs
esc2.writeMicroseconds(1000) ; // Ajustez cette valeur pour vos ESCs
}