{"id":745,"date":"2017-06-01T15:55:06","date_gmt":"2017-06-01T13:55:06","guid":{"rendered":"http:\/\/www.anyma.ch\/blogs\/research\/?p=745"},"modified":"2017-06-01T20:26:21","modified_gmt":"2017-06-01T18:26:21","slug":"superbeam-2000","status":"publish","type":"post","link":"https:\/\/www.anyma.ch\/blogs\/research\/2017\/06\/01\/superbeam-2000\/","title":{"rendered":"Superbeam 2000"},"content":{"rendered":"<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229.jpg\" rel=\"attachment wp-att-766\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-766 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229-991x1024.jpg\" alt=\"IMG_7229\" width=\"640\" height=\"662\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229-991x1024.jpg 991w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229-290x300.jpg 290w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229-768x794.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7229.jpg 1742w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a>Nice little project that has been keeping me busy for this last while: building a fake Super8 projector for a theatre play. For his piece &#8220;<a href=\"http:\/\/snaut.ch\/creations\/QLT.html\">Quitter la terre<\/a>&#8221; Joel Maillard wanted a Super8 projector &#8211; but this can be a bit fiddly and unreliable on stage, also light output of original Super8, is quite poor. Turn around time is too long, every new idea has to be shot, sent to the lab, edited by hand back into the movie. Too much time passes in between for the short theatre production times. I first imagined to retrofit a real vintage projector with a small LED video beamer, but I finally decided to build one from scratch.<\/p>\n<h3>Drawing<\/h3>\n<p>Design was made on a beach in Greece in Sketchup:<\/p>\n<p>&nbsp;<\/p>\n<h3><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.50.37.png\" rel=\"attachment wp-att-787\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-787\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.50.37.png\" alt=\"Screen Shot 2017-06-01 at 16.50.37\" width=\"569\" height=\"514\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.50.37.png 569w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.50.37-300x271.png 300w\" sizes=\"(max-width: 569px) 100vw, 569px\" \/><\/a><\/h3>\n<h3>Laser cutting<\/h3>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10.png\" rel=\"attachment wp-att-750\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-750 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10-1024x576.png\" alt=\"Screen Shot 2017-06-01 at 15.47.10\" width=\"677\" height=\"381\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10-1024x576.png 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10-300x169.png 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10-768x432.png 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-15.47.10.png 1032w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/><\/a><br \/>\nAll pieces (over 100) are then color coded by thickness, copied and laid out flat in Sketchup, exported to DXF using\u00a0<a href=\"https:\/\/www.guitar-list.com\/download-software\/convert-sketchup-skp-files-dxf-or-stl\">this plugin<\/a> and laser cut from 3mm and 5mm HDF sheets, 10mm plywood, and 3mm and 10mm acrylic.<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084.jpg\" rel=\"attachment wp-att-772\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-772 alignleft\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084-1024x768.jpg\" alt=\"IMG_8084\" width=\"400\" height=\"300\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084-1024x768.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084-768x576.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8084.jpg 1800w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087.jpg\" rel=\"attachment wp-att-773\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-773 alignnone\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087-1024x768.jpg\" alt=\"IMG_8087\" width=\"400\" height=\"300\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087-1024x768.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087-768x576.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8087.jpg 1800w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/h3>\n<h3>Glue, fill and paint<\/h3>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-752 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7176-1024x682.jpg\" alt=\"IMG_7176\" width=\"588\" height=\"392\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7176-1024x682.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7176-300x200.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7176-768x512.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7176.jpg 1800w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-753 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7177-1024x516.jpg\" alt=\"IMG_7177\" width=\"509\" height=\"256\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7177-1024x516.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7177-300x151.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7177-768x387.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7177.jpg 1800w\" sizes=\"(max-width: 509px) 100vw, 509px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-754 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7180-1024x836.jpg\" alt=\"IMG_7180\" width=\"524\" height=\"428\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7180-1024x836.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7180-300x245.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7180-768x627.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7180.jpg 1800w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-755 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7198-1024x896.jpg\" alt=\"IMG_7198\" width=\"588\" height=\"515\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7198-1024x896.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7198-300x263.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7198-768x672.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7198.jpg 1800w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-756 aligncenter\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7200-1024x895.jpg\" alt=\"IMG_7200\" width=\"600\" height=\"524\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7200-1024x895.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7200-300x262.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7200-768x671.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7200.jpg 1800w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Then after some rounding of the edges, sanding all faces, filling unwanted holes and sanding again, a first layer of acrylic primer is sprayed on.<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205.jpg\" rel=\"attachment wp-att-757\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-757\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205-1024x895.jpg\" alt=\"IMG_7205\" width=\"570\" height=\"498\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205-1024x895.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205-300x262.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205-768x671.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7205.jpg 1800w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099.jpg\" rel=\"attachment wp-att-774\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-774 size-medium alignleft\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099-300x225.jpg\" alt=\"IMG_8099\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099-768x576.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099-1024x768.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8099.jpg 1800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101.jpg\" rel=\"attachment wp-att-775\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-775 size-medium alignleft\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101-300x225.jpg\" alt=\"IMG_8101\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101-768x576.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101-1024x768.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8101.jpg 1800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1.jpg\" rel=\"attachment wp-att-782\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-782 alignnone\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1-1024x854.jpg\" alt=\"IMG_7209\" width=\"696\" height=\"581\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1-1024x854.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1-300x250.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1-768x640.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7209-1.jpg 1800w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/p>\n<p>Some more sanding with fine (400) paper, more filling and more sanding later we can roll on the final colour.<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214.jpg\" rel=\"attachment wp-att-760\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-760 alignleft\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214-300x225.jpg\" alt=\"IMG_7214\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214-768x577.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214-1024x769.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7214.jpg 1800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<div id=\"attachment_761\" style=\"width: 290px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218.jpg\" rel=\"attachment wp-att-761\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-761\" class=\"wp-image-761 size-medium\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218-280x300.jpg\" alt=\"IMG_7218\" width=\"280\" height=\"300\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218-280x300.jpg 280w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218-768x822.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218-956x1024.jpg 956w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7218.jpg 1681w\" sizes=\"(max-width: 280px) 100vw, 280px\" \/><\/a><p id=\"caption-attachment-761\" class=\"wp-caption-text\">Internal support structure<\/p><\/div>\n<p>&nbsp;<\/p>\n<h3><\/h3>\n<h3>Mechanical buttons and shutter<\/h3>\n<p>Film transport and video playback is started with a big turning button. This button also moves\u00a0a mechanical shutter that blocks all light from the beamer when the projector is supposed to be &#8220;off&#8221;. Projected black is never totally black, and I don&#8217;t want any error messages or logos appear by accident.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/player.vimeo.com\/video\/219864559\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p><a href=\"https:\/\/vimeo.com\/219864559\">Super8-Shutter<\/a> from <a href=\"https:\/\/vimeo.com\/user3830591\">Michael Egger<\/a> on <a href=\"https:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n<p>All moving wooden parts are lubricated with graphite powder.<\/p>\n<h3>Film guide and lens<\/h3>\n<p>To support the illusion a real film is transported from one reel to the other, but it has to be outside of the video projectors light path, so a construction made from laser cut acrylic guides the film around the beamer.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_783\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.18.57.png\" rel=\"attachment wp-att-783\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-783\" class=\"wp-image-783 size-medium\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.18.57-300x173.png\" alt=\"Screen Shot 2017-06-01 at 16.18.57\" width=\"300\" height=\"173\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.18.57-300x173.png 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-06-01-at-16.18.57.png 768w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-783\" class=\"wp-caption-text\">Sketchup drawing&#8230;<\/p><\/div>\n<div id=\"attachment_784\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216.jpg\" rel=\"attachment wp-att-784\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-784\" class=\"wp-image-784 size-medium\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216-300x162.jpg\" alt=\"IMG_7216\" width=\"300\" height=\"162\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216-300x162.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216-768x414.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216-1024x552.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7216.jpg 1800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-784\" class=\"wp-caption-text\">&#8230; and assembled filmguide.<\/p><\/div>\n<p>The &#8220;lens&#8221; is just a tube assembled from several laser cut wood circles.<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219.jpg\" rel=\"attachment wp-att-762\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-762\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219-297x300.jpg\" alt=\"IMG_7219\" width=\"297\" height=\"300\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219-297x300.jpg 297w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219-768x776.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219-1013x1024.jpg 1013w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219-144x144.jpg 144w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7219.jpg 1781w\" sizes=\"(max-width: 297px) 100vw, 297px\" \/><\/a><\/p>\n<h3>Electronics<\/h3>\n<p>The system is comprised of<\/p>\n<ul>\n<li>12V power supply for Arduino, motor and fan<\/li>\n<li>5V power supply for Raspberry Pi<\/li>\n<li>50:1 <a href=\"https:\/\/www.distrelec.ch\/de\/dc-getriebemotor-50-12-vdc-premotec-9904-120-52605\/p\/11034159?q=110-34-159&amp;page=1&amp;origPos=1&amp;origPageSize=25&amp;simi=97.5&amp;no-cache=true\">gear motor<\/a> for film transport<\/li>\n<li>Exhaust fan<\/li>\n<li>2 Hall sensors for Start\/Stop and reset buttons<\/li>\n<li>1 additional mechanical push button<\/li>\n<li>1 potentiometer for motor speed control<\/li>\n<li>TC1047 Temperature sensor for overheating detection<\/li>\n<li>Arduino for reading sensors, motor and fan control<\/li>\n<li>Raspberry Pi (controlled by Arduino through GPIO) for video playback<\/li>\n<li>Vivitek Qumi 7+ 1000 lumes LED video projector<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223.jpg\" rel=\"attachment wp-att-763\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-763 \" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223-1024x669.jpg\" alt=\"IMG_7223\" width=\"725\" height=\"473\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223-1024x669.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223-300x196.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223-768x502.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7223.jpg 1800w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224.jpg\" rel=\"attachment wp-att-764\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-764 \" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224-1024x596.jpg\" alt=\"IMG_7224\" width=\"550\" height=\"320\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224-1024x596.jpg 1024w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224-300x175.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224-768x447.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7224.jpg 1800w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p>Probably all control could have been implemented directly on the Raspberry Pi, but my Pi-Fu is still weak &#8211; that&#8217;s why the script running is just a lazy copy-pasta from <a href=\"https:\/\/www.hackster.io\/ThothLoki\/play-video-with-python-and-gpio-a30c7a\">here<\/a>\u00a0\u00a0and <a href=\"https:\/\/raspberrypi.stackexchange.com\/questions\/23865\/how-to-display-black-screen-on-raspberry-pi\">here<\/a>, every thing else is done on the Arduino.<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228.jpg\" rel=\"attachment wp-att-765\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-765\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228.jpg\" alt=\"IMG_7228\" width=\"612\" height=\"408\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228.jpg 1800w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228-300x200.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228-768x512.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_7228-1024x683.jpg 1024w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/a><\/p>\n<h3>Software<\/h3>\n<h4>videoplayer.py<\/h4>\n<pre lang=\"Python\" line=\"1\">import RPi.GPIO as GPIO\r\nimport os\r\nimport sys\r\nfrom subprocess import Popen\r\nimport pygame\r\nimport time\r\n\r\npygame.init()\r\npygame.mouse.set_visible(False)\r\n\r\nscreen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)\r\n\r\nscreen.fill((0, 0, 0))\r\n\r\nGPIO.setmode(GPIO.BCM)\r\n\r\nGPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)\r\nGPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)\r\nGPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)\r\n\r\nmovie1 = (\"\/home\/pi\/Videos\/01.mp4\")\r\nmovie2 = (\"\/home\/pi\/Videos\/02.mp4\")\r\n\r\nlast_state1 = True\r\nlast_state2 = True\r\n\r\ninput_state1 = True \r\ninput_state2 = True\r\nquit_video = True\r\n\r\nplayer = False\r\ndone = False\r\nwhile not done:\r\n #Read states of inputs\r\n input_state1 = GPIO.input(4)\r\n input_state2 = GPIO.input(17)\r\n quit_video = GPIO.input(22)\r\n\r\n #If GPIO(4) is shorted to Ground\r\n if input_state1 != last_state1:\r\n if (player and not input_state1):\r\n os.system('killall omxplayer.bin')\r\n omxc = Popen(['omxplayer','-bz', '-o','hdmi', movie1])\r\n player = True\r\n elif not input_state1:\r\n omxc = Popen(['omxplayer','-bz', '-o','hdmi', movie1])\r\n player = True\r\n\r\n #If GPIO(17) is shorted to Ground\r\n elif input_state2 != last_state2:\r\n if (player and not input_state2):\r\n os.system('killall omxplayer.bin')\r\n omxc = Popen(['omxplayer','-bz', '-o','hdmi', movie2])\r\n player = True\r\n elif not input_state2:\r\n omxc = Popen(['omxplayer','-bz', '-o','hdmi', movie2])\r\n player = True\r\n\r\n #If omxplayer is running and GIOP(17) and GPIO(18) are not shorted to Ground\r\n elif (player and input_state1 and input_state2):\r\n os.system('killall omxplayer.bin')\r\n player = False\r\n\r\n #GPIO(24) to close omxplayer manually - used during debug\r\n if quit_video == False:\r\n os.system('killall omxplayer.bin')\r\n player = False\r\n\r\n #Set last_input states\r\n last_state1 = input_state1\r\n last_state2 = input_state2\r\n \r\n for event in pygame.event.get():\r\n if event.type == pygame.QUIT:\r\n done = True\r\n elif event.type == pygame.KEYDOWN:\r\n if event.key == pygame.K_ESCAPE:\r\n done = True\r\n\r\n time.sleep(0.01)\r\n\r\npygame.quit()\r\n\r\n<\/pre>\n<h4>Super8.ino<\/h4>\n<pre lang=\"C\" line=\"1\">\/*---------------------------------------------------------------------------------------------\r\n\r\n\t[ a n y m a | SUPERBEAM 2000 ]\r\n\tController firmware\r\n\t\r\n\tcc) 2017 by Michael Egger\r\n\t\r\n\tRelased under GNU GPL 3.0\r\n\r\n--------------------------------------------------------------------------------------------- *\/\r\n\r\n \r\n#include \"Timer.h\"\r\n\r\n\/\/Specify the links and initial tuning parameters\r\n\/\/PID myPID(&amp;Input, &amp;Output, &amp;Setpoint,2,5,1, DIRECT);\r\n\r\n\r\nTimer \t\tt;\r\n\r\nconst char DEBUG = 0;\r\nunsigned char btn_start, btn_reset, btn_push;\r\nunsigned char current_speed, target_speed,fan_speed;\r\nunsigned int motor_speed;\r\n\r\nunsigned char current_movie;\r\n\r\n\t\r\n\/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n\/\/\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetup\r\nvoid setup() {               \r\n  \tpinMode(3,OUTPUT);         \/\/ Motor on Pin 3\r\n  \tpinMode(5,OUTPUT);         \/\/ Fan on Pin 5\r\n  \tanalogWrite(5,0);\r\n\r\n  \r\n  \tpinMode(6,OUTPUT);         \/\/ to Raspi GPIO 22\r\n  \tpinMode(7,OUTPUT);         \/\/ to Raspi GPIO 17\r\n  \tpinMode(8,OUTPUT);         \/\/ to Raspi GPIO 4\r\n\tdigitalWrite(6,HIGH);\t\r\n\tdigitalWrite(7,HIGH);\t\r\n\tdigitalWrite(8,HIGH);\t\r\n\r\n  \tpinMode(12,INPUT_PULLUP);  \/\/ safety push button\r\n  \t\r\n  \t\/\/analogReference(INTERNAL);\r\n  \t\r\n\t\/\/initialize the PID \r\n  \t\/\/Setpoint = 28;\r\n\t\/\/myPID.SetMode(AUTOMATIC);\r\n\tbtn_push = digitalRead(12);\r\n\t\r\n\tif (DEBUG) {\r\n\t  \tSerial.begin(9600);\r\n\t\tt.every(1000, check_btns);\r\n\t\tt.every(4, check_motor);\r\n\t\tt.every(1000, check_temperature);\r\n\t} else {\r\n\t\tt.every(10, check_btns);\r\n\t\tt.every(4, check_motor);\r\n\t\tt.every(5000, check_temperature);\r\n\t}\r\n\t\/\/analogWrite(5,100);\r\n}\r\n\r\n\r\n\/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n\/\/\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmotors\r\n\r\nvoid check_motor() {\r\n\tif (current_speed &lt; target_speed) current_speed++; if (current_speed &gt; target_speed) current_speed--;\t\r\n\t\r\n\tunsigned int output;\r\n\toutput = current_speed * motor_speed \/ 255;\r\n\t\r\n\tanalogWrite(3,output);\r\n}\r\n\r\n\/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n\/\/\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbtns\r\nvoid check_btns() {\r\n\r\n\tunsigned int temp;\r\n\tmotor_speed = map(analogRead(A3),0,1024,0,255);\r\n\t\r\n\ttemp = analogRead(A4);\r\n\tif (DEBUG) {Serial.print(\"A4:\");Serial.println(temp);}\r\n\r\n\tif (btn_reset) {\r\n\t\tif (temp &gt; 970) {\r\n\t\t\tbtn_reset = 0;\r\n\t\t}\r\n\t} else {\r\n\t\tif (temp &lt; 950) { btn_reset = 1; current_movie = 0; } } temp = analogRead(A5); if (DEBUG) {Serial.print(\"A5:\");Serial.println(temp);} if (btn_start) { if (temp &gt; 980) {\r\n\t\t\tbtn_start = 0;\r\n\t\t\ttarget_speed = 0;\r\n\t\t}\r\n\t} else {\r\n\t\tif (temp &lt; 970) { btn_start = 1; current_movie++; target_speed = 255; } } temp = digitalRead(12); if (temp != btn_push) { btn_push = temp; if (temp == 0) { if (target_speed == 0) { current_movie++; target_speed = 255; } else { target_speed = 0; } } } current_movie %= 2; if (target_speed) { if (current_movie == 0) digitalWrite(7,LOW); if (current_movie == 1) digitalWrite(8,LOW); } else { digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); } } \/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \/\/ temp sens void check_temperature() { int temp = analogRead(A0); if (DEBUG) {Serial.print(\"Temperature:\");Serial.println(temp);} if (temp &gt; 210) fan_speed = 255;\r\n\telse if (temp &gt; 180) {\r\n\t\tfan_speed = map(temp,180,210,100,255);\r\n\t} else if (temp &lt; 170) { fan_speed = 0; }\r\n\tanalogWrite(5,fan_speed);\t\r\n}\r\n  \r\n \r\n\r\n\/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n\/\/\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloop\r\n\/\/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n\r\nvoid loop() {\r\n\tt.update();\r\n }\r\n<\/pre>\n<h3>Done<\/h3>\n<p>Here it is, the Superbeam2000 in its natural habitat next to its new friend a real old school overhead projector:<\/p>\n<p><a href=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075.jpg\" rel=\"attachment wp-att-771\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-771\" src=\"http:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075.jpg\" alt=\"IMG_8075\" width=\"1800\" height=\"1350\" srcset=\"https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075.jpg 1800w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075-300x225.jpg 300w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075-768x576.jpg 768w, https:\/\/www.anyma.ch\/blogs\/research\/wp-content\/uploads\/2017\/06\/IMG_8075-1024x768.jpg 1024w\" sizes=\"(max-width: 1800px) 100vw, 1800px\" \/><\/a><\/p>\n<p>And in action:<\/p>\n<p>&nbsp;<br \/>\n<iframe loading=\"lazy\" src=\"https:\/\/player.vimeo.com\/video\/219893105\" width=\"640\" height=\"360\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen><\/iframe><\/p>\n<p><a href=\"https:\/\/vimeo.com\/219893105\">Super8<\/a> from <a href=\"https:\/\/vimeo.com\/user3830591\">Michael Egger<\/a> on <a href=\"https:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nice little project that has been keeping me busy for this last while: building a fake Super8 projector for a theatre play. For his piece &#8220;Quitter la terre&#8221; Joel Maillard wanted a Super8 projector &#8211; but this can be a bit fiddly and unreliable on stage, also light output of original Super8, is quite poor. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/posts\/745"}],"collection":[{"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/comments?post=745"}],"version-history":[{"count":14,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/posts\/745\/revisions"}],"predecessor-version":[{"id":795,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/posts\/745\/revisions\/795"}],"wp:attachment":[{"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/media?parent=745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/categories?post=745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anyma.ch\/blogs\/research\/wp-json\/wp\/v2\/tags?post=745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}