Fablogo

Assignment:

Make a machine, including the end effector. Build the passive parts and operate it manually.


Document the group project and your individual contribution.


This week is all about Machines and their Design.

It's a group project so it's going to be an exciting week.
Between our group we made a brainstorm of possible machines we could build and the degree of axis freedom we would like to work with.
We ended deciding we would build a circuit drawing bot for kids and grownups. This was a great starting point and so we decided to divide our project into smaller and more manageable tasks :

Xavi Dominguez: Programming

Arnau Tàsies: Graphic Design / 3D Modelling

João Leão: Electronics / 3D Modelling

Katerina Labrou: 3D Modeling / Programming



Although we decided to divide the tasks we wanted to switch between each other so we could have an idea of the different work flows.
We are going to start by working in the given MTM Kits from Nadya and create a prototype of our desired goal so we can understand how the Nodes, Mechanics and Programming works. As soon as the prototype is well on it's way we are going start designing the Drawbot 2.0 and its mechanics.

Design process: Solidworks & Rhino

We had a some of the cardboard modules from last year and so we starteded by using them as a means to create a fast prototype of what we wanted our machine to do.







We then made the design changes to the original Rhino files with the changes we made to the fast prototype and laser cut it.


As a starting point, we used the Rhino design files from Francesca Perona, you can download them here.
We intended to make the housing of the x,y axis lighter, adapt it to the 2mm cardboard we would use, and correct some details - such as the heights and sizes of the holes for the shafts and the screws.
Starting with building the 3D model of the axis, in order to visualize our parameters, we gradually build the outsides, and then moved on to the inside parts which will hold the motors and support the whole structure.







Having the 3D design of our machine made it is easier to understand and troubleshoot the file for the laser-cut. At the same time, it is helpful in terms of optimizing the machine structure and parts for the following week.
We designed the final drawbot in Solidworks and in Rhino, this way, the files are available in both softwares. We are designing a handler with two different positions depending on how we want to position the pen: perpendicular or oblique in relation to the surface we are painting.

For me redesigning the new drawing bot from scratch was a great oportunity to improve my skills using the solidworks software











3D printed and Laser Cut Final design.
















Mechanics

For the mechanics we had this references: Reference 1 Reference 2





EQUATIONS OF MOTION A,B: motors
incX = 1/2(-incA-incB) neg_incX=1/2(incA+incB) incY=1/2(incA-incB) negincY=1/2(-incA+incB)
diaA =incX+incY
neg_diaA= -incX -incY
diaB=-incX+incY
neg_diaB=incX-inxY
Useful links: Link1 Link2

Programming

If you are new in Python:
Python introduction
1. Download and install Python:
-tip- you can download Python 3.x and/or 2.x ....install both versions and use the right interpreter depending of the project.
IMPORTANT!
pyGestalt only works with Python 2.x so for that project use it!
2. Download Python IDE or Python interpreter:
Options
Xavi's election Interpreter
3. Getting started:
-tutorials for beginners-
Python interptreter VS Python IDE (PyCharm). The interpreter is the command line in the Terminal. You can use it for programming. The PyCharm is an IDE for programming: supports listing all program files, syntax highlighting and other features.
Gestalt is a control system framework for personal fabrication.
Two useful links for understanding the Gestalt framework:
Link1
Link2


A step by step guide.
1. Download pyGestalt Framework and install it.
--> in the directory where setup.py is:
sudo python ./setup.py install
2. Programming the Gestalt Node with and AVR.
Why? -> The Fabnet to node connector is not typical!
-> Are nodes already programmed? Yes, we have it.
3. Download and Install pyserial -> order to talk over serial
-pySerial is a module to communicate python with the serial port ( Python Serial Port Extension ).
download from here.
installation guide.
sudo python ./setup.py install
- pySerial Documentation
On Mac Os installing PySerial & pyGestalt from the Terminal:
1. Download and extract pyserial.
2. Navigate via Terminal to the folder you have pyserial extracted, in this folder you should have a file called setup.py
3. Run this script
sudo python setup.py install


At the end of installation you should get a message like this:


A similar process should be done for the pyGestalt
1. Download the Nadia Peek pyGestalt framework.
2. Navigate in the command line where your pyGestalt folder is located.
3. Run the command: sudo python setup.py install.


* Generate GCode thanks to this tutorial.
Main GCode commands.


Commands for XYCore Mechanics here.
Robopaint software for drawing robots.
Firmware used in a similar machine.
Arduino 2 axis GCode interpreter.
PNG -> GCODE
G-code is a language in which people tell computerized machine tools how to make something. The "how" is defined by instructions on where to move, how fast to move, and what path to move.
GCode specific codes.

Electronics

Link1
Motor board files:
Link1
Link2
Motor Board used in Axibot:
Link1
Hardware:
For the electronics, we needed to mill the FabNET board to use it with RS-485 usb connectors:
Fabnet is a multi-drop network, meaning that multiple modules (a.k.a. nodes) share a single set of communication wires. Signalling is differential based on the RS-485 specification. Each node is assigned a four-byte IP address which uniquely identifies it over the network.
Fabnet provides power at two voltages: high voltage (12V - 24V) is intended to drive motors, lamps and actuators, while low voltage (7.5V) supplies power to the logic circuits of the nodes.
Establishing connectivity between nodes and a computer, and providing proper power, requires several components: high and low voltage power supplies, a USB-RS485 converter cable, and an adaptor board (076-000A) with bias resistors.
The next images are some diagrams to understand how the FabNET connects to Gestalt boards and power supply.






Video of First Test: