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.
Things used in this project
Story
Shutterino – control the camera’s shutter with a sensor-sensitive algorithm. Powered by Arduino MKR1000.
I want to make a stop motion short film similar to “Pacer” but I’m nowhere close to having artistic skills to do it. I hope that programming skills will come to rescue. Let’s have the algorithm decide when it is the best moment to take a photo!

For example, Shutterino takes a photo when the accelerometer provides a similar reading to the last photo’s, or when you move 10 meters from where you took the last photo.
To make a good film I need a good camera, and as you can see from the short video below, my phone has a rather poor quality of sensor. In its defense, it costs just $100. My actual camera doesn’t have remote shutter capability, so Shutterino will use a servo motor to press the shutter button.
Choose from a Variety of Triggers to take the Photograph
I’m using my Windows Phone as a source of triggers for taking the photographs. User can choose one of the following events:
• Matching accelerometer reading
so that all the shots are level
• Change in GPS coordinates
for road trips
• Timer
for timelapses

Big Data
Simultaneously with pushing the shutter button, the phone is taking a picture with its camera, for correlation with status of every sensor. The readings are recorded in a .csv file and uploaded to Azure FileStorage, which appears to be a very young sibling of TableStorage and BlobStorage that lets you download files from Azure portal!
You may take a lot of photos one day, so you will need to filter, for example, to just find these caused by change of GPS coordinates. In post production the accelerometer readings may be useful to rotate the photo
.

Augmented Viewfinder
The phone shows the accelerometer’s desired and current reading, which helps you orient the camera for the right shot. As soon as you have the shot, Shutterino takes the photo.

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).
Concept for the 3D printed enclosureSource 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
Schematics
Code
- 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.


