CE432 Robotics II
Lab 3: Sensors and Actuators Assignment
Name: Audra Benally

Email: albenally1@fortlewis.edu

1. Title: Homework #6 Sensors and Actuators

2. Introduction: In this lab there were several tasks set forth that we were to accomplish by the due date. These tasks focused on sensors and actuators which were described and talked in length in the recent lectures.

3. Materials and Methods:

                     - Elegoo UNO R3
                 - Computer
                 - Various connector wires
                 - HC-SR04
                 - Tutorial References
                 - MPU6050
                 - Buzzer
                 - Joystick
                 - NEMA stepper motor
                 - Open-Smart transceiver modules
             For task 1 the lecture for the Strain Gauge was referenced to show how the calculations for the Wheatstone Bridges. The equations were compared to show that the full bridge is the most sensitive to resistance changes. For task 2 the HC-SR04 was used to measure distance. The figures under task 2 show the results and the code can be found in the HW6_code.txt file. For task 3 we were supposed to design a pulse detector but I was unable to get my arduino to work the way it was supposed to. For task 4 we used the MPU6050 to detect vibration and cause the buzzer to activate when a certain threshold is met. The results can be seen in the video under task 4. For task 5 the joystick was used with the open-smart transceivers to control the speed and direction of a stepper motor. I used two different speeds for two separate directions. The results can be seen below. For the last task, Algorithm II was used to show the direction the rotary encoder was turning. When A experiences a rising edge while B is high then the encoder is turning counter clockwise and if B is low during A's rising edge then the encoder is turning clockwise. See video 3 for the results.

4. Results:
       Task 1: Wheatstone Bridge Calculations
             Figure 1. Calculation process to show that the full wheatstone bridge is the most sensitive to resistance variations.

       Task 2: Measuring distance using the HC-SR04
             Figures 2, 3, 4. The actual distances that will be measured by the HC-SR04 module. These distances are 6cm, 10cm, and 13.5cm.

             Figure 5. The distance measured by the HC-SR04 and output to the serial monitor.

        Task 3: Pulse detector using an UNO board.
    Unsuccessful, see HW6_code to see attempt.

        Task 4: Vibration detector using MPU6050 and buzzer.

             Video 1. Vibration detector.

Task 5. Controlling the Stepper Motor with the Joystick and Open-Smart Transceiver Modules
             Figure 6. Circuit connections for the task.


             Video 2. Joystick wirelessly controlling the stepper motor.

       Task 6: Implement Algorithm II to indicate the rotational direction of the Rotary Encoder.

             Video 3. Serial output of the rotational direction of the rotary encoder.

5. Discussion
    For this lab the tasks were quite fun and interesting to finish.
For the first task everything went smoothly and the equations were easy to understand. For task 2 the HC-SR04 was proving to be accurate until I tried to measure 13.5cm away. I had a lot of trouble for task 3 and got very lost after adding a bunch of unneeded variables. This was the last task I was tackling because I knew I was going to have a ton of trouble and I didn't have enough time to get it done before I wanted to turn in this report. For task 4 I really enjoyed retyping my code to make the detection reliable. I started by using static numbers and then realized that using differences between the present and last states was better and much more reliable. For task 5 I had a little trouble with the speed control of the "up" command. During my testing (joystick connected directly to stepper motor) I didn't have any issues with the speed. Once I connected the transceivers there was an odd stuttering that happened with the faster speeds. At the "down" command there is a stutter for a moment before it speeds up. The stutter does not go away with the "up" command though. There is a link in the description of the Joystick video (video 2) that shows the testing phase results. I did not have enough time to dive into this issue. For the last task it was interesting trying to detect a rising edge for the A output. Once this was figured out the code worked quite well. This lab was very informative and I enjoyed searching for all the answers I needed to figure out each task.