12. Mechanical, Machine Design Group Assignement


Roy's Daniel's Alex's Gerardo's Laura's

How it started...

So, for this assignement our teacher Aristarco proposed some ideas and we decided to give one a shot: an automated pipette that draws with microliter drops. He shared the following references:

Opentrons-Art.rcdonovan.com



With this in mind, we gathered our materials measured them and started designing or machine.


Our inventory:

Machine part Material Description Quantity
Structure Aluminum bar Various measurements 12
Structure Vertex unions Bar union only. *3D print 4
Structure Vertex unions With motor and bar holder. *3D print 2
Structure Vertex unions With bearing and bar holder. *3D print 2
Y axis Endless screw 8mm and 300mm 2
Y axis Aluminum bar 8mm and 300mm 2
Y axis Bearing 8mm inner diameter 2
Y axis Couplet 8mm and 5mm 2
Y axis Endless screw gear 8mm 2
Y axis Cilindrical bearing 8mm 2
X axis Endless screw 8mm and 400mm 1
X axis Aluminum bar 8mm and 400mm 1
X axis Endless screw gear 8mm 1
X axis Motor car 3D designed and printed 1
X axis Stop car 3D designed and printed 1
X axis Bearing 8mm inner 1
X axis Couplet 8mm and 5mm 1
X axis Cilindrical bearing 8mm 1
Z axis Motor car 3D designed and printed 1
Z axis Endless screw 8mm and 200mm 1
Z axis Endless screw gear 8mm 1
Z axis Aluminum bar 8mm and 200mm 1
Z axis Bearing 8mm inner 1
Z axis Stop 3D designed and printed 1
Z axis Couplet 8mm and 5mm 1
Z axis Pipette microliters 1
Z axis Clamps For pipette 2
Base Acrilic Boxes 3mm acrilic, various box sizes. *Laser cut 2
Base Pipette serynges box. Given by instructors 1
Base Agar gel circular container Given by instructors 1
Base Sample containers Given by instructors 3
Electronics Microcontroler ESP32 D 1
Electronics Stepper motor Nema 17 4
Electronics Stepper motor driver DRV8825 4
Electronics H bridge 4
Electronics Copper sheets 2
Electronics Push buttons 3
Electronics Power source 15V and 5amp 1
Electronics Data, power and connection cables Many

3D printing

With all materials on the table and measurements noted, we created a 3D model of what we thought the machine would look like. Along with the existing materials, we started designing the missing pieces we would have to print:

  1. Vertex unions
  2. Axis cars
  3. Vertex with motor holders
  4. Vertex with bearings
  5. Stoper X axis
  6. Stoper Z axis
  7. Pipette holder

*Some pieces had to be printed, tested, modified and printed again. (Like the motor cars)

Laser cutting

We also had to design a base for the pipette syringes, samples, agar gel canvas and trash. We planned on producing it on acrilic, but teste with MDF first:



*A very important consideration for designing this base was the working area. The mechanical design and structure had to be definitive to see where the pipette would really be able to move, and therefore, where we could place the things it would interact with.

To make sure the wroking area, sizes and holes were correct, we cut out a test on MDF with the laser cutter:


We noticed some mistakes and felt glad it was only a test. This helped us gather information and allowed us to see how important it was to test the mechanics and electronics before moving forward.

Electronics

To work faster, we decided to divide and conqueer: writing code, testing hardware and designing our PCB was all done at the same time by different members of the team.

Hardware testing

This piston actuator was our first option for pushing our pipette's buttons. This action would absorb or release the liquid to create our points:
Test code 1
Test code 2


After realizing the piston actuator did not have enough strength to push the pipette's buttons, we tried and succeded with a servo motor using this code:

Each stepper motor was also tested using this code:

*We also added start, pause and resume buttons to control the sistem.

PCB design and production

Both schematic and PCB were designed in KiCad with all components:

The processed result looked like this:

*All documents can be found here.

Assembly

After testing all individual parts and components, it was time to put this machine together.

Mechanical test

With just manually moving the endless screws of the different axis in our system, we detected a MAJOR flaw: the pipette was swinging to much with every move.

This was a CRITICAL discovery, because it meant probably changing out system's position, printing new pieces or moving things around until we obtained the precission we needed.

Change of plans...

After some discussion with all team members, we came to the conclusion that changing the scope of the machine's purpose was best. The small amount of time left, work needed and material availability led us to this decision.

Once we had our minds set and our new objective clear, we got hands on at full speed.

Our new objective:

Making the best of our current working X & Y axis structure to change the pipette's (z) axis so that it holds a neopixel ring that can be recorded on a black background to make automated drawings. Something like this:

To make this possible, some things had to be removed and others added...

Remove:

  1. Z axis (motor, driver, endless screw, aluminum bar, etc.)
  2. Acrilic Base
  3. Pipette
  4. Samples
  5. Agar gel base
  6. Pipette serynges
  7. ESP32 D

Add:

  1. Neopixel
  2. XIAO-RP2350
  3. ESP32 WROOM 32
  4. Buck MP1584
  5. Camera
  6. Neopixel mount (3D designed and printed)
  7. Neopixel car(3D designed and printed)
  8. New PCB (Find all KiCad files here.)

The new materials we addded and printed:

About the structure...

We had to disassemble everything, paint the structure black, remove previous Z axis elemnts and add our new newPixel ring mount on it's new car:

About the PCBs...

This is how they turned out:

The axis controler PCB:

The motor drivers PCB:

The neopixel controler PCB:

And this is how connections looked:

Oh, and this is the 12V and 5amp power source we used:

Testing

Of course, some tests had to be carried out before actually mounting the neoPixel:

The logic used to control the neopixel was carefully planned, as we decided to use PWM communication between the XIAO and the ESP32. (After trying with I2C and not succeeding)

Find the codes we used for the Sender and the Receiver here.

We also tested the 2 Y axis motors being controled by the same driver, found some soldering errors that made the twitch and fixed that:

Final touches

Once we knew everything was working, the time came to put it all together and run the final tests.

For this, we prepared a universal CNC interface and used FluidNC to control all axis: Download confuguration here.

We also covered everything with a black fabric and set up our camera:

Our machine:

Finally, we were able to generate gcodes with This python code. and load them to the machine for it to draw with the light.

These are come of the codes we generated:

And here are the results:

First shots with a phone:

Pro camera shots: