Archive for the ‘Cool projects’ Category

Cool Project: Tumblebug

with one comment

TumbleBugBlogDamien Kee, a VEX IQ and EV3 Super User, has created another cool project! This time he used one of his kids toys, the Tumble Bug Ball Drop, to test out how often the ball comes out of the left foot / right foot with a 50% probability. Damien says, “My boys got this toy for Christmas one year and I thought I’d put together a little device to check the probability of how it works. I used Ultrasonic Sensors with the EV3 and Colour Sensors (Proximity mode) with the IQ to keep track every time a ball went through the toy…. This would make a great experiment to run in class, not just with the Tumble Bug but all different types of kids toys.” We couldn’t agree more!

Damien used the VEX IQ and LEGO EV3 programmed in ROBOTC to run his tests. The programs figure out the percentage and display them on screen. Here is a full breakdown video of how the project was done …



Not only does this project allow for the practice of programming, but it gives the opportunity to assess variables when determining the results. Damien says: ”

What I love about doing these sort of extended investigations in class, is that rather than being a final conclusion, this now opens up a huge range of other questions and scenarios that you can test.

  • Why was there a difference?
  • Was the table level?
  • Do the different balls have an impact?
  • Does the placement speed in the mouth affect the results?”

Want to try it out yourself? Here are the code files Damien used:
EV3 RobotC –  EV3_tumblrbug.c
VEX IQ RobotC –  tumblrbug_VEX.c

To see the full hardware setup and find out the final results, check out his full blog here – Testing the Tumblebug (EV3 and VEX IQ)


Do you have a cool ROBOTC project you want to share with the world? If so, send us an email at and we’ll post it on our blog and social media pages!

Written by Cara Friez-LeWinter

March 2nd, 2016 at 6:00 am

Cool Project: Arty the Dual-Bot

with one comment

Cool Project - ArtyFor our latest Cool Project, we have guest bloggers, Team 8086A – Team Semiconductors to discuss their unique dual-bot for last year’s VEX Robotics Skyrise competition. They went on to win the 2015 World Championship Science Division Create Award! Read more below …


For the 2014-2015 VEX Robotics game, Skyrise, Team 8086A, Team Semiconductors, built a very unique robot, a dual-bot. This robot’s unique design included many advantages, most significantly the ability to multitask. However, along with the advantages came many challenges. The team worked hard all year to conquer the challenges and the assistance of ROBOTC in many of these challenges was invaluable.

Team Semiconductors

Team Semiconductor is a group of friends in Glen Allen, Virginia.  This independent team has its roots in two middle school VEX World Championship competitive robotics teams, Team Theodore (6740C) and Team Dave (6740D).  Several students from the two teams and their school’s Technology Student Association (TSA) who were moving on to high school and wanted to compete in VEX Robotics banded together to create a new team, Team Semiconductors.  Midway through the 2014-2015 season (Skyrise), the team revealed their one-of-a-kind design: Arty the Dual-Bot.

Semiconductors 01


Skyrise was the 2014-2015 Vex robotics game. The goal of Skyrise was to build a skyrise (a yellow pylon, built piece by piece). 4 points were awarded each section built, and putting cubes (hollow cubes, 8 inches wide) on the skyrise were worth another 4 points each. Then, you could put the cubes on varying height poles for 2 points, and if you had the top cube on the post, you scored 1 extra point. This was the tallest game vex had ever made. The highest item was the robot built skyrise which at max was about 60 inches tall.

Semiconductors 02

Arty: The Dual-Bot

Arty is a very unique robot designed to compete in Skyrise: a dual-bot. Arty consisted of two parts each performing specialized tasks simultaneously: an immovable tower that is dedicated to building a skyrise, and a rover, whose task is to move around the field placing cubes on poles and on the skyrise. These two pieces have a connector running between the two holding the wiring, and they also give the robot its name, “Arty” (RT for Rover/Tower).



Team Semiconductors had multiple reasons for using a dual-bot. The most important reason was the ability to multi-task, which allowed for higher scoring and the ability to still compete if our alliance partner is a no-show. This bot was made possible due to the high scoring potential in the starting area, with scoring skyrises. We noticed that many robots that would do skyrises wouldn’t even leave the starting square for the first minute, while stacking skyrises. We thought it would be best to have a stationary robot in there to score those while another part of our robot was doing something else. One of the biggest advantages of the stationary tower was its precision; instead of relying on time to move the skyrise, we could use potentiometers to measure the position of our claw, and drop the pylon once it lined up.

Arty can score high by itself in matches, up to 58 points on its own without autonomous bonus, allowing it to be able to carry most matches, regardless of alliance partner. It also has high skills scores, with the second highest Driver Skills and Programming Skills scores in Virginia, with 43 and 27 points, respectively.

Semiconductors 03


Two main factors came into play for us choosing ROBOTC to program Arty: it’s easy to learn and it has the ability to use tasks. The first factor was essential, as our team had no previous experience in ROBOTC. The only previous experience with programming robots our team had came from using block code. The transition to using a text-based language, especially one we had almost no base in was worrying, and lead to questions about our ability to learn the language in-time to program the robot. Our lead programmer had experience in programming languages, but no experience in C-based languages, meaning there was a lot of learning involved in the first few weeks of programming. However, after those few weeks, we felt confident in our abilities with the program, and were able to create the complex programs used in Arty with almost no syntax trouble.

The second factor was specific mainly to Arty, but still very important. Due to Arty being a dual-bot, we needed a way to run programs for the rover and the tower at the same time. This was allowed by tasks, which can run side by side with each other, unlike functions, which run one after the other. These tasks allowed us to run the rover and tower side by side, but also allowed for smaller additions to increase efficiency.

Semiconductors 04

How ROBOTC was Used

As mentioned above, one of the key elements of our programming of “Arty” was the use of tasks for the control of both rover and tower. We used separate tasks in both driving and autonomous functions. We also used tasks to increase efficiency in our programs. For example, we used tasks to turn the tower arm and raise the tower simultaneously instead of one after the other to save time. One problem we came up against with tasks was the inability to pass inputs into the tasks. To get around this we created functions that modified global variables and then called the tasks, and used those global variables for things that would’ve needed to be input into the task.

One of the most interesting things we did in the rover’s drive tasks was creating a turret-centric drive. The turret on rover that could swing 360 degrees was always facing forward on the robot. Since we had an X-drive, any direction could be the front of the robot; it was all in how we programmed the wheels. One of the biggest problems rover had was its inability to turn without getting tangled in the connector. We put a turret on the top of the robot to prevent us from having to turn, but this made driving awkward. The solution to this: a turret-centric drive. We measured the location of the turret with a quad encoder and adjusted the values in Robot C according to which way the turret was facing. This made it so that whenever we hit up on the joystick the rover always drove in the direction its turret was facing, making it much easier to drive, since it now had a distinct “front”.

Semiconductors 05

In programming our tower, we found that we were always doing the same thing, but we were just changing times for movement, and target locations to account for swing. To save time and space in our program we used a for loop that looped for however many skyrises we were going to build. At the start of the loop we had a switch statement to assign all the values based on which piece we were stacking. We then had our previous generic code that we had been writing out inserted, with variables instead of numbers being used. This saved a lot of time in programming, as all values that needed to be adjusted were easily found in one place.

Due to the way the tower was built, sometimes our arm would get caught on something, and not finish the turn. To get around this our turn function had a self-check built in. At the start of the task, we would calculate approximately how long it should take for our arm to reach its position. At the end of the time period, we would then check to make sure we were in position. If we were not, we’d raise our arm and then try to turn again. This process would repeat for 3 times at most. If it reached its location, it would then lower the arm the same amount it raised it and continue the program. If it never reached its location it would set a variable to false, and then the program would stop, to avoid wasting scoring objects by dropping them.



ROBOTC helped the team maximize our unique robot design and Team Semiconductors went on to win the 2015 World Championship Science Division Create Award with Arty the dual-bot. You can learn more about Team Semiconductors and follow us on social media at

– Team Semiconductors


Test Your Skills with our Virtual Competitions!


If you’re looking for a cost-effective and fun way to participate in a robotics competition, check out or low cost, high quality virtual competitions that enable students to test their problem solving and programming skills.

Our VEX Nothing But Net and VEX IQ Bank Shot Robot Virtual World Competitions both simulate the single-player Robot Skills and Programming Skills modes of the physical Nothing But Net and Bank Shot competitions. And, the winners of the Robomatter sponsored VEX Nothing But Net and VEX IQ Bank Shot Robot Virtual World competition will receive an invitation to the VEX World Championship April 20-23, 2016 at the Kentucky Expo Center in Louisville Kentucky! To learn more, check out this blog post.

Do you have a cool ROBOTC project you want to share with the world? If so, send us an email at and we’ll post it on our blog and social media pages!

Written by Cara Friez-LeWinter

January 6th, 2016 at 6:00 am

Cool Project: VEX IQ Tetris

without comments

CP VEX IQ TETRISTetris is a beloved and well-known classic game that many of us have been addicted to at one point or another. We wait patiently for that perfect “Tetrimino” that will create a horizontal line so the board continues to move down so the game keeps going. Well, our latest Cool Project does just that, but on a VEX IQ brain and programmed in ROBOTC!

Petr Nejedly created the game as an experiment to see what could be done with the VEX IQ platform outside of robotics. He says, “I have coded it ad-hoc in one night. The code is pretty … short, not really pretty. 233 lines including (rare) comments.” When we spoke through email he mentioned that game is currently not random at all. “So, my son came to me, that he has an improvement to the program. That I should use this random() function, it will be more fun to play … Teachable moment! We have discussed, how a computer, a very exact instrument that always follows the same instructions and in fact only moves numbers here and there, come up with random numbers. What is a PRNG and how you have to seed it (srand()), what are real sources of randomness and what kind of issues such a lack of true randomness could cause in real world, besides lack of fun.” At this point, Petr said he would like to leave the actual fix to the curious readers/programmers out there to see what they can do with it. (Let us know if you do!)

Check out the game in action here:

Petr was nice enough to share the souce code, which you can download here. You can also read the original VEX IQ forum discussing the project here.

Do you have a cool ROBOTC project you want to share with the world? If so, send us an email at and we’ll post it on our blog and social media pages!

Written by Cara Friez-LeWinter

December 3rd, 2015 at 6:15 am

Cool Project: EV3 Security Tank

without comments

Cool Project EV3 TankKyle M. (aka Builderdude35) created a very cool project called the EV3 Krimzon Guard Security Tank! The tank is programmed in ROBOTC too, which was the first time Kyle programmed with our software. Kyle says, “[The EV3 Tank] features proportional IR beacon tracking, and a deadly-accurate turret targeting system. If that’s not enough, it also has a massive spiked steamroller on the front!”





Watch the tank in action here:




The tank includes an EV3 brick, two EV3 large motors, steam roller with spikes, a rotating dual-barrel turret, and three sensors! “There is a Mindsensors SumoEyes mounted on the chassis just above the steam roller (you will see the two red LED’s) that detects the targets in zones left, right or straight ahead. Just above that is a LEGO Infrared sensor that is used for beacon tracking. Lastly, there is a LEGO Ultrasonic sensor that rotates with the turret to confirm target acquisition.” Pretty awesome!

For a more detailed breakdown of the tank and code, visit his website here.

Do you have a cool ROBOTC project you want to share with the world? If so, send us an email at and we’ll post it on our blog and social media pages!

Written by Cara Friez-LeWinter

December 3rd, 2015 at 6:10 am

Cool Project: VEX IQ Game of Simon

without comments

Cool ProjectDamien Kee, a VEX IQ Super User, designed a really cool and creative Game of Simon using a VEX IQ Smart Brain, three Touch LEDs, and programmed with ROBOTC.  He says, “This is my version of the Game of Simon for the VEX IQ. The TouchLED’s are an awesome input/output device that is just so natural to use. Programmed in ROBOTC and designed to be used as a way of teaching / reinforcing the concepts of arrays, in less than 100 lines of code.”

Check out the video below that shows it in action …



For a more detailed breakdown of the code, visit his website here. Damien also is sharing his code for others to use, which you can download here! (He just asks that if you do use it, please acknowledge and forgive any errors.)

Do you have a cool ROBOTC project you want to share with the world? If so, send us an email at and we’ll post it on our blog and social media pages!

Written by Cara Friez-LeWinter

November 2nd, 2015 at 6:00 am

Cool Project: VEX IQ Motorized Skateboard

without comments

Burf SkateboardSimon Burfield (a.k.a. Burf …an amazing nickname!) designed and programmed a VEX IQ Motorized Skateboard! This VEX IQ skateboard uses  2 VEXIQ brains / batteries, and 16 motors connected to 8 omnidirectional wheels. It is also programmed in ROBOTC!


Check out Burf’s website here for more cool project!

Do you have a cool project you’d like to share? If so, send us an email at

Written by Cara Friez-LeWinter

August 13th, 2015 at 7:15 am

Cool Project: LEGO EV3 Sorter Machine

without comments

CH Chen created a cool project and shared it with us! This LEGO EV3 Sorter machine is able to detect the color of Lego Technic beams and then add it to the appropriate slot of the three colors.






Click here to see the code! And check out CH Chen’s blog with even more of his projects.

Do you have a cool project you’d like to share? If so, send us an email at

Written by Cara Friez-LeWinter

July 22nd, 2015 at 7:00 am

Do you have a Cool ROBOTC Project??

without comments

Cool Projects 2

The end of the school year is here and to celebrate, we’d love to showcase some of the ROBOTC projects and code you’ve been working on all year long! If you have a cool project (like these!) send us an email at with a description and your code, pictures, and/or videos. We’ll share it on our blog in an upcoming post!

Written by Cara Friez-LeWinter

June 4th, 2015 at 6:00 am

Cool Project: Automated Work Cell

without comments

Screen Shot 2015-06-03 at 5.00.53 PM

Take a look at this video of an automated work cell that was put together using VEX parts.









Written by Vu Nguyen

April 2nd, 2015 at 2:51 pm

Posted in Cool projects

Cool Project: ColumnBot

without comments

We recently asked a group of engineering students from the University of Aalborg in Denmark to write about their experience using ROBOTC on a recent project. Check it out below!


A model of the robot we built.

A model of the robot we built.

Hi all! We are 6 software engineering students from the University of Aalborg in Denmark. As part of our Bachelor’s degree, we had to design and implement an embedded system, and we chose to design and implement a robot that would solve the Simultaneous Localization And Mapping (SLAM) problem. We called the robot ColumBot.

The hardware we were issued were LEGO NXT bricks and sensors as well as a few from MindSensors. MindSensors provided libraries for use with ROBOTC, which was one of the reasons why we ended up choosing ROBOTC as our IDE.

This shows the generated map for TestCourse.

This shows a map of the test course we ran.

Work in Aalborg is group-based and many of the other groups spent the first weeks trying to get their NXT bricks set up for the firmwares they were using, but ROBOTC allowed us to have the part of the project kept to a minimum. ROBOTC provided us with a strong and versatile tool in solving our project, and was of great help.

Using ROBOTC, we were able to implement a mapping robot with a drive queue, with enough memory for 100m2, as well as a particle filter to correct the inaccuracies that arose from sensing when mapping. All this functionality was scheduled using a real time scheduling scheme. We do not believe this would have been possible with some of the IDEs used by the other groups.

This shows a map of the test course we ran.

TestCourse map.

ROBOTC has its quirks, namely much of the documentation is faulty. [Editor’s Note: ROBOTC recently went through a complete documentation overhaul to address issues like these – take a look at our help docs here.] As the focus of our project was to fit as much functionality as possible into the limited space, this problem mainly arose with the sizes of different types, where the documentation deviated from the reality. But the community is fantastic and many answers to difficult questions were found in the forums during the project period. The most useful features in our project were the Bluetooth Communication and the Debug Stream, which allowed us to monitor the robot remotely and communicate with it.

We would recommend ROBOTC to anyone attempting a build of the same size as ours, but advice you to be wary and test things for yourself, because this was sometimes a problem for us.

Check out one of our test runs here:

Written by Cara Friez-LeWinter

February 23rd, 2015 at 11:01 am