To: Professor Jolanta Janiszewska
From: Marcus Pereira, Nick Kanel, and Matt Musso
Subject: Performance Test 3
Date: April 13th, 2016
Introduction
In this lab, the programming for the Arduino was developed further in order to run the AEV along the entire track with the cart attached. The servo motor that was attached during the previous labs is still functioning as it should, but the main difficulties with it are getting the AEV to go to a very specific position every single time without fail. The AEV’s positioning can be very variable even with the same code executing every time, which makes things very tricky when working to get the hook to attach to the cart. Also completed in this lab was the ability for the AEV to do a controlled descent down an incline instead of just rocketing down very quickly. In order to do this, a `descend` function was defined that automatically did what was needed to allow the AEV to slowly go down any incline. Aside from the issues with attaching to the cart, the AEV runs perfectly and stops on all the marks for the specified amount of time before continuing its run.
Observations
During the labs, many issues arose that needed to be dealt with. For example, the arduino stopped working, so that had to be replaced. Another issue was that apparently one of the motors had a wire that was breaking, so this caused runs to become inconsistent. Because of the messed up wire, one of the motors would cut out which cause a propeller to stop, which messed up the run. In order to fix this, a new motor was received and installed onto the AEV.
There was one run on April 12th where the hook was not angled correctly, so on the curved section of the track the towed vehicle fell off. After fixing the angle of the hook, the balance was perfect. The speed varied throughout the runs due to the fact that one of the motors wasn’t working correctly. Due to the fact that the motor wasn’t working correctly, many results weren’t consistent throughout. Examples of the problems by the motors were that the AEV sometimes wouldn’t make it up an incline, stop in the right place, etc because of the motor not giving enough power consistently. Another issue noticed was that a zip tie attached to the AEV was rubbing against the track, which was slowing down the AEV. The total amount of energy used by the AEV was 467.0688 J. The efficiency of the AEV is unknown because the energy output by the AEV is unknown.
Figure 1. A graphical representation of the power supplied to the AEV plotted against distance traveled. The total energy expended on this run was 467.094 J.
In Figure 1, a number of notable portions are observed. First, six spikes in power over short distances are observed at the end of each phase. This can be explained in the stop function of the code reversing the polarity of the motors and powering them for a short period of time. This polarity shift requires a considerable amount of energy for the function to be effective in stopping the AEV. Also, in Phase 5, a gradual decline in the supplied power is observed due to the requirement of reverse thrust (from the previous direction of motion) to maintained the AEV at a standstill. The remaining power series and their difference in supplied power result from the requirement of differing amounts of trust needed to obtain and maintain the AEV at a proper velocity on various portions of the track.
Phase | Phase Energy (J) | Command |
1 | 40.2128 | setBoth(24); stop(getVehicleDirection(), true) |
2 | 68.6868 | setBoth(speed); descend(13,speed,1); stop(getVehicleDirection(), true); setBoth(speed+210); stop(getVehicleDirection(), true) |
3 | 97.9117 | setBoth(speed); stop(getVehicleDirection(), true) |
4 | 96.1977 | setBoth(speed+20); stop(getVehicleDirection(), true) |
5 | 46.2439 | setBoth(17); descend(13,speed,0); stop(getVehicleDirection(), false) |
6 | 88.0383 | setBoth(23); descend(13,23,1); stop(getVehicleDirection(), true) |
7 | 29.7776 | setBoth(speed+7) |
Total Energy | 467.0688 J |
Table 1. A tabulation of the commands involved in input energy and the resulting energy used.
Results
In order to obtain the most efficient vehicle, a number of things were required. First, a vehicle must be constructed that is capable of running the track without losing its balance or becoming too unstable. Second, code must be written for this vehicle that uses the motors and terrain to its advantage (i.e. allowing it to coast when possible). Lastly, the code must be optimized to get the most out of the electric motors as possible; if the motors are given too much power then they may not run as efficiently, and if they are given too little power they may not run as efficiently. It seems that giving the motors around 30% power is a reasonably efficient thing to do, as tests have shown that a motor will use more energy (to travel some distance) at higher powers. Although this may not be the most energy-efficient design, it is satisfactory and uses an amount of energy that is not too extreme.
Conclusion
From the Lab, it was learned that the motor, battery, and Arduino were causing some inconsistencies. The motor wiring was breaking apart which caused one propeller to cut out sometimes. The Arduino was replaced and the code was able to be run again. In addition, it was discovered that the battery was not working well, which also caused issues during test runs. Knowing this, the battery issue can be resolved which should be able to help keep progress with the AEV going. Also, a recommendation for future labs would be to make sure that no parts are touching the track except the wheels, this way the AEV will not be slowed down like the zip tie did to the AEV.