No Lecture / Recitation was given on Monday 5/27/2019 due the holiday of Memorial Day!
Lab Day 5/29/2019: During Lab Time, the group started to compose a draft of the Final Report due Lab Day of Week 10 (6/5/2019). Benedict also set up the apparatus to begin with testing, discovered that the camera would not detect the gel magnet consistently, as the pixel count for thee radius was around 5. At such a low pixel count, a warning is given by MATLAB that the circle finding will not be accurate below pixel radii of 5. Hence, the height of the camera was sill to high (currently 12 cm off leveled surface), even though it had been reduced once before. He estimated that this surface would have to be reduced to 6 cm or even 5 cm off leveled surface.
This adjustment enables us to both better the reliability of the circle tracking and taking the images at a lower resolution to improve performance and the count of frames per second that are able to be calculated.
It will be a challenge to find the best compromise between resolution and refresh rate. The exact numbers will have to be determined by further testing.
Joe and Benedict will meet on Friday afternoon to further test and evaluate what changes need to be made to the test setup to successfully perform a "surgery". In addition, they will also further discuss a meeting times to both create and practice the Final presentation for Week 10 Lecture Day (Monday, 6/3/2019).
Background / Tutorial / FAQ
Wednesday, May 29, 2019
Monday, May 20, 2019
5/25/19 Week 8 Update
Lecture day 5/20/19:
During recitation time, the group talked over the remaining tasks that needed to be accomplished during Week 8. Those tasks are to test the setup that was built in Week 7 and see if our iteration of the project can be made functional or requires more design polish.
The group reached a consensus to meet on Tuesday, 5/21/2019 in the Innovation Studio, as most of our materials for the projects are stored there. During that time, we will attempt a test run of the control code with the gel that was made in Week 7 on 5/15/2019. The results of the test run will determine the future direction of the project and the future tasks that need to be accomplished.
Some of the pre-established concerns that came up during the group's pretesting efforts in the recitation were the following:
- The center of the neodymium magnet needed to be on exactly the same height as the the gel magnet, therefore either the base of the motor or the height of the neodymium magnet holder needs to be modified (height-wise)
- The neodymium magnet and the gel magnet also must match on the X & Y-Axes (height = Z-Axis)
- The height of the camera stand might be too high and therefore might give us inaccuracies when attempting to track the magnets movement and therefore our ability to correct its trajectory.
Test Meeting on 5/21/19:
The group met with the prospects of starting a test run of the project. Multiple of the pretesting concerns had turned out to be valid concerns:
- The camera height was too high
- The gel was denser than it had been the Wednesday previous
- The neodymium magnet and the gel magnet did not match on the Z-Axis (height = Z-Axis)
- Reduce the camera height to 10 in from ground surface
- Test the setup the day the gel is made
- The height of the external magnet's center will be 11.41 cm from the ground surface, and so will the gel magnet:
- This will require a reprint of the external magnet holder shown in red below in order to have the center of the external magnet be at the same height level as the gel magnets.
| A visual representation of said height adjustment |
All of the proposed changes from the Test Meeting the day prior have been made during Lab time. The 3-D print for the third iteration of the magnet holder was started. The height adjustment to the camera stand was made, as can be seen in the background of the image above. Ryan made another dish of gel in today's lab that will be used in testing the setup tomorrow.
Monday, May 13, 2019
5/13/2019 Week 7 Update
Lecture Day 5/13/2019: In recitation, the group decided to start working on the Final Report. The group was also introduced to what specifications should be given in a newly created specifications page (see Fig. 1):
None of these specifications have been made up by the group members yet (except for the magnet holder and the motor table attachment (see previous posts)). Hence the group has decided to meet up at 3:30pm tomorrow (5/14/2019) in the innovation studio to build a setup with all the necessary 3D printed parts.
Extra-Curricular group meeting 5/14/2019:
During this extra group meeting, the group went to work to quickly print another magnet holder (after we determined that our old design version was insufficient and would break if attempted to be used as a magnet holder; indeed, it broke!). Furthermore, after Joe had left, Benedict went to work to build a camera stand and motor socket. (see Fig. 1, Fig. 2, Fig. 3).
Lab day 5/15/2019: During Lab, Joseph and Ryan worked in the wet Lab to produce gel for our test of the newly built setup. This gel was stored in the wet Lab fridge along with the gels of other groups.
Benedict went to work on the setup and captured some images of the preliminary setup design:
Additionally, Benedict also worked on the functionality of the motor and resolved the connection issues the Arduino's AdaFruit MotorShield was experiencing. Here is a captured video of the motor functioning exactly as the code demands it to:
| Fig. 1 - Specifications for Final Report |
None of these specifications have been made up by the group members yet (except for the magnet holder and the motor table attachment (see previous posts)). Hence the group has decided to meet up at 3:30pm tomorrow (5/14/2019) in the innovation studio to build a setup with all the necessary 3D printed parts.
Extra-Curricular group meeting 5/14/2019:
During this extra group meeting, the group went to work to quickly print another magnet holder (after we determined that our old design version was insufficient and would break if attempted to be used as a magnet holder; indeed, it broke!). Furthermore, after Joe had left, Benedict went to work to build a camera stand and motor socket. (see Fig. 1, Fig. 2, Fig. 3).
Lab day 5/15/2019: During Lab, Joseph and Ryan worked in the wet Lab to produce gel for our test of the newly built setup. This gel was stored in the wet Lab fridge along with the gels of other groups.
Benedict went to work on the setup and captured some images of the preliminary setup design:
| Fig. 1 - Frontal View of the Setup |
| Fig. 2 - Top View of the Setup |
| Fig. 3 - Side View of the Setup |
Monday, May 6, 2019
5/6/2019 Week 6 Update
Lecture day 5/6/2019: During lecture, the group asked the TA about how the Adafruit MotorShield is supposed to be used with the Arduino. He pointed us towards an online resource and the Week 1 Lecture slides for guidance. Additionally, he showed us how to connect the Arduino and the Adafruit MotorShield by using the male-to-male pins that we given with the Adafruit MotorShield.
Through this new information, we determined that the Adafruit MotorShield should be soldered to the pins (see Fig. 1):
Upon further reading through the Week 1 lecture slides, Joseph and Benedict found out that we will need a power cable in order to power both the Arduino and the Adafruit MotorShield (see Fig. 2):
As seen in Fig. 1, the female pin connector on the motor's wires will be incompatible with the future setup. The wires of the motor (see Fig. 3) will be snipped and stripped to fit into the female press connectors (see Fig. 1):
Snip the Motor connector and strip wires
Solder Adafruit MotorShield V2 and Arduino Board together
Test code with the above done
Lab Day 5/8/2019: During Lab Day of Week 6, Benedict and Joe got to work on the Control Code. Upon attemting to get the motor spinning, we recieved a specific error:
****TODO: insert copy of error here****
We believe that this error was caused by a poor connection between Analog Pin 4 and 5, which are the output pins of the Arduino code. This problem has possibly been resolved by soldering the pins to the Adafruit MotorShield (see Fig. 1):
| Fig. 1 - Setup Image given in Week 1 Lecture Slides |
Through this new information, we determined that the Adafruit MotorShield should be soldered to the pins (see Fig. 1):
| Fig. 1 - Pins to be soldered (including opposite side pins) |
| Fig 2 - Power Connector (on right of image) of Arduino |
| Fig. 3 - Female pin connector for the 5V motor |
To-Do-List for Lab Day:
Get Power cable for Arduino in Innovation studio.Snip the Motor connector and strip wires
Solder Adafruit MotorShield V2 and Arduino Board together
Test code with the above done
Lab Day 5/8/2019: During Lab Day of Week 6, Benedict and Joe got to work on the Control Code. Upon attemting to get the motor spinning, we recieved a specific error:
****TODO: insert copy of error here****
We believe that this error was caused by a poor connection between Analog Pin 4 and 5, which are the output pins of the Arduino code. This problem has possibly been resolved by soldering the pins to the Adafruit MotorShield (see Fig. 1):
| Fig. 1 - Analog Pins soldered to connector plugs |
| Fig1.1 - All pins soldered in place |
Additionally, Benedict also reinforces the wire tips with leaded solder for a better connection to the clamp connection points of the Adafruit MotorShield (see Fig 2.). This should also rule out the flimsey wire connections as possible faults in the circuit.
| Fig.2 - Reinforced wire tips |
5/3/2019 Week 5 Update
Lecture Day 4/29/2019: During the time given to the class as recitation, the group decided to rewrite the proposal based on the feedback that was given to us the Lecture in Week 4 (4/22/2019). The group had used the wrong case of address (1st person plural vs. 3rd person plural). The proposal was also wordy and lacked depth. It was missing most technical details about the setup that we are choosing to build; it was lacking specifications of technicalities, a setup design or dimensions of our parts / setup.
Lab Day 5/1/2019: During Lab time, the group finalized the 3-D models for the dish table and the magnet holder. These 3-D models will be submitted to be 3-D printed as prototype parts and will be tested for fitment and function.
Joseph and Benedict took a look at the control code presented in the Week 1 Lecture slides. In order for this code to function, we needed an "AdaFruit Motor Shield V2". This breadboard has to be used instead of the Arduino. When the group attempted to use the Arduino with the given control code, MATLAB gave errors that will have to be debugged.
This board also has no pinned connectors soldered into it (neither male or female). Since Benedict already has soldering knowledge, he will solder the male pin connections to the board. He will also, however, teach Joseph and possibly Ryan how to solder, as we deem it an essential learning experience that is intended to be taken away from this class.
Once the 3-D printed prototype pieces of the table and magnet holder exist physically, Benedict can start building the camera stand and design a base for the motor, breadboard and wiring to be tucked under (this is done to shield the electronics from the strong influence of the Neodymium magnet).
The group hopes to have the 3-D printed pieces by Friday (5/3/2019) and Benedict aspires to have the camera stand built by Lecture on Monday of Week 6 (5/6/2019).
Meanwhile during the Lab Day, Joseph has gotten the motor to move in a manner that would be used to spin a dish of gel, as proposed in our setup:
Lab Day 5/1/2019: During Lab time, the group finalized the 3-D models for the dish table and the magnet holder. These 3-D models will be submitted to be 3-D printed as prototype parts and will be tested for fitment and function.
![]() |
| Fig. 1 - Side View of the 3-D models to be 3D-printed |
![]() |
| Fig. 2 - Opposite Side View of 3-D models to be 3D-printed |
Joseph and Benedict took a look at the control code presented in the Week 1 Lecture slides. In order for this code to function, we needed an "AdaFruit Motor Shield V2". This breadboard has to be used instead of the Arduino. When the group attempted to use the Arduino with the given control code, MATLAB gave errors that will have to be debugged.
This board also has no pinned connectors soldered into it (neither male or female). Since Benedict already has soldering knowledge, he will solder the male pin connections to the board. He will also, however, teach Joseph and possibly Ryan how to solder, as we deem it an essential learning experience that is intended to be taken away from this class.
Once the 3-D printed prototype pieces of the table and magnet holder exist physically, Benedict can start building the camera stand and design a base for the motor, breadboard and wiring to be tucked under (this is done to shield the electronics from the strong influence of the Neodymium magnet).
The group hopes to have the 3-D printed pieces by Friday (5/3/2019) and Benedict aspires to have the camera stand built by Lecture on Monday of Week 6 (5/6/2019).
Meanwhile during the Lab Day, Joseph has gotten the motor to move in a manner that would be used to spin a dish of gel, as proposed in our setup:
Monday, April 29, 2019
4/29/2019 Week 4 Update
Lecture day 4/22/2019: Since last week, Benedict gained some insight on what the camera setup will look like and what complications need to be kept in mind. He also developed a two stage code for the image tracking:
1) a .mlx Live MATLAB script is run to determine the pixel diameter of the circle through the function "imdistline"
2) divide found diameter by 2 = radius. Use a range of nearest values of 10.
ex. radius = 84 pix.
[center_magnet_tracking,radius_magnet_tracking]=imfindcircles(I_3,[80,90]
Joe was having difficulties with the motor movement and controlling it to our needs. Joe is still responsible for the motor control and implementation of the code into MATLAB.
Benedict, while still responsible for the Blog Updates, will obtain a Tier 2 safety training on Monday of Week 5, 4/29/2019. This will enable at least one of the team members to have access to scrap wood and wood working tools (Table saw, Drills, Screw gun, etc.) to build any necessary wood parts. Benedict is responsible to have a safety certification by Week 5.
Lab day 4/24/2019: Ryan got to work on the 3D models of the magnet holder and the motor socket with the table attachment. This model will be 3D-printed and tested. Here is the first version of the 3D model:
1) a .mlx Live MATLAB script is run to determine the pixel diameter of the circle through the function "imdistline"
2) divide found diameter by 2 = radius. Use a range of nearest values of 10.
ex. radius = 84 pix.
[center_magnet_tracking,radius_magnet_tracking]=imfindcircles(I_3,[80,90]
Our goals for this week:
Ryan is working on the 3D model of the platform, motor socket and magnet holder. He will design the bottom end of the setup with the base to hold the magnet holder and the motor. We aim to have 3D printed the motor attachment in the plate holder and the magnet holder by the end of the week.Joe was having difficulties with the motor movement and controlling it to our needs. Joe is still responsible for the motor control and implementation of the code into MATLAB.
Benedict, while still responsible for the Blog Updates, will obtain a Tier 2 safety training on Monday of Week 5, 4/29/2019. This will enable at least one of the team members to have access to scrap wood and wood working tools (Table saw, Drills, Screw gun, etc.) to build any necessary wood parts. Benedict is responsible to have a safety certification by Week 5.
Lab day 4/24/2019: Ryan got to work on the 3D models of the magnet holder and the motor socket with the table attachment. This model will be 3D-printed and tested. Here is the first version of the 3D model:
| Fig. 1 - General View of the 3D-models |
Fig. 2 - Frontal View of the 3D-models
|
The socket for the motor output shaft has the dimensions of 3.1mm X 4.1mm X 6 mm. The group decided to keep the center of the Neodymium magnet and the gel magnet both at a height of 2.5 inches (63.5mm). This is done to avoid the magnet exerting force on three planes rather than on two planes.
Benedict talked to the shop safety manager about the scrap wood pile and was able to obtain 6 pieces of 30 in long 2x4 lumber and 1 lumber 2x4 over 50 in long. This wood will be used to make the camera stand.
Thursday, April 18, 2019
4/18/2019 Week 3 Update
This week during lecture, we further discussed the project and assigned tasks for each member for this week (Week 3).
During Lab, we signed out a Logitech HD C525 web-cam to use throughout the project at the innovation studio. As the group got together, we shared the progress on the assigned tasks since lecture.
Joe was able to get the motor to rotate counterclockwise during lab, but was not able to control the speed, duration of turning or the direction yet.
Benedict got the image tracking code to function after asking other groups for their input. After some adjustments of sensitivity and background, a first working circle tracking code was run. Here is a video of it:
During Lab, we signed out a Logitech HD C525 web-cam to use throughout the project at the innovation studio. As the group got together, we shared the progress on the assigned tasks since lecture.
Joe was able to get the motor to rotate counterclockwise during lab, but was not able to control the speed, duration of turning or the direction yet.
Benedict got the image tracking code to function after asking other groups for their input. After some adjustments of sensitivity and background, a first working circle tracking code was run. Here is a video of it:
During Lab we also obtained the magnets that we had ordered. We decided to work with the DX48 Neodynium magnet because it gave the right size to where the magnet would influence the S2 magnet inside the gel, but was not strong enough to influence our electronics (IN THEORY!); if influence on electronics by the magnet does occur, the electronics will have to be shielded by a sort of insulator that we will have to engineer ourselves.
Ryan will be in charge of keeping the magnets, Joe will further work on the Arduino code to get the motor movements set to our demands with transplantation of the code into MATLAB.
Further Weekly Tasks are outlined in "Tasks for Group Members" (see Top Bar).
Thursday, April 11, 2019
4/10/19 Lab Update (Week 2)
During Lab in Week 2, we obtained most of the materials that would be provided to us, such as the stepper motor, the array for the motor, the Arduino Uno board and various pin wires for the Arduino. The only parts that are missing is a complete and functioning code, a webcam, the agarose gel and the magnets.
The group decided that we would follow the design proposed in the lecture slides. The strong Nd-Fe-B magnet will be on the side and a small S2 magnet (from K&J Magnetics) would be inside the gel. We also decided to use MATLAB instead of Python, as all of the group members felt that there would be less future complications if the change was made.
The group decided that we would follow the design proposed in the lecture slides. The strong Nd-Fe-B magnet will be on the side and a small S2 magnet (from K&J Magnetics) would be inside the gel. We also decided to use MATLAB instead of Python, as all of the group members felt that there would be less future complications if the change was made.
4/8/19 Additional Update (Week 2)
| Photograph 1: Group Meeting at the Rush Building |
4/8/19 Lecture Update (Week 2)
During our Week 2 Lecture, it was clarified that liberties should be taken with this project and that each group should think with the idea of creativity. We were also introduced to the idea that Python can be used as a programming language, rather than MATLAB.
The class was shown of the issues we might be facing by using some of the strongest magnets commercially available: their electronic field and how they will disturb electronics near by. This gave us an issue to consider and another design constraint to incorporate:
Not only does the strong magnet have an electronic field, but the small magnet inside the gel does too. The magnetic field of the small magnet may cause it to experience torque from friction and attraction/repulsion:
The class was shown of the issues we might be facing by using some of the strongest magnets commercially available: their electronic field and how they will disturb electronics near by. This gave us an issue to consider and another design constraint to incorporate:
| Fig. 1 - Concepts of polarity and torque spin on the gel magnet |
| Fig. 2 - Further explanation of forces and torque spin |
We were also introduced to the possibility of using an electric coil to create a magnetic field, rather than a strong permanent magnet (having the benefit of controlling the strength and activity of magnetic/electronic field):
| Fig. 3 - Benefits of electric coil versus permanent magnet with dimensions of gel magnet |
Thursday, April 4, 2019
4/3/19 Lab Day Progress (Week 1)
On April 3rd 2019, the first day of Lab, we were introduced to working with Arduino Uno. We were quickly scrambled onto how a breadboard works and were thrown into making a fading LED circuit with little to none instruction, except for a basic schematic of the circuit:
![]() |
| Fig. 1 - Schematic of fading LEC circuit |
After some time of tinkering, we got the LED circuit to function as intended:
Immediately after, we were tasked with a new task: Make a motor spin continuously using the 5 Volt Pin on the Arduino Board. The only given instructions were "go figure it out":
| Fig. 2 - Modified Fading LED Circuit with 5V Motor instead of LED + 1k Ohm Resistor |
At the very end of the Lab time, we were tasked to design an attachment for the 5V motor gear would spin around. We were given no dimensions for the motor gears, no introduction to use any 3D modeling software for the makeup was given, and so little time was left for students to borrow calipers to accurately measure the motor gears.
Overall, the first lab day felt scrambled together and very chaotic with little to nothing learned. That being said, very little could be learned in this rushed schedule and thought-scattered environment.
Wednesday, April 3, 2019
4/1/19 Lecture Day Progress (Week 1)
On Monday, April 1st 2019, the first day of Lecture class, the group #6 was formed and introduced to the project.
This image shows some notes that we took on the first day.
This image shows some notes that we took on the first day.
![]() |
| Fig. 1 - 1st Lecture day notes |
Some notes on the first day also included talks on what designs were or were not feasible. We started the "sketching ideas and designing" process with Benedict taking the class notes and drawing a force diagram of the gel magnet and what forces would act on the gel magnet.
This is where we ran into the first challenge/issue: Since our goal is to keep the magnet in the same place (same coordinates of the x-, y- and z-axis of space) while the gel rotates around it, how are we going to cancel the force of gravity; since the kinetic friction of the gel cancels out the force of the magnet when it is still in space, how do we prevent the magnet from slowly descending down the z-axis (descending towards the earth).
Upon further consultation, it was decided that only the position along the x- and y- axis should be considered for this project.
Soon after, the group was asked to come up with some general setup ideas for their version of the project and draw them onto a Post-It Note. The group submitted this note:
| Fig. 2 - 4 possible combinations of rotation / magnetic attraction type |
This note outlines 4 ways of designing the same setup. With m representing the gel magnet and M representing the Neodymium-Iron-Boron Magnet (Nd-Fe-B). It considers whether the magnets are repelling or attracting each other, with each scenario considering the respective charge of each magnet. It also states which way the gel would have to rotate to provide the correct direction of the kinetic friction (correct direction = acting against the force of the M magnet).
Subscribe to:
Posts (Atom)



