Evolution of Design

In order to create a perfect AEV, down to every little detail, Team M started small and slowly added on, making sure each step of the way was flawless. This philosophy was applied to both the physical AEV design, and the code used for it’s movement.

Physical Design

Initial physical designs for the AEV were brainstormed and drawn out on paper, as seen in Creative Design Thinking. A final idea was selected, and a first prototype was created. Then, through more research and development, the prototype was improved, and a second model was born. In both, everything down to the propeller direction was researched and oriented as efficiently as possible. Models can be seen below:

Model 1

 

Model 2 with custom base

Model 1 used all simple parts, but was very compact, light, and balanced. Model 2 used a more advanced custom base, allowing for better wire management and providing more space, but ultimately was too heavy to be used in the commercial product. The final product turned out to be Model 1, and Model 2 was retired.

Code Evolution

A code glossary, and every single code used throughout the project can be seen here. The main codes and the changes that happened will be highlighted in this section.

Initial Code

//going to top of hill

reverse(4);

motorSpeed(4,30);

goToAbsolutePosition(182);

brake(4);

//coasting to gate and stopping

goToAbsolutePosition(315);

brake(4);

goFor(7);

//leaving gate

motorSpeed(4,30);

goFor(2);

brake(4);

This first code was created with the goal of getting the AEV from the start of its’ track, coasting up to and sliding to a stopping at the gate, waiting and then going through the gate. This code was then added to and also improved:

Second Evolution

//going up hill

reverse(4);

motorSpeed(4,30);

goToAbsolutePosition(-245);

brake(4);

goToAbsolutePosition(-297);

reverse(4);

motorSpeed(4,30);

goFor(.7);

brake(4);

//at gate

reverse(4);

goFor(8);

//leaving gate

motorSpeed(4,30);

goToAbsolutePosition(-428);

//coasting to caboose

brake(4);

goToAbsolutePosition(-615);

reverse(4);

motorSpeed(4,30);

goFor(.7);

brake(4);

goFor(7);

motorSpeed(4,35);

goFor(3);

This second rendition added more to the run, with the AEV now leaving the gate and heading to the opposite end of the track to pick up a caboose, waiting, and then heading back. The breaking system was also vastly improved. Instead of just sliding to a stop, now the propellers were put in reverse right before stopping to ensure a faster and more accurate stop.

Final Form

reverse(4);

motorSpeed(4,30);

goToAbsolutePosition(-200);

brake(4);

goToAbsolutePosition(-291);

reverse(4);

motorSpeed(4,30);

goFor(1.7);

brake(4);

//at gate

goFor(7);

reverse(4);

//leaving gate

motorSpeed(4,30);

goToAbsolutePosition(-429);

//coasting to caboose

brake(4);

goToAbsolutePosition(-605);

reverse(4);

motorSpeed(4,35);

goFor(1);

brake(4);

goFor(5);

//way back to gate

celerate(4, 31, 45, 3);

goToAbsolutePosition(-415);

brake(4);

goToAbsolutePosition(-388);

reverse(4);

motorSpeed(4,45);

goFor(1.5);

//at gate

brake(4);

goFor(6.9);

//leaving gate

reverse(4);

motorSpeed(4,45);

goToAbsolutePosition(-243);

brake(4);

//coast to end

goToAbsolutePosition(-63);

reverse(4);

motorSpeed(4,41);

goFor(2.2);

Going off of the second evolution, this final code had the AEV approach the gate with the caboose attached, stop and wait, then pass through back to the very beginning of the track, stopping and safely delivering passengers. This final code was able to use the new breaking system to accurately and reliably run the entire track without fail. Small details like positioning were also changed to create more efficient and accurate runs.