= Welcome to Software! = == Gear Needed To start developing robot software for team 2537 you will need the following * A laptop running Windows 7, 8, or 10 (you can do most things on a !Mac/Linux machine but you won't be able to test your code, so you really need a Windows laptop). * To load your code onto a robot and test it: * USB [https://www.amazon.com/PXN-PRO-2113-Professional-Controller/dp/B01JY0RAW2 Joystick] or USB [https://www.amazon.com/Logitech-940-000110-Gamepad-F310/dp/B003VAHYQY XBox controller] * Optional: USB [https://www.amazon.com/Genius-120-degree-Conference-Webcam-WideCam/dp/B0080CE5M4 webcam] * Optional: USB [https://www.amazon.com/dp/B0769GFWCZ A-B cable] * A robot (e.g. one of the team's peanut training robots) == Setup your laptop: 1. Install Java * Install Java Development Kit (JDK) version 8 or 11 from either [https://www.azul.com/downloads/zulu-community/ Zulu] (recommended) or [https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Oracle] * Add an environment variable JAVA_HOME that points to the directory where you installed Java and add the bin sub-folder to your search path; see detailed instructions [https://javatutorial.net/set-java-home-windows-10 here]. 2. Install Git (if not already on your computer) from [https://git-scm.com/downloads here] 3. Install Microsoft [https://code.visualstudio.com/download VSCode], required extensions, and the [https://github.com/wpilibsuite/vscode-wpilib/releases latest WPILib] extension. Follow the detailed instructions [https://wpilib.screenstepslive.com/s/currentCS/m/79833/l/932382-installing-vs-code here] 4. To use cameras, you need to install the National Instruments (NI) FRC 2017 Vision Development Module [http://www.ni.com/download/vision-development-module-2017/6640/en/ here]. Choose the 'current user' version, login to your NI account (or create one), and then select the 2017 Vision Development Module (FRC) for download. Unzip and install the module; when you later run the driver station software, it will ask you to activate the module using the instructions provided on the DriverStationSetup setup page 5. Install the National Instruments (NI) FRC 2018 Update Suite [http://www.ni.com/download/first-robotics-software-2015/5112/en/ here]. Detailed instructions are [https://wpilib.screenstepslive.com/s/4485/m/getting_started/l/599670-installing-the-frc-update-suite-all-languages here]. Note: you won't be able to activate the 2018 vision module until we receive the 2018 Kit of Parts in January (so use the 2017 module until then. 6. Install the [http://www.ctr-electronics.com/control-system/hro.html#product_tabs_technical_resources CTRE Phoenix Framework] 7. Make sure Microsoft Internet Explorer (yep) is installed on your computer and install the [https://www.microsoft.com/silverlight/ SilverLight] extension == Write your first Java Program(s) Java is one of the most popular programming languages and is the language used in most high schools because it is used for the AP Computer Science exam. Java is part of a family of very similar languages: C, C++, C#, Java and when you learn to program in one you can easily pick up the others. Team 2537 uses Java to program their robots. [wiki://ControlSystems/SoftwareTeam/Training/GettingStarted/IntroJava GetStartedWithJava] == Write your first Robot program(s) Once you have learned some basic Java, you're ready to start writing your first robot programs. All of the Java skills you learned are directly applicable to robot programming; if you haven't finished the first Java Programs above, you should do so now; otherwise, go to: [wiki://ControlSystems/SoftwareTeam/Training/GettingStarted/IntroRobotJava LearnJavaRoboticsBasics] == Build more functional robotics programs Once you have learned how to use the various robotics sensors, motors, and controllers, your ready to apply that knowledge to building more useful robotics programs. If you haven't finished the first Robot Programs above, you should do so now; otherwise, go to: [wiki://ControlSystems/SoftwareTeam/GettingStarted/functionalRobotJava LearnFunctionalRobotics] == Next Steps Now that you've had an introduction to the tools your team uses and to basic Java and robot programming, continue your training, diving deeper into Java on the [wiki://ControlSystems/SoftwareTeam/Training software training] page.