Robotics | Robotics Choreography

I still haven’t decided what songs to choose, but I have some move ideas. I’m thinking that I can make the robot move across the room, and wave its arm up and down. I might even make the robot move on the spot as well. I think I could probably make the robot move in a zigzag pattern to the beat of the song. If possible, I’d like to get LED lights working on the robot. Also, maybe I’d add to my robot to give it more parts (moving or sensors), to find more combinations of moving parts that my robot could utilize. Maybe for a certain part of the song, I’ll have the robot go backwards. I’ll try to include both point turns and swerve turns.

I will probably choose the song “Eye of the Tiger” as my song.

Robotics | Unit 2 Reflection

What was this challenge about?

This challenge was about programming our robots to traverse a course. We did this through the use of a new tool that we had previously not used known as “shaft encoders.” Initially, I believed that this would be a simple challenge, however, through the many, many technical difficulties we faced, I learned that making the correct code is only half of the battle.

A shaft encoder

What did you know before the working on the challenge?

We knew basic movement and motion commands in RobotC for our robots, however, we mostly used virtual worlds instead of a real robot, as we were quite inexperienced. We also knew a vague definition of what a shaft encoder is, but we never tried using one at all. Before this challenge, we hadn’t done too much with our robots, so we didn’t see too many technical difficulties.

A screenshot of an older version of virtual worlds on RobotC


What are the technical difficulties for completing the challenge? List them out and explain why they are difficult.

During this challenge, we faced many technical difficulties. In fact, we probably spent more time trying to fix technical difficulties than we did actually working on the challenge. Some of them include: the shaft encoders not registering, the firmware not updating properly, one motor going faster than the other, motors not working, batteries not working, and wires getting tangled/removed our robot. These are just a few of the many technical difficulties we faced, and they were difficult because the time we spent trying to fix these could have been spent on actually doing the challenge, which left us with less time to work on the program itself. Many of these problems required us to literally take apart our robots to replace the parts with new ones. We spent entire lessons simply surveying the class to see if other people were having the same problems as us, and trying to narrow down the cause of said problem.

One of the many errors we faced was a firmware issue, there should only be one light on.

Describe the approach(es) (e.g. time vs shaft encoder) you tried throughout the problem solving process.

To get our measurements as precise as possible, my team used mathematics to solve for the values required for the robot to go certain distances and to turn certain angles. We found the distance that the robot would move after one full rotation of the shaft encoder (it was 35 cm). We then found the full length of the portion we were using (with measuring tape), and divided it by the distance of one rotation to find the amount of rotations needed for the specific distance (8.4 rotations). Using this number, we found the number of rotations required to get through a specific distance by multiplying it by 360. For angles, we did the same process. We found the required value for a 90° turn, and used this ratio to solve the angles required. To get the angles in the first place, we used a protractor.

In the end, our mathematics did not work flawlessly. It was very close, but due to age from the motors and/or shaft encoders, the mathematically accurate values did not work perfectly. This led to us using trial and error, slightly adjusting values and testing repeatedly until we got a good enough demonstration.

Some of the calculations we used to solve our distances and angles.

Did you use the virtual world to test your program? Was it useful?

No, we tested with our actual robot. Virtual worlds would have been good for testing, however, as I mentioned earlier, some of the motors are old, and there are natural errors that can happen in the real world that are not possible to be recreated in the virtual world.

What have you learnt in the process? Any new insight?

I learned a lot about how to use VEX robots and RobotC, and I’ve learned a lot about good troubleshooting methods. Some of the methods I used could have been more effective, and I now know that. For example, if I had double-checked the motor and sensor setup from the start, I could have saved time replacing parts that could have possibly been working properly. Overall, I’ve learned a lot about troubleshooting, as well as how to use VEX robots in person, and on the computer with RobotC.

My Video

Robotics | Performing Task (almost completed)

After slight problems last lesson, my teammate and I were able to finally get our shaft encoders to work perfectly. We also fixed all other issues with our robot and our computer. Now, our goal was to traverse the course set before us. We went about doing this by using mathematics, division, and trial and error to determine the correct values to set in our code in order to make the robot move the required distance. We used measuring tape to find the length of each section. Then, we calculated the distance our robot would move when we set the axle rotation to 360. Then we found the length of the portion divided by the length of 360 rotations, and then we multiplied this number by 360. This was done to find the amount of rotations required for the beginning area. However, due to age or human error, the robot was unable to reach this point using our calculated value, so we resorted to trial and error.


For turns, we used a protractor to get the exact angle required. We also found the amount of rotations required for a 90 degree turn. Using a ratio of number of rotations divided by 90 degrees, we were able to calculate the number of rotations for a specific angle (found with the protractor). Despite age/human error, our turns worked very well. All we need to do is some last minute adjustments to our distances (which we are still testing) and we should be good to go for the entire course.


Some of our math we did to calculate the values required (not all of it worked):

Robotics | Programming Robot to Track Continued

In this class, all of our robots were broken, however we learned valuable lessons/skills about fixing and debugging robots. We also learned about problem solving, and through trial and error we were able to learn how to find and solve the problems. In the end, we did not solve the problem, but we made many theories and hypotheses as to why they wouldn’t work. We also learned a great lesson about teamwork, and how after working together we were able to progress our problem solving faster. 🙂 🙂

Robotics | Programming Robot to Track

There are/were many problems with our robot, so we spent the lesson guessing and checking speeds. Our shaft encoders are broken, so we ended up programming the robot to move using the motor speed and time. After many technical glitches and problems, we ended up solving them, and making our robot move along the length desired.

Robotics | Shaft Encoder Investigation

What is a shaft encoder?

A shaft encoder is a device used among VEX parts to count the amount of rotations on a connected shaft/axle. It is also referred to as a rotation sensor.


How does it work?

The encoder starts with a value of 0, and it goes to 360 depending on the amount of rotation. It also goes down depending on the direction.


How do we code it in RobotC?

You need to have some code to configure the sensors, but it is written automatically when the sensors are connected/when you load the sample program. You then have to make a while loop for the encoder to record.


Why is it better to use a shaft encoder?

Without it, you can’t make precise movements tuned to the amount of rotations an axle would make. You’d have to guess using the speed and time.

Robotics | Labyrinth

Programming my robot to navigate the labyrinth was quite difficult. I had to go to the website on Schoology to see how to actually make the robot perform more than one action, and from there it was all trial and error. I had to test different times and speeds before I was sure it would work, but eventually I got it to work. 🙂


My virtual robot:


My code:

Robotics | Hebocon

Hebocon is described as “the best worst robot competition.” It’s a competition where the main gimmick is the fact that all of the robots look and control like garbage. I was given a pack of various parts for construction, some batteries, and a motor. I did not make any improvements outside of class, however I put blue tack on some parts later on in the class.

All was looking good for my robot, however I decided to sacrifice my motor for one of my fellow classmates, so I had to start from scratch. I used a robot I had created last year, a VEX one that was remote-controlled. Because my robot was remote-controlled, I easily defeated the competition, however there was one robot that stopped me. Some kind of spinning robot severed my wires using its rotating blades, preventing the movement of my robot, which led to my defeat.

If I could do this all again, I probably would have used my old robot, because I really liked the way it moved. It was a great robot, and it was a shame I couldn’t use it in the competition. Next time, I’d pack a spare motor to give away in case anyone was missing theirs 😉


My original robot (Called Ethan Tan):

My old robot (Called Ethan Sisbarro):

Robotics | Unit 1 Reflection

The question we discussed was “what is a robot?” I personally defined it as something, often mechanical, that follows orders and performs tasks that are either too repetitive or impossible for humans to perform. At the beginning of the unit, we drew pictures of what we thought robots looked like, and I drew a stereotypical science fiction robot. However, I learned that the definition of a robot is not set, and can be both manipulated and changed to suit the speaker’s needs.

Throughout the unit we challenged the definition of a robot, such as when I did a presentation attempting to convince the class that my friend was a robot (which he is). I explained that he performs repetitive tasks (video games), lacks human emotion, and is 100% expendable. Although perhaps I may have stretched the definition a bit too far, I believe that I fit the definition of a robot to apply to my friend pretty well.

A picture of my friend I used in my presentation.

We also had a Hebocon tournament, where we built robots to fight each other. By looking at a more traditional style of robot, we got to compare our extreme ideas of robots (in the presentations) with what is normally thought of as a robot (Hebocon). It was a good way to see many definitions of the same thing, so we could get a deeper understanding of robotics in general.

My Hebocon robot. 🙂

In the exploration process of the unit, I often questioned what a robot is, because we all had different definitions. I do feel confident talking to other people about the topics in this unit now, because I have a better understanding as to what a robot is and what people define it as.

To learn together better as a group, we must work together as a group. When we shared ideas for definitions of a robot, we all came up with improved definitions based on the ones we heard. When we were arguing against presentations of what a robot is, we learned more from each other and our opinions. When I sacrificed my motor in the Hebocon competition, I did it for the good of our team (or the classmate I helped).

Our class. 🙂 🙂 🙂

Another question I am thinking of are “what makes a definition of a word?” We all looked up definitions of a robot, but we all found different definitions. If words are defined by dictionaries, why do some of them have different definitions than others? And if words are defined by those who speak them, who’s going to keep track of all of the definitions of a word?