For my final project, I'm going to help Ms. Henry learn a bit more about the vex Iq robotics kit. She had mentioned to me a while ago that she had run out of things to do in her robotics class, because the vex IQ kits did not hve many assignments that you could do. They had built every robot in the instruction manual, and the chromebooks would not allow them to load programs onto the robot brains. So I hope to be able to help her out a bit with that.
One of the problems with the kit as I have mentioned in my previous blogs, is that the Vex IQ programming is not for beginners. Anyone who uses it should probably have some experience in block type coding or python, which luckily for me I have used code studio before and the block type programming for both websites are very similar. But knowing this, we can still create some very simple challenges for new students who are unfamiliar with coding.
First off, I'm basing all of my challenges on the challenges that I did back in my robotics class my freshmen year, because I had a lot of fun in that class, and even though the challenges are simple, in the end they are rewarding.
Before starting with the kits:
Get every student to set up an account on robot mesh studio, so this way they can save all of their progress and if they sign in on a different computer, they will still have their codes.
Starting a new robotics class:
So for new students I would definitely start by introducing all the students to the robotics kit, getting them familiar with all of the pieces and what they do. From there have them all build the starter bot, first have them build it, and connect the controller to the brain, and maybe let them drive it around for a little bit.
Next I would have them do some very basic tasks, and I mean basic, like simple movements. I remember in my class, Mr. McGowan set up a taped section on one of the tables, and each of us had to make our bots go along the line as close as possible, so that they have to go back to their computers after each trial to adjust distances, and turning angles. this way they get familiar with changing and troubleshooting their codes. make sure they know which sensors they need to use for each code. Some other simple tasks:
some other good challenges;
This second to last one is the code i said i would expand on earlier, because it is very similar to driving forwards into a wall and turning around, except it will also count the distance that it has traveled, and when it turns around, it will go back to it's original starting point.
it uses the color sensor which is pointed downwards at the table, to first identify the shade of the table, and then sets it to a variable. it then starts a counter variable to zero, which will then count the distance that one of the motors has moved, and starts driving forwards. when it reaches the black line, it stops the counter, and turns around. then it simply travels forwards again until the other motor's position has reached the same value as the first motors position, which is stored in the counter variable.
This final code is a black line follower, which first sets the value of a variable to the same grey scale level as the black tape. the counter variables are only important because they tell the robot when to start a sharper turn, for sharper corners. i would first start with a course that has only right turns, because its much easier. but left turns can eventually be added in.
Then it simply turns the right motor forwards to go left when it is on the black line, and when it is off the black line, it turns the left motor forwards to go right, which puts it back on the line. this is repeated forever so long as there are no left turns.
If there are left turns, try and make them gradual, because the program already turns left if the robot stays on the black line, but if the left turn is too sharp, it will go off the line, and start turning right, which will turn the bot around and go the opposite direction.
So these should be plenty of good examples to use for some classes next year, but I strongly encourage bringing one of the kits home with you over the summer, and whenever you get the chance, try and make some new challenges, and save them on your account so that you can use them as examples for the students.
Hopefully the robotics courses next year will be super fun, because there's not enough material that they give you to work with, so making your own codes and challenges will be the key to having a successful class. I hope that your classes next year will be as fun as mine was back in my freshmen year.
One of the problems with the kit as I have mentioned in my previous blogs, is that the Vex IQ programming is not for beginners. Anyone who uses it should probably have some experience in block type coding or python, which luckily for me I have used code studio before and the block type programming for both websites are very similar. But knowing this, we can still create some very simple challenges for new students who are unfamiliar with coding.
First off, I'm basing all of my challenges on the challenges that I did back in my robotics class my freshmen year, because I had a lot of fun in that class, and even though the challenges are simple, in the end they are rewarding.
Before starting with the kits:
Get every student to set up an account on robot mesh studio, so this way they can save all of their progress and if they sign in on a different computer, they will still have their codes.
Starting a new robotics class:
So for new students I would definitely start by introducing all the students to the robotics kit, getting them familiar with all of the pieces and what they do. From there have them all build the starter bot, first have them build it, and connect the controller to the brain, and maybe let them drive it around for a little bit.
Next I would have them do some very basic tasks, and I mean basic, like simple movements. I remember in my class, Mr. McGowan set up a taped section on one of the tables, and each of us had to make our bots go along the line as close as possible, so that they have to go back to their computers after each trial to adjust distances, and turning angles. this way they get familiar with changing and troubleshooting their codes. make sure they know which sensors they need to use for each code. Some other simple tasks:
- make a square by driving forward, turning 90 degrees, forwards, turn etc...
- set up their controller buttons to do certain things, one button makes it go forwards, one backwards, one turn 90 degrees, etc...
- a simple loop program that uses the touch sensor: drive forwards, if it hits a wall, backup, turn a random amount of degrees, and continue this forever.
some other good challenges;
- have them use the distance sensor to follow their hand: if they move their hands too far away from the sensor, the robot drive forwards until it gets too close, and when it does it stops.
- expand the last challenge to include turning, use two distance sensors, and if one is closer than the other, it will turn in the direction of the closer one until they are equal, this might be too complex but its worth a try.
This could be the first few days to the first few weeks of class material depending on how many challenges you make up. Using your imagination, just make up some random tasks that the students could do with their robots, and make sure you test them yourself before the students do, to make sure the tasks are complete-able.
Now for some more difficult challenges,
After the students have become comfortable coding, you can get them ready to do some harder tasks. but first I would recommend that they build the autonomous robot, which is supposed to be the last robot that you would build in the kit's instructions, but the reason why I would do this first is because it will show them how all of the sensors work together when they are used at the same time. It basically just drives around randomly without hitting anything, which you could have them recreate themselves, but instead of using the built in code, they must code it themselves on robot mesh.
After this we can get into some good challenges. These are all of the codes I have created and tested so far, and I will include a picture so that you can remake them and test them as well, as well as giving a brief explanation for each one.
This first one is a simpler task, using only a distance sensor that has been extended outwards and bee pointed down. it checks if the distance is ;ess than a few inc hes, which will tell it it is still on the table, and if it detects that it has gone off te table, it stops, backs up and turns around to a random ngle, and then repeats.
This first one is a simpler task, using only a distance sensor that has been extended outwards and bee pointed down. it checks if the distance is ;ess than a few inc hes, which will tell it it is still on the table, and if it detects that it has gone off te table, it stops, backs up and turns around to a random ngle, and then repeats.
The next one uses the color sensor, distance sensor, and a colored plastic block. It spins in a circle until it finds an object within its visible distance, which is about two feet, and when it sees it, it stops, and turns a tiny bit more because it doesn't always line up straight with the block, and then drives towards it. then and it will tell you the color of the object by printing the name of the color on the robot brain's lcd screen.
This next one is one of my favorites, because it is fun to use. This uses only a color sensor and a touch led sensor, and it will detect the color of the object placed in front of it, identify it, and then change the color of the touch led sensor to the exact same color. I think this challenge will be one of the student's favorites too because they can set up the code to identify and color. I just coded the colors of the rainbow.
it uses the color sensor which is pointed downwards at the table, to first identify the shade of the table, and then sets it to a variable. it then starts a counter variable to zero, which will then count the distance that one of the motors has moved, and starts driving forwards. when it reaches the black line, it stops the counter, and turns around. then it simply travels forwards again until the other motor's position has reached the same value as the first motors position, which is stored in the counter variable.
This final code is a black line follower, which first sets the value of a variable to the same grey scale level as the black tape. the counter variables are only important because they tell the robot when to start a sharper turn, for sharper corners. i would first start with a course that has only right turns, because its much easier. but left turns can eventually be added in.
Then it simply turns the right motor forwards to go left when it is on the black line, and when it is off the black line, it turns the left motor forwards to go right, which puts it back on the line. this is repeated forever so long as there are no left turns.
If there are left turns, try and make them gradual, because the program already turns left if the robot stays on the black line, but if the left turn is too sharp, it will go off the line, and start turning right, which will turn the bot around and go the opposite direction.
So these should be plenty of good examples to use for some classes next year, but I strongly encourage bringing one of the kits home with you over the summer, and whenever you get the chance, try and make some new challenges, and save them on your account so that you can use them as examples for the students.
Hopefully the robotics courses next year will be super fun, because there's not enough material that they give you to work with, so making your own codes and challenges will be the key to having a successful class. I hope that your classes next year will be as fun as mine was back in my freshmen year.
So impressed - excellent work - useful curriculum - THANK YOU!!!
ReplyDelete