Search models, users, collections, and posts

Baseball_Pitcher_Project.V01

Print Profile(0)


Add the first print profile to earn points

Boost
4
4
0
0
5
0
Released 

Bill of Materials

Bambu Filaments
Select all
Black (14100) / Filament with spool / 1 kg
TPU 90A / Black (51103) / 1 kg

Description

Content has been automatically translated.
Show original

Description

Project developed using Onshape
 

Edit: the Arduino pet accessory contest (on Printables) concluded 20 minutes after this post’s publication… a month’s work, wasted… due to my Canadian residence, I mistakenly assumed the deadline was 00:00 local time, not European time…

Please 3D print components in PET-G CF for enhanced structural integrity; the black belt should be printed in TPU (70A-90A)

French:

To ensure timely project completion, comprehensive testing was not feasible; only the gearbox underwent testing. Should you encounter issues or complete the project ahead of me, please notify me. I will diligently strive to refine this project, updating each iteration accordingly.

Overview:

This project presents a motorized baseball pitching machine employing three wheels to propel baseballs at high velocity with variable spin. It is meticulously engineered to synthesize performance, dependability, and operational safety.

Project Genesis:

This pitching machine was conceived for my brother, a participant in a collegiate baseball program. Its purpose is to facilitate efficient training, precluding arm injury for my father who would otherwise manually pitch hundreds of baseballs. This system enables my brother to receive high-velocity pitches repeatedly and safely, obviating reliance on manual assistance.

Project Achievements:

Projectile Velocity: The launcher achieves ball velocities of up to 85–90 mph, accurately simulating game-realistic pitches.

Spin Variation: The three independent wheels allow for nuanced ball rotation adjustments, creating diverse spins (fastball, curveball, slider, etc.).

Adaptability: Compatibility extends to any 75 mm diameter ball, broadening its applications, including outdoor canine play.

Distinctive Project Attributes:
 

A three-motor, three-wheel propulsion system ensures superior speed and spin regulation. (A two-wheel option exists, offering reduced spin variability)

Custom gearing enhances torque and preserves consistent launch velocity.

Simple adjustments accommodate diverse training regimens and gameplay styles.

A robust design and optimized 3D printing process prioritize durability and performance.

Utilizes CIM motors (one per wheel) and a 12V battery, mirroring FRC competition standards.
 

FOR PROJECT IMPLEMENTATION, PRIORITIZE SAFETY!!! (I bear no responsibility for injuries sustained during operation; these wheels rotate at exceptionally high speeds, with motors capable of reaching 5500 RPM)

Therefore, employ 14 AWG or 16 AWG cabling for direct battery-to-motor connections, and incorporate a 20–30A fuse between the battery and the assembly for enhanced safety. MOSFETs

MOSFETs
Capable of managing motor current (e.g., >20A if necessary, such as IRLZ44N or IRF540N)

 

ARDUINO INTEGRATION IS OPTIONAL!!!

Employ a Digital PWM DC Motor Speed Controller with 0-100% Adjustable Display, 6V/12V/24V DC (one per motor) as an alternative to an Arduino with MOSFETs or similar controllers.
HOWEVER, 12V BATTERIES REMAIN ESSENTIAL IN ALL SCENARIOS (as expected…)


Arduino Implementation:

Three MOSFETs, a push-button potentiometer, a 16x2 LCD display, three 220–330Ω resistors (for MOSFET gates), and a 12C-compatible Arduino are required.

For Arduino power supply, utilize a 12V-5V buck converter or leverage the power jack with a 5V step-down regulator.

Arduino Code:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// LCD configuration (I2C address 0x27, may vary)
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pins
const int potPin = A0;         // Analog potentiometer
const int buttonPin = 2;       // Potentiometer push button (digital)
const int motor1Pin = 3;        // PWM Motor 1
const int motor2Pin = 5;        // PWM Motor 2
const int motor3Pin = 6;        // PWM Motor 3

// Variables
int potValue = 0;
int motorSpeed = 0;
bool motorsOn = false;
bool lastButtonState = HIGH;   // Pull-up style button
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // Button debounce

void setup() {
 // Pin initialization
 pinMode(buttonPin, INPUT_PULLUP); // Internal pull-up button
 pinMode(motor1Pin, OUTPUT);
 pinMode(motor2Pin, OUTPUT);
 pinMode(motor3Pin, OUTPUT);

 // LCD initialization
 lcd.init();
 lcd.backlight();
 lcd.setCursor(0, 0);
 lcd.print("Launcher Ready!");
}

void loop() {
 // Potentiometer reading
 potValue = analogRead(potPin);
 motorSpeed = map(potValue, 0, 1023, 0, 255); // PWM scaling

 // Push-button reading (with debounce)
 int reading = digitalRead(buttonPin);
 
 if (reading != lastButtonState) {
   lastDebounceTime = millis();
 }
 
 if ((millis() - lastDebounceTime) > debounceDelay) {
   if (reading == LOW) { // Button pressed
     motorsOn = !motorsOn; // Motor ON/OFF toggle
   }
 }
 
 lastButtonState = reading;

 // Motor control
 if (motorsOn) {
   analogWrite(motor1Pin, motorSpeed);
   analogWrite(motor2Pin, motorSpeed);
   analogWrite(motor3Pin, motorSpeed);
 } else {
   analogWrite(motor1Pin, 0);
   analogWrite(motor2Pin, 0);
   analogWrite(motor3Pin, 0);
 }

 // LCD display
 lcd.setCursor(0, 1);
 lcd.print("Speed: ");
 lcd.print(map(motorSpeed, 0, 255, 0, 100)); // Percentage display
 lcd.print("% ");
 
 delay(100); // Minor delay for stability
}

🛠 Pre-upload Verification:

Hardware Specifications


LCD I2C I2C address typically 0x27 or 0x3F (scan if needed)
Potentiometer A0 for analog signal + digital pin (2) for button
MOSFET Ensure logic level compatibility (e.g., IRLZ44N) for proper 5V Arduino switching
Power Supply Utilize an external power source for motors, not the Arduino


🧩 Quick Schematic:


Potentiometer: center to A0, ends to 5V and GND. Button to D2 (with internal pull-up).

MOSFETs:

Drain → Motor

Source → GND

Gate → Arduino PWM pin via a 220–330Ω resistor

LCD connected to SDA/SCL (pins A4-A5 on Uno R4 or dedicated pins on your model)

MML Usage Declaration: (ChatGPT)
To expedite code generation and documentation, ChatGPT assisted in drafting parts of this description. Should the code malfunction (a possibility), I offer my sincerest apologies.


Documentation (7)

Assembly Guide (7)
Capture d’écran 2025-04-27 171417.png
Capture d’écran 2025-04-27 195913.png
Capture d’écran 2025-04-27 195930.png
Capture d’écran 2025-04-27 200000.png
Capture d’écran 2025-04-27 200041.png
Capture d’écran 2025-04-27 200054.png
Capture d’écran 2025-04-27 200105.png

Comment & Rating (0)

(0/1000)