Week 10:
Machine Design, week 2/2

Vocabulary

+ PolarBot ~~ Ferdi showed us how our machine was not an x-y plotter, but it is actually a PolarBot. Because it is vertical, it does not use straightforward x-y plotting. Because the machine uses strings to move the drawing point, it does not account for the tension of the strings and the gravity when it is moving the motors. So instead of a straight line, you get a curve. We have spent a lot of time this week trying to correct for this, however we haven't yet had success.

+ "No hot plugging, no backspinning, no tears." Ferdi quotes Nadya.

These notes address the fact that motors act differently when they are operated by software, and also that they have a powering up and a powering down that it probably PID related: it needs to finish its protocol. I think. At any rate, don't do the above. Except crying, which is good sometimes.

+ "Learn to ride the PID seesaw."

PID is a way to control on/off that essentially decelerates and accelerates I/O instead of doing a hard on or off. It's the most commonly used control logic.
PID smooths out voltage peaks

Outcomes Expected

Software

Machines

Supplies

Practices

 Shread the Big Ideas.

Thirsting for more ideological context, I collected some ideas on the shapes of stories to apply, perhaps, to the PolarBot. We didn't get far enough with the machine to demonstrate any notions; however, a thin paste of ideas helps me stick with it. Here's Kurt Vonnegut's chart of story shapes and a quote from him:
"There's no reason why the simple shapes of stories can't be fed into a computer."

Rebuses from Lewis Carroll, Vonnegut's beautiful story graphs, semiotic value of icons

 Moving from Arduino to Python.

WORKFLOW FOR BOTH ARDUINO and PYTHON

~ I am using Mac OS 10.10.5.

We got some motors to sing, then switched to Python.

Arduino controlling a stepper motor

Cit and Caro looked into it, they decided that using the set-up from Python was better because the program was already intact and we won't have to cut and paste code, as we would with Arduino. Caro is now exploring if this theory is true ...

Caro and Cansu at work

WIRING.

Primary tutorial here.

How do you do it? Note that you drop out the blue and green wires on the way from the FabNet board to the Gestalt Node, which means you are not connecting anything to the pins "error," "stop," "sync" and "not connected" on the Gestalt Node. Where blue and green connect on the FabNet side, you will see a trace that goes nowhere, connects to nothing. That's how you go from eight pins connecting to FabNet to six connected pins on the Gestalt Node. You can see in the photo of the connected Gestalt Node that some of the wires have been snipped out of the center of the cable.

Put it together.

To test connections, use a multimeter. Put it on the "making sound" diagram, and test for connectivity (when the boards are plugged together, does the RS-485-A pin on the FabNet board make sound when you touch it and then touch the RS-485-A pin on the Gestalt Node? Etc.)

RIBBON CABLE. You can see that from the pinout of the Gestalt node to the FabNet board, you lose some of the wires. You are only keeping track of which wires connect to the six needed pads of the FabNet board. How do you know which wires belong to which pins on the Gestalt Nodes? Look at the multi-pin header. Hold it so that the wires going out (over to the other thing to which you're connecting) are at the top, like this:

The furthest left wire leads to the top hole. The next wire goes to the hole below that. The next wire goes to the next column, top hole. The next wire goes to the hole below that. The next wire goes to the next column, top hole, etc ...

 Python Installation.

INSTALLATION. This might seem obvious, but BE METHODICAL. There are many seemingly inconsequential or optional steps that, if you don't do them in the right sequence, you'll have a hard time figuring out what's going wrong ~ esp because it could be an installation problem, code problem, physical wiring connection problem, power supply problem, Gestalt Node microprocessor problem, or physical construction problem on your machine. There are so many ways to go wrong, that if you are really methodical, you'll be able to limit, perhaps, the number of steps you have to redo to try to solve errors.

STEPS. ~ Again, I am using Mac OS 10.10.5.

 Problems, errors:

Knowing nothing, I don't know why. I check the version of Python:

I check the location of the file I am trying to run and make sure there are no extra temporary files there. It should look like this:

It can get cluttered like this:

And in one clean-up, I threw out a file I needed.

Xavi helped troubleshoot ~ he's a programmer and read the errors the Python program was giving with more savvy than me. He knew where to look to verify things were in order.

 Analyzing the Machine

PolarBot issues.

This explains the issue succintly. See the site that explains it.
generated from a GUI in this Fab project Drawing Tests

Here are four test files:

  1. a test with Inkscape's graffiti plug-in (a 20x20mm square; anything bigger made our strings break)
  2. a commented python x-y plotter file
  3. a text file of many coordinates that we tried converted from g-code into lists readable in Python's format via Grasshopper (thanks, Santi)
  4. code conversion of Taichi's work to translate from g-code to Python coordinates and export as a .csv via a GUI, explained to me by Xavi

code tests .svg, .py, .txt

 Running the Robot

As you can see, we were still calling it a DrawBot at this point, before recognizing that the curves in the lines of the square were caused because it is a POLARBOT!

 Attempts to Address Curves Caused by Polar Axes

PROPOSED METHODS:

MEASURING THE CANVAS:

MOVEMENT TESTS and NOTES:

PYTHON CODE for translating a string of numbers. Xavi explains what he did:

folder structure
Taichi's GUI

The drawing machine video below, edited by Gori, shows as far as we got!

DISCOVERIES:

NEXT TESTS:

FUTURES:

 Reference Sites

THE TEAM:

~ Caro and I got our computers (hers Windows, mine Mac) to run the Gestalt Nodes.

~ Cit got Kinect to output a string of numbers that could be read by Python.

~ Cansu worked on making a holder to fit the chalk marker.

~ Gori figured out the Inkscape extension for a graffiti g-code that could give us the information we needed for Python.

~ I was working on mapping the computer commands with a workspace on the actual canvas. Santi helped with this via Grasshopper commands.

Team Drawbot w Patricio Rivera, an artist with experience building drawing machines who visited us to consult ~ Caro is not in this picture

FILES

You'll find files for the motor bases, the motor spools, and more code tests.

.stl, .amf, .py

THEORIES, IDEAS, OTHER

RECITATION. It was by Jessi Baker, the CEO from Provenance. Her company is working on using blockchain technology to trace things and the authenticity of their provenance.

Her project with blockchain is more interesting to me than Bitcoin; it's more in line with Wikileaks. It's a verification and tracking process for an object's supply chain and, potentially, its life cycle. I have limited interest in Bitcoin because I don't understand its revolutionary possibilities, perhaps; it reads to me like a nascent economic system that, as it develops, will reincorporate all the difficult aspects of our current economic system, just with a steeper rise of technocrats. Maybe my skepticism comes from viewing it from a longer perspective than a venture capitalist horizon. However, I think Provenance's stuff tracking system has some great cradle-to-cradle applicaitons. Tomas mentioned it as a way to track the input and output of the Fab City.

Is the Fab City a walled city? Is it better to imagine a city walled if the walls are invisible? I am still thinking about this.

LECTURE. We also heard this week from the charismatic young architect Edouard Cabay, who teaches at the AA, iAAC, and Lausanne and Paris.

He had some nice phrases and some interesting juxtapositions: