|
Explore TEAMS!
|
Student /
MHarradonPracticalExamEgg Hunt Practical ExamMichael Harradon General Outline
Attach:HarradonEggSorterFlow.jpg Δ Planning:Part of our group strategy requires that the robot moves towards the goal and sorts through the eggs one by one, depositing them into the goal if they are the color desired or depositing it off to the side if they were of the other color. This would require a light sensor to check the color of the eggs. A servo would be used as a gate to allow the egg to either roll out or to hold it in place. Coding:The first step would be to determine a method to sense the color of the egg. The difference in readings between the two colors would be very slight, so it would be important to discredit any error. This would be done by first calibrating the sensors to each colored egg when the program is run. Multiple readings would be taken and then averaged together. As each egg was then tested we could take multiple readings and average those to reduce error. Whichever color the readings averaged were closest to would be the color determined for that egg. This would be performed with multiple for loops. The robot would then spin and turn a servo to deposit the eggs either in the goal or outside of the goal, depending on what the team color was. The robot would shake between each egg in order to allow them to settle. Debugging:Lights were used to signify each egg color, with red being a yellow egg and green being a blue egg. This made the buttons relatively easy to use. The first problem I ran into was determining the ideal rotation for the servo and the various times to use to allow for the eggs to roll out. These shortcomings were fixed by trial and error. I also ran into problems storing the averages for the egg. I narrowed this down by using the cricket display to look at different variables as the program ran. The problem was narrowed down to the referencing of global variables, specifically eggAverage, the variable set when calibrated and compared against. I fixed the problem by localizing the variables and passing them back and forth through arguments and returns in each function. |