For anyone who follows the recent news of Bitcoin's valuation, it is surreal to see this digital currency hit crazy new highs in price (especially for those who once owned and sold shares years ago). Once thought of as niche and unstable liquidity, this staggering growth puts into perspective the potential of all cryptocurrencies, with many in the wings, hoping to be the next Bitcoin.
From this, our team thought it would be cool to make something that could monitor these potential changes, and subtly let others know when these cryptocurrencies were sharply rising and falling in price. Although our team agrees strongly with the Wu-Tang Clan credo, we did not want our display about money to ‘move everything around us,’ and instead opted for a subtle design, with subtle indicators of changes in price for Bitcoin, Ethereum, and Litecoin. We found this project to be straightforward, and we believe it is easily reproducible, but be warned, it does require a fair bit of testing before full completion.
*Note: For anyone who is interested in duplicating this project themselves, but does not necessarily want to use cryptocurrencies as your source of information, the code for this build is adaptable and available below.
Step 1: Planning & Inspiration
The initial inspiration for this design came from MIT’s Media Lab, in which they moved objects using an array of rising and falling blocks, appli named Kinetic Blocks. We thought this was pretty amazing concept, and wanted to create an ambient display using a similar design. However, given our finite resources as college students, we thought it was best to do a simple design that utilized publicly available information for displaying, and affordable materials. This project did not require many materials, but did take advantage of power tools/devices available at our university that may not be available to the public (i.e. laser cutter). This project can be done without these tools, and materials, but it will be much more difficult and may be more costly. If you do have access to a laser cutter, that is great, and it will allow you to take advantage of this project’s reliance on prototyping. The design is fairly precise, and quick/cheap prototypes will help you refine the design.
Step 2: Materials & Resources
To make this ambient display project, you will need to procure the following hardware, materials, and software.
**If you are trying to do this project on a budget, we recommend you to look at your local hardware store, college, or recycling facility for excess materials.
- Servo Motors (9x)
- Acrylic Sheets (Color of your choice)
- Available at Particle Store.
- Available at Adafruit Online Store
- Particle IDE
- Adobe Illustrator
- Arduino IDE
Step 3: Design
The design for this build is very straightforward. Everything is relatively simple in design, but does require precise measurement and testing. We recommend that you handle the total design in phases, with everything eventually fitting together.
The first phase can be described as the innards of the design. All of these components can be designed in Adobe Illustrator and cut into acrylic, using a laser cutter. These parts are both strong and easily reproducible.
More specifically for this phase, you will need to design and cut 2 horizontal cross-supports, 3 vertical cross-supports, 9 blocks, and 9 arms. The cross-supports will need to have teeth on one side, so that they can fit into the base plate and add support for the entire display. Additionally, being cross-supports, you need to design openings to allow each support to slot into on another, creating a crisscross structure. The 3 vertical cross-supports need to have openings for 9 servos, with the openings being placed in accordance with the expected directional movement of that servo. The 2 horizontal cross-supports need to have openings on one side to allow for the microprocessors and wires to be comfortably stored. The 9 blocks, which are arguably the most important part of the design, are simply rectangles with an oval cut into one side, which will make more sense as you progress through this instructable. The last element for this phase are the arms, which each need two holes on their ends; one to fit the servo to, and another for the rising mechanism (see Mechanism section).
Phase One Measurements:
- Horizontal Cross Supports (3x)
- 200mm x 80mm
- Vertical Cross Supports (2x)
- 170mm x 80mm
- Crytpo-Blocks (9x)
- 79mm x 46mm
- Arms (9x)
- 41mm x 10mm
The second phase of this design is the casing, which includes the base-plate, the top-plate, and the 4 walls. The base-plate, which will be cut out of acrylic, will need openings to accommodate the teeth of the cross-supports, as well as 9 rectangular openings to account for the eventual servo wires. Additionally, you will also need to design teeth openings on the edges of this plate, to accommodate the walls of the design. The top-plate, also cut out of acrylic, will have 9 openings. We suggest you cut these openings once you’ve done testing with the design's mechanism, as to ensure the blocks and these openings align appropriately. The last element of this phase are the walls, which can, and should be cut out of wood; this will provide you a sturdy and warm element to the overall design (but it is not necessary). The walls for this design are simple rectangles, with their lengths and height the same as the lengths of the base-plate sides, and the cross-supports’ height. All the walls will have teeth on one of the long sides of the walls; these will need to fit into the base-plate openings you previously designed. Also, two of the walls will need to have teeth on their shorter sides, and two walls will need to have openings for these teeth, which will increase the strength of the structure.
Phase Two Measurements:
- Base Plate
- 210mm x 180mm
- Top Plate (3x)
- 200mm x 169mm
- Side Walls (2x)
- 180mm x 88mm
- Front & Back Walls (2x)
- 210mm x 88mm
The third and final phase of the design are the lifts for the the display. These lifts will prevent the wires underneath from resting on whatever the display rests on. They are comprised of a triangle and 2 squares, each with teeth and openings for those teeth. These lifts can be any size you choose, but should be enough to raise the design off the ground.
If you would like to toil away with the design yourself, that's awesome!
If you just want your hands on the best cryptocurrency, ambient display on the market, help yourself to our design schematics below!
Step 4: Mechanism
The rising and falling nature of the blocks in the design demands a mechanism that is strong enough to move the slabs up and down to demonstrate the varying prices of the cryptocurrencies. We tested a common armature design that attaches to the servo motor, but it could not achieve a significant rise/fall amplitude. We initiated a search for more efficient mechanism that produces a more telling height.
Scotch Yoke Mechanism
This mechanism is an example of reciprocating motion, which converts rotary motion into linear motion, and vice versa. Although it is a little more complicated than the common crank armature mechanism, the scotch yoke couples the piston directly to the sliding yoke and makes the translation of motion continuous and smooth. The yoke is replaced by the block and coupled to a crank instead of traditional circular disk. You can find our updated design for the crank pin in the downloadable files.
If you would like to have a better understanding of the mechanism, we recommend the following demonstration videos.
Step 5: Information & API
The information that is being displayed, as previously mentioned, is the current value of Bitcoin, Ethereum, and Litecoin. This information is being accessed from the CryptoCompare API, and is freely available to anyone who would like to use it.
To properly utilize this API’s information, we used the Particle Photon microprocessor. It is a fairly well-equipped device, capable of connecting to the internet, as well as powering all the servos for this design. You do not have to use this microprocessor, but here is there online guide if you would like know how to set it up and connect it to the Internet.
As stated in the design section, if you want to toil away, and write the code yourself that is totally cool!
If you would like to use ours, feel free to download it below. We have included comments throughout, and it should be easy to understand.
*Note 1: Our code makes use of Webhook integrations that call the CryptoCompare API. Please feel free to follow the screenshots of our configuration. The API parameters may change.
*Note 2: Please refer to this article to ensure to use the proper pins when attempting to power your servo motors.
Step 6: Final Assembly
At this point in the process, you should now have everything ready for the final assembly (easy, right?!). These final steps should be straightforward, but please follow the phases below and don’t be afraid to use a little elbow grease to finish this sucker off.
The first phase you want to tackle is attaching each Crypto-Block to the custom-made servo arm. First, you want to hot-glue the plastic servo arm, which came with the servo motor, to the laser-cut arm; you then want to insert a 30mm screw in the smaller hole, and then place 3 nuts on. You then want to insert the Crypto-Block and affix the lock nut to the screw, and adjust the tightness so the block can easily move back and forth. Do this for the other 8 blocks (see above example).
The second phase of assembly is the criss-cross, inner structure. This is simply just aligning the precut slots of the cross-supports, and placing them on the bottom plate. You can then place your servo motors in their proper slots, and then attach the assembled block-arms to each motor (see picture above). To properly secure these arms to the servo, use the small Phillips-Head screws that came with the servo, and screw them into place. Adjust the servo, using the arm, so that it is rotated to its farthest point.
The third phase of assembly is wrangling all the servo motor wires. Attach the necessary wires that can provide a connection to the Photon. From there, you want to organize each cryptocurrencies’ wires together, as each will have its own dedicated processor. Pull the wires through the holes on the bottom plate, and affix each grouping of wires to the bottom plate, with either tape or glue.
This optional phase is for those looking for a cleaner overall construction, but it is not necessary for the display’s functionality. If you would like, you can solder each of your perma breadboards together, connecting each Photon’s ground and power to the adjacent board (see pictures above). In whatever orientation you choose, these connections will ultimately meet to one Photon, which will power the other two Photons using its provided USB connection.
The fourth phase is flashing your Photon (or whatever processor you use), with the final code you have developed. Make sure the each Photon is flashed with the appropriate code, so that the Photon correctly aligns with the wires of the respective currency. (See Photon Guide for flashing instructions).
This phase you will use your hot glue gun, and attach all but one of the walls to the base plate of the design. After gluing the walls, you will connect your servo wires to the prescribed pins of the Photon that you outlined in your (or our) code. (*Note: please refer again to this article to ensure to use the proper pins that can supply power for the servos). Place Photon in the back cross-support slots, connect USB cable, and slide it through the opening on the base plate. Glue final wall to the base plate, and place top plates through the blocks, over top. Glue the lift components together, and place your final design on the four lifts (optional: the lifts can be glued to the final design).
Plug your cable into a power source, wait for the Photons to connect to the internet. Your blocks should be rising and falling (and making the sweet sound of money being made and lost)!
Step 7: Last Word
Our team had a blast designing and constructing this ambient display (especially as Bitcoin was hitting $19,000), and we really hope you enjoy it as well! We hope this ambient display serves you well, and if you make any changes, improvements, or modifications, we would love to see them - please leave a comment or pics below.
Thanks and Good Luck!
Link to Course Page: http://fetlab.rit.edu/720