INTRODUCING
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.
![]()
![]()
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:
![]()
![]()
Connecting the Fabnet Adaptor to a single node:
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:
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.
(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 ;
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.
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
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
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.
![]()
Creating the game maze bed on the lasercutter:
![]()
![]()
Lasercut plywood maze design with living hinge to enable flexibility during bed-tilting (Kasper Andersan)
Link to Tutorials:
Fab in a Box
Tutorial
Explanation of Fabnet
Download files:
Fabnet Board size