Scott Zitek - Fab Academy 2014
Project Development
Week 18 Assignment
The assignment for this week is to complete the final project, tracking our progress:
- what tasks have been completed, and what tasks remain?
- What has worked? What hasn't?
- What questions need to be resolved?
- What will happen when?
- What have you learned?
documentation during development
Demand- vs supply-side time management
Spiral development
Task completed/remain?, What has worked/hasn’t?, What questions need to be resolved?, What happens when?
For the most part these questions were answered as part of the assignment for week 16.
Here is a summary of the development process:
- I started working on this project idea around the 14 week of the Fab Academy. I had the idea but didn't know if it would work. So I used the web to research if anyone else had already made something like this - I didn't find anything. I also researched what the existing alternatives were - mainly simple flip cards and fairly expensive LED based system.
-
Before I physically made anything I thought about different ways to mechanically control the segments and different actuators. I was looking for issues that would make the project unachievable, contingency options, and trying to determine which approach would be most feasible. I defined an initial set of criteria - portable (reasonably light weight, durable and not require to be plugged into an electrical outlet), low cost, and be visible in the typical environment (relatively large digit easily viewable in bright sunlight).
-
For the mechanical design assignment I decided to make a prototype. I ended up making two mechanical only prototypes. The first prototype was made of mostly cardboard and had three sliding parts per digit. The second prototype was made of acrylic, bearings, and rubber bands. First I spent a lot of time designing it and drawing it precisely in CAD. After I laser cut the parts, I spent a lot of time assembling it and making it work. It was fairly complicated, hard to assemble, and would be difficult to move with an actuator because sometimes it move easily, sometimes it was hard to move, and sometime it moved itself.
- For the third and final prototype I basically started from scratch and redesigned it using what I had learned from everything I done up to that point. The third prototype used four servo to control a combination of two seven-segment digits. Since there were two digits involved I made this prototype much smaller. This saved material and significantly reduce laser cutting times. It also made it easier to carry around, allowed me to cut parts on our smaller laser, and made it possible to use more commonly available 12" x "24 stock.
- I ran into complications when I needed to install the servos. We happened to have a box of RC servos but for some reason the mounting tabs had all been cut off. So I determined a way to mount them by clamping with two bolts. This may have been a better solution anyways. It is easy, more universal for different size servos, and allows for some rotational adjustment if needed. It was also a very tight fit for all four servos. So I had to get creative with the design to make sure they will all have the range of motion needed. Unfortunately, this made programming more complicated because no two servos are mounted the same.
-
After doing a lot of research into how to control RC servos and which fab inventory microcontroller chips had what features, I determined that I could control all four servos using only one ATTiny 44. However, only two of the servos could be controlled by hardware PWM and the built-in 16-bit timer. I used the remaining two rc servos would be controlled by software PWM. This made programming harder and more time consuming. At least this approach allowed me to gain experience with both methods of PWM control. I also now have a better understanding of the advantages and disadvantages of each approach.
-
I used Eagle CAD to design a circuit board based upon the ATTiny 44. The circuit features:
- Two voltage regulators
- A small 5.0v voltage regulator for the ATTiny 44 so that I can power it with a 9 volt battery.
- A 1.0 amp 5.0v voltage regulator to supply power for the servo motors. For testing I used a 12.0v 1.0amp "wall wart" power supply.
- Connections for four rc servo motors.
- Two pushbuttons to control incrementing, decrementing, and resetting the score.
- A standard 6-pin in system programmer (ISP) header.
- A 4-pin asynchronous serial bus header.
- I cut out the board using the Modela mill and solder the components without any problems. Well I did have one issue. We didn't have the minimum 22uf capacitor that is called for on the larger voltage regulator. I don't think that it is listed on the standard fab lab inventory. I looked around and was able to find 100uf capacitor in our electronics lab but it was rated for only 6.5 volts. The circuit is running 5.0 volts but I would have like a higher rated capacitor.
- The program ended up being more complicated than I expect. This is because I needed to determine the position of all four servos for all the possible combinations of two digits (00-99). I also had to work with both hardware PWM and software PWM. When I got it running I hooked it up to an oscilloscope to check the PWM control signals to the rc servos. It still amazes me that we can do so much, so fast with a $1 microcontroller.
- I wanted a simple but nice looking press-fit cabinet. This was easier than I expected. I designed the press fit finger joints and cut the parts on the Shopbot in about only an hour.
- My favorite part is assembling everything and seeing it work for the first time. Thanks to a well thought out design and the precision of the laser & Shopbot, everything fit together perfectly.
-
Programming of the exact positions took much longer than I expected. It involved a lot of trial and error.
-
I didn't have the time to implement a wireless remote control. However, I did end up creating a graphical user interface and a matching servo positioning program. See week 15 for more information. This makes determining the exact servo positions much easier, faster, and more precise. It also uses the same asynchronous serial bus header that I would use for implementing a wireless remote control so I am one step closer.
What have you learned?
In no particular order here are some things I have learned from this project and/or re-affirmed my belief in:
- Being creative and solving problems can be time consuming. Most things take longer than you would expect.
-
Friction made this project much more difficult. Even with the precision of the laser, it can be challenging to make laser cut acrylic parts that slide effortlessly. Combine this with vector forces coming from "less than ideal" directions and it can cause lots of problems.
-
Converting rotary motion to linear motion can be challenging. The RC servos were especially challenging since they typically can only rotate less than 180 degrees. Another issue was the way my drive system worked, the motion was not proportional. This is hard to explain. I needed to move my linear slides in consistent (e.g. 0.5") increments. The servo would move the linear slide a lot for 1 degree of rotation in the middle of the stroke and barely move the linear slide at all when the rotation was far from center.
-
It is very rewarding the first time you get to see something that you conceived function in reality. It is also frustrating when it doesn't work.
-
You often learn more from your failures than your successes. This is especially true in the fab lab since it is easy to do multiple iterations in a short period of time.
- In projects like this that integrated multiple technologies there is usually more than one way to solve a problem. For example, I could move some of my slides mechanically with cams or could use electronic actuators and a microcontroller to accomplish basically the same thing. There are advantages and disadvantages to each approach.
-
Try to make everything modular. It makes it faster and easier to modify just part of the design. It makes it faster and easier to try different variations. You will have more opportunities to re-use parts instead of making them over every time. This saves time and materials.
-
Don't be too proud to use inexpensive materials like cardboard for your first prototypes. It is cheap, readily available, easy to work with and lasers quickly.
-
Prototypes don't always have to be full scale. Making initial prototypes 1/2 scale or smaller can save time and materials.
-
The more complicated a design is the more it make sense to label the parts. It is quick and easy to have the laser engrave a label and/or alignment marks when cutting out parts. This helps:
- make assembly easier and faster.
- confirm the right parts are the right places.
- confirm that the parts are oriented correctly.
- confirm that the part has the correct side up.
Spiral Development
The best way to explain the development process was two steps forward one step back. I would come up with what seemed like a good solution and I would spend a lot of time making a prototype to get to the end and realize one good reason it wouldn’t work the way I wanted. That is why spiral development is such a good idea on projects like this. You often need to go through the entire process before you truly understand the issues. The faster you can go through the process the better. There is often no advantage of spending weeks cutting everything precisely out of metal when you could have learned the same thing hand cutting something out of cardboard. I benefited from the ability to do multiple iterations quickly and easily. Not only did the design improve with each iteration but so did my ability to make the prototypes. I learned from my successes and my failures. For example, I developed a way to make assembly easier. I think I assembled the last prototype in 20% of the time it took me to assemble the second prototype.
Demand vs supply-side time management
It is almost inevitable that projects will take more time to complete than you have time to work on them. If you spend the time working on the first aspects of a project until you get them perfect, you will likely run out of time and not be able to complete the overall project. So you are better off determining in advance how much time you can realistically allocate to each part of the project. A Gantt chart is good for visualizing this. This also helps you look get a bird’s eye view of the project in the beginning when you still have choices. From there you can prioritize tasks and be realistic about how much time you are willing/able to spend up front.
Spiral development also helps when time is limited. When you finish a spiral you have something to show for your efforts. If it is not perfect and you have the time, then the decision can be made to go through the spiral again. It is no longer an all or nothing proposition. Unfortunately, the last aspect of a project is usually the most important. If you are able to skimp on something, it is typically the small insignificant stuff in the middle of the project.
Back to index