Advanced Energy Vehicle (AEV) Lab 04: AEV External Sensors AEV Project Objective (Problem Definition) INITIAL CONCEPTS (Brainstorming) EXPERIMENTAL RESEARCH (Programming) (System Analysis) ANALYZE COMPARE PT 1 PT 2 PT 3 PT 4 RESEARCH FINAL DESIGN Present AEV Design DESIGN DECISION Learning Objectives Become familiar with the external sensor hardware components • Become familiar with troubleshooting techniques Program the function calls in controlling the AEV using the external sensors External Sensors The importance of external sensors on the AEV is to provide real-time information being provided to the Arduino for autonomous vehicle operation • This is known as a feedback control The sensor that will be focus of today’s lab is the Reflective Sensor Image: from Arduino Website Reflective Sensors The sensor will produce a low voltage due to the reflectance of the aluminum tape and produce a high voltage due to the 1 Mark dark color of the wheel This voltage change is called a “mark.” For one full wheel 1 Mark revolution, a sensor will have 4 voltage changes or 4 marks. Since we have two sensors, one full wheel revolution will have how many marks?? EIGHT Marks!! 1 Mark 1 Mark Mounting the Sensor The closer the sensor is to the wheel, the better voltage reading the sensor will usually have Optimum Too Far Away Troubleshooting the Sensors To make sure the sensors are on correctly Run the “reflectanceSensorTest();” Make sure to set to set the serial monitor to 115200 Baud Making the Connections Take careful consideration where the reflective sensor is attached to on the Arduino. Read the AEV Lab Manual for proper orientation and pin locations When in doubt ASK IF UNCERTAIN! Important Note: Make sure the connections are installed with the white wire facing the Arduino mini-USB connection. Arduino Programming Sensor Function Calls goToRelativePosition(M); • One Argument; works specifically with the reflectance sensor M: wheel marks • Example: motorSpeed(4,27); goToRelativePosition(44); Sets all motors to 27% full power Continues the last command for 44 wheel marks. Each wheel has 8 marks and the wheel has a circumference of 3.902 inches Therefore: (44 marks)*(3.902/8) inches = 21.46 inches traveled Arduino Programming Sensor Function Calls goToAbsolutePosition(M); • One Argument; works specifically with the reflectance sensor M: wheel marks • Example: motorSpeed(2,30); goToAbsolutePosition(500); Sets motor 2 to 30% full power Continues the last command for until the AEV accumulates 500 total wheel marks. Each wheel has 8 marks and the wheel has a circumference of 3.902 inches Therefore: (500marks)/(3.902/8) inches = 243.76 inches traveled Difference Between goToAbsolutePosition and goToRelativePosition 0 Inches 40 Inches 80 Inches We want to go ANOTHER 40 inches 40 (aka 82 marks) what codewhat do wecode inches (aka 82 marks) want? do we want? motorSpeed(4,20); motorSpeed(4,20); goToAbsolutePosition(82); OR goToRelativePosition(82); goToAbsolutePosition(164); OR goToRelative(82); Note: This is assuming the AEV stops at exactly said distance and does not coast! Questions?