What is a brief outline of your project?
Our objective is to move a small spherical magnet suspended in agarose gel in a circular trajectory. This system must be entirely automated, the only human interaction that is allowed is putting the magnet in the gel. We plan on doing this by having an external magnet in a fixed position outside the gel, while the dish spins slowly in a circle. This will hopefully keep the spherical magnet in a steady equilibrium position while the dish spins in a circle. This project is a very scaled down version of minimally invasive surgeries. Imagine that the spherical magnet is a medical instrument that was injected into a patients body. The surgeon could move it around externally, and the system could be automated for repeatable procedures.
What are the main parts of the system, and how were they handled?
There are three main components to this project: 3D component design, motor control, and image processing. The 3D components must hold the petri dish, camera, and external magnet. It also must move the external magnet away from the petri dish so that the system can be effectively "turned off". These components were all designed in Fusion 360 and fabricated with 3D printing technology. The motor control script must be able to spin the motor at different speeds depending on input from the image processing script. This was written in C++ on an Arduino IDE. This script takes input from the image processing script; the position of the magnet in the gel. Based on that position, the motor must spin at different speeds. The final component is the image processing script. Live video capture is taken with a Logitech webcam. Those frames are then processed by a Python script running on a Raspberry Pi microcomputer. Yes, that is two different microcomputers for the project, the Arduino controls the motor, and the Raspberry Pi controls the image processing. The Python script implements an open source computer vision library called OpenCV, and it calculates the position of the magnet in the gel, then reports it to the Arduino so that it can spin at the proper speed.
What makes your solution unique?
Early in the design process, our group made a big shift in direction. We decided to use an open source computer vision library called OpenCV instead of MATLAB for the image processing component of the project. This meant that we had to purchase a Raspberry Pi to run a Python script, which implemented OpenCV. We originally thought that the Raspberry Pi could handle both the image script and motor control script, but it proved to be too taxing on the computer. Because of this, we left the motor controlling to be handled by the Arduino instead. That way, the image could be processed, while the motor spins.
Did you sign into Arkaive?
Due to unforeseeable complications, the team was not able to sign into Arkaive.
No comments:
Post a Comment