Have you ever seen one of those videos of a box that simply turns itself off after being turned on by a user and thought, "...How useless?" Well we've found a way to make that box just a little less... useless!
This year's 2016 EngHack Winner, is a Waterloo themed useless box that uses an intuitive Android app to incorporate user customization. This not only incorporates awesome IoT functionality, but additionally gives the user the power to remotely define new patterns in which the box can turn itself off; via an array of light bulbs, speakers, and servo motors.
#Here Is How We Did It
- Particle Photon
- Arduino Uno Kit
- Toggle Switch
- 3 Relays
- Speaker (Goose Quacking)
- 2 Servo Motors
- Mini Light bulb
- Flashlight
- Plushy Goose
- Wood
- Wood Glue
- Nails
- Soldering Iron & Solder
- Metal Hinges
- Hook
- Cardboard
- Android Studio: Java
- Particle Dev: C++/Arduino/Particle
The box's encasing is a rectangular prism shaped wooden box. The lid of the box was secured with hinges; allowing it to easily rotate open with a sevrvo motor. A thicker piece of wood was used to cut out the arm that was later covered in pipe cleaners and fastened to a second servo motor. Both servos were secured to the inside faces of the box.
A combination of scrap wood, hot glue, and screws were used to fasten the switch, LED, light bulb, speaker, and hook to hold the goose to the inside of the box. All parts were cut and drilled to shape using a drill press and band saw.
The control program of the GooseBot was written in such a way that allows the user's box to open in one of two ways: with randomized patterns or patterns designed by the user.
A main loop is continuously run that checks whether or not the switch has been turned on. When it has, a pattern is randomly chosen from an array of either pre-set or custom patterns and used to open the box.
Each pattern is a combination of 5 actions that include the actuation of the mini light bulb, flashlight, servo motors, and goose speaker. Various combinations of these actions make up the patterns the box performs before turning itslef back off. Each action can vary in the way in which it actuates as follows:
- On
- Delayed On
- Off
- Flicker
- Normal
- Fast
- Slow
- Shake
- On
- Off
Each of the actuation methods corrolates to a char of letter A through D. When a pattern is created the 5 letters are saved as a string and added to an array of custom or pre-set patterns. The main loop then uses this array from which to randomly select a pattern to perform.