Home > Projects > Phone Projects > Algorithmic Camera Trigger – Shutterino

Algorithmic Camera Trigger – Shutterino

Summary of Algorithmic Camera Trigger – Shutterino


Shutterino is an algorithmic camera trigger system powered by Arduino MKR1000 and a Windows Phone. It automates stop-motion photography by using sensors like accelerometers and GPS to determine the optimal moment for capturing images. The phone communicates with the Arduino via Firmata to control a servo motor that physically presses the camera shutter, while data is logged to Azure FileStorage for post-production analysis.

Parts used in Shutterino:

  • Arduino MKR1000
  • Servo (Tower Pro MG996R or Micro Servo 9g A0090)
  • Microsoft Windows Phone (or any Windows 10 device)
  • Digital camera
  • Connector wires
  • USB Cable
  • 3D printed case
  • Battery for Arduino MKR1000

Camera trigger powered by Arduino MKR1000 and controlled by the app. Let the algorithm take the best shots.Algorithmic Camera Trigger - Shutterino

Things used in this project

Hardware components

Arduino MKR1000
Arduino MKR1000
Any board with WiFi and support for Firmata protocol will work
× 1
Servos (Tower Pro MG996R)
× 1
Microsoft Windows Phone
× 1

Software apps and online services

Microsoft Azure
Microsoft Azure

Story

Modular Design

You can run this app on any Windows 10 device. If your device lacks any capability, it just won’t be active.

On a desktop computer, you will have access to timer, log and Arduino connection.

A webcam will give you camera preview.

A phone will complete the features with accelerometer and GPS data. Actually, my phone has only accelerometer but no compass nor gyrometer. If your phone has a gyro and you’re interested in this project, feel free to hack on it and send in a PR!

Ultimately, I want to learn reactive extensions and use them in this project, so a big refactoring is imminent.

Very Simple Firmware

The Universal App uses the Firmata to communicate with the Arduino. Firmata is a fantastic platform for all makers: The Arduino is running nothing more than StandardFirmataWiFi and all processing is done on the more capable phone.

TIP: check out the remote-wiring-experience app for rapid prototyping and debugging using the Firmata protocol.

The Future

Shutterino is currently highly capable, but it’s awkward to use – you need to hold the phone, Arduino, camera and the servo, but you don’t have 4 hands! Therefore, Shutterino calls for a rigid enclosure. Below I drew a design for a 3D printed enclosure that will contain all components.

To create really interesting stop-motion video like “Pacer”, the algorithm needs to know more than the phone’s orientation in space. An edge detectionalgorithm will let Shutterino take a photograph when the viewfinder matches shape from the previous photo (with a configurable shift).

 Source Code

The source code is available at https://github.com/AmadeusW/Shutterino. I will keep updating it.

I submitted this project for the World’s Largest Arduino Maker Challenge and created a release on github before the deadline.

Bill of Materials:

• BLU WIN HD W510u (any Windows 10 device is ok)

• Arduino MKR1000

• Digital camera

• Micro Servo 9g A0090 (any generic servo is ok)

• Appropriate connector wires

• USB Cable, not needed in the final product

Finished product Bill of Materials:

• 3D printed case

• Battery for Arduino MKR1000

Custom parts and enclosures

Enclosure concept

Drawing of the enclosure. Still need to learn CAD.
Can you recommend me a CAD tutorial that you like?
Thanks!

Schematics

Code

Shutterino

The Universal App that runs on the smart phone

 

Quick Solutions to Questions related to Shutterino:

  • How does Shutterino decide when to take a photo?
    The algorithm takes photos based on matching accelerometer readings, changes in GPS coordinates, or a timer setting.
  • Can I use a different board instead of the Arduino MKR1000?
    Yes, any board with WiFi support for the Firmata protocol will work.
  • Does the project require a high-end camera sensor?
    No, the system uses a servo motor to press the shutter button of any digital camera, even those without remote capabilities.
  • Where are the sensor readings stored?
    Readings are recorded in a .csv file and uploaded to Microsoft Azure FileStorage.
  • What triggers can the user choose from?
    Users can select between matching accelerometer readings, change in GPS coordinates, or a timer.
  • Does the app run only on phones?
    No, the Universal App runs on any Windows 10 device, adapting features based on available hardware like webcams or gyroscopes.
  • How does the phone communicate with the Arduino?
    The Universal App uses the Firmata protocol to communicate with the Arduino running StandardFirmataWiFi.
  • Is the firmware complex to set up?
    No, the firmware is very simple as most processing happens on the phone and configuration mainly involves fine-tuning the servo.
  • What future improvements are planned for the algorithm?
    The developer plans to implement an edge detection algorithm to match shapes from previous photos.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top