INTRODUCING

title




DEVISED AND BUILT AT FAB LAB MANCHESTER 2015

Phílip Hemstead, Dåvid Mason, Käsper Andersan, Sâlly WIlliams




Group Assignment: 


Make a machine, including the end effector
• build the passive parts and operate it manually
• document the group project and your individual contribution



Brainstorming

Over the course of a few days, we all brought to the table different ideas that might suit the challenge of Mechanical and Machine Design. These included a 3D scanning bed; golf putting exerciser; robotic arm; hot wire cutter; roulette-style random page selector (for Neil). 

The one that had the overall approval by the group, was an idea by Philip Hemstead - a digitally controlled ball-tilting maze game. This would usefully utilise the the capability of the stepper motors
to provide control over the level of the game-bed plane to move the ball through an obstacle course.

fabaryinth gamebed  flexibility


FABNET :

The 'Fabnet' network would provide the communications system for the machine using muliple nodes whilst sharing a single set of communication wires - described below:

what
                                                          is fabnet    fabnet
                                                          adaptor board



node    node
                                                          lit

Connecting the Fabnet Adaptor to a single node:

first
                                                          node
                                                          successfully
                                                          connected to
                                                          power


Assembling cardboard stages


We made two linear stages. The cardboard cut files were downloaded and Pacon 80% recycled spotlight single-walled tri-fold presentation board cut on the Epilog laser cutter.

The Epilog 2'x1' bed meant the frame parts were cut in 3 parts with box joints and glued together using Gorilla glue, this did not work as there was no cardboard in the box cut to glue, so the joints were gaffer taped together.

In Nadya's <a href=“http://monograph.io/james/m-mtm” target="_blank"> instructions </a> she recommends gluing all cardboard laminate parts to achieve maximum stiffness. In haste we omitted this step causing issues with robustness of the stages.</p>

There was a problem assembling the frame, stage, shafts and stepper motor/leadscrew parts together - they did not fit! As a work around we removed the inner lengthways flaps from the frame to get the stage to fit with the aluminium shafts. Also the stage internal dividers interfered with the exterior cardboard so were trimmed to get the stage to fit together.














The second stage was assembled ready for the the maze assembly and fixing.


Building the housing for the stepper motor:

Cardboard was cut on the lasercutter using the templates provided:

constructing




                                                          the housing


Calibration

The python code defined that 1 x revolution of the leadscrew would travel 6.096mm. This did not reflect the distance for the leadscrew supplied in the kit. This was estimated to be 8.0mm, and this was changed in the code. With this calibration, a request to move 10mm would deliver 10mm.


calibration


(David Mason) Creating the control console with wx python:

wxPython is a visual front for Python script (which Gestalt runs in), therefore we aimed to create a visual control for the stepper motors. We began by looking what was required for a button to be pressed on the interface. Once we had a button interface, we then made it adjust a value +-10mm. This was achieved with the assistance of James Fletcher (alumna of Fab Academy) who helped to take snippets of wx code that would help to build up our code. Below is snippets of the code and how they operate;operateopsnippets uilhelp thelped to ;


snippet1

In the example above, we declare an object which will be the location and identification of the button. The button has a label and a position plus the position. This is a relative position and will be updated when the stepper motor moves.

snippet2

In this example, the button (AUp) is linked with the axis position and the stepper motor (in this instance, this is the X axis as the self.apos is 0).  stage.move self.Update() then update the axis.e t()te selfpos


snippet3

In this snippet, the y and x axis stepper movements are defined as well as the direction. This is important because the final section determines the direction, I ended up having to change the direction in self.apos[0] instead of choosing TRUE or FALSE.ded

snippet4

Finally we add the section which produces the frame on the screen 'frame.Show(True)' which allows the user to control the stepper motors with the visual display. The supercoords were used in the previous application of this Python code, this is now not called.

Issues with wxPython

It is a great skill to have a visual way of controllingthe stepper motors, but it soon became clear that the application is not very responsive to quick movements, and pressing too many times could crash the application due to too much information. At this present time, we have not found a clear way of alleviating this situation therefore the experimental code will not be published.



wx
                                                          python  console

Creating the game maze bed on the lasercutter:

file
                                                          for lasercut
                                                          bed     lasercut
                                                          plywood game
                                                          bed



testing
                                                          motion

string
                                                          solution  assembled


Lasercut plywood maze design with living hinge to enable flexibility during bed-tilting (Kasper Andersan)

kasper's
                                                          hinge



Link to Tut
orials:

 Fab in a Box

 Tutorial

Explanation of Fabnet

Download files:

Fabnet Board
size