Archive for the ‘Classroom’ tag
Jason McKenna, from the Hopewell Area School District outside of Pittsburgh, PA, writes about his experience in the classroom with the new Robot Virtual World game, VEX IQ Beltway. Check it out below …
The new VEX IQ virtual game Beltway is a great way to challenge your students to apply the basics of ROBOTC programming while also asking them to come up with unique strategies to try to score as many points in the 2 minute game as possible. My students just spent about 3 weeks working on the challenge and trying to score the highest score as possible. The students had an absolute blast and as a teacher, it was great seeing all the different ways the students tried to tackle this completely open-ended challenge.
The objective in Beltway is the same as VEX IQ Highrise: program your VEX IQ robot to autonomously score as many cubes as possible during a 2 minute period. With Beltway, a conveyor belt has been added around the perimeter of the game field in order to assist with game play. Additionally, the virtual environment utilizes “magic stacking” meaning that the cubes automatically jump onto the stack when they are placed onto of the stacking cube regardless of the apparent size of the robot. The conveyor belt reduces the accumulation of error, where, for example, a robot’s slight error in one turn becomes a larger error when the robot repeats that same turn 4 or 5 times. Any time students attempt a long program with many different elements they will at some point become frustrated with the accumulation of error that occurs. Magic stacking and the large margin of error that enables easy pickup of cubes eliminates any frustration that the students may encounter as try to pick up cubes and then stack them. These elements of gameplay in Beltway allow students to focus on their strategy, and it also allows them to try to experiment with many different scoring methods because they are not spending a lot of time programming perfect 90 degree turns and aligning their robots perfectly to pick up a cube. You can click here for a more extensive list of rules and information about gameplay!
Beltway comes with a variety of sample programs that students can use to help them get started or as a reference as they adjust their strategies. For example, if students decided that they wanted to control the conveyer belt manually, they could refer to a sample program to see how that is done. I did that many times while monitoring the students. After a few days, the students aren’t repeatedly raising their hands; instead, they just refer to the sample programs for guidance.
The game also served as a great tool to teach beginning programmers the utility of comments. Oftentimes, beginners don’t make programs quite as long as the ones they will make for Beltway. Students quickly saw the need to point out what was going on in their code with comments so they could go back to those sections and make whatever adjustments they wanted as they progressed with their gameplay.
As I stated earlier, my students had a lot of fun while playing Beltway. It is not easy to keep students’ interest level high in an activity that takes 3 weeks. The students maintained their level of interest and they consistently asked to stay after school to work on their programs some more. We had an in-class competition where the students ran their final programs. The winning team scored the winning points as the timer, literally, went to zero. It was pandemonium in my room. Kids were high-fiving each other, cheering, and remarking at how awesome the competition turned out. Students were also talking about the different strategies that the other teams used and how they could change their programs based upon what they had just seen.
So now, of course, the students want to play some more. This is great because now I can use that as an opportunity to show students how they can take some of the code that they used over and over again (for example, picking up cubes) and show them how they can use full ROBOTC to turn those behaviors into functions. Beltway has proven to be both a great teaching and learning tool in my classroom.
- Jason McKenna
We came across a wonderful blog post, written by a faculty member at Allendale Columbia School in Rochester, NY, that talks about their transition to ROBOTC in their elementary classes.
While our 5th grade S.T.E.M. students at Allendale Columbia School were initially perplexed by some very new terminology, concepts, and programming requirements, it didn’t take long to see that our elementary grade students were up to the challenge of learning an industry-standard, text-based programming language typically taught at the high school and college levels: ROBOTC.
Just a couple of weeks before the start of school, we became inspired to teach ROBOTC programming after several local teachers and robotics coaches shared their concerns with us about the need for students to learn high level and industry-standard programming well before their high school years. Pondering this notion, it occurred to us that we could provide our young students the “familiar and scaffolded context” of reconstructing NXT robotic, challenging them to ultimately solve for the same exact missions our students originally and proficiently programmed in NXT in their fourth grade year, re-programming in ROBOTC, in the beginning of their fifth grade year.
As it turns out, our young students exceeded all expectations, easily grasping the new programing concepts, skills, and requirements for successfully completing the PBL (project-based learning) tasks and challenges they were able to solve for…
To read more from this blog, visit their blog here – Programming in RobotC – Starting in the Lower School Grades
Expedition Atlantis immerses you in a world of underwater robotics exploration, where you must solve math problems to control your robot’s movement in the deep seas ruins.
The math problems will help students understand proportional relationships and the basics of robot programming. It is designed for the student to learn as they play, and includes in-game tutorials to help them play along. As you play, you’ll be able to customize your robot, and also earn achievements through our Computer Science Student Network (CS2N). A full teacher’s guide for using Expedition Atlantis in the classroom is available at www.robotvirtualworlds.com/ipad.
Expedition Atlantis was tested in a number of diverse classroom settings. In every case, students had measurable gains in proportional understanding, as well as increased interest in math and robotics. Read more about the research here!
Check out our gameplay video here …
As you play along with the app, please send us your feedback at firstname.lastname@example.org! We’d love to know what you think and any improvements we can make.
Take one of our week long on-site courses in Pittsburgh, PA at the National Robotics Engineering Center (NREC). NREC is part of the Carnegie Mellon University Robotics Institute, a world-renowned robotics organization, where you’ll be surrounded by real-world robot research and commercialization.
ROBOTC for LEGO / TETRIX
July 7 – 11, 2014
July 28 – August 1, 2014
ROBOTC for VEX CORTEX
August 4 – 8, 2014
Enjoy the convenience of taking Robotics Academy courses without leaving your own computer workstation with our online classes.
ROBOTC Online Training for TETRIX
July 21st – 25th, 2014
Monday – Friday for 1 Week
3-5:00pm EST (12-3:00pm PST)
ROBOTC Online Training for VEX CORTEX
July 28th – August 1st, 2014
Monday – Friday for 1 Week
3-5:00pm EST (12-3:00pm PST)
ROBOTC Online Training for VEX IQ
August 11th – 15th, 2014
Monday – Friday for 1 Week
3-5:00pm EST (12-3:00pm PST)
The Carnegie Mellon Robotics Academy’s 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. All participants who complete the course will receive a Robotics Academy Certification. Find out more here – Robotics Academy Professional Development
Alexis and Noah are back again with another Student POV! This time, sharing how they programmed a robovacuum in ROBOTC Graphical Language for the VEX IQ platform.
In this challenge, we programmed the Vex IQ robot to perform a task that was based off of the robotic vacuums that vacuum autonomously while avoiding obstacles. Our challenge was to program a robot that would perform like a robotic vacuum. Therefore it would be able to move autonomously while avoiding obstacles.
We started our program by putting in a repeat forever loop. This means that our program will continuously run until we stop it with the exit button on the Vex IQ brain.
We then made a plan on what we needed our robot to do. Within the repeat loop, we had to put an “if else” statement. An if else statement is a command that makes a decision based on a condition. With our program, our condition is the bumper sensor. The robot checks the condition of whether or not the bumper sensor is depressed. If the bumper sensor is not depressed, it will run the command inside the curly braces of the if statement. If the bumper sensor is depressed, it will run the commands inside the brackets of the else statement. We had to put this statement inside a repeat forever loop because without it, it would only make this decision once.
We then had to decide what task the robot was to perform when the sensor was depressed. So we set up commands within the curly braces of the else statement shown here.
Below is an image of the final program.
Now our robot is able to move around autonomously while avoiding different obstacles!
– Alexis and Noah
It’s Danica and Jake, back again! This time, teaching people about the slalom challenge, in ROBOTC Graphical Language for the VEX IQ platform. The challenge is to line follow using the VEX IQ color sensor without hitting the “mines”, also known as the cups.
In the graphical organizer, to line follow on the left side of the line, all you have to do is use the block, lineTrackLeft, to follow the right side you have to use lineTrackRight.
In this block, there are 3 boxes, one for the threshold, the second for the speed of the left motor, and the last box is for the speed of the right motor. In this line of code, the threshold of 105, the robot’s left motor is set to go at 50% power, and the right motor is set to go at 15% power.
This block has to be included into a repeat loop to make sure the robot continues to do this command for an allotted amount of time.
The repeatUntil loop has many options for how long the loop should run. For this challenge, we decided to use the timer.
The timer is set at 7000 milliseconds or 7 seconds, so it has enough time to make it through the slalom. Our finished program looks like this:
Now you can line follow in any challenge you would like, the possibilities are endless!
Hi, we’re Alexis and Noah, two eighth grade students at Hopewell Memorial Junior High School. Earlier this week, we did the Robo 500 challenge. To write the programs, we used the recently released ROBOTC Graphical software for the VEX IQ. The goal of the challenge was to complete two laps around a Vex IQ storage bin.
We completed the challenge by using timing and degree measurements. The first step was to get the robot to move forward. For this, we would use a basic motor command.
In ROBOTC Graphical, it gives you the option to choose the values in which you want your motor to run by, such as time and rotations. In this challenge, we chose time.
From there, we experimented with different time values until we found the timing that was needed to finish the side of the challenge before the turn. Through testing, I found that 3.7 seconds covered the distance needed.
Now, what was left was the largest challenge of the program, the turn. Timing a turn can be challenging on seconds alone. So, I used degree turns. I started with a 180 degree, which brought me around about 45°. Due to the drift of the robot when it moves forward, I had to make the turn slightly less than double the 180° turn. I settled on a value of 300°.
Once the values were established, the rest was just repeating the commands so the robot would go around the whole box. Here is an example of my final program.
We were then thinking about how the turns were a hassle with trial and error, and contemplated a better way to turn. So, we decided to use a gyro sensor to have the most accurate turns possible.
To start out the program we had to reset the gyro sensor so the sensor could record the degrees from zero.
From here we moved forward to the end of the course for time, and we moved forward for about four seconds. Then we used a while loop. A while loop is set to check a condition and while the condition is true, it performs what is inside of the curly braces of the while loop. In this case the condition is while the gyro sensor value is less than 90 degrees.
We would then repeat these actions until the robot has made two full laps around the course. Here is the program for one lap. To do two laps I would just repeat this program again.
We were able to finish our programs efficiently in a short amount of time due to the design of the new graphical programming. This new design enables you to drag over commands from the function library; such as, moving forwards and backwards, turning, and sensor commands while avoiding the hassle of painstakingly typing each command. This reduces the time spent on each program and allows us to speed up the pace at which we program, and we are able to complete challenges in a shorter amount of time.
To the left, we have an image of the function library and a depiction of what would happen if you dragged a command into your program. The command would line up with the next available open line and would give you options as to what values you wanted to program your robot with.
If you’re a student who would like to contribute to the blog, let us know at email@example.com.
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 firstname.lastname@example.org. 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.
Our first task was to make our robot move forward.
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.
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:
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:
The finished program with the gyro sensor looks like this:
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:
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!
After 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)
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
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!
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
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
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
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.
- 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!
Let us know what you think! If you have any feedback or questions, please send them along via the ROBOTC’s VEX IQ forums.
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.
In 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)
When using the VEX IQ remote control, make sure you switch to your “Controller Mode” to Tele-Op.
Alright, now you can begin programming (either in Natural Language or full ROBOTC) and have some fun.
As 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