Editing
Ordi
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[File:OrdiBooth-Sophistiqué.jpg|640px|right]] === Project Ordi === WE DID IT! Ordibooth got a Make Magazine Editor's Choice award! Two years in a row! This project is a photobooth where a computer takes your picture and then draws it with a robot. The project is named after and sponsored by a fictional retro-futurist company called Ordi. This is a potentially clumsy play on the French word for computer, ordinateur, which few outside of francophile countries are aware exists. The computer does most of the "magic" here, taking the photo and translating it into a half-toned path which is then drawn by a robot on a piece of paper. == Software pipelines == === Networking === The application is a network of computers. The computer that acquires the images is a raspberry pi. We should not assume that it will have internet connectivity. The computer that processes the images is a minimac. It too should not be assumed to have internet connectivity but it does have two network interfaces. The ethernet interface connects the pi to the mini. The mini works as a router for the rpi. If there is a wifi network, the rpi will be able to receive external network connectivity through the mini. Both endpoints on the wired network have static IP addresses, configured according to Debian standards of the <pre>/etc/network/interfaces</pre> file. The minimac has iptables rules, saved to <pre>/etc/network/iptables</pre> to do SNAT, acting as a router. In order for a picture captured on the rpi to be available on the minimac for rendering, it must travel over a network. To solve the file transport problem with a minimum of custom software, the [https://wiki.archlinux.org/index.php/SSHFS sshfs FUSE module] is used. A directory on the minimac is "exported" to the rpi. In reality there was a public/private key relationship established between the two hosts and the rpi mounts a directory from the minimac via sshfs. The minimac is notified of editions to this directory with a [https://github.com/tmc/watcher small program that watches a directory for changes]. === Optical pipeline === Cheap [[PowerShot A2200]] with [[CHDK]]. Raspberry Pi with touchscreen running a modified version of [[chdkptp]]. This controls the camera and allows remote shooting from the gui and saving the picture over the USB cable. Lee started writing some [https://github.com/lazzarello/chdkptp/ software for a custom touchscreen GUI]. It is the primary user interface for the booth, though there's a possible alternative touch-screen native framework called Kivy that would require a from-scratch UI project. This is out of the scope for maker fair. Probably worth it in the long run, for many reasons. There is a 3D printed power adapter for the camera and a [http://www.instructables.com/id/USB-Powered-Camera-PowerShot-Battery-Hack/ hacked battery pack] but both are for different models of battery. The camera expects 4.3V and shuts down at < 3.3V. It expecte 0.800 amps to power on, but normalizes at about 0.200 amps. Lee bought two DC coupler power units, one refurb canon official and another a chinese replica. Both work well. The DIY adapter did not work reliably, for unknown reasons. === Rendering pipeline === There is a second computer which mounts the internal storage on the camera controller via SSHFS. The picture is opened in [https://github.com/darktable-org/darktable/releases/tag/release-2.2.4 darktable] for proofing prior to rendering. Darktable >= 2.2.4 is required for realtime updates as new pictures arrive from the camera pipeline. When a picture is chosen, a darktable plugin is run that opens that picture in [https://github.com/lazzarello/stipplegen stipplegen] to begin rendering a stipple cluster to generate a [https://en.wikipedia.org/wiki/Travelling_salesman_problem TSP path]. Results of each iteration are shown in realtime on a display on the outside of the booth. After enough iterations, a recognizable image will form. Use your judgement and wait until you begin to see an image you like. The generator will export a vector of the TSP path crossing all the dots. This is what the axidraw will print. There is a [https://github.com/lazzarello/AxiDraw-Processing Processing interface] to the AxiDraw serial port. This could be merged into a unified stipple, trace, print application. The GUI for the rendering section is the most important graphical stage since it greatly effects the output image. The stipplegen GUI is good for a demonstration but has poor performance. It should be optimized for interactivity. === Printing pipeline === There are two current drivers for the AxiDraw to begin printing <ol> <li /> An interactive GUI built as a plugin for Inkscape. This requires exporting from stipplegen and importing the SVG into Inkscape and clicking around buttons. <li />A Processing utility which can [https://github.com/lazzarello/AxiDraw-Processing control the AxiDraw] which includes a simulation program to show the toolpath </ol> === Automation === A few Ansible playlists should be used to automate building both the camera computer and the rendering computer. This could help facilitate different hardware configurations. === Sketches === More precise working drawings will follow soon, but here are some of the initial ideas. The arrangement and proportions of the Boites [[File:APBinitial-2.jpg|640px]] And here is the concept for the styling of the photo booth facade [[File:APBinitial-1.jpg|640px]] == Hardware == The Ordibooth uses a camera connected to a Raspberry Pi with a touchscreen so a user may take a picture. The picture is automatically uploaded to the Mac Mini for processing. [[File:Ordibooth_System_Diagram.png|x640px]]
Summary:
Please note that all contributions to Noisebridge are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
Noisebridge:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Request account
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Dig in!
Noisebridge
- Status: MOVED
- Donate
- ABOUT
- Accessibility
- Vision
- Blog
Manual
MANUAL
Visitors
Participation
Community Standards
Channels
Operations
Events
EVENTS
Guilds
GUILDS
- Meta
- Electronics
- Fabrication
- Games
- Music
- Library
- Neuro
- Philosophy
- Funding
- Art
- Crypto
- Documentation/Wiki
Wiki
Recent Changes
Random Page
Help
Categories
(Edit)
Tools
What links here
Related changes
Special pages
Page information