{"id":8249,"date":"2015-06-22T19:53:05","date_gmt":"2015-06-22T17:53:05","guid":{"rendered":"http:\/\/lukse.lt\/uzrasai\/?p=8249"},"modified":"2015-06-22T19:59:38","modified_gmt":"2015-06-22T17:59:38","slug":"motorized-turntable-for-automated-photography","status":"publish","type":"post","link":"https:\/\/lukse.lt\/uzrasai\/2015-06-motorized-turntable-for-automated-photography\/","title":{"rendered":"Motorized turntable for automated photography"},"content":{"rendered":"<p style=\"text-align: justify;\"><a href=\"http:\/\/lukse.lt\/uzrasai\/2015-06-motorized-turntable-for-automated-photography\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-8250 size-full\" src=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_t.jpg\" alt=\"IMG_4622_t\" width=\"200\" height=\"199\" \/><\/a>This is preview of what I am working on. At first it might look like trivial project, but a lot of interesting stuff is ticking under the hood.<\/p>\n<p>&nbsp;<\/p>\n<div align=\"center\"><!--more--><\/div>\n<h2>Hardware<\/h2>\n<p style=\"text-align: justify;\">Main module can be based on any computer powerful enough running Python. I chose Raspberry Pi because it has 4 USB ports &#8211; just enough for this task (WiFi, DSLR, USB disk, Motion controller). User interface computer (custom black aluminium box in the middle) is running Tornado server, which serves data to any mobile or stationary gadget over HTML5 with websockets. UI uses bootstrap with some widgets. UI computer also runs gphoto library to control camera over USB, which enabled to hack camera in different ways &#8211; change focus, take pictures, change capture parameters, get battery status,&#8230;<\/p>\n<p style=\"text-align: justify;\">Motor(s) are controlled by GRBL library running on Arduino nano (custom white plastic box below).<\/p>\n<p style=\"text-align: justify;\">Drive signals then divided to microsteps and conditioned by ordinary stepper motor controller (which by the way can be replaced to servo controller if needed).<\/p>\n<p style=\"text-align: justify;\">Stepper motor rotation is divided by 50:1 with custom build worm gear. Quick math &#8211; positioning has theoretical 200(native motor steps per revolution)*50(reducer)*128(microsteps)=1280000 steps per revolution. But simple worm reducer does not allow to use this kind of precision.<\/p>\n<h2>Software<\/h2>\n<p style=\"text-align: justify;\">As I mentioned above\u00a0 heart of user interface is Tornado server serving HTML5 page with websockets for bidirectional data exchange. This allows to get rid of Adobe Flash or other unwanted &#8220;crapware&#8221;. User interface is based on bootstrap framework with enabled responsive features, so single web design can be viewed on device with any size display.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_8251\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a onclick=\"javascript:pageTracker._trackPageview('\/downloads\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r.jpg');\"  href=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r.jpg\" rel=\"lightbox[8249]\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8251\" class=\"wp-image-8251 size-medium\" src=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r-400x398.jpg\" alt=\"IMG_4622_r\" width=\"400\" height=\"398\" srcset=\"https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r-400x398.jpg 400w, https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r-200x200.jpg 200w, https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r-1024x1019.jpg 1024w, https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/IMG_4622_r.jpg 1500w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-8251\" class=\"wp-caption-text\">Setup for wireless photography (except power supply is missing)<\/p><\/div>\n<div id=\"attachment_8253\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a onclick=\"javascript:pageTracker._trackPageview('\/downloads\/uzrasai\/wp-content\/uploads\/2015\/05\/1.png');\"  href=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/1.png\" rel=\"lightbox[8249]\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8253\" class=\"wp-image-8253 size-medium\" src=\"http:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/1-400x299.png\" alt=\"1\" width=\"400\" height=\"299\" srcset=\"https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/1-400x299.png 400w, https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/1-1024x764.png 1024w, https:\/\/lukse.lt\/uzrasai\/wp-content\/uploads\/2015\/05\/1.png 1294w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-8253\" class=\"wp-caption-text\">Control window with live preview<\/p><\/div>\n<div align=\"center\">\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/blT22Qtbi-o\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is preview of what I am working on. At first it might look like trivial project, but a lot of interesting stuff is ticking under the hood. &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"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":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[39,38,21,19,5,15],"tags":[],"class_list":["post-8249","post","type-post","status-publish","format-standard","hentry","category-cnc","category-in-english","category-projektai","category-time-lapse","category-uzrasai","category-video"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2rU5c-293","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/8249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/comments?post=8249"}],"version-history":[{"count":8,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/8249\/revisions"}],"predecessor-version":[{"id":8291,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/posts\/8249\/revisions\/8291"}],"wp:attachment":[{"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/media?parent=8249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/categories?post=8249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukse.lt\/uzrasai\/wp-json\/wp\/v2\/tags?post=8249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}