Eric Status Report – 4/27

This week, I spent a significant amount of time putting together the project and ensuring it is in a demo-able state. I mainly worked with Chris this week to improve and test various areas of the project. One thing we noticed about our current color selection algorithm was difficulty in accurately choosing extreme cases of HSV values, which included black, white, and red, as these colors were represented by a minimum or maximum value for one of the three properties defining it. Chris and I optimized and refined the algorithm by weighting the three different properties of HSV colors so that our system would more accurately pick colors. Another important item that Chris and I worked on was reducing the jamming of the motors while optimizing the accuracy and routines of the gantry system. Using testing scripts, we tested various parts of our system individually and in conjunction with each other in order to optimize timings and spacings in the painting routine. This week was also the first time we tested our robot running a routine that involved the paints and water. Through our testing and refinement, we were able to accomplish the robot automatically completing a painting routine.

My progress is on schedule, as I am in the testing and refinement phase of the project. Our project is in a complete, demo-able state, and the remaining work is continuing to optimize various aspects of the design as well as minimize errors and failures. Next week, we hope to eliminate a significant number of small issues and problems, such as the motors failing, finding a way to zero our gantry, optimizing the color selection algorithm even more, and reduce the extra line drawn by the brush when rotating on the servomotor.

Eric Status Report – 4/7

In the beginning of the week, I spent a significant amount of time preparing the gantry control system and motor setup for the team’s demo on Monday. Chris and I worked together on writing a demo file that would make our gantry system go through the motions of drawing a square or a line. We spent a lot of time on Sunday making sure our system was working smoothly. This included slightly modifying parts of our gantry and motor system as well as the software controlling it, such as adjusting the motor speeds and sanding down certain parts. Following our demo, I worked on implementing a capability for our gantry system to draw diagonal lines, as the default library we are using only has the ability to control one of the stepper motors at a time. I wrote code that will be able to control the two motors in parallel.

My progress this week is on schedule. The bulk of the gantry control system and motor setup is completed, and the remaining work is on optimizing our project and testing the robot’s functionality. In the next week, I will continue optimizing and modifying the gantry control system and gantry to finalize our project, as well as work with Chris and Harsh in putting our different subsystems together and testing our project as a whole. In particular, towards the beginning of the week, I will test the parallel motor code on our robot, especially once our gantry more finalized and our motors are locked in place.

Eric Status Report – 3/2

This week I, like the rest of my team, spent a large amount of time working on the design review report and presentation. In addition to contributing by writing slides and sections of the paper, I am formatting the final Word document for our report. As part of finalizing the design for our project, I constructed an image bank consisting of ten increasingly complex images which we will be using to test our project. The image bank is as follows:

 

I also updated our block diagram to clarify the way components interact with each other. As mentioned in the team status report, a mistake on the team’s end caused us to put the wrong order through for the Raspberry Pi, so I was unable to experiment with controlling the motors we received through the Pi. When we realized the mistake, I found the parts online that we needed to order, which included the Pi itself, a power adapter, and a microSD card and its adapter, and placed the orders for it. Although I was unable to work directly with the Pi, I started to use and experiment with the libraries to control the motors, but currently have no way to actually test out any code I write. As a result, my progress is behind schedule. To catch up, I am preparing code this week and next week which will be ready to be tested immediately once our Pi actually arrives. In the next week, I hope to complete the preliminary code for controlling the motors through the Pi, as well as finish up work on the design review report and finalize the format for it.

Eric Status Report – 2/23

This week, I finalized decisions on which hardware parts to use, specifically the stepper motors and servomotor. As a team, we placed orders for these parts as well as many others. I did research on how to power our project, such as how to power the Pi and how the pi would connect to the motors. As a team, we found a rather simple solution for both, as the motors can be attached easily to the motor shield of the Pi and a simple cable can be bought to power the Pi from an outlet. In addition, I created the parts spreadsheet for our team, which keeps track of the parts we’ve ordered and received, how much we spend on each part, our remaining budget, and other things. I worked on the team’s design presentation for Monday, and specifically I contributed by creating a block diagram for the design review. I also started working on an initial draft of the image bank we plan to use for some of our testing metrics. I did research into the best way to test our robot’s ability to choose color, and concluded a system that involves testing for the nearest HSV value.

My progress is on schedule. For the next week, we will finalize the image bank we will use for testing. Once our parts arrive, I will start testing and experimenting with the RPi libraries for Python, and begin writing code to control the motors. As a team, we will also begin assembling our frame and gantry system once the parts for it arrive.

Eric Status Report – 2/16

This week, I discussed designs with the team and helped look for parts we could use in our project. I helped in discussions which weighed alternatives in how we will procure the parts for the 2D gantry system, such as considering the tradeoffs of 3D printing some parts. I helped 3D print a modified pulley part that originated from an Ultimaker CAD file. Inspecting it and experimenting with it, we found it to be fairly durable. However, it was noted to have some imperfections.

The part is shown in the picture above, and the 3D printer printed it from bottom to top in the orientation shown in the picture. The bottom of the middle ring is notably not flat, due to there being no support underneath which caused the material to drip when the ring was initially being created. In contrast, the top of the ring is flat and smooth. The topmost part of the pulley in the picture orientation is also more rough and less even than the bottom piece, again due to lacking support during the printing. We brainstormed a method of rectifying this, which involves creating a structurally weak support underneath these components so that the material will not drip down while being printed. However, our overall assessment was that the part is sturdy enough and the defects are not significant (as well as probably being eliminated in the future), which makes 3D printing a viable solution to our securement of parts for our gantry.

For the rest of the physical robot, our team also did research and brainstorming for the bottom part of the base, as well as how the 2D gantry component would be stabilized. My personal research was looking into the type of beams we would use to hold the gantry up. I looked into aluminum beams, specifically the T-slot beams that our team first considered using during preliminary research. I compared alternatives from different vendors, as well as considered buying separate beams or longer ones that we would then cut down.

I also spent time preparing for the hardware component of our project, which was the primary division of the work that was assigned to me. I researched and read about the different raspberry pi libraries for Python that we are considering using, namely gpiozero and RPi.GPIO. Comparing these two options, I have found opinions online that point to gpiozero being the superior library due to simplicity and other advantages. I looked through documentation for both libraries and studied some examples. In addition, I looked into the hardware parts that we plan to buy, such as the stepper motors and servomotor. We are considering buying the same stepper motors that are found in Ultimakers due to using many other Ultimaker parts in our design, unless we can find a cheaper or significantly better alternative.

My progress is generally on schedule, although our initial schedule has making power and control schematics finished tomorrow, which we may need more time with. In order to catch up to our schedule, my team and I will primarily focus our efforts on the power schematics and hardware designs in the next few days, as we have mostly wrapped up the design for our 2D gantry system.

For the next week, I hope to finalize decisions for hardware parts we plan to use, finalize power schematics, and start performing calculations for the motor control. As a team, we will also work on finalizing the design for our frame.