+ 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.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."
WORKFLOW FOR BOTH ARDUINO and PYTHON
~ I am using Mac OS 10.10.5.
We got some motors to sing, then switched to Python.
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 ...
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.
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 ...
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.
python
. Mac OS should have it. Many people recommend sticking with version 2.7, so if you're running a different version, you might want to re-install. Since now you are in Python, to restore back to the Terminal command line, type exit()
tar
command. Do all the instructions listed. sudo python ./setup.py install
ls /dev/tty.*Then you can read that serial port using the screen command, like this:
screen /dev/tty.[yourSerialPortName] [yourBaudRate]For example:
screen /dev/tty.usbserial-A6004byf 9600
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.
PolarBot issues.
Here are four test files:
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!
PROPOSED METHODS:
MEASURING THE CANVAS:
Trying a canvas that is 500mm x 500mm to get within the area that can be drawn well (according to the v-plotter drawing diagram ~ trying to find the green square).
MOVEMENT TESTS and NOTES:
elements.leadscrew.forward(8)
in the .py file code, so that 8 is sized up or down proportionally. I did try this, and it did not change sizing of the image in any appreciable way. Maybe because the image is already too skewed by its placement on the canvas?PYTHON CODE for translating a string of numbers. Xavi explains what he did:
cd pip-8.1.1
, then sudo python setup.py install
, then pydoc modules
). Make sure in the folder where that .py is kept, you also have a file called "output.csv"The drawing machine video below, edited by Gori, shows as far as we got!
DISCOVERIES:
NEXT TESTS:
FUTURES:
~ 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.
You'll find files for the motor bases, the motor spools, and more code tests.
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: