diff --git a/docs/source/ftc_sdk/updating/ds_app/Updating-the-DS-App.rst b/docs/source/ftc_sdk/updating/ds_app/Updating-the-DS-App.rst index 73e4e82f..8bac9141 100644 --- a/docs/source/ftc_sdk/updating/ds_app/Updating-the-DS-App.rst +++ b/docs/source/ftc_sdk/updating/ds_app/Updating-the-DS-App.rst @@ -5,61 +5,55 @@ The Driver Station App is one of the Apps provided with the *FIRST* Tech Challenge :doc:`Software Development Kit (SDK) `. The Driver Station App is the major interface for robot configuration, gamepad support, self-inspect, Team code selection and execution, and others. This app runs -on an approved Android Smartphone or the REV Driver Hub. +on the REV Driver Hub or an approved Android smartphone. This page shows how to update the Driver Station (DS) app on these devices: -- An approved Android DS phone - REV Driver Hub +- An approved Android DS phone These methods for updating the Driver Station App are the same regardless of the programming language/environment used to program robot Team Code. -.. dropdown:: Updating Driver Station (DS) app on Android smartphone +.. dropdown:: Updating Driver Station (DS) app on REV Driver Hub - There are 2 methods to update the DS app on a DS phone: + Here are 3 methods to update the DS app on a REV Driver Hub: - 1. REV Hardware Client (RHC) - 2. “Side loading” with APK + #. REV Hardware Client (RHC) + #. "Side loading” with APK + #. Software Manager on REV Driver Hub .. dropdown:: Method 1 - REV Hardware Client (RHC) - Windows computers only - Plug the DS phone directly into the computer with RHC installed and - open. Use a USB data cable, not a charge-only cable. Make sure the - “Hardware” tab is active, at top left. The DS app on the phone does - **not** need to be open. + Plug the REV Driver Hub directly into the Windows computer with RHC + installed and open. Use a USB-C data cable. Make sure the “Hardware” tab + is active, at top left. The DS app on the Driver Hub does **not** need + to be open. Here the computer does not need to be connected to the internet, since :doc:`in Updating the REV Hardware Client ` the required DS update file was previously downloaded. - The RHC app will recognize the phone, as shown here: + The RHC app will recognize the Driver Hub, as shown here: - .. figure:: images/030-RHC-recognize-phone.png - :alt: Recognizing the Phone + .. figure:: images/070-RHC-recognize-DH.png + :alt: Recognizing the Driver Hub :width: 80% :align: center - Recognizing the Phone - - If the phone is not recognized, ensure that the phone has :doc:`developer - options - ` - enabled. If necessary, click the "Scan for Devices" button in the - lower-left of the REV Hardware Client app to force the RHC to rescan - devices. + Recognizing the Driver Hub - Once recognized, click on that phone’s large icon/rectangle. The RHC app - now displays the update status of the DS app, if any. + Once recognized, click on the Driver Hub’s large icon/rectangle. The RHC app now displays + the update status of the DS app, if any. - .. figure:: images/040-RHC-update-DS-phone.png - :alt: Update Status of Phone + .. figure:: images/075-RHC-update-DH.png + :alt: Updating the Driver Hub :width: 80% :align: center - Update Status of Phone + Updating the Driver Hub Simply click the blue Update rectangle (green arrow) – done! @@ -70,16 +64,16 @@ of the programming language/environment used to program robot Team Code. You could have selected an **older** version of the DS app, in the drop-down list just above the blue Update rectangle. - After install, drag the DS app icon from the app menu to the phone’s - home screen. + After install, drag the DS app icon from the app menu to the Driver + Hub’s home screen, if needed. - You may now unplug the DS phone from the computer, and close the RHC + You may now unplug the Driver Hub from the computer, and close the RHC app. The updated DS app is ready to use. .. dropdown:: Method 2 - Side-load APK Here you will work directly with the Android Package or **APK file** to - install the DS app on the Android phone. Any computer can be used, PC or + install the DS app on the Driver Hub. Any computer can be used, PC or Mac, old or new. This method is sometimes called “side-loading”. 1. Connect your computer to the internet, open a web browser, and @@ -110,23 +104,23 @@ of the programming language/environment used to program robot Team Code. At this time, you could rename the file to reflect its current version number. For example, ``FtcDriverStation-release-8.0.apk`` or simply ``DS-8.0-release.apk``. This distinguishes the file from other versions - that might be stored later on that DS phone. + that might be stored later on that Driver Hub. - 2. Transfer the APK file from the computer to the DS phone’s Downloads - (or Download) folder. Use a USB data cable (not a charge-only cable). - When complete, you may unplug the DS phone from the computer. + 2. Transfer the APK file from the computer to the Driver Hub’s Downloads + folder. Use a USB-C data cable. When complete, you may unplug the + Driver Hub from the computer. - 3. Uninstall the existing (obsolete) DS app, by dragging its icon to a + 3. Uninstall the existing (obsolete) DS app, by dragging its icon to the Trash/Uninstall icon. Or, touch and hold the DS icon for “App info”, then choose Uninstall. - 4. On the DS phone, navigate to the Downloads folder. This can be done + 4. On the Driver Hub, navigate to the Downloads folder. This can be done in several ways: - - at the main app menu (swipe up), touch the Files icon or the - Downloads icon (if present) + - at the main app menu (swipe up), touch the Files icon, then three + bars at top left - - use the basic file manager in Settings/Storage, then Explore or Files + - use the basic file manager in Settings/Storage, then touch Files - use a third-party app such as FX File Explorer (from the Google Play Store) @@ -134,52 +128,84 @@ of the programming language/environment used to program robot Team Code. Touch the APK filename that you transferred. Respond to the prompts, to install the updated DS app. - After install, drag the DS app icon from the menu to the phone’s home - screen. + After install, drag the DS app icon from the menu to the Driver Hub’s + home screen, if needed. Done! The updated DS app is now ready to use. -.. dropdown:: Updating Driver Station (DS) app on REV Driver Hub + .. dropdown:: Method 3 - Software Manager - Here are 3 methods to update the DS app on a REV Driver Hub: + The REV Driver Hub has a built-in app called the Software Manager, which + can automatically update the DS app (and other related software). It + requires only an internet connection. - #. REV Hardware Client (RHC) - #. "Side loading” with APK - #. Software Manager on REV Driver Hub + 5. Close all apps, and open the Driver Hub’s Wi-Fi menu (in Settings, or + swipe down twice from top of home screen). Temporarily connect the + Driver Hub to the internet via Wi-Fi. + + 6. Open the Software Manager app at the Driver Hub home screen (left + image, below). + + .. figure:: images/910-DH-double.png + :alt: REV Software Manager + :width: 80% + :align: center - The first two methods are essentially the same as above, for updating on a - DS phone. + REV Software Manager + + 7. The Software Manager will automatically check for any updates needed, + and display the results (right image, above). Click the grey box to + update the Driver Station (DS) app, if needed. + + 8. When all is complete, “Forget” the Wi-Fi network used for internet + access. + + Done! Now the Driver Hub is updated and ready for use. + +.. dropdown:: Updating Driver Station (DS) app on Android smartphone + + There are 2 methods to update the DS app on a DS phone: + + 1. REV Hardware Client (RHC) + 2. “Side loading” with APK .. dropdown:: Method 1 - REV Hardware Client (RHC) - Windows computers only - Plug the REV Driver Hub directly into the Windows computer with RHC - installed and open. Use a USB-C data cable. Make sure the “Hardware” tab - is active, at top left. The DS app on the Driver Hub does **not** need - to be open. + Plug the DS phone directly into the computer with RHC installed and + open. Use a USB data cable, not a charge-only cable. Make sure the + “Hardware” tab is active, at top left. The DS app on the phone does + **not** need to be open. Here the computer does not need to be connected to the internet, since :doc:`in Updating the REV Hardware Client ` the required DS update file was previously downloaded. - The RHC app will recognize the Driver Hub, as shown here: + The RHC app will recognize the phone, as shown here: - .. figure:: images/070-RHC-recognize-DH.png - :alt: Recognizing the Driver Hub + .. figure:: images/030-RHC-recognize-phone.png + :alt: Recognizing the Phone :width: 80% :align: center - Recognizing the Driver Hub + Recognizing the Phone - Once recognized, click on the Driver Hub’s large icon/rectangle. The RHC app now displays - the update status of the DS app, if any. + If the phone is not recognized, ensure that the phone has :doc:`developer + options + ` + enabled. If necessary, click the "Scan for Devices" button in the + lower-left of the REV Hardware Client app to force the RHC to rescan + devices. - .. figure:: images/075-RHC-update-DH.png - :alt: Updating the Driver Hub + Once recognized, click on that phone’s large icon/rectangle. The RHC app + now displays the update status of the DS app, if any. + + .. figure:: images/040-RHC-update-DS-phone.png + :alt: Update Status of Phone :width: 80% :align: center - Updating the Driver Hub + Update Status of Phone Simply click the blue Update rectangle (green arrow) – done! @@ -190,16 +216,16 @@ of the programming language/environment used to program robot Team Code. You could have selected an **older** version of the DS app, in the drop-down list just above the blue Update rectangle. - After install, drag the DS app icon from the app menu to the Driver - Hub’s home screen, if needed. + After install, drag the DS app icon from the app menu to the phone’s + home screen. - You may now unplug the Driver Hub from the computer, and close the RHC + You may now unplug the DS phone from the computer, and close the RHC app. The updated DS app is ready to use. .. dropdown:: Method 2 - Side-load APK Here you will work directly with the Android Package or **APK file** to - install the DS app on the Driver Hub. Any computer can be used, PC or + install the DS app on the Android phone. Any computer can be used, PC or Mac, old or new. This method is sometimes called “side-loading”. 1. Connect your computer to the internet, open a web browser, and @@ -230,23 +256,23 @@ of the programming language/environment used to program robot Team Code. At this time, you could rename the file to reflect its current version number. For example, ``FtcDriverStation-release-8.0.apk`` or simply ``DS-8.0-release.apk``. This distinguishes the file from other versions - that might be stored later on that Driver Hub. + that might be stored later on that DS phone. - 2. Transfer the APK file from the computer to the Driver Hub’s Downloads - folder. Use a USB-C data cable. When complete, you may unplug the - Driver Hub from the computer. + 2. Transfer the APK file from the computer to the DS phone’s Downloads + (or Download) folder. Use a USB data cable (not a charge-only cable). + When complete, you may unplug the DS phone from the computer. - 3. Uninstall the existing (obsolete) DS app, by dragging its icon to the + 3. Uninstall the existing (obsolete) DS app, by dragging its icon to a Trash/Uninstall icon. Or, touch and hold the DS icon for “App info”, then choose Uninstall. - 4. On the Driver Hub, navigate to the Downloads folder. This can be done + 4. On the DS phone, navigate to the Downloads folder. This can be done in several ways: - - at the main app menu (swipe up), touch the Files icon, then three - bars at top left + - at the main app menu (swipe up), touch the Files icon or the + Downloads icon (if present) - - use the basic file manager in Settings/Storage, then touch Files + - use the basic file manager in Settings/Storage, then Explore or Files - use a third-party app such as FX File Explorer (from the Google Play Store) @@ -254,39 +280,10 @@ of the programming language/environment used to program robot Team Code. Touch the APK filename that you transferred. Respond to the prompts, to install the updated DS app. - After install, drag the DS app icon from the menu to the Driver Hub’s - home screen, if needed. + After install, drag the DS app icon from the menu to the phone’s home + screen. Done! The updated DS app is now ready to use. - .. dropdown:: Method 3 - Software Manager - - The REV Driver Hub has a built-in app called the Software Manager, which - can automatically update the DS app (and other related software). It - requires only an internet connection. - - 1. Close all apps, and open the Driver Hub’s Wi-Fi menu (in Settings, or - swipe down twice from top of home screen). Temporarily connect the - Driver Hub to the internet via Wi-Fi. - - 2. Open the Software Manager app at the Driver Hub home screen (left - image, below). - - .. figure:: images/910-DH-double.png - :alt: REV Software Manager - :width: 80% - :align: center - - REV Software Manager - - 3. The Software Manager will automatically check for any updates needed, - and display the results (right image, above). Click the grey box to - update the Driver Station (DS) app, if needed. - - 4. When all is complete, “Forget” the Wi-Fi network used for internet - access. - - Done! Now the Driver Hub is updated and ready for use. - Questions, comments and corrections to westsiderobotics@verizon.net diff --git a/docs/source/ftc_sdk/updating/rc_app/Updating-the-RC-App.rst b/docs/source/ftc_sdk/updating/rc_app/Updating-the-RC-App.rst index 7ffdd300..7882ef49 100644 --- a/docs/source/ftc_sdk/updating/rc_app/Updating-the-RC-App.rst +++ b/docs/source/ftc_sdk/updating/rc_app/Updating-the-RC-App.rst @@ -10,8 +10,8 @@ communicates with the Driver Station App to control the robot. This page shows how to update the Robot Controller (RC) app on these devices: -- An approved Android RC smartphone - REV Control Hub +- An approved Android RC smartphone Blocks / OnBot Java vs Android Studio ------------------------------------- @@ -71,134 +71,6 @@ These instructions are for independently updating the RC App in situations where such an independent update is supported - i.e. Blocks or OnBot Java development. Expand the following instructions that apply to your Robot Controller hardware: -.. dropdown:: Robot Controller (RC) app on Android phone - - Here are 2 methods to update the RC app on a Robot Controller (RC) - phone: - - 1. REV Hardware Client (RHC) - 2. “Side loading” with APK - - .. note:: - The Manage page, under Program and Manage, on a computer or Driver - Station device, **does not** offer updating an RC app on a connected - Robot Controller phone. - - .. dropdown:: Method 1 - REV Hardware Client - Windows computers only - - Plug the RC phone directly into the computer with RHC installed and - open. Use a USB data cable, not a charge-only cable. Make sure the - “Hardware” tab is active, at top left. The RC app on the phone does - **not** need to be open. - - Here the computer does not need to be connected to the internet, since - :doc:`in Updating the REV Hardware Client - ` - the required DS update file was previously downloaded. - - The RHC app will recognize the phone, as shown here: - - .. figure:: images/080-RHC-recognize-RC-phone.png - :alt: Recognizing the Phone - :width: 80% - :align: center - - Recognizing the Phone - - If the phone is not recognized, ensure that the phone has :doc:`developer - options - ` - enabled. If necessary, click the "Scan for Devices" button in the - lower-left of the REV Hardware Client app to force the RHC to rescan - devices. - - Once recognized, click on that phone’s large icon/rectangle. The RHC app - now displays the update status of the DS app, if any. - - .. figure:: images/082-RHC-update-RC-phone.png - :alt: Update Status of Phone - :width: 80% - :align: center - - Update Status of Phone - - Simply click the blue Update rectangle (green arrow) – done! - - The update was fast, because you had already downloaded the RC app to - the RHC. That was noted with ’(Already Downloaded)“, to the left of the - blue Update rectangle. - - You could have selected an **older** version of the RC app, in the - drop-down list just above the blue Update rectangle. - - After install, drag the RC app icon from the menu to the phone’s home - screen. - - You may now unplug the RC phone from the computer, and close the RHC - app. The updated RC app is ready to use. - - .. dropdown:: Method 2 - Side-load - - Here you will work directly with the Android Package or **APK file** to - install the RC app on the Android phone. Any computer can be used, PC or - Mac, old or new. This method is sometimes called “side-loading”. - - 1. Connect your computer to the internet, open a web browser, and - navigate to the `SDK github - repository `__. - - .. figure:: images/050-FTC-repo.png - :alt: SDK GitHub Repo - :width: 80% - :align: center - - SDK GitHub Repo - - At the right side under “Releases”, click the “Latest” icon (yellow - oval, above). - - In the next page, scroll down slightly in the “Latest” section, to the - short list of “Assets”. Click on the file - “FtcRobotController-release.apk”, to download it to your computer. - - .. figure:: images/090-github-assets-RC.png - :alt: SDK GitHub Releases - :width: 80% - :align: center - - SDK GitHub Releases - - At this time, you could rename the file to reflect its current version - number. For example, ``FtcRobotController-release-8.0.apk`` or simply - ``RC-8.0-release.apk``. This distinguishes the file from other versions - that might be stored later on that RC phone. - - 2. Transfer the APK file from the computer to the RC phone’s Downloads - (or Download) folder. Use a USB data cable (not a charge-only cable). - When complete, you may unplug the RC phone from the computer. - - 3. Uninstall the existing (obsolete) RC app, by dragging its icon to a - Trash/Uninstall icon. Or, touch and hold the RC icon for “App info”, - then choose Uninstall. - - 4. On the RC phone, navigate to the Downloads folder. This can be done - in several ways: - - - at the main app menu (swipe up), touch the Files icon or the - Downloads icon (if present) - - use the basic file manager in Settings/Storage: touch Explore or - Files - - use a third-party app such as FX File Explorer (from the Google Play - Store) - - Touch the APK filename that you transferred. Respond to the prompts, to - install the updated RC app. - - After install, drag the RC app icon from the app menu to the RC phone’s - home screen. - - Done! The updated RC app is now ready to use. - .. dropdown:: Robot Controller (RC) app on REV Control Hub Here are 3 methods to update the RC app on a REV Control Hub: @@ -300,14 +172,14 @@ Expand the following instructions that apply to your Robot Controller hardware: When the completion message appears, the updated RC app is ready to use. - .. dropdown:: Method 3 - Manage page on DS phone or Driver Hub + .. dropdown:: Method 3 - Manage page on Driver Hub or DS phone This method can be used if your computer is unavailable or unable to connect via Wi-Fi to the Control Hub. For example, your desktop computer might have only a wired (Ethernet) network port, lacking Wi-Fi. But this method does require the RC APK file to be stored in the - Download (or Downloads) folder on the DS phone or Driver Hub. That’s + Download (or Downloads) folder on the Driver Hub or DS phone. That’s correct: **Robot Controller APK** stored on the **Driver Station** device. @@ -345,6 +217,134 @@ Expand the following instructions that apply to your Robot Controller hardware: When the completion message appears, the updated RC app is ready to use. +.. dropdown:: Robot Controller (RC) app on Android phone + + Here are 2 methods to update the RC app on a Robot Controller (RC) + phone: + + 1. REV Hardware Client (RHC) + 2. “Side loading” with APK + + .. note:: + The Manage page, under Program and Manage, on a computer or Driver + Station device, **does not** offer updating an RC app on a connected + Robot Controller phone. + + .. dropdown:: Method 1 - REV Hardware Client - Windows computers only + + Plug the RC phone directly into the computer with RHC installed and + open. Use a USB data cable, not a charge-only cable. Make sure the + “Hardware” tab is active, at top left. The RC app on the phone does + **not** need to be open. + + Here the computer does not need to be connected to the internet, since + :doc:`in Updating the REV Hardware Client + ` + the required DS update file was previously downloaded. + + The RHC app will recognize the phone, as shown here: + + .. figure:: images/080-RHC-recognize-RC-phone.png + :alt: Recognizing the Phone + :width: 80% + :align: center + + Recognizing the Phone + + If the phone is not recognized, ensure that the phone has :doc:`developer + options + ` + enabled. If necessary, click the "Scan for Devices" button in the + lower-left of the REV Hardware Client app to force the RHC to rescan + devices. + + Once recognized, click on that phone’s large icon/rectangle. The RHC app + now displays the update status of the DS app, if any. + + .. figure:: images/082-RHC-update-RC-phone.png + :alt: Update Status of Phone + :width: 80% + :align: center + + Update Status of Phone + + Simply click the blue Update rectangle (green arrow) – done! + + The update was fast, because you had already downloaded the RC app to + the RHC. That was noted with ’(Already Downloaded)“, to the left of the + blue Update rectangle. + + You could have selected an **older** version of the RC app, in the + drop-down list just above the blue Update rectangle. + + After install, drag the RC app icon from the menu to the phone’s home + screen. + + You may now unplug the RC phone from the computer, and close the RHC + app. The updated RC app is ready to use. + + .. dropdown:: Method 2 - Side-load + + Here you will work directly with the Android Package or **APK file** to + install the RC app on the Android phone. Any computer can be used, PC or + Mac, old or new. This method is sometimes called “side-loading”. + + 1. Connect your computer to the internet, open a web browser, and + navigate to the `SDK github + repository `__. + + .. figure:: images/050-FTC-repo.png + :alt: SDK GitHub Repo + :width: 80% + :align: center + + SDK GitHub Repo + + At the right side under “Releases”, click the “Latest” icon (yellow + oval, above). + + In the next page, scroll down slightly in the “Latest” section, to the + short list of “Assets”. Click on the file + “FtcRobotController-release.apk”, to download it to your computer. + + .. figure:: images/090-github-assets-RC.png + :alt: SDK GitHub Releases + :width: 80% + :align: center + + SDK GitHub Releases + + At this time, you could rename the file to reflect its current version + number. For example, ``FtcRobotController-release-8.0.apk`` or simply + ``RC-8.0-release.apk``. This distinguishes the file from other versions + that might be stored later on that RC phone. + + 2. Transfer the APK file from the computer to the RC phone’s Downloads + (or Download) folder. Use a USB data cable (not a charge-only cable). + When complete, you may unplug the RC phone from the computer. + + 3. Uninstall the existing (obsolete) RC app, by dragging its icon to a + Trash/Uninstall icon. Or, touch and hold the RC icon for “App info”, + then choose Uninstall. + + 4. On the RC phone, navigate to the Downloads folder. This can be done + in several ways: + + - at the main app menu (swipe up), touch the Files icon or the + Downloads icon (if present) + - use the basic file manager in Settings/Storage: touch Explore or + Files + - use a third-party app such as FX File Explorer (from the Google Play + Store) + + Touch the APK filename that you transferred. Respond to the prompts, to + install the updated RC app. + + After install, drag the RC app icon from the app menu to the RC phone’s + home screen. + + Done! The updated RC app is now ready to use. + Other descriptions of updating the RC app are `at REV Robotics’ excellent documentation site `__. diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_color_sensor/configuring-color-sensor.rst b/docs/source/hardware_and_software_configuration/configuring/configuring_color_sensor/configuring-color-sensor.rst index e99e2218..0823fd68 100644 --- a/docs/source/hardware_and_software_configuration/configuring/configuring_color_sensor/configuring-color-sensor.rst +++ b/docs/source/hardware_and_software_configuration/configuring/configuring_color_sensor/configuring-color-sensor.rst @@ -19,10 +19,10 @@ configuration screen for this I2C bus. | -The Expansion Hub has four independent I2C buses, labeled "0" through "3". In this example, since you connected the Color Sensor to the port labeled "0", it resides on I2C Bus 0. +The Control Hub or Expansion Hub has four independent I2C buses, labeled "0" through "3". In this example, since you connected the Color Sensor to the port labeled "0", it resides on I2C Bus 0. 2. Look at the **I2C Bus 0** screen. There should already be a sensor -configured for this bus. The Expansion Hub has its own built-in +configured for this bus. The Control Hub or Expansion Hub has its own built-in inertial measurement unit (IMU) sensor. This sensor can be used to determine the orientation of a robot, as well as measure the accelerations on a robot. @@ -32,7 +32,7 @@ accelerations on a robot. | -The built-in IMU is internally connected to I2C Bus 0 on each Expansion Hub. Whenever you configure an Expansion Hub using the Robot Controller, the app automatically configures the IMU for I2C Bus 0. You will need to add another I2C device for this bus to be able to configure the color sensor. +The built-in IMU is internally connected to I2C Bus 0 on each Control Hub or Expansion Hub. Whenever you configure a Control Hub or Expansion Hub using the Robot Controller, the app automatically configures the IMU for I2C Bus 0. You will need to add another I2C device for this bus to be able to configure the color sensor. 3. Press the **Add** button to add another I2C device to this bus. diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/configuring-dual-hubs.rst b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/configuring-dual-hubs.rst index 905f8b7b..0b7805bb 100644 --- a/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/configuring-dual-hubs.rst +++ b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/configuring-dual-hubs.rst @@ -1,5 +1,5 @@ -Using Two Expansion Hubs -======================== +Adding an Expansion Hub +======================= Introduction ~~~~~~~~~~~~ @@ -7,19 +7,13 @@ Introduction A single REV Robotics Control or Expansion Hub has a limited amount of input/output (I/O) ports available. In some instances, you might want to use more devices than there are ports available. For these instances you might -need to connect a second Expansion Hub to your first Hub to add more I/O +need to connect an Expansion Hub to your first Hub to add more I/O ports. -This document describes how to connect and configure two Expansion Hubs -for use in the FIRST Tech Challenge. Note that the FIRST Tech Challenge -Competition Manual limits the maximum number of -Expansion Hubs on a single robot to two. - -**Important Note:** This document describes the process for setting up a -smartphone Robot Controller with two Expansion Hubs. Control Hubs have a -reserved address, so you do not need to worry about an Expansion Hub's -address when it is the only Expansion Hub connected to a Control Hub. -However, the process for physically connecting and configuring them is the same. +This document describes how to connect and configure an additional Expansion +Hub for use in the FIRST Tech Challenge. Note that the FIRST Tech Challenge +Competition Manual limits the maximum number of Control or Expansion Hubs on +a single robot to two. See rule R701 for the full details. Equipment Needed ~~~~~~~~~~~~~~~~ @@ -35,17 +29,8 @@ need the following items: * - Required Item(s) - Image - * - Two (2) FIRST-approved Android smartphones. One should have the Robot - Controller app installed and the other should have the Driver Station - app installed. For a list of FIRST-approved Android smartphones, refer - to the current Game Manual Part 1, rule . - - .. figure:: images/twoAndroidPhones.jpg - - * - USB Type A male to type mini-B male cable. - - .. figure:: images/USBTypeACable.jpg - - * - Micro USB OTG adapter. - - .. figure:: images/OTGAdapter.jpg + * - REV Robotics Driver Hub (REV-31-1596) + - .. figure:: images/driverHub.jpg * - REV Robotics Switch, Cable, & Bracket (REV-31-1387). - .. figure:: images/REVSwitch.jpg @@ -54,13 +39,15 @@ need the following items: - .. figure:: images/TamiyaAdapter.jpg * - FIRST-approved 12V Battery (such as Tetrix W39057). For a list of - FIRST-approved 12V batteries, refer to the current Game Manual - Part 1, rule . + FIRST-approved 12V batteries, refer to the current Competition Manual, + rule R601. - .. figure:: images/Battery.jpg - * - Two(2) REV Robotics Expansion Hubs (REV-31-1153). + * - REV Robotics Control Hub (REV-31-1595). + - .. figure:: images/controlHub.jpg + + * - REV Robotics Expansion Hub (REV-31-1153). - .. figure:: images/ExpansionHub.jpg - .. figure:: images/ExpansionHub.jpg * - REV Robotics (or equivalent) 3-Pin JST PH Cable (REV-35-1414, 3 pack shown but only one needed). - .. figure:: images/3PinJSTPH.jpg @@ -68,8 +55,107 @@ need the following items: * - REV Robotics XT30 Extension Cable (REV-31-1394). - .. figure:: images/xt30Extension.jpg +Connecting the Expansion Hub +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. The first step is to use the 3-pin JST PH cable and the XT30 cable +to daisy chain the two Hubs together. Before you do this, ensure that +neither Hub is powered on. + +Use the XT30 extension cable to connect an XT30 power port on the Control +Hubs to an XT30 power port on the other Expansion Hub. + + + +2. The Control Hub and Expansion Hub use the RS-485 serial bus standard +to communicate between devices. You can use the 3-pin JST PH cable to +connect one of the ports labeled “RS485” on the Control Hub to one of +the ports labeled “RS485” on the Expansion Hub. + + + +Note that it is not important which “RS485” port that you select on the +Expansion Hub or Control Hub. Either port should work. + +.. figure:: images/RS485Port.jpg + :align: center + +3. Once you have the two devices daisy chained together (12V power and +RS-485 signal) you can connect the battery and power switch, and power +on the devices. + + + +Configuring Both devices +~~~~~~~~~~~~~~~~~~~~~~~~ + +If you successfully daisy chained your Expansion Hub and Control Hub, +then you should be able to create a new configuration file that includes +both devices. + +**Note:** If you already have a configuration that contains just the +Control Hub, you can add the Expansion Hub by editing the configuration +and pressing the "Scan" button. + +Connect your Driver Hub to the Control Hub's WiFi network and select the +Configure Robot option from the Driver Station app. Press the New button +to create a new configuration file. When you first scan for hardware, your +Robot Controller should detect the embedded Control Hub. The Robot Controller +will automatically label this device as an Control Hub “Portal”. The Robot +Controller will communicate through this portal to the individual Hubs. + + + +If you click on the Portal item in the configuration screen, you should +see both the Control Hub and the Expansion Hub listed. + + + +You can save this configuration file and return to the main screen of +the Driver Station. After the robot has been restarted, both Hubs should +have a solid green LED. On the Expansion Hub, the LED should blink blue +every ~5 seconds. + +Congratulations, you are now ready to use your combination of Control and +Expansion Hubs! You can configure and operate these Hubs as you would an +individual Hub. + +Using Two Expansion Hubs +~~~~~~~~~~~~~~~~~~~~~~~~ + +Teams without access to a Control Hub may use two Expansion Hubs on +their robot. + +Additional Equipment Needed +--------------------------- + +There is some additional equipment required for teams who aren't +using a Control Hub on their robot. + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + :class: longtable + + * - Required Item(s) + - Image + + * - A FIRST-approved Android smartphone with the FTC Robot Controller + app installed. For a list of FIRST-approved Android smartphones, + refer to the current Competition Manual, rule R704. + - .. figure:: images/oneAndroidPhone.jpg + + * - USB Type A male to type mini-B male cable. + - .. figure:: images/USBTypeACable.jpg + + * - Micro USB OTG adapter. + - .. figure:: images/OTGAdapter.jpg + + * - An additional REV Robotics Expansion Hub (REV-31-1153). + - .. figure:: images/ExpansionHub.jpg + Changing the Address of an Expansion Hub -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---------------------------------------- You can use the Advanced Settings menu of the Robot Controller App to change the address of any connected Expansion Hubs. @@ -120,9 +206,9 @@ indicating that the Expansion Hub’s address has been changed. :align: center Connecting the Two Expansion Hubs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------------------- -1. After you have changed the address of one of the Hubs, you can use the +5. After you have changed the address of one of the Hubs, you can use the 3-pin JST PH cable and the XT30 cable to daisy chain the two Hubs together. Before you do this, disconnect the 12V battery and power switch from the first Expansion Hub. @@ -133,7 +219,7 @@ Expansion Hubs to an XT30 power port on the other Hub. .. figure:: images/XT30ExtensionConnected.jpg :align: center -2. The Expansion Hubs use the RS-485 serial bus standard to communicate +6. The Expansion Hubs use the RS-485 serial bus standard to communicate between devices. You can use the 3-pin JST PH cable to connect one of the ports labeled “RS485” on one Expansion Hub to one of the ports labeled “RS485” on the other Expansion Hub. @@ -147,7 +233,7 @@ Expansion Hub. Either port should work. .. figure:: images/RS485Port.jpg :align: center -3. Once you have the two devices daisy chained together (12V power and +7. Once you have the two devices daisy chained together (12V power and RS-485 signal) you can reconnect the battery and power switch, and then connect the Robot Controller and power on the devices. @@ -155,7 +241,7 @@ connect the Robot Controller and power on the devices. :align: center Configuring Your Expansion Hubs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------------- If you successfully daisy chained your two Expansion Hubs, then you should be able to create a new configuration file that includes @@ -171,7 +257,7 @@ file. When you first scan for hardware, your Robot Controller should detect the Expansion Hub that is immediately connected to the Robot Controller via the OTG adapter and USB cable. The Robot Controller will automatically label this device as an Expansion Hub “Portal”. The Robot -Controller will talk through this portal to the individual Expansion +Controller will controller through this portal to the individual Expansion Hubs. .. figure:: images/ExpansionHubPortal.jpg diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/controlHub.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/controlHub.jpg new file mode 100644 index 00000000..95ae94f1 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/controlHub.jpg differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/driverHub.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/driverHub.jpg new file mode 100644 index 00000000..39a29df3 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/driverHub.jpg differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/oneAndroidPhone.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/oneAndroidPhone.jpg new file mode 100644 index 00000000..a198ad7a Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_dual_hubs/images/oneAndroidPhone.jpg differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.rst b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.rst index 44d5b737..98d06dd7 100644 --- a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.rst +++ b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.rst @@ -4,8 +4,9 @@ Configuring an External Webcam with a Control Hub Introduction ------------ -The Game Manual Part 1 allows USB Video Class (UVC) cameras for -robot vision tasks. If you are using a REV Robotics Control Hub, then +The Competition Manual allows the use of USB Video Class (UVC) compatible +cameras for computer vision-related tasks. See rule R715 for the full details. +If you are using a REV Robotics Control Hub, then you will need to use an external webcam, since the Control Hub does not include a built-in camera. This document describes how to connect, configure and use an external webcam with a Control Hub. @@ -69,10 +70,10 @@ When the configuration has been saved and activated, the external UVC camera can be programmed for robot vision tasks. The SDK software offers “webcam” versions of its sample Blocks and Java -Op Modes, showing how to use the external UVC camera for Vuforia or -TensorFlow operations. +Op Modes, showing how to use the external UVC camera for VisionPortal operations. -.. image:: images/blockswebcam.jpg +.. image:: images/blockswebcam.png + :alt: Blocks code for initializing a webcam. Before opening and editing an Op Mode, verify that the intended configuration (with camera) is active. Also verify that the name @@ -83,7 +84,7 @@ Image Preview ------------- The *FIRST* Tech Challenge apps provide camera preview for ‘stream-enabled’ Op -Modes using Vuforia or TensorFlow Object Detection (TFOD). +Modes using VisionPortal. On a paired DRIVER STATION device, with the camera connected and configured, select a stream-enabled Op Mode. Press the INIT button, and @@ -110,18 +111,38 @@ pressed to continue running the Op Mode. .. image:: images/DS-webcam-preview-CH-3.jpg **Important Note:** Because the Camera Stream feature is only available -during the INIT phase of an Op Mode, you must ensure that the Vuforia -library is activated in your Op Mode **before** the waitForStart -command: +during the INIT phase of an Op Mode, you must ensure that the VisionPortal +is activated in your Op Mode **before** the waitForStart command: -.. image:: images/activateBeforeWaitForStart.jpg +.. image:: images/activateBeforeWaitForStart.png + :alt: The init code for the webcam must be called before waitForStart. If you do not see the Camera Stream option in your main menu on your -DRIVER STATION, then verify that the Vuforia function is activated +DRIVER STATION, then verify that the VisionPortal is activated before the waitForStart command in your Op Mode. Also make sure you’ve given the system enough time to initialize the Vuforia software before you check to see if Camera Stream is available. +Scrcpy +------ + +To view the camera output from a computer while an OpMode is running, you +can use `scrcpy `__. To do this, +you will first need to obtain an ADB connection with your Control Hub. +This can be done by connecting a USB-A - USB-C cable to the USB-C port +on your Control Hub. If on Windows, you may also connect to your Control +Hub WiFi network and open the `REV Hardware Client `__. +Once connected, use `these instructions `__ +to install and run scrcpy on your computer. + +.. image:: images/webcamWithScrcpy.jpg + :alt: The camera output viewed with scrcpy. + +**Important Note:** While scrcpy is a great way to view the camera output +outside of competitions, the Competition Manual does not allow teams to +have any devices other than the DRIVER STATION connected to your Control +Hub during a match. See rule R708 for the full details. + External HDMI Monitor --------------------- diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.jpg deleted file mode 100644 index d89febe4..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.png b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.png new file mode 100644 index 00000000..c6f1da5e Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/activateBeforeWaitForStart.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.jpg deleted file mode 100644 index b31b962d..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.png b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.png new file mode 100644 index 00000000..bfbc08c5 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/blockswebcam.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/webcamWithScrcpy.jpg b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/webcamWithScrcpy.jpg new file mode 100644 index 00000000..21186b23 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/configuring_external_webcam/images/webcamWithScrcpy.jpg differ diff --git a/docs/source/hardware_and_software_configuration/configuring/configuring_uvc_camera/configuring-uvc-camera.rst b/docs/source/hardware_and_software_configuration/configuring/configuring_uvc_camera/configuring-uvc-camera.rst index 1345557b..076e81d3 100644 --- a/docs/source/hardware_and_software_configuration/configuring/configuring_uvc_camera/configuring-uvc-camera.rst +++ b/docs/source/hardware_and_software_configuration/configuring/configuring_uvc_camera/configuring-uvc-camera.rst @@ -4,11 +4,11 @@ Configuring an External UVC Camera and a Powered USB Hub Introduction ------------ -Game rules and in the Game Manual Part 1 have been modified to allow the -use of USB Video Class (UVC) Compatible Cameras for computer -vision-related tasks. Teams have the option of using an externally -connected camera instead of the Android smartphone’s built-in camera for -computer vision tasks. +The Competition Manual allows the use of USB Video Class (UVC) compatible +cameras for computer vision-related tasks. See rule R715 for the full details. +Teams who are using an Android smartphone as their ROBOT CONTROLLER have the +option of using an externally connected camera instead of the built-in camera +for computer vision tasks. The advantage of using an external camera is that the camera can be mounted in a location that is convenient for vision-related tasks while @@ -56,11 +56,13 @@ Note that the Modern Robotics Core Power Distribution Module cannot be used for this task since its data transfer speed is not fast enough to work with the USB-connected webcam. -Also note that rule c(iii) permits the use of a powered USB hub to make -this connection. If a team uses a powered USB hub, the power to operate -the USB hub can only come from either of the following sources: +Also note that the Competition Manual permits the use of a powered USB +hub to make this connection. See rule R617 for the full details. If a +team uses a powered USB hub, the power to operate the USB hub can only +come from either of the following sources: -1. An externally connected USB 5V Battery Pack. +1. An externally connected COTS USB Battery Pack in compliance with the + Competition Manual. See rule R602 for the full details. 2. The 5V DC Aux power port of a REV Robotics Expansion Hub (note that this requires advanced skills to implement). diff --git a/docs/source/hardware_and_software_configuration/configuring/getting_started/getting-started.rst b/docs/source/hardware_and_software_configuration/configuring/getting_started/getting-started.rst index 06059533..cc7704d5 100644 --- a/docs/source/hardware_and_software_configuration/configuring/getting_started/getting-started.rst +++ b/docs/source/hardware_and_software_configuration/configuring/getting_started/getting-started.rst @@ -1,9 +1,8 @@ Getting Started =============== - -Getting a Smartphone Robot Controller Ready -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Creating a Configuration +~~~~~~~~~~~~~~~~~~~~~~~~ Before you can communicate with the motor, servo and sensors that are connected to the Control Hub or Expansion Hub, you first must create a @@ -11,6 +10,13 @@ configuration file on your Robot Controller, so that the Robot Controller will know what hardware is available on the Control Hub's or Expansion Hub's external ports. +Getting the Control Hub Ready +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you are using a Control Hub, you do not need to make any additional +connections. You simply need to make sure that the Control Hub is +powered on and paired to the DRIVER STATION. + Connecting an Android Smartphone to an Expansion Hub ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -75,12 +81,6 @@ Expansion Hub) with the Robot Controller app. Controller app might not reliably connect to this Expansion Hub the next time you turn your system on. -Getting the Control Hub Ready -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you are using a Control Hub, you do not need to make any additional -connections. You simply need to make sure that the Control Hub is -powered on and paired to the DRIVER STATION. Creating a Configuration File Using the DRIVER STATION ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/source/hardware_and_software_configuration/configuring/index.rst b/docs/source/hardware_and_software_configuration/configuring/index.rst index ad36a316..99068f4c 100644 --- a/docs/source/hardware_and_software_configuration/configuring/index.rst +++ b/docs/source/hardware_and_software_configuration/configuring/index.rst @@ -12,8 +12,7 @@ such that you may use them in your own projects. configuring_servo/configuring-servo configuring_color_sensor/configuring-color-sensor configuring_digital_touch_sensor/configuring-digital-touch-sensor - configuring_uvc_camera/configuring-uvc-camera configuring_external_webcam/configuring-external-webcam + configuring_uvc_camera/configuring-uvc-camera configuring_dual_hubs/configuring-dual-hubs - managing_esd/managing-esd saving_config/saving-config \ No newline at end of file diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.jpg deleted file mode 100644 index d0b8302d..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.png new file mode 100644 index 00000000..c609fecd Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep5.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.jpg deleted file mode 100644 index 760cc32a..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.png new file mode 100644 index 00000000..5bc24710 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep6.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.jpg deleted file mode 100644 index 861b9672..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.png new file mode 100644 index 00000000..9b44414c Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationNewStep7.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.jpg deleted file mode 100644 index b188ced4..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.png new file mode 100644 index 00000000..f9cacb25 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep1.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.jpg deleted file mode 100644 index 9a56e5f9..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.png new file mode 100644 index 00000000..8444dfe2 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep2.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.jpg deleted file mode 100644 index 8add296f..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.png new file mode 100644 index 00000000..2c6e4bf6 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep3.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.jpg b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.jpg deleted file mode 100644 index 39d37150..00000000 Binary files a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.jpg and /dev/null differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.png b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.png new file mode 100644 index 00000000..0c433e18 Binary files /dev/null and b/docs/source/hardware_and_software_configuration/configuring/saving_config/images/SavingConfigurationInformationStep4.png differ diff --git a/docs/source/hardware_and_software_configuration/configuring/saving_config/saving-config.rst b/docs/source/hardware_and_software_configuration/configuring/saving_config/saving-config.rst index edd83761..9b805914 100644 --- a/docs/source/hardware_and_software_configuration/configuring/saving_config/saving-config.rst +++ b/docs/source/hardware_and_software_configuration/configuring/saving_config/saving-config.rst @@ -11,7 +11,7 @@ Saving the Configuration Information Instructions 1. Press the **Done** button to go up one level in the configuration screens. -.. image:: images/SavingConfigurationInformationStep1.jpg +.. image:: images/SavingConfigurationInformationStep1.png :align: center | @@ -19,30 +19,30 @@ screens. 2. Press the **Done** button again to return to the highest level in the configuration screens. -.. image:: images/SavingConfigurationInformationStep2.jpg +.. image:: images/SavingConfigurationInformationStep2.png :align: center | 3. Press the **Save** button. -.. image:: images/SavingConfigurationInformationStep3.jpg +.. image:: images/SavingConfigurationInformationStep3.png :align: center | 4. When prompted, specify a configuration file name using the -touchscreen's keypad (use "TestConfig" for this example). +touchscreen's keypad ("into_the_deep" for this example). -.. image:: images/SavingConfigurationInformationStep4.jpg +.. image:: images/SavingConfigurationInformationStep4.png :align: center | -5. Press the **OK** button to save your configuration information +1. Press the **OK** button to save your configuration information using that file name. -.. image:: images/SavingConfigurationInformationNewStep5.jpg +.. image:: images/SavingConfigurationInformationNewStep5.png :align: center | @@ -50,7 +50,7 @@ using that file name. 6. After the configuration file has been saved, touch the Android back-arrow button to return to the main screen of the app. -.. image:: images/SavingConfigurationInformationNewStep6.jpg +.. image:: images/SavingConfigurationInformationNewStep6.png :align: center | @@ -58,7 +58,7 @@ back-arrow button to return to the main screen of the app. 7. Verify that the configuration file is the active configuration file on the main DRIVER STATION screen. -.. image:: images/SavingConfigurationInformationNewStep7.jpg +.. image:: images/SavingConfigurationInformationNewStep7.png :align: center | \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index eed00b8a..53d5b64e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -94,6 +94,13 @@ to see why. Computer Aided Design (CAD) +.. toctree:: + :caption: Electrostatic Discharge + :maxdepth: 1 + :hidden: + + Managing ESD Effects + .. toctree:: :caption: Manufacturing :maxdepth: 1 diff --git a/docs/source/programming_resources/shared/configuring_android/Configuring-Your-Android-Devices.rst b/docs/source/programming_resources/shared/configuring_android/Configuring-Your-Android-Devices.rst index 0e353c55..ce1fd74d 100644 --- a/docs/source/programming_resources/shared/configuring_android/Configuring-Your-Android-Devices.rst +++ b/docs/source/programming_resources/shared/configuring_android/Configuring-Your-Android-Devices.rst @@ -4,19 +4,26 @@ Configuring your Android Devices What Needs to Be Configured for My Control System? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Driver Hub Configuration +^^^^^^^^^^^^^^^^^^^^^^^^ + +Teams who are using the REV Robotics Driver Hub as their DRIVER STATION +should refer to the `official documentation from REV Robotics `_ +for instructions on how to set up and use the REV Robotics Driver Hub. + Control Hub Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: References to the DRIVER STATION smartphone may instead apply to the - `REV Driver Hub `__, + `REV Robotics Driver Hub `__, which is preloaded with the Driver Station (DS) app. Teams who are using a Control Hub (which has an integrated Android Device) will only need to configure a single smartphone for use as a DRIVER STATION. The process is as follows: * Rename the smartphone to "-DS" (where is replaced by your team number). -* Install the Driver Station (DS) app onto the DRIVER STATION device. (The DS app is pre-installed on the REV Driver Hub.) +* Install the Driver Station (DS) app onto the DRIVER STATION device. (The DS app is pre-installed on the REV Robotics Driver Hub.) * Put your phone into Airplane Mode (with the WiFi radio still on). * Pair (i.e., wirelessly connect) the DRIVER STATION to the Control Hub. @@ -25,7 +32,7 @@ will only need to configure a single smartphone for use as a DRIVER STATION. The | -.. important:: Eventually the Control Hub will need be renamed so +.. important:: Eventually the Control Hub will need to be renamed so that its name complies with the Competition Manual, but for now we will use the Control Hub with its default name. You can learn how to manage a Control Hub (and modify its name, password, etc.) in @@ -41,7 +48,7 @@ smartphone for use as an DRIVER STATION. The process is as follows, * Rename one smartphone to "-RC" (replace with your team number). * Install the Robot Controller app onto the Robot Controller phone. * Rename a second smartphone to "-DS" (where is replaced by your team number). -* Install the Driver Station app onto the DRIVER STATION device. (The DS app is pre-installed on the REV Driver Hub.) +* Install the Driver Station app onto the DRIVER STATION device. (The DS app is pre-installed on the REV Robotics Driver Hub.) * Put your phones into Airplane Mode (with the WiFi radios still on). * Pair (i.e., wirelessly connect) the DRIVER STATION to the Robot Controller. @@ -55,7 +62,7 @@ smartphone for use as an DRIVER STATION. The process is as follows, Renaming Your Smartphones ~~~~~~~~~~~~~~~~~~~~~~~~~ -The official rules of the *FIRST* Tech Challenge (see ) require that +The official rules of the *FIRST* Tech Challenge (see R707) require that you change the Wi-Fi name of your smartphones to include your team number and "-RC" if the phone is a Robot Controller or "-DS" if it is a DRIVER STATION. A team can insert an additional dash and a letter ("A", "B", "C", etc.) if the team has more than one set of Android phones. @@ -123,31 +130,39 @@ level, as described below. * - 8. Use touch pad to enter new name of device. If the device will be a Robot Controller, specify your team number and -RC. If the device will be a DRIVER STATION, specify your team number and -DS. You can also set the Wi-Fi Direct inactivity timeout to *Never disconnect* and then hit the\ **SAVE** button to save your changes. Note that in the screenshot shown to the right, the team number is 9999. The "-C" indicates that this is from the third pair of smartphones for this team. The -RC indicates that this phone will be a Robot Controller. - |rename8| - * - 9. After renaming phone, power cycle thedevice. + * - 9. After renaming your phone, power cycle the device. - Installing the *FIRST* Tech Challenge Apps ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +For detailed instructions on how to install and update apps, please see these +other pages: + +:ref:`ROBOT CONTROLLER app ` + +:ref:`DRIVER STATION app ` + + **As of 2021, the SDK apps (v 6.1 and higher) are no longer available on Google Play.** The `REV Hardware Client `__ -software will allow you to download the apps to devices: REV Control -Hub, REV Expansion Hub, REV Driver Hub, and other approved Android +software will allow you to download the apps to devices: REV Robotics Control +Hub, REV Robotics Expansion Hub, REV Robotics Driver Hub, and other approved Android devices (*see section below, called Updating Apps on Android Phones*). Here are some of the benefits: -* Connect to a REV Control Hub via WiFi. +* Connect to a REV Robotics Control Hub via WiFi. * One Click update of all software on connected devices. * Pre-download software updates without a connected device. * Back up and restore user data from Control Hub. * Install and switch between DS and RC applications on Android Devices. * Access the Robot Control Console on the Control Hub. -The app releases are also available on the `FTCRobotController -Github +The app releases are also available on the `FtcRobotController +GitHub repository `__. It is possible to "side-load" the apps onto the Robot Controller (RC) and Driver Station (DS) phones. However, this section of the document @@ -155,8 +170,8 @@ does **not** include such instructions; other document pages describe side-loading the :ref:`RC app ` and the :ref:`DS app `. -Updating Apps and Firmware on REV Devices (REV Expansion Hub, REV Control Hub, REV Driver Hub) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Updating Apps and Firmware on REV Robotics Devices (REV Robotics Expansion Hub, REV Robotics Control Hub, REV Robotics Driver Hub) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The `REV Hardware Client `__ software is used to install and update apps, firmware and/or @@ -164,8 +179,8 @@ operating systems on devices from REV Robotics. Simply connect the device via USB to your PC with the REV Hardware Client installed and running, and the software will detect connected hardware. After detection, the REV Hardware Client can then -`update the Robot Controller (RC) app on a REV Control Hub `__, -`update the Driver Station (DS) app on a REV Driver Hub `__, +`update the Robot Controller (RC) app on a REV Robotics Control Hub `__, +`update the Driver Station (DS) app on a REV Robotics Driver Hub `__, or `update firmware `__. @@ -203,7 +218,7 @@ follows: * - 3. Enter your pattern, PIN or password to enable the Developer options menu. - - * - 4. The "Developer options" menu will now appear in your Settings menu. Depending on your device, it may appear under Settings >General > Developer options. + * - 4. The "Developer options" menu will now appear in your Settings menu. Depending on your device, it may appear under Settings > General > Developer options. - |devop4| * - 5. To disable the Developer options at anytime, tap the switch. @@ -298,7 +313,7 @@ task. * - 2. It takes approximately 18 seconds for the Control Hub to power on. The Control Hub is ready to pair with the Driver Station when the LED turns green. Note: the light blinks blue every ~5 seconds to indicate that the Control Hub is healthy. - |pairing2| - * - 3. On the Driver Station device, browse the available apps and locate the ** FTC Driver Station** icon. Tap on the icon to launch the Driver Station app. Note that the first time you launch the app your Android device might prompt you for permissions that the app will need to run properly. Whenever prompted, press **Allow** to grant the requested permission. + * - 3. On the Driver Station device, browse the available apps and locate the **FTC Driver Station** icon. Tap on the icon to launch the Driver Station app. Note that the first time you launch the app your Android device might prompt you for permissions that the app will need to run properly. Whenever prompted, press **Allow** to grant the requested permission. - |pairing3| * - 4. Touch the three vertical dots on the upper right hand corner of the main screen of the Driver Station app. This will launch a pop-up menu. @@ -325,7 +340,7 @@ task. * - 11. When prompted, specify the password for the Control Hub's WiFi network and press \ **Connect** to connect to the Hub. Note that the default password for the Control Hub network is ``password``. Also note that when you connect to the Control Hub's WiFi network successfully, the DRIVER STATION will not have access to the Internet. - |pairing11| - * - 12. After you successfully connected to the Hub, use the back arrow to navigate to theprevious screen. You should see the name of the WiFi network listed under "Current Robot Controller:". Use the back-arrow key to return to the Settings screen. Then press the back-arrow key one more time to return to the main DRIVER STATION screen. + * - 12. After you successfully connected to the Hub, use the back arrow to navigate to the previous screen. You should see the name of the WiFi network listed under "Current Robot Controller:". Use the back-arrow key to return to the Settings screen. Then press the back-arrow key one more time to return to the main DRIVER STATION screen. - |pairing12| * - 13. Verify that the DRIVER STATION screen has changed and that it now indicates that it is connected to the Control Hub. The name of the Control Hub's WiFi network (FTC-1Ybr in this example) should be displayed in the Network field on the Driver Station. diff --git a/docs/source/programming_resources/shared/pid_coefficients/pid-coefficients.rst b/docs/source/programming_resources/shared/pid_coefficients/pid-coefficients.rst index a4a96a54..6c11a788 100644 --- a/docs/source/programming_resources/shared/pid_coefficients/pid-coefficients.rst +++ b/docs/source/programming_resources/shared/pid_coefficients/pid-coefficients.rst @@ -1,11 +1,9 @@ Changing PID Coefficients ========================== -The REV Robotics Expansion Hub allows a user to change the PID +The REV Robotics Control Hub and REV Robotics Expansion Hub allow a user to change the PID coefficients used for closed loop motor control. The PID coefficients -are channel and mode specific. Note that the Modern Robotics and -Hitechnic DC motor controllers do not support adjustable PID -coefficients. +are channel and mode specific. The following op mode uses an extended or enhanced DcMotor class (called “DcMotorEx”) to change the PID coefficients for the RUN_USING_ENCODER @@ -14,9 +12,9 @@ setPIDCoefficients method of the DcMotorEx class to change the values. This method is not available with the standard DcMotor class. Note that changes made to the PID coefficients do not persist if you -power cycle the REV Robotics Expansion Hub. If you need your changes to +power cycle the REV Robotics Control Hub or REV Robotics Expansion Hub. If you need your changes to the PID to persist, you should consider modifying your op mode to store -state information on the Android phone. The Android Developer website +state information on the Control Hub or Android phone. The Android Developer website has a tutorial on how to save data from your app onto an Android device `here `__ @@ -32,11 +30,9 @@ has a tutorial on how to save data from your app onto an Android device /** * Created by tom on 9/26/17. - * This assumes that you are using a REV Robotics Expansion Hub + * This assumes that you are using a REV Robotics Control Hub or REV Robotics Expansion Hub * as your DC motor controller. This op mode uses the extended/enhanced - * PID-related functions of the DcMotorEx class. The REV Robotics Expansion Hub - * supports the extended motor functions, but other controllers (such as the - * Modern Robotics and Hitechnic DC Motor Controllers) do not. + * PID-related functions of the DcMotorEx class. */ @Autonomous(name="Concept: Change PID", group = "Concept") @@ -51,7 +47,7 @@ has a tutorial on how to save data from your app onto an Android device public void runOpMode() { // get reference to DC motor. - // since we are using the Expansion Hub, + // since we are using the Control Hub or Expansion Hub, // cast this motor to a DcMotorEx object. motorExLeft = (DcMotorEx)hardwareMap.get(DcMotor.class, "left_drive"); @@ -98,12 +94,9 @@ methods of the DcMotorControllerEx class: /** * Created by tom on 9/26/17. - * This assumes that you are using a REV Robotics Expansion Hub + * This assumes that you are using a REV Robotics Control Hub or REV Robotics Expansion Hub * as your DC motor controller. This op mode uses the extended/enhanced - * PID-related functions of the DcMotorControllerEx class. - * The REV Robotics Expansion Hub supports the extended motor controller - * functions, but other controllers (such as the Modern Robotics and - * Hitechnic DC Motor Controllers) do not. + * PID-related functions of the DcMotorControllerEx class. */ @Autonomous(name="Concept: Change PID Controller", group = "Examples") @@ -124,7 +117,7 @@ methods of the DcMotorControllerEx class: waitForStart(); // get a reference to the motor controller and cast it as an extended functionality controller. - // we assume it's a REV Robotics Expansion Hub (which supports the extended controller functions). + // we assume it's a REV Robotics Control Hub or REV Robotics Expansion Hub (which supports the extended controller functions). DcMotorControllerEx motorControllerEx = (DcMotorControllerEx)motorLeft.getController(); // get the port number of our configured motor. diff --git a/docs/source/programming_resources/shared/pidf_coefficients/pidf-coefficients.rst b/docs/source/programming_resources/shared/pidf_coefficients/pidf-coefficients.rst index 9b8edd71..9847fff7 100644 --- a/docs/source/programming_resources/shared/pidf_coefficients/pidf-coefficients.rst +++ b/docs/source/programming_resources/shared/pidf_coefficients/pidf-coefficients.rst @@ -1,7 +1,7 @@ Changing PIDF Coefficients =========================== -The REV Robotics Expansion Hub allows a user to change the PIDF +The REV Robotics Control Hub or REV Robotics Expansion Hub allows a user to change the PIDF coefficients used for closed loop motor control. The PIDF coefficients are specific to each channel (motor port) and to each RunMode. @@ -12,9 +12,9 @@ uses the setPIDFCoefficients method of the DcMotorEx class to change the values. This method is not available with the standard DcMotor class. Note that changes made to the PIDF coefficients do not persist if you -power cycle the REV Robotics Expansion Hub. If you need your changes to +power cycle the REV Robotics Control Hub or REV Robotics Expansion Hub. If you need your changes to persist, consider modifying your OpMode to store state information on -the Android phone. The Android Developer website has a tutorial on how +the Control Hub or Android phone. The Android Developer website has a tutorial on how to save data from your app onto an Android device `here `__ @@ -30,11 +30,9 @@ to save data from your app onto an Android device /** * Created by Tom on 9/26/17. Updated 9/24/2021 for PIDF. - * This assumes that you are using a REV Robotics Expansion Hub + * This assumes that you are using a REV Robotics Control Hub or REV Robotics Expansion Hub * as your DC motor controller. This OpMode uses the extended/enhanced - * PIDF-related functions of the DcMotorEx class. The REV Robotics Expansion Hub - * supports the extended motor functions, but other controllers (such as the - * deprecated Modern Robotics and Hitechnic DC Motor Controllers) do not. + * PIDF-related functions of the DcMotorEx class. */ @Autonomous(name="Concept: Change PIDF", group = "Concept") @@ -52,7 +50,7 @@ to save data from your app onto an Android device public void runOpMode() { // Get reference to DC motor. - // Since we are using the Expansion Hub, + // Since we are using the Control Hub or Expansion Hub, // cast this motor to a DcMotorEx object. motorExLeft = (DcMotorEx)hardwareMap.get(DcMotor.class, "left_drive"); @@ -99,12 +97,9 @@ way to adjust the PIDF coefficients is to use the extended/enhanced /** * Created by Tom on 9/26/17. Updated 9/24/2021 for PIDF. - * This assumes that you are using a REV Robotics Expansion Hub + * This assumes that you are using a REV Robotics Control Hub or REV Robotics Expansion Hub * as your DC motor controller. This OpMode uses the extended/enhanced * PIDF-related functions of the DcMotorControllerEx class. - * The REV Robotics Expansion Hub supports the extended motor controller - * functions, but other controllers (such as the deprecated Modern Robotics - * and Hitechnic DC Motor Controllers) do not. */ @Autonomous(name="Concept: Change PIDF Controller", group = "Concept") @@ -128,7 +123,7 @@ way to adjust the PIDF coefficients is to use the extended/enhanced waitForStart(); // Get a reference to the motor controller and cast it as an extended functionality controller. - // We assume it's a REV Robotics Expansion Hub, which supports the extended controller functions. + // We assume it's a REV Robotics Control Hub or REV Robotics Expansion Hub, which supports the extended controller functions. DcMotorControllerEx motorControllerEx = (DcMotorControllerEx)motorLeft.getController(); // Get the port number of our configured motor. @@ -156,8 +151,5 @@ way to adjust the PIDF coefficients is to use the extended/enhanced } } -Note 1: As of SDK 7.0, the former PID-only methods are still -available, but deprecated. - -Note 2: the deprecated Modern Robotics and Hitechnic DC motor -controllers do not support adjustable PID or PIDF coefficients. +Note: As of SDK 7.0, the former PID-only methods are still +available, but deprecated. \ No newline at end of file diff --git a/docs/source/programming_resources/shared/required_materials/Required-Materials.rst b/docs/source/programming_resources/shared/required_materials/Required-Materials.rst index 5567604f..af00a1ae 100644 --- a/docs/source/programming_resources/shared/required_materials/Required-Materials.rst +++ b/docs/source/programming_resources/shared/required_materials/Required-Materials.rst @@ -39,6 +39,9 @@ tutorials, you will need to have the following materials available: .. |f310| image:: images/LogitechF310.jpg +.. |driverhub| image:: images/DriverHub.jpg + + .. list-table:: :widths: 50 50 :class: longtable @@ -47,33 +50,40 @@ tutorials, you will need to have the following materials available: * - Required Item(s) - Image - * - Two (2) FIRST-approved* Android devices OR One (1) Control Hub and one (1) FIRST-approved* Android device for the DRIVER STATION - - |androidphones| Or |chandphones| + * - A REV Robotics Control Hub to be used as a ROBOT CONTROLLER. + Alternately, the Competition Manual does allow teams to instead + use a REV Robotics Expansion Hub and a select list of Android + phones. See rules R701 and R704 for the full details. + - |chandphones| |exhub| + + * - A REV Robotics Driver Hub to be used as a DRIVER STATION device. + Alternately, the Competition Manual does allow teams to instead + use a select list of Android phones. See rule R901 for the full + details. + - |driverhub| * - Wireless Internet access. - |wifi| - * - Laptop with Microsoft Windows 7, 8 or 10 and Wi-Fi capability. Note that your laptop should have the most current service packs and system updates from Microsoft. If you are using a different type of machine (such as a Chromebook, Android Tablet, etc.) as your programming device, the steps might differ slightly on how to access the Programming Server on the Robot Controller. Refer to your device’s user documentation for details on howto connect to a Wi-Fi network. + * - Laptop with Microsoft Windows 7, 8, 10 or 11 and Wi-Fi capability. Note that your laptop should have the most current service packs and system updates from Microsoft. If you are using a different type of machine (such as a Chromebook, Android Tablet, etc.) as your programming device, the steps might differ slightly on how to access the Programming Server on the Robot Controller. Refer to your device’s user documentation for details on how to connect to a Wi-Fi network. - |laptop| * - Javascript-enabled web browser (Google Chrome is the recommended browser). - |chrome| - * - If you are using a smartphone as part of your Robot Controller, you will also need a REV Robotics Expansion Hub (REV-31-1153) to connect to the motors, servos, and sensors. Control Hub users will use the integrated ports built into the Control Hub to connect motors, servos, and sensors. - - |exhub| - * - REV Robotics Switch, Cable, & Bracket (REV-31-1387). - |switch| - - * - If you are using an approved 12V battery that has a Tamiya connector (like the Tetrix W39057 battery) you will need a >REV Robotics Tamiya to XT30 Adapter Cable (REV-31-1382). Ifyou have a REV Robotics Slim Battery (REV-31-1302) then you will not need this adapter since the REV battery already has an XT30 connector. - - |tamiya| - - * - *FIRST*-approved\* 12V Battery (such as Tetrix W39057 or REV Robotics REV-31-1302).\*\ **Fora list of FIRST-approved 12V batteries, refer to the current Competition Manual.**\ + + * - *FIRST*-approved\* 12V Battery (such as Tetrix W39057 or REV Robotics REV-31-1302).\*\ **For a list of FIRST-approved 12V batteries, refer to the current Competition Manual.**\ - |battery| Or |slimbattery| * - *FIRST*-approved\* 12V DC Motor (such as Tetrix W39530, with power cable W41352).\*\ **For a list of FIRST-approved 12V motors,refer to the current Competition Manual.**\ - |motor| + + * - If you are using an approved 12V battery that has a Tamiya connector (like the Tetrix W39057 battery) you will need a REV Robotics Tamiya to XT30 Adapter Cable (REV-31-1382). If you have a REV Robotics Slim Battery (REV-31-1302) then you will not need this adapter since the REV battery already has an XT30 connector. + - |tamiya| + * - REV Robotics Anderson to JST VH Cable (REV-31-1381). - |jst| @@ -85,12 +95,12 @@ tutorials, you will need to have the following materials available: * - REV Robotics Touch Sensor with 4-Pin Cable( REV-31-1425). - |touch| + + * - Logitech F310 USB Gamepad. + - |f310| * - If you are using a smartphone as your Robot Controller, you will need a USB Type A male to type mini-B male cable. Control Hub users donot need this cable. - |usba| * - If you are using a smartphone as your Robot Controller, you will need two (2) micro USB OTG adapters. If you are using a Control Hub as your Robot Controller, you will need one(1) micro USB OTG adapter. - |otg| |otg| - - * - Logitech F310 USB Gamepad. - - |f310| \ No newline at end of file diff --git a/docs/source/programming_resources/shared/required_materials/images/DriverHub.jpg b/docs/source/programming_resources/shared/required_materials/images/DriverHub.jpg new file mode 100755 index 00000000..39a29df3 Binary files /dev/null and b/docs/source/programming_resources/shared/required_materials/images/DriverHub.jpg differ diff --git a/docs/source/programming_resources/shared/using_android_device/Using-Your-Android-Device.rst b/docs/source/programming_resources/shared/using_android_device/Using-Your-Android-Device.rst index 70fb1bdc..ae0b70b9 100644 --- a/docs/source/programming_resources/shared/using_android_device/Using-Your-Android-Device.rst +++ b/docs/source/programming_resources/shared/using_android_device/Using-Your-Android-Device.rst @@ -4,8 +4,22 @@ Using Your Android Device Before you get started with your control system, it is helpful if you familiarize yourself with the basic operation of your Android device. +REV Robotics Driver Hub +~~~~~~~~~~~~~~~~~~~~~~~ + +Teams who are using the REV Robotics Driver Hub as their DRIVER STATION +should refer to the `official documentation from REV Robotics `_ +for instructions on how to set up and use the REV Robotics Driver Hub. + +Android Smartphone +~~~~~~~~~~~~~~~~~~ + +While not recommended, the Competition Manual does allow select Android +smartphones to be used as a DRIVER STATION or ROBOT CONTROLLER. See rule +R704 for the full details. + Unlocking Your Screen -~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^ When you first power on an Android phone, it usually starts off with the screen in a "locked" state. For the Motorola smartphones that are used @@ -29,7 +43,7 @@ PIN value and tap on the check mark to log into the device. | Navigating in Android -~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^ Your phone should display its home screen if you just powered it on and unlocked it. Note that the actual screens on your smartphone might @@ -75,36 +89,7 @@ has this feature, you might need to swipe up from the bottom of the screen to display the navigation buttons. Displaying Available Apps on your Android Phone -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Android Marshmallow Users -^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you are using a device with Android Marshmallow (6.x) or earlier, you -can display the available apps using the *Android App Drawer* button -that is available on the home screen. - -There should be another row of buttons visible above the "Back", "Home" -and "Recent Apps" buttons. In the center of this row of buttons is a -button that has an array of dots or squares. - -.. image:: images/android_nextToBottomButtons.jpg - :align: center - -| - -Tapping on this button will launch the *Android App Drawer*. The App -Drawer displays a list of all of the apps that are available on your -Android device. You can scroll through the App Drawer screens to find -and launch an app. - -.. image:: images/android_appDrawer.jpg - :align: center - -| - -Android Nougat Users -^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you are using a device with Android Nougat (7.x) or newer, you can display the available apps by simply swiping upwards from the bottom of diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio).rst b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio).rst index d64512dd..05d9f8a8 100644 --- a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio).rst +++ b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/Creating-and-Running-an-Op-Mode-(Android-Studio).rst @@ -1,4 +1,4 @@ -Creating and Running an Op Mode :bdg-success:`AS` +Creating and Running an OpMode :bdg-success:`AS` ================================================= TeamCode Module @@ -7,7 +7,7 @@ TeamCode Module If you successfully imported the Android Studio project folder, you will see on the project browser an Android module named ``TeamCode``. The Android Studio project folder will be used to build a version of the -Robot Controller app that includes the custom op modes that you will +Robot Controller app that includes the custom OpMode that you will write to control your competition robot. .. image:: images/teamcodeFolder.jpg @@ -15,7 +15,7 @@ write to control your competition robot. | -When you create your classes and op modes, you will to create them in +When you create your classes and OpModes, you will to create them in the ``org.firstinspires.ftc.teamcode`` package that resides in the TeamCode module. This package is reserved for your use within the Android Studio project folder. @@ -32,22 +32,22 @@ Enabling Auto Import ~~~~~~~~~~~~~~~~~~~~ The auto import feature of Android Studio is a convenient function that -helps save time as you write your op mode. If you would like to enable +helps save time as you write your OpMode. If you would like to enable this feature, select the Editor->General->Auto Import item from the Android Studio Settings screen. This will display the editor's auto import settings. Check the "Add unambiguous imports on the fly" so that Android Studio will automatically add the required import statements for classes that -you would like to use in your op mode. +you would like to use in your OpMode. .. image:: images/AutoImport.jpg :align: center | -Sample Op Modes -~~~~~~~~~~~~~~~ +Sample OpModes +~~~~~~~~~~~~~~ A great way to learn how to program a robot is to examine the sample op modes that are included with the Android Studio project folder. You @@ -59,21 +59,21 @@ can locate these files in the FtcRobotController module in the package | -If you would like to use a sample op mode, copy it from the +If you would like to use a sample OpMode, copy it from the ``org.firstinspires.ftc.robotcontroller.external.samples`` package and move it to the ``org.firstinspires.ftc.teamcode`` package. -In your newly copied op mode, look for the following annotation, +In your newly copied OpMode, look for the following annotation, ``@Disabled`` -and comment out this line to enable the op mode and allow it to be run +and comment out this line to enable the OpMode and allow it to be run on the Robot Controller: ``//@Disabled`` -Creating Your FIRST Op Mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Creating Your First OpMode +~~~~~~~~~~~~~~~~~~~~~~~~~~ Right mouse click on the ``org.firstinspires.ftc.teamcode`` package and select New->Java Class from the pop-up menu. The Create New Class dialog @@ -95,7 +95,7 @@ interface. | -Modify the main portion of your op mode so that it looks like the +Modify the main portion of your OpMode so that it looks like the following code (note that the package definition and some import statements have been omitted in the following source code): @@ -133,34 +133,34 @@ statements have been omitted in the following source code): } } -We will use this source code as the framework for your first op mode. +We will use this source code as the framework for your first OpMode. Note that Android Studio automatically saves your source code as you are editing it. -Congratulations! You've written an op mode. It does not do much, but we +Congratulations! You've written an OpMode. It does not do much, but we will modify it to make it more useful. -Examining the Structure of Your Op Mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Examining the Structure of Your OpMode +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -It can be helpful to think of an op mode as a list of tasks for the -Robot Controller to perform. For a linear op mode, the Robot Controller +It can be helpful to think of an OpMode as a list of tasks for the +Robot Controller to perform. For a linear OpMode, the Robot Controller will process this list of tasks sequentially. Users can also use control loops (such as a while loop) to have the Robot Controller repeat (or -iterate) certain tasks within a linear op mode. +iterate) certain tasks within a linear OpMode. .. image:: images/ExaminingStructurePic2.jpg :align: center | -If you think about an op mode as a list of instructions for the robot, +If you think about an OpMode as a list of instructions for the robot, this set of instructions that you created will be executed by the robot -whenever a team member selects the op mode called ``MyFIRSTJavaOpMode`` -from the list of available op modes for this Robot Controller. +whenever a team member selects the OpMode called ``MyFIRSTJavaOpMode`` +from the list of available OpModes for this Robot Controller. -Let's look at the structure of your newly created op mode. Here's a copy -of the op mode text (minus some comments, the package definition, and +Let's look at the structure of your newly created OpMode. Here's a copy +of the OpMode text (minus some comments, the package definition, and some import package statements): .. code-block:: java @@ -197,17 +197,17 @@ some import package statements): } } -At the start of the op mode there is an annotation that occurs before +At the start of the OpMode there is an annotation that occurs before the class definition. This annotation states that this is a -tele-operated (i.e., driver controlled) op mode: +tele-operated (i.e., driver controlled) OpMode: ``@TeleOp`` -If you wanted to change this op mode to an autonomous op mode, you would +If you wanted to change this OpMode to an autonomous OpMode, you would replace the ``@TeleOp`` with an ``@Autonomous`` annotation instead. -You can see from the sample code that an op mode is defined as a Java -class. In this example, the op mode name is called ``MyFIRSTJavaOpMode`` +You can see from the sample code that an OpMode is defined as a Java +class. In this example, the OpMode name is called ``MyFIRSTJavaOpMode`` and it inherits characteristics from the LinearOpMode class. .. code-block:: java @@ -215,7 +215,7 @@ and it inherits characteristics from the LinearOpMode class. public class MyFIRSTJavaOpMode extends LinearOpMode { You can also see that the OnBot Java editor created five private member -variables for this op mode. These variables will hold references to the +variables for this OpMode. These variables will hold references to the five configured devices that the OnBot Java editor detected in the configuration file of your Robot Controller. @@ -227,16 +227,16 @@ configuration file of your Robot Controller. private DistanceSensor sensorColorRange; private Servo servoTest; -Next, there is an overridden method called ``runOpMode``. Every op mode of +Next, there is an overridden method called ``runOpMode``. Every OpMode of type ``LinearOpMode`` must implement this method. This method gets called -when a user selects and runs the op mode. +when a user selects and runs the OpMode. .. code-block:: java @Override public void runOpMode() { -At the start of the ``runOpMode`` method, the op mode uses an object named +At the start of the ``runOpMode`` method, the OpMode uses an object named ``hardwareMap`` to get references to the hardware devices that are listed in the Robot Controller's configuration file: @@ -252,22 +252,22 @@ The ``hardwareMap`` object is available to use in the ``runOpMode`` method. It is an object of type ``HardwareMap`` class. Note that when you attempt to retrieve a reference to a specific device -in your op mode, the name that you specify as the second argument of the +in your OpMode, the name that you specify as the second argument of the ``HardwareMap.get`` method must match the name used to define the device in your configuration file. For example, if you created a configuration file that had a DC motor named ``motorTest``, then you must use this same name (it is case sensitive) to retrieve this motor from the ``hardwareMap`` -object. If the names do not match, the op mode will throw an exception +object. If the names do not match, the OpMode will throw an exception indicating that it cannot find the device. -In the next few statements of the example, the op mode prompts the user +In the next few statements of the example, the OpMode prompts the user to push the start button to continue. It uses another object that is available in the ``runOpMode`` method. This object is called telemetry and -the op mode uses the ``addData`` method to add a message to be sent to the -Driver Station. The op mode then calls the update method to send the +the OpMode uses the ``addData`` method to add a message to be sent to the +Driver Station. The OpMode then calls the update method to send the message to the Driver Station. Then it calls the ``waitForStart`` method, to wait until the user pushes the start button on the driver station to -begin the op mode run. +begin the OpMode run. .. code-block:: java @@ -276,12 +276,12 @@ begin the op mode run. // Wait for the game to start (driver presses PLAY) waitForStart(); -Note that all linear op modes should have a ``waitForStart`` statement to -ensure that the robot will not begin executing the op mode until the +Note that all linear OpModes should have a ``waitForStart`` statement to +ensure that the robot will not begin executing the OpMode until the driver pushes the start button. -After a start command has been received, the op mode enters a while loop -and keeps iterating in this loop until the op mode is no longer active +After a start command has been received, the OpMode enters a while loop +and keeps iterating in this loop until the OpMode is no longer active (i.e., until the user pushes the stop button on the Driver Station): .. code-block:: java @@ -293,12 +293,12 @@ and keeps iterating in this loop until the op mode is no longer active } -As the op mode iterates in the while loop, it will continue to send +As the OpMode iterates in the while loop, it will continue to send telemetry messages with the index of "Status" and the message of "Running" to be displayed on the Driver Station. -Building and Installing Your Op Mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Building and Installing Your OpMode +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Verify that the Robot Controller phone is connected to your laptop and that the laptop has USB debugging permission for the phone. @@ -385,57 +385,77 @@ indicates that it is successfully connected to the Control Hub (after momentarily disconnecting while the update was occurring) then the app was successfully updated. -Running Your Op Mode -~~~~~~~~~~~~~~~~~~~~ +Running Your OpMode +~~~~~~~~~~~~~~~~~~~ If you successfully built and installed your updated Android app with -your new op mode, then you are ready to run the op mode. Verify that +your new OpMode, then you are ready to run the OpMode. Verify that the Driver Station is still connected to the Robot Controller. Since -you designated that your example op mode is a tele-operated op mode, -it will be listed as a ``TeleOp`` op mode. +you designated that your example OpMode is a tele-operated OpMode, +it will be listed as a ``TeleOp`` OpMode. On the Driver Station, use the ``TeleOp`` dropdown list control to -display the list of available op modes. Select your op mode +display the list of available OpModes. Select your OpMode ("MyFIRSTJavaOpMode") from the list. +.. image:: images/OpModeSelectionDH.png + :align: center + +| + .. image:: images/OnBotDoc_SelectMyFIRSTOpMode.jpg :align: center | -Press the "INIT" button to initialize the op mode. +Press the "INIT" button to initialize the OpMode. + +.. image:: images/InitDH.png + :align: center + +| .. image:: images/OnBotDoc_MyFIRSTPushInit.jpg :align: center | -The op mode will execute the statements in the runOpMode method up to +The OpMode will execute the statements in the runOpMode method up to the waitForStart statement. It will then wait until you press the start button (which is represented by the triangular shaped symbol) to continue. +.. image:: images/RunDH.png + :align: center + +| + .. image:: images/OnBotDoc_PressStart.jpg :align: center | -Once you press the start button, the op mode will continue to iterate +Once you press the start button, the OpMode will continue to iterate and send the "Status: Running" message to the Driver Station. To stop -the op mode, press the square-shaped stop button. +the OpMode, press the square-shaped stop button. + +.. image:: images/TelemetryDH.png + :align: center + +| .. image:: images/OnBotDoc_PressStop.jpg :align: center | -Congratulations! You ran your first java op mode! +Congratulations! You ran your first java OpMode! -Modifying Your Op Mode to Control a Motor -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Modifying Your OpMode to Control a Motor +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Let's modify your op mode to control the DC motor that you connected and -configured for your REV Expansion Hub. Modify the code for the program +Let's modify your OpMode to control the DC motor that you connected and +configured for your REV Control Hub or REV Expansion Hub. Modify the code for the program loop so that it looks like the following: .. code-block:: java @@ -494,35 +514,32 @@ via the telemetry mechanism to the Driver Station. telemetry.addData("Target Power", tgtPower); telemetry.addData("Motor Power", motorTest.getPower()); -After you have modified your op mode to include these new statements, -press the build button and verify that the op mode was built +After you have modified your OpMode to include these new statements, +press the build button and verify that the OpMode was built successfully. -Running Your Op Mode with a Gamepad Connected -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Running Your OpMode with a Gamepad Connected +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Your op mode takes input from a gamepad and uses this input to control a -DC motor. To run your op mode, you will need to connect a Logitech F310 +Your OpMode takes input from a gamepad and uses this input to control a +DC motor. To run your OpMode, you will need to connect a Logitech F310 gamepad to the Driver Station. -Before you connect your gamepad to the phone, verify that the switch on -the bottom of the gamepad is set to the "X" (i.e., the "Xbox" mode) -position. +Connect the gamepad to the Driver Station. If using a REV Robotics Driver +Hub, you can directly connect the gamepad to one of the USB-A ports. On a +DRIVER STATION phone, you will need a Micro USB OTG adapter cable. -.. image:: images/RunningOpModeStep1.jpg +.. image:: images/GamepadDHConnection.jpg :align: center | -Connect the gamepad to the Driver Station using the Micro USB OTG -adapter cable. - .. image:: images/RunningOpModeStep2.jpg :align: center | -Your example op mode is looking for input from the gamepad designated as +Your example OpMode is looking for input from the gamepad designated as the user or driver #1. Press the Start button and the A button simultaneously on the Logictech F310 controller to designate your gamepad as user #1. Note that pushing the Start button and the B button @@ -540,15 +557,20 @@ gamepad #1, the little icon should be highlighted in green. If the icon is missing or if it does not highlight in green when you use your gamepad, then there is a problem with the connection to the gamepad. -Select, initialize and run your ``MyFIRSTJavaOpMode`` op mode. +Select, initialize and run your ``MyFIRSTJavaOpMode`` OpMode. If you configured your gamepad properly, then the left joystick should -control the motion of the motor. As you run your op mode, be careful and +control the motion of the motor. As you run your OpMode, be careful and make sure you do not get anything caught in the turning motor. Note that the User #1 gamepad icon should highlight green each time you move the joystick. Also note that the target power and actual motor power values should be displayed in the telemetry area on the Driver Station. +.. image:: images/TelemetryDH.png + :align: center + +| + .. image:: images/OnBotDoc_RunOpModeDCMotor.jpg :align: center diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/GamepadDHConnection.jpg b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/GamepadDHConnection.jpg new file mode 100644 index 00000000..2e44e436 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/GamepadDHConnection.jpg differ diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/InitDH.png b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/InitDH.png new file mode 100644 index 00000000..289829d7 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/InitDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/OpModeSelectionDH.png b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/OpModeSelectionDH.png new file mode 100644 index 00000000..aad66aff Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/OpModeSelectionDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/RunDH.png b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/RunDH.png new file mode 100644 index 00000000..d01ec793 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/RunDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/TelemetryDH.png b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/TelemetryDH.png new file mode 100644 index 00000000..ce131584 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/android_studio/creating_op_modes/images/TelemetryDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/android_studio/using_sensors/Using-Sensors-(Android-Studio).rst b/docs/source/programming_resources/tutorial_specific/android_studio/using_sensors/Using-Sensors-(Android-Studio).rst index 11d5ed2a..d424759f 100644 --- a/docs/source/programming_resources/tutorial_specific/android_studio/using_sensors/Using-Sensors-(Android-Studio).rst +++ b/docs/source/programming_resources/tutorial_specific/android_studio/using_sensors/Using-Sensors-(Android-Studio).rst @@ -39,7 +39,7 @@ Touch Sensor ~~~~~~~~~~~~ The REV Robotics Touch Sensor can be connected to a digital port on the -Expansion Hub. The Touch Sensor is HIGH (returns TRUE) when it is not +Control Hub or Expansion Hub. The Touch Sensor is HIGH (returns TRUE) when it is not pressed. It is pulled LOW (returns FALSE) when it is pressed. .. image:: images/REVTouchSensor.jpg @@ -47,14 +47,14 @@ pressed. It is pulled LOW (returns FALSE) when it is pressed. | -The Expansion Hub digital ports contain two digital pins per port. When -you use a 4-wire JST cable to connect a REV Robotics Touch sensor to an +The Control Hub or Expansion Hub digital ports contain two digital pins per port. When +you use a 4-wire JST cable to connect a REV Robotics Touch sensor to a Control Hub or Expansion Hub digital port, the Touch Sensor is wired to the second of the two digital pins within the port. The first digital pin of the 4-wire cable remains disconnected. For example, if you connect a Touch Sensor to the "0,1" digital port of -the Expansion Hub, the Touch Sensor will be connected to the second pin +the Control Hub or Expansion Hub, the Touch Sensor will be connected to the second pin (labeled "1") of the port. The first pin (labeled "0") will stay disconnected. diff --git a/docs/source/programming_resources/tutorial_specific/blocks/blocks_reference/Blocks-Reference-Material.rst b/docs/source/programming_resources/tutorial_specific/blocks/blocks_reference/Blocks-Reference-Material.rst index 929a373e..4a1f7413 100644 --- a/docs/source/programming_resources/tutorial_specific/blocks/blocks_reference/Blocks-Reference-Material.rst +++ b/docs/source/programming_resources/tutorial_specific/blocks/blocks_reference/Blocks-Reference-Material.rst @@ -39,8 +39,20 @@ The technology forum can be found at the following address: - https://ftc-community.firstinspires.org +REV Robotics Control Hub Documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`REV Robotics Control Hub Getting Started +Guide `__ + REV Robotics Expansion Hub Documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `REV Robotics Expansion Hub Getting Started Guide `__ + +REV Robotics Driver Hub Documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`REV Robotics Driver Hub Getting Started +Guide `__ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/Running-Your-Op-Mode.rst b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/Running-Your-Op-Mode.rst index cbba6b44..d6e28be9 100644 --- a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/Running-Your-Op-Mode.rst +++ b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/Running-Your-Op-Mode.rst @@ -1,34 +1,31 @@ Running Your OpMode (All Languages) ----------------------------------- -If your op mode requires input from a gamepad, then you will need to +If your OpMode requires input from a gamepad, then you will need to connect a Logitech F310 gamepad to the DRIVER STATION. Note that you can -have up to two gamepads connected through a USB hub to a DRIVER STATION. -However, in this example, we will only have a solitary gamepad -connected. +have up to two gamepads connected to a DRIVER STATION. If using a phone, +this will require a USB hub. However, in this example, we will only have +a solitary gamepad connected. Note that you will need an estimated 10 minutes to complete this task. -Running Your Op Mode Instructions +Running Your OpMode Instructions --------------------------------- -1. Before you connect your gamepad to the phone, verify that the -switch on the bottom of the gamepad is set to the "X" position. +1. Connect the gamepad to the DRIVER STATION. If using a phone, you will +need a Micro USB OTG adapter cable. -.. image:: images/RunningOpModeStep1.jpg +.. image:: images/GamepadDHConnection.jpg :align: center | -2. Connect the gamepad to the DRIVER STATION using the Micro USB OTG -adapter cable. - .. image:: images/RunningOpModeStep2.jpg :align: center | -3. For the examples in this wiki, the op modes are looking for input +2. For the examples in this wiki, the OpModes are looking for input from the gamepad designated as the user or driver #1. Press the Start button and the A button simultaneously on the Logitech F310 controller to designate your gamepad as user #1. @@ -40,52 +37,77 @@ controller to designate your gamepad as user #1. Note that pushing the Start button and the B button simultaneously would designate the gamepad as user #2. -4. On the DRIVER STATION screen, touch the triangular-shaped, -"TeleOp" dropdown list button to display a list available op modes. -You should see your recently saved op mode among the list of -available op modes that reside on your Robot Controller. +3. On the DRIVER STATION screen, touch the triangular-shaped, +"TeleOp" dropdown list button to display a list available OpModes. +You should see your recently saved OpMode among the list of +available OpModes that reside on your Robot Controller. + +.. image:: images/TeleopRunDH.png + :align: center + +| .. image:: images/RunningOpModeStep4.jpg :align: center | - Note that the word "TeleOp" is short for "Tele-Operated" and it implies a driver controlled op mode (i.e., an op mode that gets input from a human driver). + Note that the word "TeleOp" is short for "Tele-Operated" and it implies a driver controlled OpMode (i.e., an OpMode that gets input from a human driver). -5. Select "MyFIRSTOpMode" to load your op mode on the Robot +4. Select "MyFIRSTOpMode" to load your OpMode on the Robot Controller. +.. image:: images/OpModeSelectionDH.png + :align: center + +| + .. image:: images/RunningOpModeStep5.jpg :align: center | - Note that even though you are using the DRIVER STATION to select the op mode, the actual op mode instructions will be executed on the Robot Controller phone. + Note that even though you are using the DRIVER STATION to select the OpMode, the actual OpMode instructions will be executed on the Robot Controller. -6. Press the INIT button to initialize your op mode. +1. Press the INIT button to initialize your OpMode. + +.. image:: images/InitDH.png + :align: center + +| .. image:: images/RunningOpModeStep6.jpg :align: center | -7. Push the Start button (designated by the triangular-shaped symbol) -to start the op mode run. +6. Push the Start button (designated by the triangular-shaped symbol) +to start the OpMode run. + +.. image:: images/RunDH.png + :align: center + +| .. image:: images/RunningOpModeStep7.jpg :align: center | -8. Use the left joystick of the gamepad to control the operation of +7. Use the left joystick of the gamepad to control the operation of the DC motor. As you manipulate the left joystick up and down, the -target power and the motor power should be displayed in the lower -left hand corner of the screen. +target power and the motor power should be displayed in the upper +right hand corner of the screen. + +.. image:: images/TelemetryDH.png + :align: center + +| .. image:: images/RunningOpModeStep8.jpg :align: center | - If you want to stop your op mode, press the square-shaped Stop button on the DRIVER STATION. + If you want to stop your OpMode, press the square-shaped Stop button on the DRIVER STATION. diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/GamepadDHConnection.jpg b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/GamepadDHConnection.jpg new file mode 100644 index 00000000..2e44e436 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/GamepadDHConnection.jpg differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/InitDH.png b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/InitDH.png new file mode 100644 index 00000000..289829d7 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/InitDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/OpModeSelectionDH.png b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/OpModeSelectionDH.png new file mode 100644 index 00000000..aad66aff Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/OpModeSelectionDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/RunDH.png b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/RunDH.png new file mode 100644 index 00000000..d01ec793 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/RunDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TelemetryDH.png b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TelemetryDH.png new file mode 100644 index 00000000..ce131584 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TelemetryDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TeleopRunDH.png b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TeleopRunDH.png new file mode 100644 index 00000000..5e8a3496 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/blocks/running_op_modes/images/TeleopRunDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/blocks/using_sensors/Using-Sensors-(Blocks).rst b/docs/source/programming_resources/tutorial_specific/blocks/using_sensors/Using-Sensors-(Blocks).rst index 26696607..73407d5f 100644 --- a/docs/source/programming_resources/tutorial_specific/blocks/using_sensors/Using-Sensors-(Blocks).rst +++ b/docs/source/programming_resources/tutorial_specific/blocks/using_sensors/Using-Sensors-(Blocks).rst @@ -114,14 +114,14 @@ determine if the button on the sensor is currently pressed or not. | -The Expansion Hub digital ports contain two digital pins per port. When -you use a 4-wire JST cable to connect a REV Robotics Touch sensor to an +The Control Hub or Expansion Hub digital ports contain two digital pins per port. When +you use a 4-wire JST cable to connect a REV Robotics Touch sensor to a Control Hub or Expansion Hub digital port, the Touch Sensor is wired to the second of the two digital pins within the port. The first digital pin of the 4-wire cable remains disconnected. For example, if you connect a Touch Sensor to the "0,1" digital port of -the Expansion Hub, the Touch Sensor will be connected to the second pin +the Control Hub or Expansion Hub, the Touch Sensor will be connected to the second pin (labeled "1") of the port. The first pin (labeled "0") will stay disconnected. diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/Creating-and-Running-an-Op-Mode-(OnBot-Java).rst b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/Creating-and-Running-an-Op-Mode-(OnBot-Java).rst index e30e305e..079f8bd4 100644 --- a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/Creating-and-Running-an-Op-Mode-(OnBot-Java).rst +++ b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/Creating-and-Running-an-Op-Mode-(OnBot-Java).rst @@ -54,15 +54,15 @@ to the Robot Controller. This Windows laptop computer has a Javascript-enabled web browser installed that is used to access the OnBot Java Programming Tool. -.. image:: images/BlocksPicture2.jpg +.. image:: images/BlocksPicture2b.jpg :align: center | Note that the process used to create and edit an op mode is identical if -you are using a Control Hub as your Robot Controller. +you are using an Android phone as your Robot Controller. -.. image:: images/BlocksPicture2b.jpg +.. image:: images/BlocksPicture2.jpg :align: center | @@ -93,14 +93,14 @@ Creating Your First Op Mode Instructions Google Chrome) and find the web address that is displayed on the Program & Manage screen of the Robot Controller. -.. image:: images/WritingFirstOpModeStep1a.jpg +.. image:: images/WritingFirstOpModeStep1aControlHub.jpg :align: center | .. important:: Note: If your Robot Controller is an Android smartphone, then the address to access the Program & Manage server is "192.168.49.1:8080". Notice the difference in the third octet of the IP addresses (the Control Hub has a "43" instead of a "49"). -.. image:: images/WritingFirstOpModeStep1aControlHub.jpg +.. image:: images/WritingFirstOpModeStep1a.jpg :align: center | @@ -464,6 +464,11 @@ Running Your Op Mode * If you successfully rebuilt your op mode, you are ready to run the op mode. Verify that the DRIVER STATION is still connected to the Robot Controller. Since you designated that your example op mode is a tele-operated op mode, it will be listed as a "TeleOp" op mode. * On the DRIVER STATION, use the "TeleOp" dropdown list control to display the list of available op modes. Select your op mode ("MyFIRSTJavaOpMode") from the list. +.. image:: images/OpModeSelectionDH.png + :align: center + +| + .. image:: images/OnBotDoc_SelectMyFIRSTOpMode.jpg :align: center @@ -471,6 +476,11 @@ Running Your Op Mode Press the INIT button to initialize the op mode. +.. image:: images/InitDH.png + :align: center + +| + .. image:: images/OnBotDoc_MyFIRSTPushInit.jpg :align: center @@ -481,6 +491,11 @@ the waitForStart statement. It will then wait until you press the start button (which is represented by the triangular shaped symbol) to continue. +.. image:: images/RunDH.png + :align: center + +| + .. image:: images/OnBotDoc_PressStart.jpg :align: center @@ -490,6 +505,11 @@ Once you press the start button, the op mode will continue to iterate and send the "Status: Running" message to the DRIVER STATION. To stop the op mode, press the square-shaped stop button. +.. image:: images/TelemetryDH.png + :align: center + +| + .. image:: images/OnBotDoc_PressStop.jpg :align: center @@ -570,17 +590,15 @@ Running Your Op Mode with a Gamepad Connected * Your op mode takes input from a gamepad and uses this input to control a DC motor. To run your op mode, you will need to connect a Logitech F310 gamepad to the DRIVER STATION. -* Before you connect your gamepad to the phone, verify that the switch - on the bottom of the gamepad is set to the "X" position. -.. image:: images/RunningOpModeStep1.jpg +Connect the gamepad to the DRIVER STATION. If using a phone, you will +need a Micro USB OTG adapter cable. + +.. image:: images/GamepadDHConnection.jpg :align: center | -Connect the gamepad to the DRIVER STATION using the Micro USB OTG -adapter cable. - .. image:: images/RunningOpModeStep2.jpg :align: center @@ -616,6 +634,11 @@ the User #1 gamepad icon should highlight green each time you move the joystick. Also note that the target power and actual motor power values should be displayed in the telemetry area on the DRIVER STATION. +.. image:: images/TelemetryDH.png + :align: center + +| + .. image:: images/OnBotDoc_RunOpModeDCMotor.jpg :align: center diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/GamepadDHConnection.jpg b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/GamepadDHConnection.jpg new file mode 100644 index 00000000..2e44e436 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/GamepadDHConnection.jpg differ diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/InitDH.png b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/InitDH.png new file mode 100644 index 00000000..289829d7 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/InitDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/OpModeSelectionDH.png b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/OpModeSelectionDH.png new file mode 100644 index 00000000..aad66aff Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/OpModeSelectionDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/RunDH.png b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/RunDH.png new file mode 100644 index 00000000..d01ec793 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/RunDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/TelemetryDH.png b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/TelemetryDH.png new file mode 100644 index 00000000..ce131584 Binary files /dev/null and b/docs/source/programming_resources/tutorial_specific/onbot_java/creating_op_modes/images/TelemetryDH.png differ diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/onbot_java_reference/OnBot-Java-Reference-Info.rst b/docs/source/programming_resources/tutorial_specific/onbot_java/onbot_java_reference/OnBot-Java-Reference-Info.rst index e76205ff..2e8a4604 100644 --- a/docs/source/programming_resources/tutorial_specific/onbot_java/onbot_java_reference/OnBot-Java-Reference-Info.rst +++ b/docs/source/programming_resources/tutorial_specific/onbot_java/onbot_java_reference/OnBot-Java-Reference-Info.rst @@ -38,10 +38,22 @@ The technology forum can be found at the following address: - https://ftc-community.firstinspires.org +REV Robotics Control Hub Documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`REV Robotics Control Hub Getting Started +Guide `__ + REV Robotics Expansion Hub Documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `REV Robotics Expansion Hub Getting Started Guide `__ +REV Robotics Driver Hub Documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`REV Robotics Driver Hub Getting Started +Guide `__ + diff --git a/docs/source/programming_resources/tutorial_specific/onbot_java/using_sensors/Using-Sensors-(OnBot-Java).rst b/docs/source/programming_resources/tutorial_specific/onbot_java/using_sensors/Using-Sensors-(OnBot-Java).rst index f485a3ca..e917caed 100644 --- a/docs/source/programming_resources/tutorial_specific/onbot_java/using_sensors/Using-Sensors-(OnBot-Java).rst +++ b/docs/source/programming_resources/tutorial_specific/onbot_java/using_sensors/Using-Sensors-(OnBot-Java).rst @@ -38,7 +38,7 @@ Touch Sensor ~~~~~~~~~~~~ The REV Robotics Touch Sensor can be connected to a digital port on the -Expansion Hub. The Touch Sensor is HIGH (returns TRUE) when it is not +Control Hub or Expansion Hub. The Touch Sensor is HIGH (returns TRUE) when it is not pressed. It is pulled LOW (returns FALSE) when it is pressed. .. image:: images/REVTouchSensor.jpg @@ -46,14 +46,14 @@ pressed. It is pulled LOW (returns FALSE) when it is pressed. | -The Expansion Hub digital ports contain two digital pins per port. When -you use a 4-wire JST cable to connect a REV Robotics Touch sensor to an +The Control Hub or Expansion Hub digital ports contain two digital pins per port. When +you use a 4-wire JST cable to connect a REV Robotics Touch sensor to a Control Hub or Expansion Hub digital port, the Touch Sensor is wired to the second of the two digital pins within the port. The first digital pin of the 4-wire cable remains disconnected. For example, if you connect a Touch Sensor to the "0,1" digital port of -the Expansion Hub, the Touch Sensor will be connected to the second pin +the Control Hub or Expansion Hub, the Touch Sensor will be connected to the second pin (labeled "1") of the port. The first pin (labeled "0") will stay disconnected.