Andrew's Rhino

 Project 1

Catapult: Prototype I

Picture
      For the first design of my catapult I decided use two motors that would turn and fling the ball forward. I tried to make the catapult long enough to take advantage of momentum. After connecting the pieces to the motors I started programming the robot to turn the motors as fast as they could. In the program, I made both motors move forward and stop at an angle of 70 degrees. Unfortunately the ball did not go far enough so I increased the power of the motors. The problem was not about the power of the robot, so I needed to come up with a better design.

Catapult: Prototype II

 For my second prototype I decided to work with gears to make the robot stronger and faster. I did not know much about gears and how to connect and make them work, but with some help from Mr.Croke and fellow class mates I was able to get the gears to work somewhat well. My left gear was working good, but the left gear refused to move which kept the catapult from flinging the ball. I figured out the the gear was not being pulled down enough to turn the other gear, so I attached the gear to the NXT. Unfortunately the problem was still not solved, I hope to leard more about gears in the future, but this design is just not working for me.

Catapult: Prototype III

Picture
        My third and final design used a completely different idea than the previous versions. I still decided to use the motors to turn the catapult, but this time I have a counter-weight that is opposite of where that ball will be placed. I first used my AC adapter to use as the weight, but soon enough I figured it was too much weight for the motors to handle. I then decided to use four wheels as the counter-weight. The wheels were heavy enough that they were able to fling the ball faster, but light enough to keep the side without the weight on the ground.

100_5412.mov
File Size: 651 kb
File Type: mov
Download File

Catapult Robot Video



 
Project 2

Light Sensor

Picture
This is the data I collected from my light sensor robot. The graph on the left shows the amount of time the light sensor sensor was active and when, in the process, it went over the black tape. The Y-axis tells me the percentage of light that was there at the time and the X-axis shows me when and how long the increase or decrease of the light there was. As seen in the graph, the amount of light when my robot started was about 55%. After four seconds, the light decreased to 35% as it went over the black tape. The light then increased at five seconds as it went in the area between the black tape. The graph can also tell me the speed that my robot was going. Each piece of tape is two feet apart, my robot took three seconds to go between each tape to the other. In conclusion, my robot was going 2/3 foot per second.     

Touch Sensor

   Even though I am Level 2, I still wanted to make a touch sensor robot. I first came up with an idea to put the touch sensor near the wheels in front of the robot, the touch sensor would then get pushed every time the wheels made a full rotation. But this modification interfered with the motion of my robot, so I had to come up with a different technique. I received help from Mr. Croke in making a program that made a motor, that was attached to the touch sensor, rotate back and forth when the A and C motors made two full rotations. I attached the motor and touch sensor to the NXT and built something that, when the sensor was pushed down, the button would be                                             pushed against to collect data. Unfortunately, with technical problems and the interest of time, I was not able to                                             produce a data log for the touch sensor.    
100_5877.mov
File Size: 1509 kb
File Type: mov
Download File

Touch Sensor Video

Click to set custom HTML



Prototype 1

Picture
This is the first prototype of my rope climb robot. Step one was to figure out how I was going to get the robot to attach to the rope. I decided to wedge the rope between the actual motor and wheels to give it more of a grip. I went through several wheels, figuring out which one's worked well, and I went with these thin wheels seen on the right. I put the wheels as close as I could to the motor in order to cause a better grip, but didn't put them too close so the rope could fit through. I thought about adding a second motor to turn the wheels, but then I decided to put on gears. This way I could have both the motor and the second pair of wheels rotating at the same speed and time. It was also an advantage because it drastically reduced the weight. I installed the program seen below to make the motors rotate forward for 60 seconds in order to go up the rope and then reversed the motor for 30 seconds, considering that gravity will take part in bringing it back down. The robot was successful, with a few minor problems such as messing up on the program and making the robot go up, but not come back down. It was an easy mistake to fix. But I felt that I could have improved the robot so I came up with prototype 2.

Picture

Prototype 2

Picture
This prototype isn't that different from the first except for the addition of a touch sensor. With this touch sensor I wanted to make the robot climb up the rope and then, when the touch sensor was pushed down by the pole the rope was hanging on, it would come back down without having to rely out a certain amount of time. The program seen below shows that motor A will rotate forward until the touch sensor is pressed in which, after a one second delay, motor A will go in reverse for 15 seconds and stop. This was the final prototype and was successful after a few attempts. The video below shows the robot steadily climbing the rope and then coming back down.

Picture

Rope Climb



rope_climb.wmv
File Size: 3567 kb
File Type: wmv
Download File

Roach Bot - Scared of Light

Picture
This is the roach bot that my partner and I created. The primary goal of this robot was to move slowly and randomly throughout the white circle while the lights are off. After, when the lights are turned on, the robot flees quickly in a straight line. This is suppose to resemble the actions of a cock roach. I first started by creating a simple bot with two motors and two wheels in the back and then a free moving wheel in front as seen in the picture to the right. The light sensor facing upward in the middle detects the light in the room and by using the program below we told it to commence the slow random motion when the light was below 33. When the light sensor detected light higher than 33, the program would go out of the loop and move motor A and C forward quickly.

Picture

Roach Bot - Path Follower

Picture
This roach bot is designed to follow the path on the floor while staying in the white part of the path. We kept the same structure as the first prototype except we flipped the light sensor so that it faces the ground. This lets the sensor detect the amount of light on the ground. The white paint is obviously lighter than the dark paint, this differentiates which path we want the robot to follow. When using the program below, the light sensor will detect the amount of light below and above 40. When the light is lower than 40, motor C will move and stop motor A. When the light is higher than 40, motor A will move and stop motor C. This will make the robot move from side to side slightly, but will allow it to follow the path because the light sensor will stay where it is most dark: the black line. Our roach bot was successful in following the path and can be seen in the video below. 

Picture

Project 5

Escape Bot

Picture
This "Escape Bot" is designed to get out of this circle in which there is only way out. It uses a sonic sensor as well as two touch sensors to move about the circle and get out through the space. The sonic sensor works by sending out sound waves and receiving them back. If the sonic sensor receives the sound waves faster than the set length, such as twenty centimeters, it will ensue the program that it is told to do. Our sonic sensor is set to twenty centimeters, the program will then tell the bot to back up and turn 90 degrees when the sensor detects an object less than twenty centimeters away. The touch sensors are used as a back up. If the sonic sensor does not detect an object, the touch sensors will bump into that object and then commence the program by backing up and turning ninety degrees left or right depending on which touch sensor is pushed. Eventually, the bot will find it's way out through a number of manuevers. Being in level 2, the bot had to get out of the circle in less than ninety seconds. Our bot got out in less than thirty seconds as seen in the video shown below.  
        The program I created below is divided into three basic programs. By using task split, the program uses two touch sensors and a sonic sensor to perform three different programs. When the first touch sensor is pushed, motors A and B will reverse and then B will go forward and A will go backwards, and vice versa for the second motor. The sonic sensor has a similar movement except it makes smaller turns so it does not over shoot the gap in the hall. The jumps that are seen before and after the programs tell the program to go back to the beginning and restart. I was impressed by this robot because it uses a sort of artificial intelligence to make desicions on its own.

Reflection Guide

The assignment was to build and program a robot that could escape out of a circle blocked by certain objects. Using a sonic sensor and touch sensor you must leave the circle through the small space provided to be successful. 

 Having used the touch sensor in previous projects I already understood how it work and what it can be used for, but the sonic sensor was something that I was unfamiliar with. In order to understand how the sonic sensor works I went to the “Help” option in Robolab. There I read how the sonic sensor works and what it can be used for. I also received assistance from Mr. Croke on how to create multiple tasks in one program, an essential part of this assignment.

We first built a basic robot with two motors that could simply move forward. After building the robot we focused more on the program and exactly how we were going to use both the sonic and touch sensors on our robot. We quickly created a touch sensor program because we have had past experience with it. We then worked on the sonic sensor program. After learning more about this sensor we adjusted the distance the touch sensor would detect an object and created a task for the robot to perform when the distance was less than the value we gave it. After multiple tests and retakes, we successfully got out of the blocked circle in less than half a minute and recorded a video of it.

The robot we built is designed to maneuver around objects. With the sonic sensor attached it acts as if it had artificial intelligence, making decisions based on its surroundings. Without the sensors it is just a basic robot that can only move forward, but with the sensors attached it can, eventually, make its way out of any obstacle in its path.

I received feedback from peers telling me that the robot could move a lot more efficiently if I changed the program slightly. Taking this advice I changed the amount of time the robot would back up and turn, this made the bot turn better and saved me a lot of time to get out of the circle.

I learned much from this assignment, but the thing I learned about the most was the advantages of a sonic sensor. The sonic sensor is an amazing tool that I will most definitely use in future projects. This sensor was extremely helpful and impressed me on how smart these robots can actually be. I also learned how to create more complex programs that I would have never been able to do in the past. I learned to split programs into multiple tasks giving it various aspects that will change my outlook on programming these bots.

If I could do this project all over again I would change the program that I created. The rotation of the robot depends entirely on the amount of time the motors would turn. For example, I had one motor go forward for two seconds and the other motor rotate the other direction for two seconds. I would have rather set the amount of rotation the motors turn than use a time limit, but with all the problems we had fixing and figuring out how program will work, we felt it was an unecessary to switch to number of rotations. 
Picture

Escape Bot Video



100_6537.mov
File Size: 4855 kb
File Type: mov
Download File

Complete Kit: Term 3

Project 6

Scan Bot

Picture
The purpose of the scan bot is to have the light sensor scan a letter on a white sheet of paper and we must determine what letter the bot scanned just by looking at the graph it produced. This graph to the left represents the number "3" that was scanned by our robot. The blue line represents the "3" we scanned for our first test. The green line is the "3" that Mr. Croke scanned for us to guess what number or letter he scanned. We had to compare our previous graphs to the graph that Mr. Croke produced for us. We already knew that it wasn't an "N" or a large "M". But we had to decide whether it was a small "M" or a "3". We thought it was the "M", but it ended up to be a "3" that Mr. Croke scanned. The comparison graph to the left clearly shows the similarities between each graph. 

Reflection Guide

The assignment was to build and program a robot that scans a black letter on a white sheet of paper using the light sensor. Without looking at the robot scan the letter and using the graph produced, we had to figure out which letter was scanned.

I already knew how the light sensor worked and what I can do with it. So I already had a basic idea of how the robot was going to be built. What we needed to figure out first is how the letters would appear on a graph after being scanned by the light sensor. We scanned four different letters and numbers; a large M, the number 3, the letter N, and a small M. Now that we know what the letters look like on a graph, we compare these to the final scan in which we have no idea which one was scanned.

We first brainstormed several ideas on how the robot was going to scan the letter. Our first idea was to use gears and put them on a track to move back and forth. Out second idea was to make a robot that slides between to slots and use a pully system that pulls the sensor across. We ended up combining these two prototypes and built a robot that slides through the slots, but moves by using gears and a chain. The gears are attached to the light sensor and ride along the chain making the light sensor move with it. We then scanned several letters and produced four graphs to compare to the final scan that we will be given.

We received the graph that Mr. Croke produced when he scanned the letter with our robot. Looking back at our previous scans, we compared those graphs to the final one. We eliminated a few graphs that were not at all similar to the graph we had to interpret. We then decided that the graph Mr. Croke scanned was a small "M". We were wrong, after looking back at the graphs, we now clearly see that the graph was the number "3" 

There was a significant amount of feedback we recieved. One student suggested that if we keep only one side of the chain on the gears then it would move much smoother. So what we did was have one set of gears lifting up the top of the chain and lay the gears that are attached to the light sensor on the bottom chain. This was extremely beneficial and made the robot move a lot faster and smoother. Another student suggested that we have wheels far out from the center of the bot, so the paper could move freely and not touch any part of the bot. Overall the feedback was extremely helpful and it was good to hear positive comments from my peers.

I learned that gears don't just have to be used on motors to makes wheels faster or stronger. But they can be used to move various parts of the robot itself. With the chain being a major asset to our project, we were able to use the gears in a way we have never thought of. I also learned about the use of comapring graphs. In Robolab Investigator, there is an option you can choose that puts to graphs on each other to get a close examination of the graphs and their similarities.

If I were to do this project again I would use the graph comparison option in Robolab Investigator. When comparing the final graph to the test graphs we only looked at similarities the graphs had, but we did not use the graph comparison. I would also have made a more stable and convenient robot. Our robot does the job right, but it was frustrating to make small changes and add and remove pieces.

Graph of Large "M"        Graph of "3"             Graph of "N"        Graph of Small "M"

Physics Bot

Picture
With the graph produced by our physics bot, we determined the degrees the motor rotated, 2800 degrees, and the amount of time, 7.4 seconds. We divided 2800 by 360, the total degrees of a circle, and got 7.77, which is the total number of rotations. We then multiplied this by 7.065, which is the circumfrance of the wheel. We received 4.6, which means the robot went 4.6 ft./second. The team that we went up against gave us a speed of 5.2 ft./second. We added these two speeds together. We then took the length of the black line, 10 feet and diveded it by 9.8 ft, which is the sum of the two speeds. We got an answer of 1.02 seconds, which means that the two robots will meet 1.02 seconds after we started both robots.

Reflection Guide

The assignment is to have two robots go head-to-head and figure out when they will meet on a 10 foot line.

Before I begin, I needed to figure out the math involved to find the point at which the robots will meet. I studied the formulas Mr. Croke put on his website and follwed them throughout the assignment.

I first built a simple robot with a light sensor, which I have done in the past. I then put to touch sensors in the front for when the robots meet.  I then put a sound sensor on the top of the bot, completing the robot. Creating the program was the most difficult task. We assumed that the light sensor and touch sensors would work perfectly together, but it did not turn out the way we expected. Only the light sensor or the touch sensors worked alone, both could not work together. This happens probably because the jumps will only work with the task that it surrounds. I split the light sensor task and the touch sensor task and put jumps only on the light sensor task. Unfortunately this could work and we had to change our program to the one seen below.

Our robot, which was at power level 3, went against another robot at power level 5. We let the robots go at the same time and had the touch sensors stop the motors once the two robots met in the middle. We uploaded the graph that was produced by motor logging and it gave us the graph seen below. We figured out that the motors rotated 2800 degrees in about 7.4 seconds. Given the circumfrance of the wheel and the amount of rotations, we figured out the speed of the robot, 4.6 ft/second. We added this to the other robots speed, which was 5.2 ft/second. Then we took the length of the black line, 10 feet, and divided it by 9.8. We got 1.02 seconds which means that the robots will meet in 1.02 seconds after start.

We first started with our initial design which was a robot that follows the black line once it hears a loud noise and stops when the touch sensor is pressed. We figured out it was not possible to have the touch sensor and the light sensor work at the same time. Mr. Croke suggested that we should change our program and just have the robot go forward instead of following the black line. We took this advice and in the end it worked out.

I learned about the complexity of different sensors attached to the NXT at the same time. I also learned to calculate for when the two robots will meet using the formulas Mr. Croke provided for us.

If I could do the project again I would work more with the program to make a robot that follows the black line and uses the touch sensor to stop all at the same time.

         Physics Bot Program                                      Physics Bot Graph                 

Project 8

Container Bot: Reflection Guide

Picture
The assignment is to use containers in a robolab program to store the value of light and then run the program to follow a black line using a light sensor. 

    Before we began, we needed to know how to use containers. Mr. Croke explained to us that empty containers store a certain value in it and then that value can be used for a light sensor or any other sensor.     

    We first put an empty container into the program, we then ran the program to store a light value in it. Now that the container has a value to run on, we then used the light sensor greater than less than split to run a different task when the value is more or less than the value in the container. With a few minor adjustments we had the bot running perfectly. You can see the robot in action below.

    This is not much different from other bots that we have created. The only differerence is that we are using a container to store  a value instead of manually putting in numbers as the value. The outcome was a robot that could follow a line perfectly, even better than putting the actual numbered value into the program.

    We finsihed this assignment rather quickly. After Mr. Croke thoroughly explained how the container stored a value, we got the correct value in the container and had it follow the black line. 

    I've learned much from this assignment, the container is a very useful tool to use in Robolab. Now that I understand how to use containers, I will use them more often in futiure assignments and can achieve results better than I ever had berore. 



100_7385.mov
File Size: 1005 kb
File Type: mov
Download File

Robotics Final

50 things I have learned this year

1) How to assemble an NXT robot
2. How to create a fast gear ratio
3. How to make a strong gear ratio
4. How to program a touch sensor
5. How to program a light sensor
6. How to program a sonic sensor
7. How to program a sound sensor
8. How to use containers
9. How to sync motors
10. How to make a website
11. How to film a video
12. How to write better paragraphs
13. How to upload pictues to my website
14. How to upload videos to my website
15. How to create graphs in Investigator
16. How to upload data from NXT to computer
17. How to make an NXT play a musical note
18. How to split tasks
19. How to loop tasks
20. How make jumps in an NXT program
21. How to make a robot follow a black line
22. How to make a robot climb a steep slope
23. How to make a tug of war bot
24. How to make a battle bot
25. How to create a sub-routine
26. How to make a motor work for a certain amount of time
27. How to make all motors stop
28. How to randomize the motors
29. How to make a sound sensor detect a clap
30. How to set degrees on a motor
31. How to combine two tasks into one
32. Hwo to start a task after the touch sensor is pushed
33. How to start a task after a touch sensor is released
34. How to make a robot climb a rope
35. How to set the light value for a light sensor
36. How to hold the camera correctly with the strap around your neck
37. Hwo to calculate the speed of an NXT robot 
38. How to set the ports for different sensors
39. How to download a program into the NXT
40. How to decrease the file size using Camstudio
41. How to set the power level of the motors
42. How to make motors go in reverse
43. How to use the HTML code
44. How to put a picture on my website
45. How to put a slideshow on my website
46. How to make a 25:1 gear ratio
47. How to randomize the motors
48. How to wire commands
49. How to pictures from the camera to the computer
50. How to solve problems using robots only  

Explain Programs

The first program makes motors A and B go forward for 4 seconds, after that motor C goes backwards 720 degrees which is looped twice.

The second program syncs both motors A and B to go forward for 4 seconds.

The third program randomizes motors A and B and then motor B goes backwards when the touch sensor is released and motor A goes backwards when the touch sensor is pushed. The second part of the task split makes motor C go backwards for 4 seconds.

In the fourth program, when the sound sensor hears a noise, motor A will go forward 380 degrees and then stop.

In the fifth program motor A goes forward while B and C are randomized, the motors will stop when the light sensor picks up a value of 45.

In the Fifth program, the NXT will start data logging while Motors A and B. When the touch sensor is pushed, after 4 seconds, data logging will end.

Write A Program

Roach Bot:

Picture
Line Tracker:
Picture
Engineering Design Process

1. Identify the need or problem
2. Research the need or product
3. Develop possible solutions
4. Select the best possible solution
5. Construct a prototype
6. Test and evaluate the solution
7. Communicate the solution
8. Redesign

The largest file Weebly will accept is 5 mb.

A prototype is an original model in which something is based or formed.

My favorite challenge was the battle bot because I have always wanted to create a robot that could fight another robot, but never had the opportunity to. I also enjoyed creating the controller for the bot, it no longer relies on a program, but buttons that controls it's every move.

Gear system: Tug of War - You would have a gear system of 1:5 with a small gear on the motor and the large motor on the outside.

Gear system: Speed - You would have a gear system of 5:1 with a large gear on the motor and a small gear on the outside.
Picture