Scratchbot is a teaching program that helps people learn FRC programming with no prior programming experience. The core idea behind Scratchbot is to allow rookies to move the robot from week 1 rather than having them learn the language separately.
Scratchbot has various pre-made methods such as "moveForward()" or "turnRight()" that can be called without any prior knowledge. These methods are then utilized alongside a custom lesson structure that incorporates W3Schools along with over 50 lessons & exercises made by Wingspan. This helps to teach rookies the fundamentals of coding while keeping them engaged via robot interaction. They use these methods with for-loops, conditionals, and overtime progress to making their own classes under a command-based paradigm without any Scratchbot methods.
Near-complete Java coverage
Controller input and coordinate systems
Object Oriented Programming
Command-based programming
Motor configuration
Basic GitHub experience
Learners begin by going through lessons by either W3Schools or Wingspan to learn the necessary skills for the upcoming exercise. For the exercise, they create a copy of their team’s Scratchbot repository (the setup of which is listed in the setup section) on GitHub. Then, they follow the exercise description to use the skills they’ve just read about. After they’ve completed the exercise, they can deploy their code to the robot and watch it move!
There are 6 core units in the lessons:
0. Welcome to software
1. Basic Java
2. More Java & Programming Practices
3. OOP
4. Advanced Java
5. Basic FRC
The use of Scratchbot is slowly lessened throughout the units so that by the end, it’s not used at all.
Create a new repository from an existing repository with working robot code. This is where you’ll add Scratchbot support to share with your students.
If you are using a robot with differential drive, switch to the differential drive branch of the ScratchbotTemplate repo.
Copy and paste the Scratchbot and Lab folders into your repository.
Copy and paste the contents of the Robot.java file from the Scratchbot template into your repo’s Robot.java file
Complete the //TODO tasks. This will only require calling a few movement commands (e.g. move forward) using your team's robot code.
Upload the repository to GitHub and share it with your students!
Scratchbot can be run on any robot with a functional drivetrain. For later lessons, one REV motor is used.
Scratchbot currently teaches Java. Additionally, lessons on motor configuration currently only teach about REV hardware.
If you’d be interested in setting up a version for C++ in the future, please reach out! Other hardware libraries may also be added based on received interest.
Before a widespread release, we’re aiming to garner as much feedback as possible on the current version of Scratchbot and its lessons. This is year 2 of the program after internal testing for year 1.
For the pilot, you’ll get a link to the lessons website with all of our software lessons for Scratchbot along with a link to the repository to set up Scratchbot itself.
You have flexibility to implement these resources as you’d like. However, we ask that you periodically communicate your experience along with feedback. Feedback may include:
Bugs
Issues with lesson quality & clarity
Comments on curriculum structure
Issues with task descriptions
You’ll be given all of these resources by mid-August (most likely earlier), so that you have time for preseason planning.
Sign up for the Pilot here.
Q: What kind of teams is Scratchbot for?
A: Scratchbot is for any team that aims to teach people without prior experience in Java how to code an FRC bot.
Q: How much prior knowledge do you need before starting the lessons?
A: None! No programming knowledge is expected.
Q: What if some rookies already know Java?
A: Lessons that teach for FRC specifically are marked with symbols so that rookies with prior experience in Java aren’t forced to go through each one.
Any other questions? Please reach out at vierahawkrobotics@gmail.com!