Understanding Your Microscope
We use a simple optical microscope (Geefuntech Biological Microscope) as shown in the figure above. The sample can be observed simply by using a light source transmitting through it and towards the objective lens, arriving at the ocular lens, producing a virtual, magnified, and inverted image. There are simple working procedures to produce and observe a high-quality sample images:
- Start by setting the objective lens to the lowest power, which in this case is 4 times.
- Insert the glass slide on the stage and clip it firmly. XY-stage is used in this case, where it can be moved along the x- and y-axis. Sample can be adjusted to the desired position.
- Adjust the coarse knob until the sample image is produced by looking through the eyepiece or imager (i.e. camera module). Slightly increase or decrease the knob turns until the image is sharp.
- To increase the sharpness further, adjust the fine focus knob until the desired sharpness is achieved.
- Adjust the light source intensity for better image quality.
- When done, reset the objective lens to the lowest power and lower the stage by adjusting the coarse knob.
From the steps above, we can see that there are 4 knobs essential for control, i.e. coarse focus, fine focus, X-stage and Y-stage.
Controlling the Microscope
The RAMPS v1.4 shield is attached to an Arduino micro-controller board, with 4 operating motor drivers attached to the X, Y, E0, and E1. The stepper motor pins are attached to where the driver is installed. Below are the details on how the motors move:
- X motor is used to adjust the glass slide position along the horizontal axis relative to the front view.
- Y motor is used to adjust the glass slide position along the vertical axis relative to the front view.
- E0 motor is used to adjust the coarse knob by bringing up and lowering the microscope tube.
- E1 motor is used to adjust the fine knob by bringing up and lowering the microscope tube.
The motor shaft is connected to the knob with an adapter, mediated by tubing to increase the flexibility and friction to make rotation possible.
Figure 1. Ramps v1.4 Hardware
The Arduino board is flashed with a customised firmware, i.e. Marlin, that is used to control the motors. The firmware contains the settings of the motors (e.g. motor step rate, motor speed, motor acceleration, spin direction, etc.) which are configured for the precise movement for input and actual distance. It is important to always return to home to set a reference point before operation of the microscope.
User-Interface
Controller Interface (OctoPrint)
OctoPrint usually runs in Linux platform in Raspberry Pi. To minimise your budget, you can use your own laptop without purchasing extra Raspberry Pi. Noting that we are using a Windows-based laptop, we installed via a localhost to access the OctoPrint Interface.
OctoPrint serves as the controller interface, is used to remotely control the movement of the microscope and live streaming of the sample movement through a camera. It uses Gcode as the command programming language.
Figure 2. OctoPrint
Figure 3 shows the image of the OctoPrint interface.
The light green shade highlights the motor control tools where we can control the X- and Y- knobs of the caliper, and choose the tools (E) to 0 or 1. 0 represents the coarse knob and 1 representes the fine knob.
We can see that there are 4 buttons corresponding to 0.1, 1, 10, and 100 values shaded in light yellow at bottom right. In our case, we have adjusted them such that 0.1 mm is equal to 0.01 mm, 1 mm to 0.1 mm, and so on.
The shaded light red area which is the Yawcam-connected interface. Here, we can live stream the sample while operating the microscope by adjusting the motor tools as shown in the light green shade at bottom right.
Meanwhile, the light blue shade at bottom left is where we can upload our customised Gcode for to command the movement of the motors. For our Remote Microscope, we have provided two Gcode commands, first is the homing command, where the motor will return the slides back to the origin of the microscope. This is very important after every use of the microscope so that in the next operation, the system can recognise the origin. The second is the center slide stage command which the slide is moved to the stage opening for visualisation through the objective lens. The commands can be executed by pressing the name of the Gcode file. When pressed, the file name will be bolded and to execute the code, we can proceed to click on the print button (shown in the black shaded area).
Multicam feature (shaded in orange) is also available to track both the movements of the slide on the XY stage and the movements by the stepper motors from another camera module. In our case, the second camera is the laptop webcam that enables tracking of the position of the slide. The interface will provide the selection tool to choose which webcam to display during operation in the OctoPrint.
Figure 3. OctoPrint Interface
Yawcam
Yawcam is a 3rd party app that supports live streaming for the OctoPrint interface to the camera module. The camera module has to be connected to Yawcam beforehand before connected to OctoPrint. It provides the output URL for the Stream and HTTP ports for the OctoPrint in the settings menu and we need to enable Stream and HTTP URL to allow the OctoPrint to access the local IP address camera of the camera module.
Figure 4. Yawcam Interface
Remote Interface (TeamViewer)
We utilise the camera module placed in the ocular lens slot to capture images connected to a laptop. The laptop is then set as the host connection to allow external connection to the laptop to control the microscope from afar. TeamViewer allows the users to modify and control the processes of the host laptop, as long as an internet access is available on both devices. Thus, the OctoPrint application can be opened and connected to Ramps v1.4 to control the microscope.
Figure 3. Team Viewer
©2020 BluDaç.