Week09-10 - mechanical design - machine design //////

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




INITIAL IDEA

We were interested in using motion detection via Kinect as the input for a drawbot. At first we were talking about the affective output could be, but we decided to left this for the next week and get to work in the mechanics parts and also test the connections with the stepper motors, first with arduino and then with the Gestalt nodes.





MECHANICAL DESIGN

For the mechanical design we split work for modeling the pieces but working together at the same time. We decided to use a glass window as a drawing surface for the draw bot, so we take the makeangelo as a reference for the motor's support using suction cups. For this week Gori and I were in charge of the design for the motors's support, Janaki made a spool, based on spools used to prototype a similar project last year, Cansu was making the penholder, and Cit was studying the code for the motors and the kinetic.




I made a file for the lasercut base to support the motors.
Model in Solid Works:



After modeling in SolidWorks we made the first prototype laser cutting for the support using 4mm mdf.




First prototype:




We found that the suction cups that we used for the first prototype didn't hold well. So we tried with another kind of suction cups but we had to modify them. So Gori redesigned the hook part of this suction cup so that the part can hang vertically.




Gori's suction cup test




First prototype for the penholder made it by Cansu:




We needed more weight so we temporarily hanged it keys:




TESTING THE MOTORS

For testing the motors we first use an Arduino, we wanted to check all the connections between the two steppers, the Arduino board and the shield.







USING GESTALT NODES

Then we wanted to tray with the Gestalt nodes, so with the Tutorial and Santi's guide we did all the connections and install all the programs in Ubuntu:

CONNECTIONS SETUP
We made all the connections following the Tutorial:
Parts:
* FabNET board (see files for doing it in the Tutorial)
* Power supplay
* RS-485 usb connector (connection between the computer and the FabNET)
* Ribbon cable (connection between nodes)
* Two Stepper motors nema 17





GESTALT NODES SOFTWARE SETUP (UBUNTU)

* Download and unzip nadya's github folder
* Install python (installed python 2.7.11) Python
* Download pyserial-2.7.tar.gz (md5)




FIRST TEST!

We first made a test with the _xy_plotter.py from python examples (~\pygestalt-master\examples\machines\htmaa\).




TEST WITH PROCESSING

We made a test with processing using a code from a group from last year (Francesca), that creates a txt file that you can load in python and send it from there.

Processing:

PrintWriter output;
int canvas= 240;
int multiple= 3;
void setup() {
// Create a new file in the sketch directory
output = createWriter("position0.txt");
frameRate(10);
size (canvas * multiple, canvas * multiple);
ellipseMode(CENTER);
output.print("[");
}
void draw() {
if (mousePressed == true) {
ellipse(mouseX, mouseY, 10,10);
int posX= mouseX/multiple;
int posY= mouseY/multiple;
output.print("["+ posX+ "," + posY+ "]," ); // Write the coordinate to the file
}}
void keyPressed() {
output.print("[0,0]]");
output.flush(); // Writes the remaining data to the file
output.close(); // Finishes the file
exit(); // Stops the program
}


Python (you have to add this funcion to Nadyas's file):

def loadmoves(): #create function that imports values from textfile
#textfile = open("\Users\Caro\Desktop\01FABACADEMY\09-MACHANICAL DESIGN\processing\code\position0.txt")
#lines = textfile.readlines()

#textfile.close() #close file or it ll be messy!
#other way of doing the same thing
#with open("\Users\Caro\Desktop\01FABACADEMY\09-MACHANICAL DESIGN\processing\code\position0.txt") as textfile:
# lines = filepath.readlines()


textfile = open('\Users\Caro\Desktop\01FABACADEMY\09-MACHANICAL DESIGN\processing\code\position0.txt', 'r')
line = textfile.read() #read the line in one go, as a string
textfile.close()


return ast.literal_eval(line) # evaluate the string and turn it into numbers
#going from : '[[10,10],[20,20],[10,10],[0,0]]'
# to : [[10, 10], [20, 20], [10, 10], [0, 0]]





KINECT

Cit made the code in max for the kinetic that creates a txt file that you can load in python and send it from there. So far we know how to load the file from python but we want to send the file in real time.







We made a test sending this coordinates from the kinect to Python:

moves = [[16,27],[16,28],[16,29],[13,28],[11,30],[12,32],[9,26],[7,23],[20,35],[25,29],[25,29],[25,23],[25,19],[24,18],[23,17],[23,16],[23,12],[23,11],[23,9],[24,8],[25,9],[26,10],[26,9],[28,9],[27,9],[28,9],[27,9],[28,10],[28,9],[27,9],[28,9],[28,10],[28,9],[28,10],[28,9],[28,9],[27,10],[27,9],[28,9],[28,9]]




G-CODE FROM INKSCAPE

Gori generated a g-code from inkscape, we wanted to draw a grid and draw it in differents parts of the canvas in order to study the draw bot´s performance.







drawing_machine




KINEMATIC

The Kinematic is another thing that we are still figuring out how to solve it (Ferdi and Santi were helping us), some links that we are looking at:

http://www.diale.org/vbot.html
http://www.patriciogonzalezvivo.com/2014/vPlotter/
http://corexy.com/theory.html
https://www.marginallyclever.com/2012/02/drawbot-overview/
http://learn.marginallyclever.com/index.php/Makelangelo_2_Software

Download files



home