The assignment for our first week of the course was to sketch out a final project idea. As you can read more extensively in this post, I originally conceived of a square or rectangular touchpad that could register multiple dimensions of input, and would have a feel not dissimilar from the ROLI Seaboard and Touche. I nicknamed it the SeaSquare, and invisioned the touch surface to be surrounded by a wood frame.
However, I didn't want to stop brainstorming there. After a couple weeks into the class, I started to get a sense of the types of skills we would be gaining over the course of the semester. So I went back for another brainstorming session.
In this session, I was pretty heavily influenced by my musical interests, having made an extremely simple Arduino MIDI controller before. I was enthralled by the idea that we could make these controllers that could help us efficiently interact with our surroundings and computer programs. What came of this were several types of "universal" controllers that could be used by one hand and could respond to touch input, accelerometer and magnatometer data, and respond with lights or vibrations. These controllers could be used to control things such as music, smart-home control, application control (like the surface dial), or even act as a game controller.
During another brainstorming session, one idea that I thought of (with inspiration credit to Nikita) is a modular pinball machine. If I have the wood to make a full-sized machine, I think this would be fun and could contribute to the "Make Something Big" week. (This didn't end up happening.)
Another idea for a final project that I liked was making an omnidirectional robot. This idea originally came out of the idea of making a 2D plotter with no boundary (arbitrarily large art pieces!) by attaching a pen plotter or spray-paint end effector to a robot. When I realized that cars and many other types of mobile vehicles are restricted in their movement and turning radii, I did some research and found this crazy "omni wheels" that allow for robots to move in virtually any direction. This seemed really cool but I was reminded by my TA that this type of project would be fairly complex and would be hard to do incremental testing and improvements, and thus would be hard to scope properly throuought the semester.
Other ideas and sketches include a one-wheel segway concept and a go-kart (inspiration from previous final projects).
One idea that I'm particularly excited about and wanted> to work towards for my final project is an automatic storage system. This was inspired by seeing all the unutilized space I have beneath my bed (since my mattress rests on a futon scaffolding), and at the same time seeing all the objects on my shelves and in my closet that I don't use and take up precious space.
My thought was, if I could rest my bed on an elevated platform, and have space underneath to store all my unused stuff in boxes, then I could have a less cluttered room while taking advantage of already-unutilized space. Additionally, since it's hard to get all the way under my Queen-size bed, I'd have one access pooint where I could insert storage boxes and then an automated electronic organizing system would be able to move these boxes into far-reaching corners under my bed, so I could add additional boxes.
I extrapolated this idea to occupy the space of a whole floor as opposed to just the room beneath my bed and asked myself, "what if my ceiling was 1.5 feet lower to the ground, but my floor could store everything I need?"
My original bed storage system was conceived to be a fairly modular grid system where cells of 1 foot by 1 foot would be tasked to be able to arbitrarily move a box in any of the 4 directions horizontal to it. If this could be achieved, you could make any number of these and create a network of cells that could take the form of almost any shape.
While that seemed extremely powerful, Neil's constant reminder of projects that are meant to be modular and composed of many small modules rarely come to fruition (or rather it's hard to make more than single-digit numbers of something). Additionally, this sytem would be pretty expensive since each cell would have to have it's own motors, controllers, and setting up that network could be a nightmare.
A different design that would work with rectangular spaces would be to have a 2D axis machine like a CNC machine that could span the whole grid, and have an end effector that could "activate" as it grabbed or held onto a box when it needed to be moved. This design would only require 2 or 3 stepper motors and a clever end effector design, but would be limited in the size of the grid because it could only move along the length of available rails. This might be plausable for sizes of 3x3 feet or so but less so for a 15 ft by 20 ft bedroom.
Unfortunately, after additional research into creating a 2 axis CNC machine with the necessary end effector to move these storage boxes around, and realizing how much pain my section went though to create our machine during machine week, this project didn't feel feasible within the several week long timeline with one person.
Choosing a Final Project:
After many weeks of completing one-off projects for the weeks assignment, I came to re-evaluate what would be realistically possible for me to complete by the end of the term. What I came up with is different than all of my above brainstormed ideas (I'll save those until IAP when I have more time to work). The end project I'm working towards is going to be a persistance of vision fidget spinner.
The concept: The idea is to embed an array of LEDs in a circuit board that is in the shape of a fidget spinner. When spun, the array of LEDs would light up at certain intervals when making one revolution around the fidget spinner. With a persistence of vision effect, one would be able to almost draw shapes or text using light and the inherently fast rotation speed of a fidget spinner.
Execution: To accurately could when full rotations are reached, I think the easist and most clever way to do it would be to embed a small magnet in the cap of the center bearing cap, and then place a hall-effect sensor on the circuit board near the bearing. Therefore, when the sensor passes by the stationary magnet and has the strongest magnetic field, we will know that this corresponds to a certain orientation of the LED array relative to the bearing cap.
The first stage (deliverable) of this final project is to successfully get LEDs to react to a hall-effect sensor. This involves designing a board that combines LEDs and a hall-effect sensor, and additionally has the bearing and bearing cap with an embedded magnet. To break this first deliverable down, I'll start by just making a board that can detect magnetic fields and respond via serial or an indicator LED. Similarly, making another board with an array of LEDs in the shape of a bilobe fidget spinner with a coin battery would be another individual component to test. Putting these two boards together would get me pretty close to the first stage deliverable with the additional work of making the bearing caps and integrating the hall-effect sensor code with the LED array code.
These two subcomponent boards are exactly what I'm using as my individual input and output device projects. During the output device week, I created an LED array board
Unfortunately, the hole for the 608 bearing was just a tiny bit too small. So that will be adjusted next time.
For the input devices week, I created a smaller board with a hall-effect sensor on it and one indicator LED. I didn't want to use more of the copper circuit board than necessary, and this board was more about gettin the sensor to work than the mechanics of the fidget spinning, so I created a smaller, more simple board. That being said, the placement of the sensor relative to the bearing hole is somewhat representative of what will be the case in the end product.
So this time the bearing hole was actually way to big. The weird thing was that I didn't even change the circle radius from the LED array board. I soon realized why this inconsistency exists: my image that cuts out the circle had a white circle indicating the cutting place. After adjusting for the offset that Mods introduces, this is way to large of a hole. The hole on my LED array board that was too small was cut out using a white background and a black cirlce, so the offset was inside the bearing, thus making the hole too small. The solution to this, I believe, is to increase the size of the circle, but still make that circle black and background white. Incrementally do that until the proper fit is discovered.
To put these boards together, I started to develop a board that included the hall-effect sensor near the bearing. The trouble I was running into was properlly routing traces to all the LEDs without greatly enlarging the size of the board. I was also forgetting to leave space for necessary traces,
Moving forward, I need to perhaps come up with a more clever multiplexing scheme for the LED array, or reconsider the positioning of the components on the board.