Difference between revisions of "F13: Bulb Ramper"
Proj user9 (talk | contribs) (→Parts List & Cost) |
Proj user9 (talk | contribs) |
||
Line 15: | Line 15: | ||
== Abstract == | == Abstract == | ||
− | Time-lapse photography is the process of taking many exposures over a long period of time to produce impressive short videos and photos, which create a feeling of traveling quickly through time. While the ability to create time-lapse videos or photos is available to anyone with a camera and a fairly inexpensive with a trigger controller, the ability to increase exposure time (bulb ramping) while moving the camera is not. Moving bulb-ramping device currently on the market cost hundreds of dollars. Our team intends to create a bulb-ramping device that can rotate 360 degrees around and, will trigger the camera shutter in sync with travel and will also have the ability to pan as it travels. | + | |
+ | Time-lapse photography is the process of taking many exposures over a long period of time to produce impressive short videos and photos, which create a feeling of traveling quickly through time. While the ability to create time-lapse videos or photos is available to anyone with a camera and a fairly inexpensive with a trigger controller, the ability to increase exposure time (bulb ramping) while moving the camera is not. Moving bulb-ramping device currently on the market cost hundreds of dollars. Our team intends to create a bulb-ramping device that can rotate 360 degrees around and, will trigger the camera shutter in sync with travel and will also have the ability to pan as it travels. | ||
== Objectives & Introduction == | == Objectives & Introduction == | ||
− | + | Objective of the project is to learn the following: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 1. Learn about the camera interface and how designs differ in order to protect the circuits inside the camera. | |
− | + | 2. Learn how to use the RTOS (Real time OS) system in our software implementation. | |
− | |||
− | + | 3. Learn how motors work and implement into our design. | |
− | |||
+ | Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed. | ||
+ | === Team Members & Responsibilities === | ||
+ | * Team Member 1 | ||
+ | ** Driver Development | ||
+ | * Team Member 2 | ||
+ | ** FreeRTOS Software Design | ||
− | + | == Schedule == | |
− | + | Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! scope="col"| | + | ! scope="col"| Week# |
− | ! scope="col"| | + | ! scope="col"| Date |
− | ! scope="col"| | + | ! scope="col"| Task |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
+ | ! scope="row"| 1 | ||
+ | | 10/8 | ||
+ | | Task list | ||
|} | |} | ||
+ | |||
+ | == Parts List & Cost == | ||
+ | Give a simple list of the cost of your project broken down by components. Do not write long stories here. | ||
== Design & Implementation == | == Design & Implementation == | ||
− | The | + | [[File:Project Flow.jpg]] |
+ | |||
+ | The software flow is detailed up top. The general flow has the user setting each variable (# of pictures to take, motor movement, shutter time, etc). After which, the program will automatically take pictures and move on their own until the required pictures have been taken. | ||
+ | |||
+ | As part of the flow process, there is a loop that is repeated in order to repeatedly take pictures and move the camera platform. | ||
=== Hardware Design === | === Hardware Design === | ||
− | + | [[File:camera_circuit.jpg]] | |
+ | The circuit interface to the camera is displayed above. To the right is the stereo jack that is connected to the camera N3 port. | ||
+ | |||
+ | It has three distinct parts: | ||
+ | 1. Ring: When energized from the opto-coupler, this will cause the camera to focus (Will simulated half press of the camera) | ||
+ | 2. Tip: When energized from the opto-coupler, this will cause the camera to open the shutter | ||
+ | 3. Sleeve: The ground of the system | ||
+ | |||
+ | The 220 ohm resistor has been selected to provide ~15mA (3.3v GPIO out from SJSU board divide by 220 ohm) going into 4N35 opto-coupler. The purpose of the opto-coupler is to transfer electrical signals between two isolated circuits by using light. This serves as a protecting mechanism to prevent high voltage from going into the camera. | ||
+ | |||
+ | [[File:optocoupler.jpg]] | ||
+ | |||
+ | |||
+ | Picture of 4N35 in our hardware: | ||
+ | |||
+ | [[File:photodiode.jpg]] | ||
=== Hardware Interface === | === Hardware Interface === | ||
+ | There are two main interfaces for our project: | ||
+ | |||
+ | 1. GPIO: GPIO is used for camera activation. It takes two GPIO ports in order to activate the camera shutter. One GPIO to focus and and the other GPIO to open the shutter. | ||
+ | |||
+ | 2. PWM output: Used to control the motor. By adjusting the PWM signal, we can control the motor to rotate clockwise or anti-clockwise. | ||
+ | |||
In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the '''Software Design''' section is isolated to talk about high level workings rather than inner working of your project. | In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the '''Software Design''' section is isolated to talk about high level workings rather than inner working of your project. | ||
=== Software Design === | === Software Design === | ||
− | Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it. | + | For our project, there are four different tasks: |
+ | 1. Terminal Task: The terminal task is responsible for providing the input and output of the program. It is responsible for displaying data and modifying variables when the user wishes to change it. For example, the terminal task will allow the user to change the number of the pictures or time between pictures being taken. | ||
+ | |||
+ | As such, it contains the main code for displaying the different menus and the code to change variables according to user input. | ||
+ | |||
+ | 2. Wifi Task: This sets the necessary parameters to connect to a router or another computer. | ||
+ | |||
+ | 3. Camera Task: Main function of this task is to take pictures according to what the user inputted. | ||
+ | |||
+ | 4. Motor Task: Provides the functionality to drive the motor to different positions. | ||
+ | |||
+ | |||
+ | Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it. | ||
=== Implementation === | === Implementation === | ||
Line 172: | Line 111: | ||
=== My Issue #1 === | === My Issue #1 === | ||
− | + | Discuss the issue and resolution. | |
− | |||
== Conclusion == | == Conclusion == | ||
Line 186: | Line 124: | ||
== References == | == References == | ||
=== Acknowledgement === | === Acknowledgement === | ||
− | + | 1. Opto-coupler wikipedia entry: [http://en.wikipedia.org/wiki/Opto-isolator] | |
+ | |||
+ | 2. Opto-coupler datasheet: [http://www.ti.com/lit/ds/symlink/4n35.pdf] | ||
=== References Used === | === References Used === |
Revision as of 03:53, 11 November 2013
Contents
Grading Criteria
- How well is Software & Hardware Design described?
- How well can this report be used to reproduce this project?
- Code Quality
- Overall Report Quality:
- Software Block Diagrams
- Hardware Block Diagrams
- Schematic Quality
- Quality of technical challenges and solutions adopted.
Project Title
Bulb Ramper
Abstract
Time-lapse photography is the process of taking many exposures over a long period of time to produce impressive short videos and photos, which create a feeling of traveling quickly through time. While the ability to create time-lapse videos or photos is available to anyone with a camera and a fairly inexpensive with a trigger controller, the ability to increase exposure time (bulb ramping) while moving the camera is not. Moving bulb-ramping device currently on the market cost hundreds of dollars. Our team intends to create a bulb-ramping device that can rotate 360 degrees around and, will trigger the camera shutter in sync with travel and will also have the ability to pan as it travels.
Objectives & Introduction
Objective of the project is to learn the following:
1. Learn about the camera interface and how designs differ in order to protect the circuits inside the camera.
2. Learn how to use the RTOS (Real time OS) system in our software implementation.
3. Learn how motors work and implement into our design.
Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed.
Team Members & Responsibilities
- Team Member 1
- Driver Development
- Team Member 2
- FreeRTOS Software Design
Schedule
Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project.
Week# | Date | Task |
---|---|---|
1 | 10/8 | Task list |
Parts List & Cost
Give a simple list of the cost of your project broken down by components. Do not write long stories here.
Design & Implementation
The software flow is detailed up top. The general flow has the user setting each variable (# of pictures to take, motor movement, shutter time, etc). After which, the program will automatically take pictures and move on their own until the required pictures have been taken.
As part of the flow process, there is a loop that is repeated in order to repeatedly take pictures and move the camera platform.
Hardware Design
File:Camera circuit.jpg The circuit interface to the camera is displayed above. To the right is the stereo jack that is connected to the camera N3 port.
It has three distinct parts: 1. Ring: When energized from the opto-coupler, this will cause the camera to focus (Will simulated half press of the camera) 2. Tip: When energized from the opto-coupler, this will cause the camera to open the shutter 3. Sleeve: The ground of the system
The 220 ohm resistor has been selected to provide ~15mA (3.3v GPIO out from SJSU board divide by 220 ohm) going into 4N35 opto-coupler. The purpose of the opto-coupler is to transfer electrical signals between two isolated circuits by using light. This serves as a protecting mechanism to prevent high voltage from going into the camera.
Picture of 4N35 in our hardware:
Hardware Interface
There are two main interfaces for our project:
1. GPIO: GPIO is used for camera activation. It takes two GPIO ports in order to activate the camera shutter. One GPIO to focus and and the other GPIO to open the shutter.
2. PWM output: Used to control the motor. By adjusting the PWM signal, we can control the motor to rotate clockwise or anti-clockwise.
In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.
Software Design
For our project, there are four different tasks: 1. Terminal Task: The terminal task is responsible for providing the input and output of the program. It is responsible for displaying data and modifying variables when the user wishes to change it. For example, the terminal task will allow the user to change the number of the pictures or time between pictures being taken.
As such, it contains the main code for displaying the different menus and the code to change variables according to user input.
2. Wifi Task: This sets the necessary parameters to connect to a router or another computer.
3. Camera Task: Main function of this task is to take pictures according to what the user inputted.
4. Motor Task: Provides the functionality to drive the motor to different positions.
Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.
Implementation
This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.
Testing & Technical Challenges
Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.
Include sub-sections that list out a problem and solution, such as:
My Issue #1
Discuss the issue and resolution.
Conclusion
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
Project Video
Upload a video of your project and post the link here.
Project Source Code
Send me your zipped source code and I will upload this to SourceForge and link it for you.
References
Acknowledgement
1. Opto-coupler wikipedia entry: [1]
2. Opto-coupler datasheet: [2]
References Used
List any references used in project.
Appendix
You can list the references you used.