Archive for the ‘Student’ tag
We are excited to give you a preview into our newest curriculum series: The Introduction to Programming VEX IQ with ROBOTC. The website is still in-the-works, but it should be completely ready by August. The focus for this curriculum is on the VEX IQ virtual and/or physical robot and the ROBOTC 4.0 software featuring the new graphical function. It consists of videos, PDFs, quizzes, and our famous easy to use step-by-step videos. Check out some of the videos of from our curriculum series …
The Introduction to Programming VEX IQ with ROBOTC is a curriculum module designed to teach core computer programming logic and reasoning skills using a robotics engineering context. It contains a sequence of projects (plus one capstone challenge) organized around key robotics and programming concepts.
Why should I use the Introduction to Programming EV3 Curriculum?
Introduction to Programming provides a structured sequence of programming activities in real-world project-based contexts. The projects are designed to get students thinking about the patterns and structure of not just robotics, but also programming and problem-solving more generally. By the end of the curriculum, students should be better thinkers, not just coders.
What are the Learning Objectives of the Introduction to Programming VEX IQ Curriculum?
- Basic concepts of programming
- Sequences of commands
- Intermediate concepts of programming
- Program Flow Model
- Simple (Wait For) Sensor behaviors
- Decision-Making Structures
- Engineering practices
- Building solutions to real-world problems
- Problem-solving strategies
For more info and to see the online version of the curriculum, visit http://curriculum.cs2n.org/vexiq.
An article titled, “Robots Are Everywhere! Learning About Technology From Robotics” was recently published on the Huffington Post website featuring the Carnegie Mellon Robotics Academy! The author, Dr. Julie Dobrow from Tufts University, reached out to some of the staff at the Robotics Academy to get their take on robotics in the classroom. Here are some excerpts from the article …
The “Robotics Academy” at Carnegie Mellon University features a variety of tips for educators and parents on using robotics to teach kids about math, science, engineering and physics. Their extremely well-organized website offers curricular information, products and support to demonstrate ways to use both VEX systems (essentially a kit with all the component parts that enables kids to build a robot) and LEGOs to teach many STEM principles. All of their work and products are based on extensive research.
Robin Shoop, Director of the CMU Robotics Academy, believes that some of the work they are doing at CMU can make learning come alive. “Robots provide the hook that can be used to excite students about STEM academic concepts. Robotics activities in and of themselves will not improve STEM academic performance, but if robotics technologies are introduced correctly, and the STEM academic concepts are properly foregrounded, then robotics provides an excellent organizer to teach kids about STEM.”
Ross Higashi, lead curriculum developer at CMU says, “It’s a common misconception that involving robots in a curriculum or afterschool program makes STEM magic happen. That’s simply not true… Robotics presents a wealth of opportunities to teach meaningful content. But doing that, it’s not trivial. It’s hard work. You need well-targeted lessons, and you need a teacher who can support students who are learning by doing. In the end, though, as many students and teachers will tell you: it’s absolutely worth it, and the hardest fun they’ve ever had.”
And kids do have fun. And not only kids. Jason McKenna, a K-8 teacher in the Hopewell(PA) Area School District who works with the CMU Robotics Academy points out that it’s the combination of high engagement, the ability to teach each student at his or her instructional level and provide opportunities for differentiated engagement “that makes Robotics such fun for me as a teacher.”
Our Robotics Summer of Learning (RSOL) course opens this Sunday, June 15 with our first live webinar course starting on Monday, June 16! The RSOL gives students the opportunity to learn how to program robots using a free copy ROBOTC 4.0 (including the new Graphical Natural Language) for Robot Virtual Worlds programming software. If you’ve always thought that ROBOTC was too difficult, you should try out the new Graphical Natural Language, which is part of ROBOTC 4.0!
Live Webinar Course Schedule:
- June 16: Introduction to Software, Setup, Forums and Procedures used in this course.
- June 17: Intro to Expedition Atlantis and Moving Forward
- June 23: Turning and Intro to Ruins of Atlantis
- June 30: Forward until Touch and Forward until Near
- July 7th: Turn for Angle, Forward until Color, Intro to Palm Island
- July 14th: Loops and if/else
- July 21st: Repeated Decisions, Continuous Decisions, Intro to Operation Reset
- July 28th: Joystick and Button control, intro to VEX IQ Highrise
All courses will be held at 1:00 PM Eastern Standard Time with a live instructor. A link will be available in the CS2N Moodle course for each session. All sessions are recorded so that you can take the course at your own pace. These dates are subject to change.
And don’t forget to sign up for our Robotics Summer of Learning Newsletter to get important reminders and information throughout the summer!
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 firstname.lastname@example.org.
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 email@example.com. 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!
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
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.
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.
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.
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.
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.
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!
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.
In the previous entry, I shared some of the features of the VEX IQ robots. Also discussed were some ideas on how to get a classroom organized. Now that we have those things established, we can move on to a discussion of how to begin programming the VEX IQ robots.
ROBOTC for VEX IQ has Natural Language commands that will help beginning programmers of the VEX IQ by supplying a set of commands that use “natural” words. For example, the “forward” command will make your robot move forwards for a specified amount of time or distance. The robot will come to a stop after the movement. Here are some examples of the command:
Move the robot forward for 2.5 rotations:
Move the robot forward to 180 degrees:
• forward(180, degrees);
Move the robot forward for 1.5 rotations at 30% speed:
• forward(1.5, rotations, 30);
Move the robot forward for 10 seconds:
• forward(10, seconds);
• forward(10000, milliseconds);
Natural Language also contains other helpful commands; such as, “backward”, “turnLeft”, “turnRight”, and “repeat”. Below is an example of a Natural Language sample program that is located within the Natural Language sample program folder in ROBOTC:
VEX IQ Natural Language – Port Names and Numbers
leftMotor – Port #1
rightMotor – Port #6
armMotor – Port #10
clawMotor – Port #11
touchLEDSensor – Port #3
gyroSensor – Port #4
distanceSensor – Port #7
bumperSensor – Port #8
colorSensor – Port #9
//Configure the Natural Language to use the VEX IQ Clawbot
//Move the robot forward for 1.5 rotations (rotations are the default unit) at 50% speed (default speed)
//Turn the robot right for 1.25 rotations at 50% speed (default speed)
//Move the robot backwards for 720 degrees at 25% speed.
backward(720, degrees, 25);
//Turn the robot left for 2.5 rotations at 50% speed (default speed)
As you can see, there are a couple things that we have to do in order to use the Natural Language functionality. To enable Natural Language, go to “Robot Menu -> Platform Type -> Natural Language”.
The easiest way to get started programming is to open a sample program or to use a template. To open a sample program in ROBOTC, go to File Menu -> Open Sample Program.
To use a Natural Language template in ROBOTC, go to File Menu -> New… -> Natural Language Template.
To make programming easier, Natural Language makes assumptions about the type of robot you are using. To configure your Natural Language program to use our VEX IQ Clawbot, use the following line of code:
More robot models will be supported in future releases.
Finally, you will notice in the sample program that port names and numbers are given specific names and ports. Make sure that your VEX IQ Clawbot’s motors and sensors are configured this way in order to work with the Natural Language commands.
Ok. We are ready to go with programming! What should we do? My suggestion would be to start with the Labyrinth Challenge.
The Labyrinth challenge gives the students an opportunity to engage with the VEX IQ robots and ROBOTC. The students are immediately engaged because they can see and test their robot’s movement as it makes its way through the course. Since this may be the first program that some students write, there are a couple of things worth remembering. First, makes sure the students create a flowchart before they begin programming. For more information on flowcharts, you can look here: VEX Teacher – Engineering.
Second, it is important that the students describe what is going on in their programs with comments. For more information on how to utilize comments, please see here: http://www.robotc.net/vex_full/reference/hp_comment.pdf
Now you are ready to go! Good luck and have fun! Remember, if you have any questions as you are working, please visit the ROBOTC forums.
- Jason McKenna