Difference between revisions of "Photobooth Mark I"

From Makers Local 256
Jump to: navigation, search
(Added Materials section to Mark II)
m (Status: better)
 
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
=Overview=
 
=Overview=
 
Basically a photobooth just like at the mall, but with a maker's charm.
 
Basically a photobooth just like at the mall, but with a maker's charm.
 +
 +
==Status==
 +
<onlyinclude>{{{status|Retired please see [[Photobooth Mark II]] for further work.}}}</onlyinclude>
  
 
==Features==
 
==Features==
Line 55: Line 58:
 
*** Used: 640x480
 
*** Used: 640x480
 
* OS: Windows XP SP2
 
* OS: Windows XP SP2
** Other software:  
+
** Other software: Twaincommander, VLC, MS picture and fax viewer, image magick
***
+
* OS: Debian GNU/Linux
 +
** Other software: mplayer, image magick, xloadimage, exiftool
 +
 
 +
==Linux Perl Code==
 +
=== Picture Code ===
 +
The [https://the.narro.ws/viewvc/index.cgi/branches/photobooth/photobooth-linux.pl?revision=4&root=opticron&view=markup linux perl code] is in the opticron/branches/photobooth svn repo.
  
 
==Windows perl code==
 
==Windows perl code==
This file contains the code to wait for the user input and then take the pictures.
+
=== Picture code ===
<pre>#!c:\perl
+
[https://the.narro.ws/viewvc/index.cgi/branches/photobooth/photobooth-windows.pl?revision=4&root=opticron&view=markup Picture code] in the svn repo.
# command for vlc wallpaper stuff is vlc dshow:// --directx-wallpaper
+
#there is also a command console attached to localhost:42789
+
 
+
use Image::Magick;
+
use Audio::Beep::Win32::API;
+
use Win32::GUI;
+
my ($DOS) = Win32::GUI::GetPerlWindow();
+
Win32::GUI::Hide($DOS);
+
sub doBeeps {
+
# this command will play a video full screen and then quit which is better than beeps
+
#`vlc -f --video-on-top "54321.mpg" vlc:quit`;
+
$window->Button1->Change(-title => "3");
+
sleep 1;
+
$window->Button1->Change(-title => "2");
+
sleep 1;
+
$window->Button1->Change(-title => "1");
+
sleep 1;
+
$window->Button1->Change(-title => "Taking Picture!");
+
 
+
}
+
 
+
$font = Win32::GUI::Font->new(
+
-size => 20,
+
);
+
 
+
$window = new Win32::GUI::Window(
+
-name => "Window",
+
-title => "Main Window",
+
-left => 300,
+
-top => 400,
+
-width => 200,
+
-height => 200,
+
-minsize => [200,200],
+
-maxsize => [200,200]
+
);
+
$window->Show();
+
$window->AddButton(
+
-name => "Button1",
+
-title => "Take Pictures!",
+
-left => 0,
+
-top => 0,
+
-width => 200,
+
-height => 170,
+
-font => $font
+
);
+
$window->Button1->Show();
+
$lock = 0;
+
sub Button1_Click {
+
if ($lock == 1) {
+
return;
+
}
+
$lock = 1;
+
print "taking images\n";
+
doBeeps();
+
system ("twaincom.exe image1.jpg -h"); # grabs image1
+
doBeeps();
+
system ("twaincom.exe image2.jpg -h"); # grabs image2
+
doBeeps();
+
system ("twaincom.exe image3.jpg -h"); # grabs image3
+
doBeeps();
+
system ("twaincom.exe image4.jpg -h"); # grabs image4
+
$window->Button1->Change(-title => "Please Wait...");
+
# need to pull in the images and set them 10px apart
+
# input image dimensions are 640x480, so:
+
# total image size is 640 + 20(border)x480*4+50
+
# 660x1970
+
$image = new Image::Magick;
+
print "importing images\n";
+
# read in the images
+
$x = $image->Read("image11.jpg");
+
warn $x if $x;
+
$x = $image->Read("image21.jpg");
+
warn $x if $x;
+
$x = $image->Read("image31.jpg");
+
warn $x if $x;
+
$x = $image->Read("image41.jpg");
+
warn $x if $x;
+
 
+
# set the proper image origins
+
print "moving images\n";
+
$montage = $image->Montage(geometry =>'640x480', tile=>'1x4', border=>'10', background=>'white');
+
 
+
$tmptime = time;
+
print "writing image\n";
+
$montage->Write("finalstrips/$tmptime.jpg");
+
 
+
# here, either read the gps coords or set them manually
+
# WGS84 is the most widely used standard for mapping of the earth
+
# we may want to remove the alt refs
+
# insert the gps coords into the image
+
system ("exiftool -overwrite_original -GPSLatitude=34,44,0.42 -GPSLongitude=86,38,26.39 -GPSLatitudeRef=N -GPSLongitudeRef=W -GPSAltitude=5 -GPSAltitudeRef=\"Above Sea Level\" -GPSMapDatum=WGS84 finalstrips/$tmptime.jpg");
+
$window->Button1->Change(-title => "Done!");
+
#show the pic for 15 seconds
+
system ("start finalstrips\\$tmptime.jpg");
+
sleep 8;
+
system ("taskkill /f /im rundll32.exe");
+
system ("taskkill /f /im mspaint.exe");
+
$window->Button1->Change(-title => "Take Pictures!");
+
$lock = 0;
+
}
+
 
+
# do init here
+
#kill explorer
+
system("taskkill /f /im explorer.exe");
+
#system("devmgmt.msc");
+
system("c:\devcon disable *PNP0501");
+
system("c:\devcon enable *PNP0501");
+
  
 +
=== Upload code ===
 +
[http://berserk.org/uploadr/uploadr.txt Upload code]
  
while (1) {
+
[http://berserk.org/uploadr/xmltramp.txt Support code]
Win32::GUI::Dialog();
+
}</pre>
+
  
This is the script that is used to upload images to Flickr. The format is flickr_upload <filename to be uploaded>
+
[http://lifehacker.com/software/hack-attack/automatically-upload-a-folders-photos-to-flickr-262311.php Additional Information]
<pre>#!/usr/sbin/perl
+
# $_[0] is the first option passed to the script
+
$flickr_upload = Flickr::Upload->new('key' => '', 'secret' => '');
+
# this can be either sync or async
+
$phid = $flickr_upload->upload('photo' => $_[0],
+
'auth_token' => $auth_token,
+
'tags' => 'photobooth',
+
'is_public' => 1,
+
'async' => 1);
+
+
# wait for upload to finish
+
while ($flickr_upload->check_upload($phid) == 0) {
+
# not done yet
+
sleep 1;
+
}
+
+
if ($flickr_upload->check_upload($phid) == 1) {
+
# upload completed
+
} else {
+
# upload failed
+
}
+
</pre>
+
  
==Progress==
+
==History==
 
* 01/11/2007: After many revisions and drawings we've settled on a final design, and construction should begin this weekend on it.
 
* 01/11/2007: After many revisions and drawings we've settled on a final design, and construction should begin this weekend on it.
 
** A 1:12 scale paper mockup of the design and drawings can be found [http://strages.net/gallery/view_album.php?set_albumName=photobooth here].
 
** A 1:12 scale paper mockup of the design and drawings can be found [http://strages.net/gallery/view_album.php?set_albumName=photobooth here].
Line 218: Line 97:
 
* 03/17/2007 St Patty's Day Party: Photobooth got a lot of use again proving that it can hold up well against drunk people.  People are finally starting to realize the fun of using the whiteboard background.  Likely the last time it'll be moved until the [[Make Shop]] is setup, which it will reside in permanently.
 
* 03/17/2007 St Patty's Day Party: Photobooth got a lot of use again proving that it can hold up well against drunk people.  People are finally starting to realize the fun of using the whiteboard background.  Likely the last time it'll be moved until the [[Make Shop]] is setup, which it will reside in permanently.
 
** [http://www.flickr.com/photos/87959363@N00/sets/72157600006668545/detail/ Pics]
 
** [http://www.flickr.com/photos/87959363@N00/sets/72157600006668545/detail/ Pics]
 +
* 04/28/2007: Another random party.
 +
** [http://flickr.com/photos/87959363@N00/sets/72157600162267767/detail/ Pics]
 +
* 05/05/2007 Cinco de Mayo!: Another party.
 +
** [http://flickr.com/photos/87959363@N00/sets/72157600191130041/detail/ Pics]
 +
* 05/19/2007: Yet another random party.
 +
** [http://flickr.com/photos/87959363@N00/sets/72157600243183679/detail/ Pics]
 +
* 05/27/2007: Another random party.
 +
** [http://flickr.com/photos/87959363@N00/sets/72157600283748047/detail/ Pics]
 +
* 08/04/2007: Managed to get the photobooth worked on the new linux platform.  With live video this time!  Had another random party to celebrate.
 +
** [http://www.flickr.com/photos/87959363@N00/sets/72157601321881629/detail/ Pics]
 +
* 10/19/2007: Mark I went to one more con, [http://www.phreaknic.info Phreaknic 0x0b], and performed beautifully.  ~200 pics, no structural problems, and only minor issues with the Linux based tablet involving picture consistency.
 +
** [http://www.flickr.com/photos/87959363@N00/sets/72157602634677749/detail/ Pics]
  
 
==ToDo==
 
==ToDo==
Line 223: Line 114:
 
* Have the booth automatically mount a user's thumbdrive and load last saved photostrip on it.   
 
* Have the booth automatically mount a user's thumbdrive and load last saved photostrip on it.   
 
** This will likely be their own, but there is a fair chance that if they place if put it in quick enough they can get the one before them.
 
** This will likely be their own, but there is a fair chance that if they place if put it in quick enough they can get the one before them.
* Live video from the camera to allow the user to see what they look like on camera prior to pictures being taken.
+
* Live video from the camera to allow the user to see what they look like on camera prior to pictures being taken. (Done)
  
 
==References==
 
==References==
 
[[https://the.narro.ws/SC3-SC3-OEM-MANUAL.pdf Serial Controller Reference Document]]
 
[[https://the.narro.ws/SC3-SC3-OEM-MANUAL.pdf Serial Controller Reference Document]]
  
=Mark II=
+
[[Category:Bigger Than a Breadbox]]
 
+
==Goals==
+
* Smaller profile when packed up.
+
** Retaining the same overall height as the Mark I when setup though.
+
* Significantly lighter
+
** Lighter but equally as strong building material?
+
* Linux based for more flexibility.
+
** All open source if possible.
+
* Better project documentation.
+
** Chronological record.
+
 
+
==Preliminary Notes==
+
* Improved stability by the addition of a floor attached to the seat and either:
+
** Accordians up under the seat.
+
** Folds up covering the opening under the seat and goes over the top.  See bottom left of the drawing.
+
** End opposite the seat has pegs or something to set the camera town onto.
+
* Everything that can be made lighter is.
+
* Dimensions when put together are the same as the Mark I but compacts more.
+
* Attempting to make all parts(curtains and rods) go into the final package.
+
 
+
[[Image:DSC05416_cropped.JPG|thumb|none|200px]]
+
 
+
==Progress==
+
* 04/30/2007: Initial design discussion began with [[User:Korc|Korc]].
+
* 05/04/2007: At the 2600 meeting [[User:Korc|Korc]] brought his design notes in the form of some drawings.  "Project board" was suggested as being strong enough and light enough(lighter than plywood from the [[Photobooth#Mark I|Mark I design]]) to suit our purposes.
+
* 05/05/2007: Linux has been decided as the OS for the Mark II with [http://en.wikipedia.org/wiki/MEncoder mencoder] to handle live video and "picture" taking, thanks [[User:Brimstone|Brimstone]] for offering that suggestion.  Linux would allow us to have remote access as well providing security and remote trouble shooting capability.
+
* 05/11/2007: Met [[User:Korc|Korc]] at his office in the Optics Building at UAH to go over the final design for the Mark II.  We managed to make several improvements of the design over the course of ~3 hours, most notably being it's more origami-like, and finalize all the measurements.  Korc took a video of me drawing the final structural design with his new [http://theflip.com/ Flip video camera].  We have yet to find the material we need in town in order to begin construction, but did manage to figure out the curtain rods and their secondary use as handles.  [http://www.sketchup.com/ Sketchup] drawings will be made within a couple of days of each individual element.  Video and pictures to follow shortly.
+
** [http://strages.net/gallery/view_album.php?set_albumName=photobooth_mark2 Pics]
+
 
+
== Materials ==
+
* Main sheet material
+
** "Ponderosa Pine Panels" spotted at Lowes.  Not cheap, but lighter than corresponding width plywood, strong, and will hold screws well.
+
* Curtain Rods/Stabilizing poles
+
**(4) 3-foot sections of steel pipe
+
** (2) Joining adapters (freely spinning to handle right-handed threads on each side.
+
** (6) Threaded flanges.  4 to mount to the front and back walls to stabilize the booth, 2 to mount to a small 1x4 to be slid into place on the side of the packed up booth box and used as levers to help move it (like a wheelbarrow).
+
* Mobility
+
** 2 short 1x4 pieces
+
** 4 short steel U-Channel pieces, wide enough for 1x4 to slide into
+
** Casters for mounting to 1x4, to slide into place in angle iron brackets
+
 
+
 
+
=Alternate Designs=
+
?
+

Latest revision as of 23:28, 2 January 2009

Overview

Basically a photobooth just like at the mall, but with a maker's charm.

Status

Retired please see Photobooth Mark II for further work.

Features

  • Initially shows video of the individuals in the booth to let them position accordingly.
  • Large button to hit when you're ready.
    • Has to be durable.
  • Countdown video before the computer driving it snaps the photo.
  • Takes between four and six pictures with a three second timer between pictures.
  • Automatically uploads the pictures online for everyone to see.
    • Possibly without the users knowing. More fun that way ;).
  • Must use as little power as possible to obtain it's function.
    • Solid state storage only.
    • Fanless if possible.
    • Wifi on demand(ie. not always connected).
  • Remote administration is a must.

Other options

  • Autodetection and mounting of thumbdrives so the booth can load the pictures onto it.
  • Cheap print of the pictures.
    • Not sure how to accomplish this yet.
  • Making the whole thing modular so it can be taken down and setup other places rather easily.
  • GPS enabled and automatic geotagging of photos.

Mark I

Physical Design Elements

  • Two towers
    • Tower 1: 3 boxes stacked on top of each other like Legos.
      • Bottom two empty.
      • Top one housing the camera and tablet.
      • Individual boxes are designed to slide under the seat of the other tower for easy transport.
      • Dimensions:
    • Tower 2: seat topped with a three-sided partition surrounding the user.
      • Partition is removable with folding sides and folds in half.
      • The seat is a box designed to house the 3 Tower 1 boxes.
        • Handles on one side close the ground.
        • Casters on the other side to facilitate easy movement when lifted from the handles.
      • Dimensions:
  • Two curtain rods made of PVC, one for each side of the booth.
    • Length:
    • Curtain: Black shower curtain cut to the desired height of 38".

Tablet Technical Data

  • Form Factor: Slate
    • Model: Ramline 510
  • Screen: 10.4 inch touch screen
    • Model: 3M/Dynapro SC3
    • Type: restive
  • CPU: Intel Pentium3 500Mhz
  • RAM: 256MB
  • Drive Space: 6GB
  • Camera: Logitech Quickcam Orbit
    • Resolution: 1.2MP
      • Used: 640x480
  • OS: Windows XP SP2
    • Other software: Twaincommander, VLC, MS picture and fax viewer, image magick
  • OS: Debian GNU/Linux
    • Other software: mplayer, image magick, xloadimage, exiftool

Linux Perl Code

Picture Code

The linux perl code is in the opticron/branches/photobooth svn repo.

Windows perl code

Picture code

Picture code in the svn repo.

Upload code

Upload code

Support code

Additional Information

History

  • 01/11/2007: After many revisions and drawings we've settled on a final design, and construction should begin this weekend on it.
    • A 1:12 scale paper mockup of the design and drawings can be found here.
  • 01/13/2007: Materials purchased.
  • 01/14/2007: Day 1 of construction. Ran into a snag when it came to the dimensions of the thing packed up and the dimensions of the doorway to the backseat of a car. After a few adjustments and some reworking of the camera tower all is well. The base of both sides were completely and tested for maneuverability and fit in the backseat of a car, both tests when perfectly.
  • 01/16/2007: Ramline 510 tablet purchased for use in the photobooth.
  • 01/27/2007: 09:00-12:00 Day 2 of construction. Three sided partition that sits atop the seat is done and parts have been purchased to attach the curtains.
  • 01/28/2007: 12:00-16:00 in 32 degree conditions, Day 3 of construction. Everything is built with the exception of 3 more leaf sections going up one side of the camera tower.
  • 02/10/2007: Make Shop meeting yielded an arguable more functional OS on the tablet being used in the booth as well as some more revisions to the scripts.
  • 02/11/2007 Day 4 of construction: Finished the final three boards that needed to be cut and added, as well has the curtain poles. More supplies were purchased for completing it in the coming three days before the Outerz0ne3.
  • 02/17/2007 Outerz0ne3: Photobooth went over splendidly and finally got a feel for how heavy the damned thing this, which is to say very. Something to work out in the next model I suppose.
  • 02/24/2007 SNAPL LAN Party: Photobooth went over pretty well though not as much as I would have liked, different crowd with different interests I suppose.
  • 03/17/2007 St Patty's Day Party: Photobooth got a lot of use again proving that it can hold up well against drunk people. People are finally starting to realize the fun of using the whiteboard background. Likely the last time it'll be moved until the Make Shop is setup, which it will reside in permanently.
  • 04/28/2007: Another random party.
  • 05/05/2007 Cinco de Mayo!: Another party.
  • 05/19/2007: Yet another random party.
  • 05/27/2007: Another random party.
  • 08/04/2007: Managed to get the photobooth worked on the new linux platform. With live video this time! Had another random party to celebrate.
  • 10/19/2007: Mark I went to one more con, Phreaknic 0x0b, and performed beautifully. ~200 pics, no structural problems, and only minor issues with the Linux based tablet involving picture consistency.

ToDo

  • Make upload script work or find another solution for automatic uploading.
  • Have the booth automatically mount a user's thumbdrive and load last saved photostrip on it.
    • This will likely be their own, but there is a fair chance that if they place if put it in quick enough they can get the one before them.
  • Live video from the camera to allow the user to see what they look like on camera prior to pictures being taken. (Done)

References

[Serial Controller Reference Document]