Final Vehicle Testing

The goal of Performance Test 3 is to incorporate the data used in Performance Test 2 to create the most efficient Advanced Energy Vehicle in terms of its energy consumption. To do this, the team used Configuration 1 and used goFor commands while coasting. This resulted in an Advanced Energy Vehicle that was not only efficient but worked consistently and effectively. The code used for Performance Test 3 can be found below.

The average number of joules consumed per test run was approximately 188, and the average time in which the runs took was 75 seconds. Run 2 had a slightly higher number of joules as compared to the other runs, which Team D believes is due to the craft going slightly too far and pulling the load for longer than normal. This could account for the outlier of that run’s energy consumption. The energy consumption of the vehicle pushed it slightly over budget, but only by $8000. Many other groups went higher over the budget, so Team D felt that they kept the budget low as well. This was likely due to using the least possible amount of parts, such as cutting down one motor and all parts but the base. The best run overall was run 3, being very consistent and having no bumps or mistakes during the run. In total, Performance Test 3 went very well and Team D felt that it outperformed our expectations in every way, with the team hoping it would not cross 200 joules.

To develop the AEV further, Team D wanted to increase the efficiency further. One of the ways that Team D could do this would be to increase the accuracy of how the AEV judges the distance it travels. Another way that Team D could do this would be to further develop the code of the vehicle to improve overall efficiency. This could be done by adding more coasting or even taking off some unnecessary commands. The last way that Team D believes they could improve the efficiency to further develop the 3-D printed parts of the craft. Adding less infill (how much material there is inside the print) or improving print quality could lower the weight and negate any slippage.

Final AEV Render:

 

Final Code Used: (For a list of the functions and what they do, go here. )

 

reverse(1); Reverses All Motors
aevServo.write(0); Resets brake servo
servoProp.write(0); Resets prop servo
delay(100); Delays by 100 milliseconds
servoProp.write(10); Pitchs the prop to 10 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goToAbsolutePosition(8); Goes forwards 8 marks
servoProp.write(11); Pitchs the prop to 11 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goToAbsolutePosition(16); Goes to a position of 16 marks
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goToAbsolutePosition(32); Goes to a position of 32 marks
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goToAbsolutePosition(64); Goes to a position of 64 marks
servoProp.write(13); Pitchs the prop to 13 degrees
motorSpeed(1,39); Sets the motor speed to 39%
goToAbsolutePosition(128); Goes to a position of 128 marks
servoProp.write(14); Pitchs the prop to 14 degrees
motorSpeed(1,39); Sets the motor speed to 39%
goToAbsolutePosition(256); Goes to a position of 256 marks
servoProp.write(15); Pitchs the prop to 15 degrees
motorSpeed(1,39); Sets the motor speed to 39%
goToAbsolutePosition(280); Goes to a position of 280 marks
servoProp.write(16); Pitchs the prop to 16 degrees
motorSpeed(1,39); Sets the motor speed to 39%
goToAbsolutePosition(292); Goes to a position of 296 marks
servoProp.write(32); Pitchs the prop to 32 degrees
motorSpeed(1,0); Sets the motor speed to 0% (Coasting)
goToAbsolutePosition(480); Goes to a position of 480 marks
motorSpeed(1,0); Sets the motor speed to 0%
aevServo.write(50); Brakes the AEV
goFor(1); Waits for 1 second
aevServo.write(0); Releases the motor brake
motorSpeed(1,0); Sets the motor speed to 0%
goFor(7.5); Goes for 7.5 seconds
servoProp.write(10); Pitchs the prop to 10 degrees
motorSpeed(1,36); Sets the motor speed to 36%
goFor(0.5); Go for 0.5 seconds
servoProp.write(11); Pitchs the prop to 11 degrees
motorSpeed(1,37); Sets the motor speed to 37%
goFor(0.5); Go for 0.5 seconds
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goFor(0.5); Go for 0.5 seconds
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goFor(0.25); Go for 0.5 seconds
servoProp.write(13); Pitchs the prop to 13 degrees
motorSpeed(1,38); Sets the motor speed to 38%
goFor(0.25); Go for 0.25 seconds
servoProp.write(14); Pitchs the prop to 14 degrees
motorSpeed(1,39); Sets the motor speed to 39%
goFor(0.25); Goes for 0.25
motorSpeed(1,0); Sets the motor speed to 0% (Coasting)
servoProp.write(30); Pitchs the prop to 30 degrees
goFor(6.45); Go for 6.45 seconds
aevServo.write(48); Brakes the motor
goFor(0.5); Go for 0.5 seconds
aevServo.write(0); Releases the motor brake
servoProp.write(10); Pitchs the prop to 10 degrees
motorSpeed(1,20); Sets the motor speed to 20%
goFor(0.8); Go for 0.8 seconds
motorSpeed(1,0); Sets motor speed to 0%
goFor(5); Wait 5 seconds
reverse(1); Reverses the motor
servoProp.write(11); Pitchs the prop to 11 degrees
motorSpeed(1,58); Sets the motor speed to 58%
goToRelativePosition(-11); Goes backwards 11 marks
servoProp.write(11); Pitchs the prop to 11 degrees
motorSpeed(1,54); Sets the motor speed to 54%
goToRelativePosition(-11); Goes backwards 11 marks
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,54); Sets the motor speed to 54%
goToRelativePosition(-22); Goes backwards 22 marks
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,56); Sets the motor speed to 56%
goToRelativePosition(-44); Goes backwards 44 marks
servoProp.write(13); Pitchs the prop to 13 degrees
motorSpeed(1,58); Sets the motor speed to 58%
goToRelativePosition(-88); Goes backwards 88 marks
servoProp.write(14); Pitchs the prop to 14 degrees
motorSpeed(1,60); Sets the motor speed to 60%
goToRelativePosition(-176); Goes backwards 176 marks
servoProp.write(15); Pitchs the prop to 15 degrees
motorSpeed(1,60); Sets the motor speed to 60%
goToRelativePosition(-50); Goes backwards 50 marks
motorSpeed(1,0); Sets the motor speed to 0% (Coast)
servoProp.write(30); Pitchs the prop to 30 degrees
goToRelativePosition(-80); Goes backwards 80 marks
aevServo.write(42); Brakes the motor
goFor(1); Wait for 1 seconds
aevServo.write(0); Releases the brake
goFor(7.5); Stay for 7.5 seconds
servoProp.write(10); Pitchs the prop to 10 degrees
motorSpeed(1,50); Sets the motor speed to 50%
goToRelativePosition(-11); Goes backwards 11 marks
servoProp.write(10); Pitchs the prop to 10 degrees
motorSpeed(1,50); Sets the motor speed to 50%
goToRelativePosition(-11); Goes backwards 11 marks
servoProp.write(11); Pitchs the prop to 11 degrees
motorSpeed(1,50); Sets the motor speed to 50%
goToRelativePosition(-22); Goes backwards 22 marks
servoProp.write(12); Pitchs the prop to 12 degrees
motorSpeed(1,54); Sets the motor speed to 54%
goToRelativePosition(-44); Goes backwards 44 marks
servoProp.write(13); Pitchs the prop to 13 degrees
motorSpeed(1,54); Sets the motor speed to 54%
goToRelativePosition(-88); Goes backwards 88 marks
servoProp.write(14); Pitchs the prop to 14 degrees
motorSpeed(1,40); Sets the motor speed to 40%
motorSpeed(1,0); Sets the motor speed to 0%
servoProp.write(32); Pitchs the prop to 32 degrees
goFor(3.94); Go for 3.94 seconds
aevServo.write(42); Brakes the motor
goFor(1); Go for 1 seconds
aevServo.write(0); Releases the motor brake