ROBOTC.net Blog  

ROBOTC News

Archive for the ‘Cool projects’ Category

Cool Project: Conway’s Game of Life

with one comment

ROBOTC Game LifeXander over at BotBench (and future colleague!) created an awesome ROBOTC version of Conway’s famous Game of Life. As he states on his blog, “It was first thought of back in 1940, so it’s a real piece of computer science history.” The Game of Life has very simple rules: (taken from WikiPedia)

The universe of the Game of Life is an infinite two-dimensional orthogonal grid of square cells, each of which is in one of two possible states, alive or dead. Every cell interacts with its eight neighbours, which are the cells that are horizontally, vertically, or diagonally adjacent. At each step in time, the following transitions occur:

  1. Any live cell with fewer than two live neighbours dies, as if caused by under-population.
  2. Any live cell with two or three live neighbours lives on to the next generation.
  3. Any live cell with more than three live neighbours dies, as if by overcrowding.
  4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

The initial pattern constitutes the seed of the system. The first generation is created by applying the above rules simultaneously to every cell in the seed—births and deaths occur simultaneously, and the discrete moment at which this happens is sometimes called a tick (in other words, each generation is a pure function of the preceding one). The rules continue to be applied repeatedly to create further generations.

 

You can download the source code here: [LINK]. He tested it on a physical and emulated EV3 as well as an emulated NXT. It will work with ROBOTC 4.26 and up, which you can download here: [LINK].
 

Written by Cara Friez

October 10th, 2014 at 6:45 am

Cool Project: VEX IQ GoProBot

without comments

2014-09-05-14.30.09Xander over at BotBench shared a really cool video a couple weeks ago when he attached a GoPro to his VEX IQ that was programmed in ROBOTC. He didn’t get any pictures of the robot with the camera on it, but you can see where it was held by the rubber bands on the end of the boom in the pictures below. The angle of the boom was also remote controllable.
 
 
 
 
 
 
 


 
And check out the video here …
 

 
Read more about this cool project and other things going on over at BotBench, here!

Written by Cara Friez

September 30th, 2014 at 7:30 am

Cool Project: Room Explorer Bot with Mapping Functions

with one comment

ROBOTC user, Sigtrygg (forum name), recently shared a project on the ROBOTC forums that they have been working on called the NXT Room Explorer Bot with Mapping Functions. Check out the YouTube video of the robot in action …
 


Sigtrygg description and breakdown of the bot …
 

The robot is based upon a standard REM-Bot but in addition equipped with a HiTechnic gyro, HiTechnic compass sensor and an omni-wheel. First the robot moves about 360° to calibrate the compass using the gyro (thank you to Xander Soldaat for code!). Then the robot moves its sonar-head to the right, to the left and in front position to get the distances according to its position. After doing this it turns around to the wall with the minimum distance and drives in front of it until sonar sensor detected a minimum sensor distance, e.g. 20cm. Then the robot turns parallel to the wall, moves his sonar-head to the right detecting the distance to the wall and drives counter clockwise parallel to the wall balancing distance. A mapping-task records the compass and odometry data every second and calculate the polar coordinates to cartesian coordinates (x,y). The coordinates are written as “map.txt”-file. So you can use Excel or an other program to draw the path which the robot had moved. In addition to that you can follow the path at the NXT-LCD-screen. I had to choose a scale for it, so you have to suit the scale to your room size. If the robots touch sensor has detected an obstacle the robot moves back and turn left for 90 degrees and continuous his explorer-duty always running counter clockwise with wall to the right. How to expect the end of path doesn’t suit exactly to the beginning because of inaccuracies of compass and odometry measures.

CIMG3122

Construction of the robot. The upper sensor is the compass sensor.

CIMG3125

Construction of the robot. The upper sensor is the compass sensor.

Screenshot

Screenshot of Excel data-sheet

LCD Screenshot

LCD Screenshot

To read more about this project, check out the ROBOTC Forum post here!

Written by Cara Friez

July 18th, 2014 at 8:00 am

Cool Project: VEX IQ Great Ball Contraption

without comments

VEX IQ Great Ball Contraption 0134The engineers at VEX had some fun one weekend and built this Great Ball Contraption. It was featured at Brickworld 2014 as part of one of the world’s largest GBC’s!
 
 
 
 
 
 
 
 

Each module was created independently with common inlet/outlet bays so that they could be reconfigured in any order. They even include some of the new multicolored VEX IQ parts, coming summer 2014!

Do you have a cool project? If so, email us at socialmedia@robotc.net.

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

June 26th, 2014 at 9:53 am

Cool Project: VEX IQ Quadruped

without comments

Repost from BotBench

In my last post about the VEX IQ building system I had a small video featuring my VEX Quadruped.  I’ve done a bit of work on it since then and the gait has been greatly improved.  I also added some small rubber feet on the legs.  These are the traction links from the Tank Tread & Intake Kit.

Due to the heavy load that these motors are under, you may find that the batteries will run down a bit faster than you’re used to.  Good thing the kits come with a charger!

Up next on the agenda is to add some sensors and have it interact a bit more.  The little wheels on the bottom are not used when it is walking; the robot is fully lifted off the ground.

I’ve taken some picture, so you can see how it’s put together.  These should be enough to copy the design, should you wish to.  You can download the program to run this here: [LINK].  Note that part of the code is based on the excellent guide on creating an Arduino based quadruped: [LINK].

CIMG3355 CIMG3367

CIMG3353 CIMG3354

CIMG3357 CIMG3358

CIMG3359 CIMG3366

CIMG3360 CIMG3361

CIMG3362 CIMG3363

CIMG3364 CIMG3365

Repost from BotBench

 

Robomatter Blog Ad VEX IQ

Written by Xander Soldaat

June 3rd, 2014 at 11:17 am

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

 
 

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

April 17th, 2014 at 8:30 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.

 
 

Robomatter Blog Ad VEX IQ

 

Written by Cara Friez

March 26th, 2014 at 7:30 am

Cool Project: Monster Ball Sorting Factory

without comments

OLYMPUS DIGITAL CAMERA

 

Ray McNamara is relatively new to ROBOTC, having only really started to seriously use it within the past year, but already he’s come up with some interesting projects that caught our eye. The “Monster Ball Sorting Factory”, which he shared with us on the forum, is definitely a cool project we had to share.
 


 

The Factory is a cooperation between two robots Ray’s designed. One is an NXT Forklift truck, which uses a special non-standard part: a pair of Omni Wheels in the back to replace the standard single rotating wheel, which makes the Forklift’s turns a lot more reliable.

The other is a long, conveyor belt and claw arm robot that sorts balls piled onto a conveyor belt based on their color. It then puts them into containers, which the Forklift periodically takes and places in a slot so that the robot can dump it into a bigger bin. This robot is a combination of an earlier project, the “Bin Emptying Machine,” that takes the balls out of their container with a rail mounted crane that does the sorting.

We asked Ray about the project and his motivation for doing it and he replied:

“My Monster Sorter is still a work in progress, much to my wife’s annoyance due to the amount of real-estate it has been taking up in the lounge room since early December 2012.  I hope to have it all running on a single NXT (excluding the Forklift), by means of 2x Mindsensors Motor Multiplexers and 1x Mindsensors Sensor Multiplexer. If my calculations are right, the single NXT Brick will control 8x Motors and 10x Sensors.

My motivation was the challenge to learn how far I take the standard Colour Sorter model. It really started back in 2010, when I convinced Rotacaster Australia‘s GM to turn his industrial rollers into Omni-wheels for my LEGO Models and robots. After almost exhausting the possibilities of Holonomic Platforms, I looked into other uses for the Rotacaster Wheels, resulting in my Forklift Truck.

Once I had my Forklift Truck, I needed to put it to work. The Ball Sorting Factory was what evolved over a few days. Since then I have been fine tuning the hardware and the ROBOTC code used to control it. In the process, I have also been Beta Testing some Mindsensors Sensors and Multiplexers with it.

I always try to include a detailed description, photos, video, code and CAD files for my robots when they are published to my blog. Although it takes a lot of time to put my blog posts together, I feel it is worth it. I get a lot questions and praise from many people who use my resources. I especially enjoy helping out students with their queries.”

To download the code to this project, click here – ROBOTC Code for Factory and ROBOTC Code for Forklift.

Thanks to Ray for taking the time to respond to our questions! Visit Ray’s website at www.rjmcnamara.com to see more projects, pictures, codes, videos, and much more.

Do you have a cool project or video you want to share with us? If so, send us an email at socialmedia@robotc.net.

Written by Cara Friez

July 31st, 2013 at 3:55 pm

TETRIX Curiosity Rover Programmed with ROBOTC

without comments

IMG_1712We ran into Paul Utley from Pitsco at the 2013 FIRST Championship who designed a model of the Curiosity Rover with TETRIX parts, NXT brick, and programmed in ROBOTC! We were lucky enough to get a short interview with him about it. Check it out here …
 
 
 
 
 
 
 
 


 
If you are at the 2013 FIRST Championship in St. Louis, MO., make sure to stop by and check it out in person. For more information on Tetrix go to http://www.tetrixrobotics.com
 

Written by Cara Friez

April 25th, 2013 at 6:22 pm

Wiki Guide: How to Play Sounds Through a VEX Cortex Speaker

without comments

Back in April, we did an unboxing for the VEX Cortex Speaker which we blogged about, here.

Since then we have had many requests for an updated guide on how to play custom audio files through the Cortex Speakers. Today, the wait is finally over. We have updated our wiki pages to include an in-depth guide on how to convert a sound file into a Cortex-usable format using the open source program, Audacity [link].

Once the file is formatted and downloaded to the Cortex properly, the ‘PlaySoundFile(“filename.wav”)’ command is used to access the audio file and play it through the speaker port (example shown below).


task main()
{

//Play a Sound File (need to use the File Management to Upload First)
PlaySoundFile("1.wav");
wait1Msec(1000);

}

If you are interested in the Cortex Speaker and what can be played through it, check out the VEX forum post about playing Nyan Cat through the VEX Cortex speaker. As an added holiday bonus, how about the 12 Days of Christmas?

We are continually updating and improving all of our support material; if there is anything you think would make ROBOTC more accessible, don’t hesitate to comment below!


Written by John Watson

November 21st, 2012 at 1:01 pm