ROBOTC.net Blog  

ROBOTC News

Archive for the ‘Coding’ tag

Student POV: Labyrinth Challenge

without comments

We are really excited to introduce a new blog series called Student POV! This series will feature students giving their perspective and advice for programming in ROBOTC. If you’re a student who would like to contribute to the blog, let us know at socialmedia@robotc.net. Welcome our first student bloggers, Danica and Jake!

————————————————————
Hi it’s Danica and Jake, and we just completed the Labyrinth Challenge. We are both 8th grade students attending Hopewell Memorial Junior High. We both used VEX IQ Graphical Programming Language to complete this challenge since it is a new software recently released by ROBOTC. The first challenge we had to accomplish was the labyrinth challenge. The labyrinth is a square, where the robot has to travel from the starting point, to the ending point by doing a series of basic commands.

#1

Our first task was to make our robot move forward.

#2

This block is telling the robot to go forward at 50% power for 5 rotations, but you can also set the robot to move for degrees, milliseconds, seconds, and minutes.

Our second task was to make the robot turn left.

#3

When turning left, you can use multiple commands such as degrees, rotations, milliseconds, seconds, and minutes. You can also use this for turning right.

One problem while programming for this challenge was making 90 degree turns. To get a perfect 90 degree turn, with timing, you had to go through a lot of trial and error. After figuring out the perfect turns, based on timing, the time for moving forward, and the stops to prevent drifts, we had to string all the commands together to form the program for the challenge. This what the finished program looks like:

#4

An easier way to perform more accurate turns, is with the use of the gyro sensor. The gyro sensor allows you to count how many degrees you turn. This simply means that you can actually tell the robot to make an accurate turn. You also have to remember to reset the gyro after every use, and it will make this program a lot easier.

To reset the gyro you have to use this block:

#5

The finished program with the gyro sensor looks like this:

#6

In this program we used the setMotor command instead of turnLeft or turnRight. This command is better to use in the while loop since you only have to set the speed of the motor. The condition in the while loop determines how long the robot turns. As a result, we just need to set the motor speed with the setMotor command.

A cool feature you can use in RobotC is commenting out your code. You can also do this in the VEX IQ Graphical Organizer. It is much easier though since you only have to click the number on the block of code you want to comment out.

Commenting looks like this:

#7

These comments allow you to test only one turn out of the whole code, which is very useful during the trial and error stage.
Now it is time to go try the Labyrinth challenge on your own, either with or without the gyro sensor. Have fun!

 
 

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

March 19th, 2014 at 4:29 pm

RVW FTC Block Party Competition – One Day Left!

without comments

Block Party CS2N ModeThere is only one day left to enter our Robot Virtual Worlds FTC  Block Party Programming Competitions! 

In the FTC Block Party Virtual World, program one of three robots to score as many points as possible in autonomous and driver controlled modes. Score points by:

  • Placing Blocks in Floor goals
  • Placing Blocks in Pendulum goals
  • Raising the Flag
  • Hanging from the Bar

See the rules documents for the full game explanation:

  1. FTC Block Party – Autonomous CS2N Mode
  2. FTC Block Party – Remote Control CS2N Mode

Additional information to help you get started:

Good Luck and Happy Programming!

Written by Cara Friez

March 13th, 2014 at 3:28 pm

RVW VEX Toss Up Competition – One Day Left!

without comments

Toss-Up-CS2N-ModeThere is only one day left to enter our Robot Virtual Worlds VEX Toss Up Competitions!

VEX Toss Up is played on a 12′x12′ square field. The object of the game is to score your colored BuckyBalls and Large Balls into the Near Zone and Far Zone, by Locking Up your colored BuckyBalls and Large Balls into the Goals, and by Low Hanging, Hanging and Ultra Hanging off your colored Bar at the end of the match.

This Virtual World is designed to simulate the Toss Up competition field and several robot designs, allowing teams to practice their programming and form winning gameplay strategies.

See the rules documents for the full CS2N game explanation:

  1. VEX Toss Up – Autonomous CS2N Mode
  2. VEX Toss Up – Remote Control CS2N Mode

Additional information to help you get started:

Good Luck and Happy Programming!

 

Robomatter Blog Ad VEX RVW

Written by Cara Friez

March 13th, 2014 at 3:28 pm

A Teacher’s POV: Using the Gyro Sensor

with one comment

Programming your robot to make precise turns can be a source of frustration for some students as they begin to learn ROBOTC. Oftentimes, when students are just learning programming, all of the movements of their robots are based on timing. When programming a robot to move forward or backwards, a small error or a small amount of inconsistency can usually be overcome. With turning, however, inconsistencies and small errors can lead to larger errors and the frustration I mentioned earlier.

gyro sensor

At this point, students learn that sensors can be used to improve the movement of their robots. With the VEX IQ, a Gyro Sensor is provided that eliminates any guesswork when it comes to programming your robot to turn.

The Gyro Sensor measures the rotational angle of the robot. If you look at the Gyro Sensor, you will see an arrow that points in a counter-clockwise direction. That is the default positive direction. Therefore, as long as the sensor is mounted flat on the robot it picks up the parallel angle to the ground. The sensor then registers the current position as a zero point. If the robot turns counter-clockwise, it registers as a positive value. If it turns clockwise, the sensor registers a negative value. We can see this applied with the following illustration:

 

Gyro_Sensor--Display

 

We can program the Gyro Sensor using Natural Language or full ROBOTC. To use Natural Language, you just need to make sure that the Gyro Sensor is plugged into port 4. Let’s take a look at some ways to program the Gyro Sensor with Natural Language.

 

measure turnsleft gyro

 

With this program, getGyroDegrees returns the current rotational value of the sensor in units of degrees. When making gyro-based turns, it is best to reset the gyro sensor before each turn, so the resetGyro command is utilized. With the example, we want the robot to turn until the getGyroDegrees command returns a value (from the Gyro Sensor) of 90 degrees. Therefore, we use the repeatUntil command. When we run this program, our robot should make a 90 degree left turn. Note that the robot may turn more than 90 degrees due to drift, which is caused by momentum. If this occurs, just slow down the speed of the motors. That should eliminate the drift.

We can apply the same commands to program our robot to make a right turn.

 

measure turnsright gyro

 

What I did when first showing the students the Gyro Sensor was to have them see the sensor work with the debugger screen. I used a sample program utilizing full ROBOTC with this activity. The sample program we used was in the Gyro Sensor Folder, and it is called Gyro Display Values. The students compiled and downloaded the program. They kept the USB cables plugged into their robots so they could see the values of the Gyro Sensor on the debugger screen. To access the debugger windows, go to the Robot menu, click on Debugger Windows, and then select Sensors.

The students can now run their program, physically move their robot, and see how the values of the Gyro Sensor change via the debugger screen.

The VEX IQ Gyro Sensor is extremely useful and easy to program, and the students have a lot of fun using this sensor.

- Jason McKenna

 
 

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

February 24th, 2014 at 1:16 pm

ROBOTC Graphical Programming Preview Available!

without comments

clickanddragAfter months of work, the ROBOTC Development Team is excited to announce the availability of the first preview release of ROBOTC Graphical Language for the VEX IQ platform. This new interface will allow you to program robots from inside ROBOTC with easy-to-use graphical blocks that can be drag-and-dropped to form a program. Each block represents an individual command from the “text-based” ROBOTC and Natural Language. The new click and drag interface along with the simplified commands of Natural Language will allow any robotics user to get up and running with programming their robots as soon as possible.

The first release of ROBOTC Graphical Language is available for the VEX IQ platform for use with the standard VEX IQ Clawbot and Autopilot Robots. All ROBOTC 4.0 users will receive access to the new Graphical Language interface at no additional cost! Our plans over the next few months are to extend the Graphical Language interface to all of ROBOTC’s support platforms, including the Robot Virtual Worlds technology. You can download the preview version today at http://www.robotc.net/graphical/.

———————————————————————————————————————————————————-

The new ROBOTC Graphical programming environment adds a number of new features we’d like to highlight:

Graphical Language Command List (Drag and Drop)

GraphicalFunctionBar
With the new ROBOTC Graphical Mode, we’ve updated our “Functions Library” to match the style of the Graphical interface. This new mode will allow you to drag and drop blocks of code from the “Graphical Functions” menu into your program to get your program created even faster!

New Language Commands for Easier Programs

NewLanguageCommands
We also added some new language extensions to both ROBOTC and Natural Language; such as the simplistic “Repeat” command. Prior to the Repeat command, users would need to copy and paste large sections of code or use a looping structure (like a ‘for’ or ‘while’ loop) in order to have a set of actions repeat a number of times. With the new “Repeat” command, however, users can simply specify how many times they would like the code to run, with no complex coding required. And users who wish to make an “infinite loop” can use the “repeat forever” command to accomplish this task quickly!

Commenting Blocks of Code!

CommentingOut
Another awesome tool that we’ve implemented in ROBOTC Graphical is the “comment out” feature. You can now comment out an entire line of code just by clicking on the block’s line number. The robot ignores lines of code that are “commented out” when the program runs, which makes this feature very useful when testing or debugging code. This new tool is unique to ROBOTC’s Graphical interface.

Updated and Simplified Toolbar

Toolbar
Sometimes navigating menus as a new user can be a little overwhelming – so many options to choose from and lots of questions about what each option is used for. To help with this, we’ve redesigned ROBOTC’s toolbar to make getting up and running easier. We put the most used commands on a larger toolbar so new users have an area to easily click to download firmware, send their code to their robot, and run their programs without having to use the standard menu interface.

Convert to Text-Based Natural Language

ConvertToText ConvertToText2
Because each Graphical Natural Language block corresponds to a real ROBOTC or Natural Language function, users will be able to graduate from Graphical Programming to full text-based programming with the press of a single button. This allows users to naturally transition from Graphical Natural Language to the text based Natural Language (or ROBOTC), without having to worry about manually converting the code line-by-line!

Teacher’s Guide and Sample Programs

UsersGuide
The new graphical interface includes over 50 new sample programs to help you get up and running with working examples and demo code. In addition, we’ve also developed a 30+page guide to walk new (and existing) users through the new Graphical Programming interface and getting started with the VEX IQ platform. You can find a link to the programming guide here and also on the ROBOTC Graphical page.

———————————————————————————————————————————————————-

This initial release is only the beginning and we’re planning on improving the software with more features and flexibility over the coming months.

Future Support/Features:

  • Copy and Paste
  • Undo/Redo Support
  • Support for custom robots/configurations via an updated “Motors and Sensor Setup” interface.
  • Dynamic Loop and Command Parameters (based on Motors and Sensor Setup / Robot Configuration)
  • Tooltips, Contextual Help, and more!

Click here to download the installer!

Let us know what you think! If you have any feedback or questions, please send them along via the ROBOTC’s VEX IQ forums.

 
 

Robomatter Blog Ad VEX IQ

 

A Teacher’s POV: Fun With VEX IQ Remote Controls

without comments

Whether they are in elementary school, middle school, or high school, students really enjoy programming their robots with remote controls. Luckily, the VEX IQ wireless controller allows you to do just that. ROBOTC allows you to create your own remote control programs to customize each joystick axis and button controls. Moreover, you can use both Natural Language and full ROBOTC with the remote controls.

Both the VEX IQ brain and the remote control require a radio controller for communication. The radio controller has to be in each in order to use the remote control. Additionally, a battery needs to be placed into the remote control for the wireless communication. Just like the battery for the VEX IQ brain, the battery for the remote control is rechargeable.

Vex Remote 1In order for the VEX IQ brain and the controller to communicate, they must be paired together. With both devices turned off, connect the two devices together with the tether cable that is included with the VEX IQ Starter Kit with Controller. The tether cable is just a standard Ethernet cable. Turn on the VEX IQ brain by pressing the check button. The controller will automatically link and pair with the VEX IQ brain.

Once your connection has been established, the green light will blink on both the remote control and the VEX IQ brain. You will not have to link the tether cable with the remote control the next time you turn on the VEX IQ brain or the remote control. In the classroom, you can assign each robot to a remote control by giving each a number. That way, you never have to link the remote control with the VEX IQ brain. Or, you can just have the students do a quick set up at the beginning of class. Either way will work.

ROBOTC can access all of the data from the VEX IQ remote control by referencing the button and axes by their described names. Joystick buttons return values of..

• 1 – Pressed
• 0 – Not Pressed/Released

Joystick Axis return values of…
• -100 to +100 (0 when centered)

Vex Remote 2 Vex Remote 3

When using the VEX IQ remote control, make sure you switch to your “Controller Mode” to Tele-Op.

Vex Remote 4

Alright, now you can begin programming (either in Natural Language or full ROBOTC) and have some fun.

Remote controlAs teachers, we all know to expect the unexpected. I recently had the students on a Friday, with a long weekend in front of them. Therefore, I did not want to start a new concept, for I would have to re-teach it after the long weekend. So, I decided to set up a quick in-class competition with the VEX IQ Challenge Field and some Bucky Balls and rings.

I allowed the students to make up the parameters for the game, gave them some time to devise some strategy, downloaded some sample programs to run the remote controls, and let the fun begin. The students had a great time and the activity will serve as a springboard for future investigation into how to customize the remote control programs.

- Jason McKenna

 
 

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

February 4th, 2014 at 9:55 am

February Online Professional Development Courses

without comments

February TrainingsThe Carnegie Mellon Robotics Academy will be offering two ROBOTC online professional development courses in February!
The  six-weeks online courses will be:

ROBOTC Online Training for LEGO / TETRIX
February 11th – March 18th, 2014
Tuesdays for 6 Weeks
7-9:00pm EST (4-6:00pm PST)

ROBOTC Online Training for VEX CORTEX
February 13th – March 20th, 2014
Thursdays for 6 Weeks
7-9:00pm EST (4-6:00pm PST)

Web Training graphicThe Professional Development courses provide teachers and coaches with a solid foundation for robot programming in the respective languages, and experience in troubleshooting common student mistakes. It also focuses on identifying and extracting academic value from the naturally occurring STEM situations encountered in robotics explorations. Find out more here – Robotics Academy Professional Development

Classes are filling up quick, so sign up today!

 

 

 

Written by Cara Friez

January 31st, 2014 at 1:03 pm

New Robot Virtual Worlds Video!

with one comment

RVWRobot Virtual Worlds just released a new video all about the software!! Check it out here:

 

 

 

 

 

Already using RVW? What do you think? How do you use this software in your classroom? We’d love to hear your feedback!

2014 REC Foundation and Robomatter Scholarship

without comments

REC Foundation Scholarship REC Foundation and Robomatter are pleased to partner to offer one (1) $5,000 non-renewable scholarship to one (1) high school junior or senior intent on pursuing a degree related to science, technology, engineering and mathematics in college. The award will be presented at the VEX Robotics Competition World Championship in April 2014, but the student does not need to be present to win.

Eligible students must have participated in the VEX Robotics Competition and submit a 500-word essay explaining how their participation in both the VEX Robotics Competition and the Carnegie Mellon Robotics Academy Sponsored Robot Virtual World Competition enabled them to develop a high competency and appreciation for programming. In addition, students must indicate how programing skills and use of ROBOTC enhanced their understanding of robotics or aided their participation in the VEX Robotics Competition.

Click this link to see the scholarship requirements: Robomatter Scholarship

Fill out this form and follow the instructions on it to apply: Robomatter Scholarship Application form

Entries must include:

  • Student’s name
  • School name
  • Specify grade level (i.e. Junior or Senior at time of application)
  • Team number
  • Document/statement from team mentor verifying student’s participation/role in the challenge
  • Student’s email, mailing address with city, and state

All entries must be submitted to scholarships@roboticseducation.org.

Deadline: February 15, 2014!!

ROBOTC Graphical Natural Language

without comments

We know that text based languages (such as ROBOTC) have advantages in terms of customizability with functions, complexity with algorithms and calculations, and typically smaller sized programs over graphical languages; however, it is difficult to overcome the simplicity and ease of use that “Drop and Drag” programming languages offer to new users just getting started with programming.

TextBasedNaturalLanguage

A few years ago (with ROBOTC 3.X), we announced our “Natural Language” feature – a simplified library of commands that used “natural” commands to control your robot, such as Forward, Reverse, and LineTrackForTime. The Natural Language feature was designed to help ‘bridge the gap’ between a graphical language and the text-based ROBOTC. Teachers have praised ROBOTC’s Natural Language for making it easier to get their students up and running faster than ever before. Currently, ROBOTC supports Natural Language on the VEX Cortex, VEX IQ, and LEGO MINDSTORMS NXT platforms for both “Real” and “Virtual” robots.

GraphicalProgrammingOverview1

Today we’re proud to give you a sneak peek to a new feature we’re calling “Graphical Natural Language”. This new interface will allow you to program robots from inside ROBOTC with easy-to-use graphical blocks that can be drag-and-dropped to form a program. Each block represents an individual command from the “text-based” ROBOTC and Natural Language.

 


 

Each block is custom designed to fit the needs for that specific function and parameters. Using text boxes and drop-down menus, users can customize each values of each function to solve various challenge and activities using the same commands as ROBOTC’s Text-Based Natural Language.

FunctionsParameters
We have also added some new language extensions to both ROBOTC and Natural Language, such as the simplistic “Repeat” command. Prior to the Repeat command, users would need to copy and paste large sections of code or use a looping structure (like a ‘for’ or ‘while loop) in order to have a set of actions repeat a certain number of times. With the new “Repeat” command, however, users can simply specify how many times they would like for the code to run, with no complex coding required.

RepeatCommand
Another awesome tool that we’ve implemented in ROBOTC 4.0 is the “comment out” feature. You can now comment out an entire line of code just by clicking on the block’s line number. Lines of code that are “commented out” are ignored by the robot when the program is run, which makes this feature very useful when testing or debugging a program. This new tool is unique to Graphical Natural Language.

CommentingOut
Because each Graphical Natural Language block corresponds to a real ROBOTC or Natural Language function, users will be able to graduate from Graphical Natural Language to full text-based Natural Language with the press of a single button. This will allow you to naturally transition from Graphical Natural Language to the text based Natural Language (or ROBOTC), without having to worry about manually converting the code line-by-line!

NaturalLanguageWithCode
We have many other features and enhancements planned for Graphical Natural Language – Be on the lookout for a preview version sometime in January!

Please Note: The screenshots and interface in this post are not the finalized version of the ROBOTC Graphical Natural Language – the names, interface, look and feel of the system may change between now and official release.