I have started working on a prototype for the 8mm machine and am using a Raspberry Pi. I chose the Pi because of its embedded Linux filesystem for storing images and the affordability of its camera module.
Now that I have chosen it, I’m looking a the advantages/disadvantages of different language frameworks for development and thought I’d post my thoughts here in case anyone had some insights/comments/suggestions.
Functionality overview
Hardware
camera
motors
sensor
Software
Save images
Display images
adjust camera settings
render movie file from images
play movie file
move files, post online, etc.
User Experience
To avoid having to develop software for multiple platforms, I imagine the browser being the best way to interact with the machine and its processes. Since the Pi is capable of handling everything on its CPU and GPU systems, the computer connected to the machine is really just to monitor the machine’s status, preview the images, and see the final movie file output.
The experience would go something like this:
Unbox machine
Plug machine into power
Plug machine into computer via ethernet
Open browser
Navigate to local host URL (an application server running on the Pi)
Load film into machine with an image in the gate
Preview frames with software
Adjust camera settings
Rewind (if necessary)
Run machine for full reel capture
View result at end of process
Post files to sharing sites online (using computer’s internet connection)
Download files from Pi if you want to keep them locally
Python
The Pi plays very well with Python and there is a library written for the camera module. File I/O is easily handled. Not sure how great it handles events and these might be necessary in hardware. As for using the browser, I’d use something like Flask to build the server. Language is highly documented in Pi community and used widely in other areas.
Node (JavaScript)
Interested in Node because it runs asynchronously, allowing for keyboard interrupts and hardware events to happen simultaneous to other processes like file writes. It is also built to work with browsers easily. Includes file I/O modules. Would be a language open to others beyond the Pi/Python worlds.
Open Frameworks (C++)
Includes event handlers, file I/O and ability to include server stuff but it isn’t exactly oF’s strong suit. Probably would result in more code.
I’m learning Node now to see how it works. Will report back. Any feedback is welcome!