diff --git a/docs/source/programming_resources/android_studio_java/Android-Studio-Tutorial.rst b/docs/source/programming_resources/android_studio_java/Android-Studio-Tutorial.rst index 4cdf6e903..572c82e02 100644 --- a/docs/source/programming_resources/android_studio_java/Android-Studio-Tutorial.rst +++ b/docs/source/programming_resources/android_studio_java/Android-Studio-Tutorial.rst @@ -6,10 +6,17 @@ Android Studio Programming Tutorial

Introduction

-This tutorial will take you step-by-step through the process of -configuring, programming, and operating your Control System. This -tutorial uses Android Studio to help you get started programming your -robot. +This tutorial is a complete getting-started path for a team programming in +Java with Android Studio. It takes you step-by-step through setting up and +configuring your Control System hardware, installing and managing the Android +Studio project, and writing, deploying, and running your first OpMode. You do +not need to have worked through the Blocks or OnBot Java tutorials first. + +The tutorial is written for the officially supported setup: a REV Robotics +Control Hub as the ROBOT CONTROLLER and a REV Robotics Driver Hub as the +DRIVER STATION. Smartphones are legal to use in competition but are not +officially supported, and the pages this tutorial links to cover those setups +separately. Android Studio is an advanced integrated development environment for creating Android apps. This tool is the same tool that professional @@ -24,12 +31,16 @@ Android app developers use. Android Studio is only recommended for .. note:: :bdg-success:`AS` indicates that the content is specific to Android Studio Programming +Start with :doc:`Before You Start `, which +lists the documentation a Java team needs alongside this tutorial and gives a +checklist to complete before writing code. + .. toctree:: :maxdepth: 2 - + + before_you_start/before-you-start intro/intro config/config install/install manage/manage opmode/opmode - diff --git a/docs/source/programming_resources/android_studio_java/before_you_start/before-you-start.rst b/docs/source/programming_resources/android_studio_java/before_you_start/before-you-start.rst new file mode 100644 index 000000000..53193ee08 --- /dev/null +++ b/docs/source/programming_resources/android_studio_java/before_you_start/before-you-start.rst @@ -0,0 +1,127 @@ +Before You Start :bdg-success:`AS` +================================== + +This page is the starting point for a team that is beginning directly in +Android Studio. It describes the Control System setup that the rest of this +tutorial assumes, points to the documentation a Java team needs alongside it, +and gives a checklist to work through before writing any code. + +You do not need to have completed the Blocks or OnBot Java tutorials first. + +Supported Control System Setup +------------------------------ + +This tutorial is written for the officially supported setup: + +- a **REV Robotics Control Hub** as the ROBOT CONTROLLER, and +- a **REV Robotics Driver Hub** as the DRIVER STATION. + +.. important:: Smartphones are not officially supported. They are legal to use + in competition, but a team who uses one is responsible for all of their own + testing and troubleshooting. Only the REV Control Hub and the REV Driver Hub + are officially supported. + +Where a page in this tutorial describes more than one setup, follow the Control +Hub and Driver Hub instructions unless your team is using one of the smartphone +setups below. + +Smartphone Setups +^^^^^^^^^^^^^^^^^ + +Two smartphone setups appear throughout the Control System documentation. Both +are covered by the same pages this tutorial links to, in sections labeled for +smartphones: + +- A **smartphone ROBOT CONTROLLER** connected to a REV Robotics Expansion Hub. + This setup needs extra steps that a Control Hub does not: renaming the + phone, placing it in airplane mode with Wi-Fi on, pairing it to the DRIVER + STATION, and + :doc:`enabling Developer Options <../../tutorial_specific/android_studio/enabling_developer_options/Enabling-Developer-Options>` + so Android Studio can install the app onto it. +- A **smartphone DRIVER STATION** in place of a Driver Hub. This setup needs + the phone renamed and paired, and needs a Micro USB OTG adapter cable to + connect a gamepad. + +.. note:: A Control Hub has Developer Options enabled from the factory, so + teams using the supported setup can skip the phone-only preparation + steps. + +Documentation You Will Need +--------------------------- + +Read or bookmark these before working through the rest of this tutorial. They +are the pages that describe the hardware side of the Control System, which +Android Studio itself does not cover. + +- :doc:`Control System Introduction <../../shared/control_system_intro/The-FTC-Control-System>` + -- what each component of the Control System does. +- :doc:`Required Materials <../../shared/required_materials/Required-Materials>` + -- the hardware needed to complete this tutorial. +- :doc:`Computer Requirements ` + -- the laptop specifications recommended for running Android Studio. +- :doc:`Configuring Your Android Devices <../../shared/configuring_android/Configuring-Your-Android-Devices>` + -- installing apps, updating firmware, and pairing the DRIVER STATION to the + ROBOT CONTROLLER. +- :doc:`Connecting Devices to a Control or Expansion Hub ` + -- wiring power, motors, servos, and sensors to the hub. +- :doc:`Configuring Your Hardware ` + -- creating the robot configuration file from the DRIVER STATION, which is + how your OpMode finds each device by name. +- :doc:`Managing a Control Hub <../../shared/managing_control_hub/Managing-a-Control-Hub>` + -- renaming the Control Hub, changing its password, and updating Hub + firmware. +- :doc:`Managing a Driver Hub <../../shared/managing_smartphone_ds/Managing-a-Smartphone-Driver-Station>` + -- renaming the Driver Hub and updating the DRIVER STATION app. +- :doc:`Updating Components of the Control System ` + -- keeping the Control Hub OS, Driver Hub OS, and apps current. + +Before Writing Code +------------------- + +Work through this checklist first. Each item links to the page in the +documentation that covers it. + +.. list-table:: + :widths: 40 60 + :class: longtable + :header-rows: 1 + + * - Check + - Where it is covered + * - The Control Hub is wired to a 12V battery through a REV switch, and any + Expansion Hub, motors, servos, and sensors are connected. + - :doc:`Connecting Devices to a Control or Expansion Hub ` + * - The Control Hub and Driver Hub have been renamed to match the team + number naming requirements in the Competition Manual. + - :doc:`Managing a Control Hub <../../shared/managing_control_hub/Managing-a-Control-Hub>`, + :doc:`Managing a Driver Hub <../../shared/managing_smartphone_ds/Managing-a-Smartphone-Driver-Station>` + * - The Driver Hub is paired to the Control Hub, and the DRIVER STATION app + shows the ROBOT CONTROLLER as connected. + - :doc:`Configuring Your Android Devices <../../shared/configuring_android/Configuring-Your-Android-Devices>` + * - A robot configuration file has been created, saved, and activated from + the DRIVER STATION, and each device name matches the name your OpMode + will use. + - :doc:`Configuring Your Hardware ` + * - The Control Hub OS, Driver Hub OS, Hub firmware, and the DRIVER STATION + app are up to date. + - :doc:`Updating Components of the Control System ` + * - Android Studio is installed and the ``FtcRobotController`` project has + been downloaded and opened. + - :doc:`Installing Android Studio <../../tutorial_specific/android_studio/installing_android_studio/Installing-Android-Studio>`, + :doc:`Downloading the Android Studio Project Folder <../../tutorial_specific/android_studio/downloading_as_project_folder/Downloading-the-Android-Studio-Project-Folder>` + * - The ``FtcRobotController`` project and the DRIVER STATION app both come + from the current season's release. + - :doc:`Downloading the Android Studio Project Folder <../../tutorial_specific/android_studio/downloading_as_project_folder/Downloading-the-Android-Studio-Project-Folder>` + * - A USB Type C cable connects the laptop to the Control Hub's Type C port, + and Android Studio lists the hub as an available deployment target. + - :doc:`Creating and Running an OpMode <../../tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio)>` + +.. important:: Android Studio builds and installs the entire ROBOT CONTROLLER + app, replacing the one on the Control Hub. The app it installs must be + compatible with the DRIVER STATION app on the Driver Hub, so update both + from the same season's release. + +.. note:: This tutorial deploys the app over the USB Type C connection + described above. The Control Hub also broadcasts a Program & Manage Wi-Fi + network, used by the Blocks and OnBot Java tools and described in + :doc:`Connecting a Laptop to the Program & Manage Network <../../shared/program_and_manage_network/Connecting-a-Laptop-to-the-Program-&-Manage-Network>`. diff --git a/docs/source/programming_resources/android_studio_java/config/config.rst b/docs/source/programming_resources/android_studio_java/config/config.rst index 6ebbaaf77..0c6cde603 100644 --- a/docs/source/programming_resources/android_studio_java/config/config.rst +++ b/docs/source/programming_resources/android_studio_java/config/config.rst @@ -1,6 +1,15 @@ Configuring your Hardware :bdg-success:`AS` =========================================== +These pages cover the hardware side of the Control System: preparing the +Control Hub and Driver Hub, wiring devices to the hub, and creating the robot +configuration file from the DRIVER STATION. The configuration file gives each +motor, servo, and sensor the name your OpMode uses to find it, so complete +this section before writing code. + +Sections describing a smartphone ROBOT CONTROLLER or a smartphone DRIVER +STATION apply only to teams using a smartphone. + .. toctree:: :maxdepth: 1 diff --git a/docs/source/programming_resources/android_studio_java/install/install.rst b/docs/source/programming_resources/android_studio_java/install/install.rst index 39cfb8cc5..fd64171d1 100644 --- a/docs/source/programming_resources/android_studio_java/install/install.rst +++ b/docs/source/programming_resources/android_studio_java/install/install.rst @@ -1,6 +1,12 @@ Installing Android Studio :bdg-success:`AS` =========================================== +These pages cover installing Android Studio on your laptop and downloading the +``FtcRobotController`` project folder for the current season. Android Studio is +demanding on a laptop; check your laptop against the +:doc:`recommended computer requirements for software development ` +before installing. + .. toctree:: ../../tutorial_specific/android_studio/installing_android_studio/Installing-Android-Studio ../../tutorial_specific/android_studio/downloading_as_project_folder/Downloading-the-Android-Studio-Project-Folder \ No newline at end of file diff --git a/docs/source/programming_resources/android_studio_java/intro/intro.rst b/docs/source/programming_resources/android_studio_java/intro/intro.rst index 3a8c105ed..45e654abf 100644 --- a/docs/source/programming_resources/android_studio_java/intro/intro.rst +++ b/docs/source/programming_resources/android_studio_java/intro/intro.rst @@ -1,6 +1,11 @@ Introduction :bdg-success:`AS` ===================================== +These pages introduce the Control System, list the hardware needed to complete +this tutorial, and describe the Android devices used as the ROBOT CONTROLLER +and the DRIVER STATION. Most of *Using Your Android Device* describes the +smartphone setups; teams using a Driver Hub only need its first section. + .. toctree:: :maxdepth: 1 diff --git a/docs/source/programming_resources/android_studio_java/opmode/opmode.rst b/docs/source/programming_resources/android_studio_java/opmode/opmode.rst index e712bf88d..c1f70bcb1 100644 --- a/docs/source/programming_resources/android_studio_java/opmode/opmode.rst +++ b/docs/source/programming_resources/android_studio_java/opmode/opmode.rst @@ -1,8 +1,15 @@ Writing an Op Mode :bdg-success:`AS` ==================================== +These pages cover writing an OpMode in the ``TeamCode`` module, building it, +installing it onto the ROBOT CONTROLLER, and running it from the DRIVER +STATION. + +A Control Hub has Developer Options enabled from the factory. The first page +below is needed only by teams using a smartphone ROBOT CONTROLLER. + .. toctree:: - ../../tutorial_specific/android_studio/enabling_developer_options/Enabling-Developer-Options + Enabling Developer Options (Smartphone Robot Controller) <../../tutorial_specific/android_studio/enabling_developer_options/Enabling-Developer-Options> ../../tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio) ../../tutorial_specific/android_studio/controlling_a_servo/Controlling-a-Servo-(Android-Studio) ../../tutorial_specific/android_studio/using_sensors/Using-Sensors-(Android-Studio)