Robotics Academy Blog  

Archive for the ‘Education’ Category

Student POV: Robovacuum

without comments

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.

RoboVacuum1

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.

RoboVacuum2

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.

RoboVacuum3

Below is an image of the final program.

RoboVacuum4

Now our robot is able to move around autonomously while avoiding different obstacles!

- Alexis and Noah

Written by Cara Friez

April 17th, 2014 at 8:32 am

Student POV: Slalom Challenge

without comments

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.

#5

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.

#1

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.

#2

The repeatUntil loop has many options for how long the loop should run. For this challenge, we decided to use the timer.

#3

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:

#4

Now you can line follow in any challenge you would like, the possibilities are endless!

Written by Cara Friez

April 2nd, 2014 at 7:47 am

Student POV: Robo 500 Challenge

without comments

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.

ROBO 500 picture

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.

Photo 1

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.

Photo 2

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.

Photo 3

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°.

Photo 4

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.

Photo 5

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.

Photo 6

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.

Photo 7

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.

Photo 8

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.

Photo 9To 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 socialmedia@robotc.net.

Written by Cara Friez

March 26th, 2014 at 7:30 am

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@cs2n.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.

#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!

Written by Cara Friez

March 19th, 2014 at 4:37 pm

The EV3 Curriculum is available!

without comments

EV3 CurriculumThe Robotics Academy is excited to announce the release of our EV3 Curriculum! It is available online for free today.

The Introduction to Programming EV3 Curriculum is a curriculum module designed to teach core computer programming logic and reasoning skills using a robotics engineering context. It contains a sequence of 10 projects with quizzes and 60+ videos (plus one capstone challenge) organized around key robotics and programming concepts such as:

  • Basic Movement
  • Using Sensors
  • Loops and Switches

Example EV3 copy

 

Teacher GuideTo make it easy to get started with teaching EV3 in the classroom, there is a printable teacher’s guide. This step-by-step teaching guide contains everything that you need to know to plan your lessons using the Introduction to Programming LEGO MINDSTORMS EV3 Curriculum.

 

 

 

 

ev3curriculumThere is also a downloadable and/or DVD classroom version available for purchase that includes:

  • Installable version of all lesson content
  • Student Worksheets
  • Answer Keys
  • Access to upcoming bonus content (Online Download) Coming in May!
    • Data Logging,
    • Wiring Data Hubs,
    • MyBlocks

 

Happy Programming!

A Teacher’s POV: Using the Gyro Sensor

without comments

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.

Written by Jason McKenna

February 24th, 2014 at 1:15 pm

RVW Expedition Atlantis Research Study

without comments

Slide1We recently had a study completed to see if using Robot Virtual Worlds’ Expedition Atlantis and the engaging nature of robotics exploration would teach students skills in proportional reasoning. This research study was implemented in the classroom at three different schools within the northeastern US with 116 students participating. The teachers selected had voiced interest in trying new methods to foster such skills in students. The students ranged from 6th to 8th grades with various levels of math and algebra experience. The majority of the students had little or no experience working with robots.

 
 

Chapter 4

The week long study began on the first day with the experimenter distributing pre-tests which included 17 questions that prompted proportional reasoning (both with and without mathematical calculations), and 16 questions about students’ grade levels, algebra plans, familiarity with robots, and personal interests in mathematics and robotics.

Example Test Questions:

  • Ann and Kathy each bought the same kind of bubble gum at the same store. Ann bought two pieces of gum for six cents. If Kathy bought eight pieces of gum, how much did she pay? Make sure to explain your thinking.
  • Which statement is correct?
    2/5 = 1/4 = 3/6
    2/5 = 4/25 = 16/625
    2/5 = 6/15 = 4/10
  • I enjoy working on robotics problems. (NO!, No, Maybe, Yes, YES!)
  • Mathematics is dull and boring. (NO!, No, Maybe, Yes, YES!)

Atlantis-Beta-2The study comprised a simulated robot navigation game and practice problems for students to complete and discuss as a class. Problems ranged from robot-related situations that required calculations very similar to those required within the game, to seemingly unrelated situations where proportional reasoning was used to solve everyday problems. The experimenter, who was present in each classroom for the entire week, met with the teacher before/after each class to discuss the day’s activities, what to do tomorrow, and how the study might be better tailored to meet the needs of the particular class. At the end of the study, post-tests were administered.

Overall, the study found that across the three schools, scores improved on post-test measures. Similarly, it saw significant increases in mathematics and robotics interests from pre- to post-test. Thus, results indicate that the study was effective in improving students’ proportional reasoning skills. Not only this, the study also improved students’ interests in mathematics and robotics as reflected in both their self-ratings and their performances in attempting more problems on the post-test than they did on the pre-test.

Slide2

Slide3

This research has been about finding out ways to effectively teach and gain interest in mathematics and robotics. We are proud of what the initial findings have found and we look forward to continuing our research within this subject. Let us know what you think in the comments!

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

without comments

Vex Remote 5Whether 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.

Written by Jason McKenna

February 4th, 2014 at 9:55 am

New Robot Virtual Worlds Video!

without comments

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!

Announcing the Virtual NXT!

without comments

Virtual-NXT-with-MenuWe are thrilled to announce a brand new tool for education, the Virtual NXT.

The Virtual NXT allows you to program virtual robots in the Robot Virtual Worlds using the same programming languages as physical NXT robots. This is an incredible tool for giving students additional practice programming and can even help students increase their understanding of scale and rate, two BIG IDEAS in mathematics.

The Virtual NXT will be completely free until April 1, 2014 for user testing. We’ve tested it extensively but would love to hear your feedback and experiences with the software. Please post your comments here. Beta Testers will receive a 50% discount code good until April 1, 2013! Check the forums for discount code.

The Virtual NXT works with the following NXT compatible software: NXT-G, the EV3 programming environment, and LabVIEW for LEGO MINDSTORMS. The Virtual NXT looks and acts like another NXT to these programs; when you download a program to the Virtual NXT, that program is run by a robot in the Robot Virtual Worlds.

Check out this video to see the how the Virtual NXT allows you to program the virtual NXT REMBOT using NXT-G:

You’re not limited to the simulation based worlds. Here’s another video, but this time LabVIEW for LEGO MINDSTORMS is controlling the fantasy robot, Mammalbot, in an outerspace mining colony!

More information, including the actual software download, a Teacher’s Getting Started Guide, and a Getting Started Presentation are all available at RobotVirtualWorlds.com/virtualnxt. Download the software and try it out today!

The Virtual NXT is designed to help teach mathematics, computational thinking practices, and programming. It is not designed to replace the NXT and cannot teach the iterative design and hands-on engineering that real hardware teaches. The Virtual NXT is not a LEGO® MINDSTORMS® product. LEGO Education and the LEGO Group do not sponsor, endorse, or support this product.

Written by Jesse Flot

January 21st, 2014 at 2:12 pm