Design Iteration Goals
The goals for this design iteration are:
- Build a working prototype that includes electronics
- Arduino Uno, WiFi shield, LED lighting, and a capacitive touch sensor along with the start of a code library
- Improve the internal dimensions to accommodate an Arduino Uno and WiFi shield
- Improve the access to the Arduino connectors
Fabrication
As before, this prototype was fabricated in 0.75″ MDF using a ShopBot Desktop CNC mill with a 0.25″ spiral bit (Onsrud 65-023). The design was modified from Prototype I to incorporate the targeted improvements.
The pieces were finished with a satin gloss polyurethane after an initial seal with diluted Modge Podge (to stop excess absorption by the MDF).
A protoboard was used to wire the LED lighting for the project, along with touch sensor circuitry. This board can be thought of as a remote shield, connected via a ribbon cable. High-brightness white LEDs were positioned on the edge so they would end up shining down from the cap once mounted (the view in the photo ends up facing down when mounted). A simple NPN driver was used for each LED bank (2 LEDs per side). The touch sensor used a 1Mohm resistor, as recommended in the notes for the Arduino Capacitive Sensor Library.
The Arduino Uno was mounted to the base with wood screws and 0.25″ nylon spacers. The prototyping area on an Adafruit WiFi shield was used to add a connector for the ribbon cable and wire it to the appropriate Arduino pins brought up through the inter-board headers.
Here is the fully connected stack of electronics.
Assembly
Front view of the assembled stack for Prototype II. Note the intentional relief cuts between the two blocks forming the base.
Back view of the assembled stack for Prototype II. A large recessed area has been added around the connector openings to make access easier. However, the material broke between the connector openings during milling.
View of the LEDs under the cap.
Bottom view showing rubber feet (these came with the Arduino Uno). The feet keep the piece from sliding on table tops (and prevent the connector bolt heads from scratching furniture).
Testing
Here is the piece with the LED banks turned on.
The LEDs create a ‘street light’ illumination wash on the spacer block.
Video
This demonstration shows the Arduino connecting to Yahoo Weather and getting the local wind speed. This information is then used to control the modulation of the LED banks, emulating a flickering candle.
A code library was used to handle PWM from digital Arduino pins, slow fades of LED banks, and the flicker effect. The Internet connectivity used a modified version of Adafruit WiFi code. In order to simplify weather processing, a web API page was setup on a server to provide the wind speed in JSON format after obtaining the data from Yahoo weather services.
Prototype Lessons
- There is not enough material left in the recess for individual openings for the Arduino connectors to mill without breaking.
- Combine these two openings into one.
- The internal cavity needs more room for the Arduino/shield combination.
- Some filing was needed to prevent the edge of the boards from hitting spots in the base cavity.
- Using wood screws to mount the Arduino are not very secure.
- There is only 0.25″ of material, which is not much. The screws started to loosen after several mounting of the Arduino and connector plug/unplug cycles.
- The appearance of the LED lighting needs improvement
- Shining LEDs down the side of the spacer give a ‘street light’ effect. Also, any gloss in the finish on the top of the base lets you see the reflection of the LEDs directly.
- The capacitive touch sensor did not work!
- The problem was the choice of Arduino digital pins: D0 and D1 are also used for serial communication (RX and TX, respectively). When debugging using the serial port, you can’t use the capacitive sense library. Alternate pins are needed.