LogoLogo
  • Introduction
  • Getting Started with Control Hub
    • Connect to the Robot Controller Console
    • Updating Wi-Fi Settings
    • Connecting Driver Station to Control Hub
    • Wiring Diagram
    • Next Steps
  • Getting Started with Driver Hub
  • Adding More Motors
    • SPARKmini Motor Controller
    • Adding an Expansion Hub
  • Troubleshooting the Control System
    • General Troubleshooting
    • Control Hub Troubleshooting
    • Driver Hub Troubleshooting
      • Driver Hub Battery Troubleshooting
    • Expansion Hub Troubleshooting
    • Status LED Blink Codes
  • System Overview
    • Control Hub Specifications
    • Expansion Hub Specifications
    • Driver Hub Specifications
    • Port Pinouts
    • Protection Features
    • Cables and Connectors
      • XT-30 - Power Cable
      • JST VH - Motor Power
      • JST PH - Sensors and RS485
    • Integrated Sensors
    • Dimensions and Important Component Locations
  • Updating and Managing
    • Managing Wi-Fi on the Control Hub
    • REV Hardware Client
    • Updating Firmware
      • Firmware Changelog
    • Updating Operating System
      • Control Hub Operating System Changelog
    • Updating Robot Controller Application
      • Updating Robot Controller Application via Android Studio
    • Updating the Driver Hub
      • Driver Hub OS - Change Log
    • Accessing Log Files
    • Android Studio - Deploying Code Wirelessly
  • Hello Robot - Intro to Blocks Programming
    • Welcome to Hello Robot!
    • Where to Program - Client vs. Browser
      • What is an OpMode?
    • Setting up a Configuration
      • Common Errors in Configuration
    • Using a Gamepad
    • Part 1: Tackling the Basics
      • Tackling the Basics Directory - Blocks
      • Creating an OpMode - Blocks
      • Programming Essentials
      • Programming Servos
        • Programming Servo Basics
        • Using a Gamepad with a Servo
        • Programming Servo Telemetry
      • Programming Motors
        • Programming Motors Basics
        • Programming a Motor with a Gamepad
        • Programming Motor Telemetry
      • Programming Touch Sensors
      • Programming Color Sensors
        • Color Sensor Telemetry
        • Detecting Color
    • Part 2: Robot Control
      • Robot Control Blocks Directory
      • Programming Drivetrain Motors
      • Arcade Style TeleOp - Blocks
        • Establishing Variables in Blocks
        • Motor Power vs. Robot Movement
        • Programming Arcade Drive
      • Arm Control - Blocks
        • Adding a Limit Switch
      • Robot Control Full Program
    • Part 3: Autonomous and Encoders
      • ElapsedTime - Blocks
        • ElapsedTime Setup
        • ElapsedTime Logic
        • ElapsedTime - Multiple Movements
      • Encoder Basics
      • Drivetrain Encoders - Blocks
        • Converting Encoder Ticks to a Distance
        • Moving to a Target Distance
        • Setting Velocity
        • Turning the Drivetrain Using RUN_TO_POSITION
      • Arm Control with Encoders - Blocks
        • Estimating the Position of the Arm
        • Calculating Target Position
        • Using Limits to Control Range of Motion
    • Part 4: Going Beyond!
      • Exploring Functions
      • Programming Mecanum - Simplified
      • Programming Mecanum - Refined
  • Hello Robot - Intro to OnBot Java Programming
    • Welcome to Hello Robot!
    • Where to Program - Client vs. Browser
      • What is an OpMode?
    • Setting up a Configuration
      • Common Errors in Configuration
    • Using a Gamepad
    • Part 1: Tackling the Basics
      • Tackling the Basics Directory - OnBot
      • Creating an OpMode - OnBot
      • Programming Essentials
      • Programming Servos
        • Programming Servo Basics
        • Using a Gamepad with a Servo
        • Programming Servo Telemetry
      • Programming Motors
        • Programming Motor Basics
        • Programming a Motor with a Gamepad
        • Programming Motor Telemetry
      • Programming Touch Sensors
    • Part 2: Robot Control
      • Robot Control OnBot Java Directory
      • Programming Drivetrain Motors
      • Arcade Style TeleOp - OnBot Java
        • Establishing Variables in OnBot Java
        • Motor Power vs. Robot Movement
        • Programming Arcade Drive
      • Arm Control - OnBot Java
        • Adding a Limit Switch
      • Robot Control Full Program
    • Part 3: Autonomous and Encoders
      • ElapsedTime - OnBot Java
        • ElapsedTime Setup
        • ElapsedTime Logic
        • ElapsedTime - Multiple Movements
      • Encoder Basics
      • Drivetrain Encoders - OnBot Java
        • Converting Encoder Ticks to a Distance
        • Moving to a Target Distance
        • Setting Velocity
        • Turning the Drivetrain Using RUN_TO_POSITION
      • Arm Control with Encoders - OnBot Java
        • Estimating the Position of the Arm
        • Calculating Target Position
        • Using Limits to Control Range of Motion
  • Sensors
    • Introduction to Sensors
    • Digital
    • Analog
    • I2C
      • IMU
        • Orientating the IMU
      • Adding an External IMU to your Hub
    • Encoders
      • REV Motor Encoders
      • Through Bore Encoder
    • Using 3rd Party Sensors
      • Sensor Compatibility Chart
  • Useful Links
    • REV DUO Build System
  • Legacy Documentation
    • Configuring Your Android Devices
    • Expansion Hub with Android Device Robot Controller
      • Driver Station and Robot Controller Pairing
      • Wiring Diagram
      • Configuration
    • REV Hub Interface Software
Powered by GitBook
On this page
  • Hello Robot - Choosing Your Path
  • Programming Tools
  • Blocks
  • OnBot Java
  • Android Studio
  • Blocks or OnBot Java?

Was this helpful?

Export as PDF
  1. Hello Robot - Intro to Blocks Programming

Welcome to Hello Robot!

PreviousAndroid Studio - Deploying Code WirelesslyNextWhere to Program - Client vs. Browser

Last updated 9 months ago

Was this helpful?

The first few pages of Hello Robot are an introduction to the programming tools, configuration, and using a gamepad. Ready to jump right into building and programming? Click here to jump to the or !

Hello Robot - Choosing Your Path

In almost every programming class for the last 50 years, the first program students learn how to write is "Hello World". This program, and its variations, teach the basics of a new programming language, resulting in code that when run outputs the text "Hello World". Through this basic exercise structure and syntax, or formatting, are taught in a simple code to get students up and running quickly!

While we could display "Hello World!", or in this case "Hello Robot!", on our Driver Hub it may not be enough to help you and your team to get started. Instead, Hello Robot is intended to act as an introduction to the REV Control System. Through this tutorial you will learn the basics of configuration, programming, and utilizing sensors, motors, and servos.

There are two major sections of this tutorial:

  • Part 1: Building a Test Bed- This section makes use of a basic test bed built of a Control Hub, motor, servo, and touch sensor. Together we will take a look at how to program these devices and discuss the basics of Blocks and OnBot Java!

  • Part 2: Robot Control- In this section we will be working to get a robot up and moving using a controller, as well as a more detailed look at sensors and encoders.

If you are new to programming or the REV Control System we recommend that you follow through the whole guide to learn how to properly utilize the system.

This guide is intended to be used with the Control Hub and Driver Hub.

Before diving in, let's discuss the two program language options available for Hello Robot!

Programming Tools

There are two programming languages available to use directly on the Control Hub through either the REV Hardware Client or when using the web browser interface. Additionally, the Control Hub is compatible with Android Studio for those interested in more advanced programming options.

Choosing the appropriate programming tool or language can be one of the most crucial decisions a programmer can make. Thankfully the Software Development Kit (SDK) of the Control Hub has been designed to help new programmers find a starting point and transition to new levels when they're ready.

The following is a breakdown comparison of the available languages and tools:

Basic
Intermediate
Advanced

Blocks

Onbot Java

Android Studio

Take some time to read through the following sections comparing each option to help determine the best option for you or your team:

Blocks

The Blocks Programming Tool is a drag-and-drop programming tool available directly through the Control Hub. You may recognize it as being similar to other Scratch-based programming languages, such as the blocks coding used in FIRST LEGO League.

Blocks was created to cater to users who have little to no experience programming. Like other visual programming tools, Blocks is a collection of preset code snippets that users can drag-and-drop into the appropriate code line. As you gain more confidence and familiarity with programming, there is a built in option to show the Blocks code in Java's syntax by clicking the "Show Java" button.

OnBot Java

OnBot Java is a text-based programming tool based on a modified version of Java that is accessible directly through the Control Hub!

OnBot Java is great for programmers with basic to advanced Java skills who would like to write text-based op modes. OnBot Java shares some of insulative properties of Blocks, but gives you access to the more complicated elements of the SDK libraries. For instance, OnBot requires users to make calls to classes like the hardwareMap, which are hidden within the Blocks code snippets.

Android Studio

Hello Robot is not available for Android Studio, but it is important to be aware of all the options available!

An advanced integrated development environment for creating Android apps. This tool is the same tool that professional Android app developers use. Android Studio is only recommended for advanced users who have extensive Java programming experience.

Android Studio allows programmer with an advanced understanding of Java a more powerful development environment to work in. It offers enhanced editing and debugging features not available with OnBot Java or Blocks. It also allows programmers the ability to work with 3rd Party libraries not included within the SDK. However, Android Studio is not a web-based software and will need a dedicated laptop to run on.

Blocks or OnBot Java?

Once you've decided which programming tool you would like to use you can click the link below to go to the appropriate start for Hello Robot!

To learn about how to properly download and work with Android Studio please visit the

Blocks Tutorial
here for the OnBot Java Tutorial
FTC Wiki.
Hello Robot - Blocks
Hello Robot - OnBot Java