Installed Frame3DD, in order to use the frame3dd command from the command line you have to add some code into your ~/.bash_profile file, this is explained in the Frame3DD documentation. You may also need to change the permissions of the frame3dd file that is being executed.
There are three files that Sam wrote which allow you to generate your geometry in Rhino and export into a Frame3DD compatible format using Python:
In the first iteration, the actuators are assumed to be sufficiently powerful to displace the voxel layer, therefore the displacement is simply modelled as a constraint of the base nodes of the voxel layers. The image belows show two outputs from the program for different displacements. There is length scaling included within pyframe3dd, therefore I need to be careful to ensure that the displacements I'm applying are being scaled too.
Next I want to check the reaction forces to ensure that the force required to generate the displacement would have been within the range of the motor. I also want to add additional struts across the top made from a different set of material to simulate a face plate.
I tried actuating a 3x3 layer of voxels. Only one motor was switched on at a time with a displacement of approximately 7mm. This sequence of actuation caused the centrla voxel to break. Therefore it will be nessecary to use a smaller displacement or disperse actuation throughout a larger array of voxels.
In the next iteration I dispersed 8 actuators underneath a 5x5x1 voxel structure. The top plate is 0.06" clear acrylic with a mirrored-Mylar sheet underneath. The angle of rotation of the acrylic plate is demonstrated by a change in position of the reflected laser pointer on the upper wooden surface. When moving the top plate between 4 different symmetric orientations, the range of motion of the laser wasn't entirely uniform due in part to the fact that the laser wasn't pointing completely vertical but also becuase there is a certain amount of inaccuracy of the movement of the motors (particularly under load?). The range of motion was +/- 3 degrees.
The combination of these voxels with a 0.06" sheet makes for a fairly rigid structure. If another iteration is undertaken of this setup then it would be interesting to use either a thinner sheet of acrylic or no sheet at all. In addition, an array of laser pointers could be used in display to map curvature of the sheet as a reflection on the wooden surface.
Carrying out this experiment demonstrates that once under near-maximal loading conditions, the motors start to break and perhaps (need to verfiy this) don't act uniformally, this points to a possible need to use a single degree of freedom or a binary actuator.
I wanted to check how accurate the motors were. I have been using a Pololu Mini-Meastro board to control them which sets limits between 992 and 2000. The motors are listed as having a positional repeatability of +/- 0.1mm. I did some measurements and found a standard deviation of +/- 0.17mm. It will be important to consider how this impacts the accuracy of pointing and if it does become an issue then whether other methods provide higher positional repeatability.