This instructable was created in fulfillment of the project requirement of the Makecourse-Art at the University of South Florida (www.makecourse-art.com). Our team was composed of two talented Artists and one Mechanical Engineer. We combined our interests to come up with one memorable piece that displays our determination, personal skills, and ability to meet deadlines as a team. This idea has been in creation for thirteen of the sixteen week semester in parallel with our other studies.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Materials
1 Small Breadboard
2 Arduino UNOs
2 Power Supplies
40+ Male-Male Jumper Wires (various)
10+ Female-Female Jumper Wires (LEDs)
5+ 220 Ohm Resistors (LEDs)
5+ Red LEDs
1 Four Pin Female-Female Jumper Wire (Sonar Sensor)
1 HC-SR04 Sonar Sensor
4 Tower Pro 9g Plastic Mini Servos (Heads and Sonar)
3D Modeling Software
Hot Glue Gun and Super Glue
Step 2: Logic
The Sonar Sensor is pinging, and the distance between the UFO and a person in front of it is calculated constantly while the program runs. The Sonar Servo sweeps the area in front of the UFO in 10 degree increments.
If there is no one in front of the UFO, nothing happens and the Sonar Sensor just sweeps. The program decides if the sensed distance is within a declared window, meaning that there is a person in useful range of the project. If the distance is adequate, the program stores the angle associated with the distance. The Sonar Sensor will "ping" off of a person at multiple angles because people are big! The program adds up all of the angles and averages them. Once an average angle is found, the program sends the Head Servos to that average angle. This makes the Heads look at the middle of a person's body and creep them out. If a person moves positions in front of the UFO, the Sensor will "ping" at different angles, the program will take a new average, and send the Heads to stare at a different angle.
Step 3: Wiring Schematic
The schematic is like a bowl of spaghetti, but if time is taken, it can be followed. A note about the Arduino controlling the Servos and Sensor is that all of the pulse width modulation pins are avoided.
Step 4: UFO Code P1
This code is to be uploaded on the first Arduino. It starts by defining the Echo and Trigger pins on the Sensor to be hooked to pins 2 and 4 on the Arduino. It also calls the Servo Library.
Step 5: UFO Code P2
These lines designate the names of the servos used throughout the program.
Step 6: UFO Code P3
Step 7: UFO Code P4
Step 8: UFO Code P5
Step 9: UFO Code P6
These lines are responsible for the distance calculation. It converts the time it takes for the "ping" to be sent, and received by the Sensor to centimeters. Later in the code, the converted distance is compared to the desired-distance-to-save-an-angle to see if it qualifies.
Step 10: UFO Code P7
These lines are the beginning of the main loop. The sensor servo will sweep between 10 and 170 degrees.
Step 11: UFO Code P8
The distance-to-save-an-angle is chosen with these lines. The program will take the calculated distance and see if it is less than 100 centimeters, and store the current Sensor angle accordingly to be averaged later. The program also has a minimum distance to account for Sensor errors like 0 centimeter pings so the angles do not get saved. It leaves a 60 centimeter window for proper distance calculations to save angles.
Step 12: UFO Code P9
Step 13: UFO Code P10
Step 14: UFO Code P11
These final lines are the same as the first series in the main loop except the Sensor angle is decreasing. Also the very last line closes the main loop.
Step 15: LED Code P1
This code is to be uploaded on the second Arduino. It starts by designating the appropriate digital pins to control the 5 LED's we had in our project.
Step 16: LED Code P2
These lines are the main loop. They turn the LEDs on and off in whatever pattern we want to program. For this setup the LEDs create a sweeping motion in one direction.
Step 17: Modeling P1
These are the models of the UFO that were rendered in Autodesk Maya 2016. The body we created was a 3 piece design for manufacturing, and assembly. The heads are all the same model, and later painted uniquely. The carriage inside is a two piece design. The circuitry is all on the first level, and then the top has slots to hold the Head Servos and Sensor Servo in their desired place.
Step 18: Modeling P2
This is the SolidWorks 2013 model of the Sensor's Cover and Post. When designing this assembly, it was important to make sure that the Post made the Sensor clear the Alien Heads as to not get false distance readings. The bottom of the Post is designed to slip onto the Servo output shaft perfectly, and be removable for transporting the whole UFO assembly.
Step 19: Painting
Our project had various details such as a worn UFO body and unique races of aliens from the same species. The 360 degree dash board of the UFO has buttons, knobs, and screens. The UFO has a shiny body with dents, scratches, and rust from "space travel". The painting process is determined by the artist. Small brushes and sandpaper were used for the details and adjustments. The paints were primer, various bases, and clear coats.
Step 20: Assembly P1
The Sensor Body goes together in series, surrounds the Sensor, and is held together with superglue. The plug must be taken apart and each wire fed through the Post individually. This requires a lot of patience and skill, but it is worth it in the end as the wires and circuitry of the Sensor are hidden. The assembly was painted to match the body of the UFO with rust and scratches.
Step 21: Assembly P2
Our UFO had windows to hide the LED's behind. We left one window out in the rear to allow a path for power supplies to the Arduinos. The windows were installed from the inside and were attached with hot glue. The five LEDs are attached to the inside of the UFO body with hot glue and are angled to give the best illumination behind the windows.
Step 22: Assembly P3
Holes need to be drilled in the bottom of the heads to mount directly to the Servo outputs. The Post of the Sensor Body is designed to mount directly to the servo output.
Step 23: Final Assembly
Install the Electronics Cradle into the body after the LED's are plugged into their appropriate pins. Install the Dashboard, and plug in the power supplies. Watch the LED's light up and the Heads stare at you!