F13: Bulb Ramper

From Embedded Systems Learning Academy
Revision as of 19:56, 30 November 2013 by Proj user9 (talk | contribs) (Hardware Interface)

Jump to: navigation, search

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.

Team Members & Responsibilities

  • Team Member 1
    • Driver Development
  • Team Member 2
    • FreeRTOS Software Design

Schedule

Week # Date Planned Activities Actual
1 10/8/2013 Develop Proposal Successfully completed
2 10/15/2013 Acquire Parts

Identify interfaces to be used. Identify pin selections Review datasheets

· All parts are in

· Interfaces are identified · All datasheets are reviewed

3 10/22/2013 ·Work on the Chassis

Write PWM driver for Servo motor and Integrate the Opto-coupler (camera control)

·Chassis build up has been completed

PWM Driver has been completed and Integration of Opto-coupler completed

4 10/29/2013 Integrate all the LEDs and Switches

· Work on WIFI Interface

·Integration is completed successfully

Coding for WIFI has been completed. Able to communicate via wifi to rn-xv chip. Able to send data & receive data.

5 11/5/2013 Work on the FreeRTOS-based firmware. Create four task: Terminal, Camera, Wifi, & Motor related task After working on FreeRTOS-based firmware, the Terminal, Camera, Wifi and Motor tasks were successfully completed.
6 11/12/2013 Debug and make minor adjustments Debugging and cleaning up the debug codes were completed and minor adjustments made if needed. Documentation for report started.
7 11/19/2013 System Integration Initial round The initial phase of integration successfully completed without any major changes to software or hardware. Project report documentation such as design flow diagrams, schematics and project photos generated.
8 11/26/2013 System Integration Final round

Complete and revise project report

Final phase of integration was successfully completed which included testing with multiple test parameters and extreme conditions.
9 12/3/2013 Finalize and deliver project

Demo project

Parts List & Cost

Part Number# Description Cost Quantity
4N35 Optocoupler used to isolate the power $5.0 2
LEDs used for various application of the program $0.5 1
BOB-11978(Sparkfun) Logic Level Converter(5V to 3.3V or 3.3V to 5V) $1.95 1
GWServo-S04BBM Servo Motor $0.0 2
RN-XV WiFly Module The RN-XV module by Roving Networks used Wi-Fi communication. $35.00 1
Revolving display Acylic Plastic Revolving display base used as rotating platform $20.00 1
LPC1758 SJSU CMPE BOARD (SJSU) Processor LPC1758 SJSU CMPE BOARD $75 1

Design & Implementation

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

File:Camera circuit.jpg

Camera Control

Interfacing with the camera utilized was done via a 3.5mm stereo jack which is connected to the camera N3 port. This is the standard interface of numerous Canon cameras. The 3.5mm stereo jack has three points of contacts on the connector, an outer ring, the middle ring and the tip. Shorting the middle ring to the outer ring triggers the cameras focus, while shorting the tip to the outer ring triggers the cameras shutter. Creating the connection for the required operations is done by way of using two optocouplers as switches. The order of operation for triggering the camera properly is to first engage the focus, engage the shutter then disengages both the shutter and focus. The circuit interface to the camera is displayed above.

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 not only to transfer electrical signals between two isolated circuits by using light but also to serve 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

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:

PWM, or Pulse Width Modulation, was used to control the 180-degree positional servo. The servo expects a train of pulses of varying widths. The pulses are repeated at a given period, typically set at 20 ms (50Hz). The width of the pulse is the code that signifies to what position the shaft should turn. The center position is usually attained with 1.3-1.5ms wide pulses, while pulse widths varying from 0.7-1ms will command positions all the way to the right (left), and pulse widths of 1.7-2ms all the way to the left (right). However, we found that the valid pulse widths were larger, ranging from 0.2 ms to 3.3 ms in our servo. Therefore, we expanded the range of pulse widths and converted the range into a degree range in software. The servo is connected to a 6V power supply and is controlled by PWM1 (P1.0)


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?


These design documents describe a functioning time lapse photography device. The majority of the components used for this project were reclaimed materials. This not only kept the cost within reason but gave the project a unique one of a kind look. This method of construction was intentional, hopefully demonstrating that it is possible to create a useful and sophisticated device that utilizes current technology in an environmentally friendly fashion. Ultimately the device functioned with greater precision and flexibility than had been originally anticipated. After several trial runs a satisfactory time-lapse film was produced. This can be viewed on the course Wiki designated for student projects. The functionality of the device is very flexible allowing a great amount of artistic license in the production of the time-lapse photos.


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.