Updated body and whitepaper pdf
This commit is contained in:
parent
dd3a45b992
commit
a8e6e5c901
|
@ -99,13 +99,13 @@
|
|||
</figure>
|
||||
<p>It would be possible to increase the rigidity, if needed, by adding additional intermediary crossing lengths but for this prototype a total of six (6) lengths connected by five (5) panels and eight (8) corner brackets has been sturdy enough for all tests.</p>
|
||||
<h2 id="the-firmware">The Firmware</h2>
|
||||
<p>The Arduino platform uses a subset of C++ which has the benefits of being approachable and easy to use while at the same time preserving the functionalities of the full C++ language for when they are needed. The project is built with an object-oriented programming style that allows for abstraction over the functionality of the physical hardware and other features at the class level. This approach serves the project’s larger goal to leverage modularity by making use of pre-existing classes and creating reusable ones for other projects.</p>
|
||||
<p>The firmware can be compiled and uploaded using the Arduino IDE<span class="citation" data-cites="arduino-ide"><sup>18</sup></span> or the arduino-cli<span class="citation" data-cites="arduino-cli"><sup>19</sup></span> application using the “esp32:esp32:esp32” FBQN (Fully Qualified Board Name). The code can be compiled <em>without</em> the ESP32 Arduino libraries and just the standard AVR libraries but the GPIO usage and LED PWM channel usage is such that it would have to be refactored to work on another board. Had this project targeted a different Arduino board from the start there would be limitations in the PWM duty rates of the motors and the ability to add network features.</p>
|
||||
<p>The Arduino platform uses a subset of C++ which has the benefits of being approachable and easy to use while at the same time preserving the capabilities of the full C++ language for when they are needed. The project is built with an object-oriented programming style that allows for abstraction over the functionality of the physical hardware and other features at the class level. This approach serves the project’s larger goal to leverage modularity by making use of pre-existing classes and creating reusable ones for other projects.</p>
|
||||
<p>The firmware can be compiled and uploaded using the Arduino IDE<span class="citation" data-cites="arduino-ide"><sup>18</sup></span> or the arduino-cli<span class="citation" data-cites="arduino-cli"><sup>19</sup></span> application using the “esp32:esp32:esp32” FBQN (Fully Qualified Board Name). The code can be compiled <em>without</em> the ESP32 Arduino libraries and just the standard AVR libraries but the GPIO usage and LED PWM channel usage is such that it would have to be refactored to work on another board. Had this project targeted a different Arduino board from the start there would be limitations in the PWM duty rates of the motors and the future ability to add network connectivity.</p>
|
||||
<p>Functionality is abstracted into three classes: the high-level “ContactPrinter” class which then imports the “DriveMotor” and “Lamp” classes. There is a stub for the HTTP networking features named “WebGUI” which does not do anything but host a placeholder page at this time. The ContactPrinter class manages the take-up motors directly but the DriveMotor class is broken out into its own abstraction because it is expected to stabilize and manage the speed of the drive motor more accurately with feedback from the drive motors encoder and also keeps track of the number of frames passed using the same encoder data. The Lamp class, at this time, simply turns the contact printer lamp on or off using a method.</p>
|
||||
<p>The initial release of the firmware simply starts the printer when a button is pressed, turns the lamp on after 24 frames pass and stops it when that same button is pressed. Additional features, to be discussed in future work, can allow for the adjustment of several behaviors; changing the number of frames that pass before the lamp is struck, running only for a set number of frames, reducing the speed of the printer, etc.</p>
|
||||
<h1 id="future-work">Future Work</h1>
|
||||
<h2 id="interfaces">Interfaces</h2>
|
||||
<p>Physical interfaces are another area of future expansion and development. Requests have been made, for example, to add a dial for controlling lamp brightness. This was avoided in the prototyping phase because it would add parts to the bill of materials and create additional potential points of failure in the wiring.</p>
|
||||
<p>Expanding physical interfaces beyond the simple start/stop button from the initial design phase is one direction to improve the project in future work. Requests have been made, for example, to add a dial for controlling lamp brightness. This was avoided in the prototyping phase because it would add parts to the bill of materials and create additional potential points of failure in the wiring. Any added physical interface will increase build complexity so they should be motivated by actual difficulties that artists face while using the printer.</p>
|
||||
<p>A simple but robust web interface could be added to control variables for each print: drive motor speed, number of frames to print before stopping, number of frames to run before striking lamp and others. It could also easily show statistics on each print such as actual speed, variation over a run and other information which would highlight any particular issues. With the ESP32 platform the printer could be set up as a standalone Wifi access point (like a router) so that devices can connect to it like clients and allow the web app to be accessed from the connected device. It could also be set up as a Wifi client and exist on a local network and be connected to by any other device on the network with access to it.</p>
|
||||
<p>Bluetooth is another option as the ESP32 board has dual radios for both Wifi and BLE. This could control the same variables as a web app could but be connected to by a native mobile application or a web app on a browser that supports the Web Bluetooth API.<span class="citation" data-cites="web-bt-api"><sup>20</sup></span> There is no reason that both web and BLE features cannot be developed in parallel to have matching APIs to allow the greatest number of clients to connect, the only consideration that should be made is that these features not impact performance-heavy actions such as printing. Introducing delay into, for example, the PID calculations could cause speed fluctuations that would result in uneven exposures on prints.</p>
|
||||
<h2 id="sound">Sound</h2>
|
||||
|
@ -117,7 +117,7 @@
|
|||
<h2 id="multi-format">Multi-format</h2>
|
||||
<p>There is nothing, in principle, in this contact printer platform design that would prevent it from being adapted for other movie film formats and there is precedent. The Kinograph DIY scanner project<span class="citation" data-cites="kinograph"><sup>22</sup></span> presents an example of a 3D-printed multi-format sprocketed roller capable of transporting 16mm, 8mm and 35mm gauge film material. This is a possibility to consider, though it would introduce new design challenges.</p>
|
||||
<p>First would be the need to create new lamps and gates for each format. The take-ups would have to have their spindles extended to support 35mm cores and the idle rollers would have to be enlarged for the same Next would be the question of speed and the resulting exposure. Could the drive motor be slowed or sped up to allow for these formats to print properly?</p>
|
||||
<p>There is also the question of need: is it necessary to create an 8mm gauge printer at all? 8mm gauge print stock is rare if non-existent though there is, in theory, the capability to slit and re-perforate the stock as is done for the Double 8 and Super 8 formats.</p>
|
||||
<p>There is also the question of need: is it necessary to create an 8mm gauge printer at all? 8mm gauge print stock is rare if non-existent though there is, in theory, the capability to slit and re-perforate the stock as is done for the Double 8 and Super 8 formats. Making the printer capable of printing the gauge could, however, enable more work in this area and motivate filmmakers to seek out print stocks or suitable processes for these projection formats.</p>
|
||||
<h3 id="research-supporters">Research Supporters</h3>
|
||||
<p><img src="../img/EN_FundedbytheEU_RGB_POS.png" style="width:5.5in;height:1.2in" /></p>
|
||||
<h3 class="unnumbered" id="references">References</h3>
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue