[m]MTM- Cardboard machine

image
image

Nearly endless kinematic options from simple parts.

image

Cardboard is a great material for machine prototyping because you can cut, glue, tape, laminate, slice, and fold with ease! Since the material is cheap, iteration is a breeze! We use science fair style trifold presentation boards because they are colorful and so we can claim they are made from 100% science.

image

Laser cut cardboard parts layout

image

Etched lines should be cut through the top later and corrugation but not through bottom layer.

image
image

Necessary parts for one cardboard linear stage.

image

Each layer must be laminated together to achieve maximum stiffness.

image

Motor installation happens mid assembly.

image

Fully assembled linear stages ready for electronics to be added.

Fasteners:

Have a look at the Construction Kit for clever ways of connecting the stages together.

Software:

Now that the stage is complete we will need to download the required software to program and communicate with the Gestalt Nodes. You can clone the latest Gestalt library from GitHub here.

Once you have the Gestalt Framework downloaded and installed, it is time to program the nodes. Use the below wiring diagram and Makefile.

image

Programming your Gestalt Node with and AVR. Note The Fabnet to node connector is not typical!

CFLAGS = -g -Wall -Os -mmcu=$(MCU) -DF_CPU=$(FREQ) -I$(GESTALT_DIR) $(GESTALT_DEFS)
avr-g++ $(CFLAGS) -c -Wall $(SOURCES)
avr-g++ $(CFLAGS) $(LDFLAGS) gestalt.o -o $@ $^
avr-objcopy -j .text -j .data -O ihex $< $@
image

Wiring diagram with control boards "daisy chained" together. One node, two node, red node, blue node....

    else: self.fabnet = interfaces.gestaltInterface('FABNET', interfaces.serialInterface(baudRate = 115200, interfaceType = 'ftdi', portName = '/dev/ttyUSB0'))
    self.xAxisNode = nodes.networkedGestaltNode('X Axis', self.fabnet, filename = '086-005a.py', persistence = self.persistence)
    self.yAxisNode = nodes.networkedGestaltNode('Y Axis', self.fabnet, filename = '086-005a.py', persistence = self.persistence)
    self.xyNode = nodes.compoundNode(self.xAxisNode, self.yAxisNode)
    self.xAxis = elements.elementChain.forward([elements.microstep.forward(4), elements.stepper.forward(1.8), elements.leadscrew.forward(8), elements.invert.forward(True)])
    self.yAxis = elements.elementChain.forward([elements.microstep.forward(4), elements.stepper.forward(1.8), elements.leadscrew.forward(8), elements.invert.forward(False)])
    self.stageKinematics = kinematics.direct(2) #direct drive on all axes
    self.move = functions.move(virtualMachine = self, virtualNode = self.xyNode, axes = [self.xAxis, self.yAxis], kinematics = self.stageKinematics, machinePosition = self.position,planner = 'null')
    self.jog = functions.jog(self.move) #an incremental wrapper for the move function
image

Everything needed to start moving! Pen not included!

NEVER HOT PLUG! ( boards should never be powered while connecting). We power the boards at the very end, forgetting this and connecting while powered will most likely destroy the Gestalt Node...

The set up of nodes is saved into a machine persistence file called test.vmp. You can make a new one by deleting the old one and rerunning the virtual machine file. The code will prompt you to identify the nodes by pressing their buttons. Try e.g. running http://github.com/imoyer/gestalt/examples/htmaa/xy_plotter.py

nadya@revolt:~/Version/gestalt/examples/htmaa$ python xy_plotter.py 
xy_plotter.py: Warning: setting persistence without providing a name to the virtual machine can result in a conflict in multi-machine persistence files.
X Axis: http://www.fabunit.com/vn/086-005a.py
Y Axis: http://www.fabunit.com/vn/086-005a_boot.py
Y Axis: http://www.fabunit.com/vn/086-005a.py
image

Drawing in process with springloaded pen capture and nylon quick connect straps.

image

Image of single line drawing completed with Cardboard CNC

The Modular Machines that Make project is a collaborative project born out of the 'Machines that Make Project' inside the Center for Bits and Atoms at The Massachusetts Institute of Technology.

Current research also sponsored by the MIT - SUTD Collaboration and International Design Center.

Current Contributors: