-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
28 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,8 +4,6 @@ name: Upload files to mil.ufl.edu | |
# yamllint disable-line rule:truthy | ||
on: | ||
push: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
upload: | ||
|
@@ -15,6 +13,18 @@ jobs: | |
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "latest" | ||
cache: "npm" | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Build site | ||
run: npm run build && cd dist | ||
|
||
- name: Install lftp | ||
run: sudo apt-get install -y lftp sshpass | ||
|
||
|
@@ -23,6 +33,8 @@ jobs: | |
# We need to connect to the server for lftp to be happy, otherwise it | ||
# hangs on "Connecting...". Connecting will add the host to | ||
# known_hosts. | ||
# Move .htaccess into dist so it gets copied | ||
mv .htaccess dist | ||
sshpass -p ${{ secrets.MIL_UFL_SFTP_PASS }} \ | ||
sftp -o StrictHostKeyChecking=no \ | ||
-P ${{ secrets.MIL_UFL_SFTP_PORT }} [email protected] << EOF | ||
|
@@ -32,10 +44,9 @@ jobs: | |
-p ${{ secrets.MIL_UFL_SFTP_PORT }} sftp://mil.ufl.edu << EOF | ||
mirror -c \ | ||
--include='.*' \ | ||
--exclude='^\..*$' \ | ||
--exclude='README.md' \ | ||
-R --parallel --verbose \ | ||
. \ | ||
dist \ | ||
htdocs | ||
exit | ||
EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--- | ||
title: "Designing a Ball Shooter from Scratch" | ||
authors: | ||
- name: "Adam McAleer" | ||
profilePic: "members/adam_m.jpeg" | ||
date: "2024-11-15" | ||
--- | ||
|
||
Building a ball shooter from the ground up is an exciting engineering challenge that combines mechanical design, physics, and programming. Whether you’re constructing one for a robotics competition or as part of a creative side project, the journey begins with defining your objectives. Do you need precision for hitting targets, maximum range, or a balance between the two? Answering this question informs the core design choices, from selecting motors and materials to determining the shooter’s geometry. | ||
|
||
The design process starts with a deep dive into the mechanics of launching a ball. One popular approach involves a flywheel system, where spinning wheels impart velocity to the ball as it passes through. Here, factors like wheel diameter, surface material, and rotational speed are critical. Achieving consistent results requires carefully calculating the energy transfer while minimizing slippage. Alternatively, spring-loaded or pneumatic systems offer unique advantages, especially for projects where compact designs or specific power constraints are priorities. Each system has trade-offs that must align with the project’s goals. | ||
|
||
Finally, testing and iteration play an essential role in refining the shooter’s performance. From tweaking angles for optimal trajectories to experimenting with different ball weights and textures, every change offers valuable insights. Throughout this process, collaboration and creativity shine. For example, designing 3D-printed parts to integrate seamlessly with off-the-shelf components or brainstorming unique mechanisms for loading and feeding balls can set your project apart. In the end, the satisfaction of seeing your shooter in action—and hitting its mark—is the ultimate reward. |