{"id":757,"date":"2015-02-20T12:42:02","date_gmt":"2015-02-20T01:42:02","guid":{"rendered":"http:\/\/bandetech.com\/blog\/?p=757"},"modified":"2015-02-20T14:18:21","modified_gmt":"2015-02-20T03:18:21","slug":"remote-camera-shutter-release","status":"publish","type":"post","link":"https:\/\/bandetech.com\/blog\/2015\/02\/remote-camera-shutter-release\/","title":{"rendered":"Remote camera shutter release"},"content":{"rendered":"<p style=\"padding-left: 30px;\"><a href=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_closeup.jpg\" rel=\"lightbox[]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-760 size-medium\" src=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_closeup-231x300.jpg\" alt=\"Fully set up\" width=\"231\" height=\"300\" srcset=\"https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_closeup-231x300.jpg 231w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_closeup-790x1024.jpg 790w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\" \/><\/a>Have you ever needed to photograph a batch of objects in a consistent, repeatable way? I needed\u00a0to take photos of more than 200 vinyl records to list on eBay. I couldn&#8217;t face the idea of doing this without some automation, so the Arduino-shutter-button-presser was born.<!--more--><\/p>\n<p style=\"padding-left: 30px;\">To take the best photo of each record, I wanted the camera and subject lined up squarely, zoomed in close, focused and exposed nicely &#8212; for each side\u00a0of 71 LPs and 180 singles. No way was I going to take all of those photos\u00a0hand-held. A tripod helps with holding the camera, but it&#8217;s easy to bump the setup\u00a0when using the shutter, and\u00a0camera shake can still be an issue when pressing the shutter release. What I really needed was a remote shutter release like the pros use, but my compact Panasonic camera doesn&#8217;t have that feature. \ud83d\ude41<\/p>\n<p style=\"padding-left: 30px;\">Arduino technology to the rescue!<\/p>\n<p style=\"padding-left: 30px;\">I brought together a\u00a0<a title=\"MicroView on kickstarter\" href=\"https:\/\/www.kickstarter.com\/projects\/1516846343\/microview-chip-sized-arduino-with-built-in-oled-di\" target=\"_blank\">MicroView<\/a>\u00a0(an Arduino with a display) that I&#8217;d received from backing the MicroView\u00a0kickstarter project, a servo, a switch on a long piece\u00a0of wire, a variable resistor, some mouldable\u00a0plastic and a piece of velcro. Then I tied it all together with a day&#8217;s work and some Arduino\u00a0code.<\/p>\n<p style=\"padding-left: 30px;\">A servo is a small, light motor that can be told to rotate to a specific angle. They&#8217;re typically found in remote controlled cars, boats and planes and let the controller make settings like &#8216;turn the wheels 10 degrees left&#8217;. A\u00a0servo with a small\u00a0arm fitted, sitting atop the\u00a0camera and told\u00a0to move the right amount\u00a0should press the camera shutter button. Ideally, though, it would half-press first to set the camera&#8217;s focus and exposure, pause, and then fully push the shutter button.<\/p>\n<div id=\"attachment_821\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02.jpg\" rel=\"lightbox[]\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-821\" class=\"wp-image-821 size-medium\" src=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02-300x300.jpg 300w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02-150x150.jpg 150w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02-1024x1024.jpg 1024w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_servo_on_camera_02.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-821\" class=\"wp-caption-text\">Polymorph bracket (light blue) stabilises servo (green) on top of the camera<\/p><\/div>\n<p>The first problem to solve was\u00a0that the top of my camera isn&#8217;t flat and the servo needed to be held down so that it could push on the button without lifting itself up. Polymorph\u00a0plastic pellets\u00a0melt in hot water, and\u00a0can be moulded to any shape. The plastic sets hard when it cools and it&#8217;s reusable. I covered the camera and servo in cling film to prevent water or sticky hot plastic damage, melted some polymorph and then sandwiched it between the camera and servo, moulding the plastic to the shape of both objects\u00a0simultaneously. Perfect result, first time!<\/p>\n<p>The Arduino can drive\u00a0a servo directly, so I didn&#8217;t need any special electronics or circuits. The next step was to program the Arduino to react to the remote shutter release and\u00a0move the\u00a0servo the correct amount. The half-press and full-press operations need to be calibrated as\u00a0the servo can\u00a0sit a little differently each time it&#8217;s attached, or it could even\u00a0be on a different camera. So, at start up the Arduino steps through a calibration sequence &#8212; the display on the MicroView is invaluable for displaying instructions and status as calibration takes place. \u00a0This is the calibration sequence:<\/p>\n<ol>\n<li>Turn the knob (a variable resistor) and position\u00a0the servo accordingly. When the arm is\u00a0not touching the shutter,\u00a0press the remote release button to store this position.<\/li>\n<li>Turn the knob to\u00a0move the servo arm until the camera registers a\u00a0half press. Press the remote release button to store\u00a0this position.<\/li>\n<li>Turn the knob a little further until the camera takes a photo. Press the remote release button to store the full-press position.<\/li>\n<\/ol>\n<p>Once the three servo positions are known, it&#8217;s ready to use. When the remote button is pressed, the Arduino moves the servo to the half-press position, waits 1 second to allow\u00a0the camera time to focus, then moves the servo to the shutter fully pressed position for about half a second, then returns the servo to the neutral\/unpressed position.<\/p>\n<p><iframe loading=\"lazy\" title=\"Arduino remote shutter release\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/icsJQ013gOQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>That\u00a0\u00a0was pretty much all I needed, but a little bit of fine tuning was hard to resist.\u00a0So now the program:<\/p>\n<ul>\n<li>uses the MicroView display to show the number of images taken and the time elapsed since the last\u00a0image was taken<\/li>\n<li>half-presses the shutter every minute or so of idle time to stop the camera from turning off or going to sleep<\/li>\n<li>incorporates a time lapse mode. If the button is held down when the Arduino is first turned on, normal calibration happens, but there is also a time delay setting using the knob. Once setup is complete, it automatically presses the shutter every <em>x<\/em> seconds and updates the display accordingly.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_on_tripod_02.jpg\" rel=\"lightbox[]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-761 size-medium\" src=\"http:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_on_tripod_02-290x300.jpg\" alt=\"Arduino! Camera! Action!\" width=\"290\" height=\"300\" srcset=\"https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_on_tripod_02-290x300.jpg 290w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_on_tripod_02-990x1024.jpg 990w, https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_on_tripod_02.jpg 1165w\" sizes=\"auto, (max-width: 290px) 100vw, 290px\" \/><\/a>Now we&#8217;re talking! With the camera on a tripod, bits of velcro everywhere and the Arduino powered up and calibrated, I photographed the 71 LPs, front and back\u00a0in less than 45 minutes. Best of all, they were framed identically, square on to the camera and easy to crop for listing on eBay. Just what the mad scientist ordered. \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Arduino MicroView code and schematic diagram are available <a title=\"Code and schematic\" href=\"http:\/\/bandetech.com\/blog\/remote-shutter-release-arduino-code\/\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever needed to photograph a batch of objects in a consistent, repeatable way? I needed\u00a0to take photos of more than 200 vinyl records to list on eBay. I couldn&#8217;t face the idea of doing this without some automation, &hellip; <a href=\"https:\/\/bandetech.com\/blog\/2015\/02\/remote-camera-shutter-release\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[17],"tags":[8,36,37,38],"class_list":["post-757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects","tag-arduino","tag-camera","tag-remote-shutter","tag-servo"],"jetpack_featured_media_url":"https:\/\/bandetech.com\/blog\/wp-content\/uploads\/rmt_ft_image_02.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8H2X3-cd","_links":{"self":[{"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/posts\/757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/comments?post=757"}],"version-history":[{"count":51,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/posts\/757\/revisions"}],"predecessor-version":[{"id":837,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/posts\/757\/revisions\/837"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/media\/788"}],"wp:attachment":[{"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/media?parent=757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/categories?post=757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bandetech.com\/blog\/wp-json\/wp\/v2\/tags?post=757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}