Week 6-7
Upon the arrival and testing of our stepper motor slider, we realised that the stepper motor sliders we ordered required 24V to move, but our Arduino can only supply 12V. We tried looking at other options online, but most of them were either extremely pricey or far too big and bulky for our project. Thus, we decided to construct our own stepper motor sliders. This would allow us to control the size a bit better as well, as even for our previous stepper motor slider, its size and weight were a concern in terms of balancing it alongside our pipette clamp.
Thus, we started the planning process, and our proposed stepper motor design plans are as below.
Additionally, we started the initial phase of the coding needed. We uploaded the Marlin firmware to our Arduino. We then had to physically wire each motor to the Arduino, hence allowing the motors to be controlled by the Arduino’s commands.
We then configured an “auto-homing” feature. Auto-homing refers to a feature where a system can automatically return each axis (x, y, and z) to a specific starting position (called “zeroing out”) whenever it is powered on. This is done by placing limit switches, which are small sensors or physical stoppers at each axis’ endpoint, so the system consistently knows where the origin point is and can start from the same place every time. This would ensure that our micropipette will start from a precise and known position every time the machine begins a new operation or task.
This was essential, as even a slight deviation in pipette positioning or alignment could affect the accuracy of picking up our small pipette tips. It would also allow for the system to reset to its initial position if an error occurs during operation, auto-homing allows the system to reset to its initial position
With the hardware set up, we then needed to code out commands to control the movement of the motors precisely. This was achieved through “G-codes,” which are standardized commands used to control the movements of 3D printer machines like our Ender-3 Frame. Each G-code command instructs the system to perform a specific movement or action, like moving a motor at a set distance or speed along an axis.
To automate the process of sending G-code commands, we wrote a Python program that connects directly to the Arduino. This program can generate and send the necessary G-code instructions to control the motor movements accurately, making it much easier to run the machine without manual input for each movement. Upon setting up our complete machine, we can then input the precise movement distances, and test our code.