| 1 | == Java Gym == |
| 2 | All 2537 robot programming is done in the Java programming language. See [wiki:Software/WhyJava here] for why we program in Java. Many of the Getting Started examples involved cutting and pasting code, but to become a skilled software engineer, you'll need to be able to read and write code effectively on your own. Spend some time in the Java Gym strengthening your knowledge of Java these training links will help (and they'll help if you take AP Computer Science too): |
| 3 | |
| 4 | * [wiki:BeginnerSoftwareVideos Java Tutorial Videos] |
| 5 | * [http://www.sololearn.com/Play/Java/# Sololearn] Computer Based Java Training |
| 6 | * [wiki:JavaWPI_Training Java Training]: links to several other tutorials which help teach Java |
| 7 | * [wiki:SoftwareTrainingBeginner Beginning Exercises] |
| 8 | * [wiki:ProgrammingPrompts Training Prompts]: more Java programming exercises |
| 9 | * [wiki:Exercises Object Oriented Programming] |
| 10 | * [https://tutorial.cytron.io/2012/06/22/pid-for-embedded-design/ PID Tutorial] |
| 11 | |
| 12 | == Robocode == |
| 13 | To practice your Java skills in a fun way, you can use the Robocode to hone your skills in a fun way. Robocode creates a virtual robot arena on your computer where you can program virtual robots and battle them against pre-programmed robots supplied with the simulator or robots programmed by your friends. |
| 14 | |
| 15 | * [wiki:Setting_Up_Robocode Robocode Resources] |
| 16 | * [http://robowiki.net/ Robowiki] |
| 17 | * Interested in a fancier challenge courtesy of MIT? Try [https://www.battlecode.org/#/ BattleCode] |
| 18 | |
| 19 | == Python Programming == |
| 20 | Programing Languages are like tools; a screwdriver isn't better than a hammer, you just use them for different things. While 2537 doesn't use Python (and it isn't widely used for FRC programming), it's a popular language that can be very effective for certain problems; if you want to learn more, try our [wiki:ControlSystems/SoftwareTeam/IntroToPython Intro To Programming] (in python) |
| 21 | |
| 22 | == Java Interfacing == |
| 23 | Robots operate real world and must be able to sense their environment and manipulate it. If you want to learn more about using Java to interact with real devices at home, but can't afford to buy a roboRIO consider buying an inexpensive Raspberry Pi computer and using it. The !ZebraZero platform and exercises help you learn to use Java to interface with sensors and control motors; try the [wiki:ZebraZeroTraining Zebra Zero Training] |
| 24 | |
| 25 | * Advanced |
| 26 | * [wiki:AdvancedTraining Advanced Training] |
| 27 | |
| 28 | = Lessons = |
| 29 | * Schedule for Rookies |
| 30 | * Week 1 - Programming Intro - Online Tutorial with help from mentors and members |
| 31 | * Week 2 - Hello Robot - Based on Demo Program - Tank control on Peanut Bot |
| 32 | * Week 3 - Turbo Robot - Use Button to stop or speed up the Peanut Bot |
| 33 | * Week 4 - Arcade Control - Modify program for control the Peanut Bot with single joystick |
| 34 | * Week 5 - Encoders - Use Encoder to drive forward 1m in Autonomous Mode. |
| 35 | * Week 6 - Drive Straight - Use Encoders in both wheels to normalize speed between the motors to drive straight |
| 36 | * Final 4 Weeks - [wiki:SoftwareTrainingObstacleCourse Obstacle Course] - Use Encoders, Ultrasonics, and Limit Switches to navigate a simple obstacle course |