Group 02 – Project Report – Week 12


Integration 

This week, similarly to the week before, the entire group has worked together to integrate the various subsystems into a single system. The electro students have made progress on the wiring of the system, having begun soldering connections to the various components, the mechanical student have been printing parts on-demand as the other disciplines need them (such as new pulleys to better fit the band, a better part to connect the band and the stick, to name a couple). Furthermore, the computer students have been working closely with the electro students to finalize the Python and Arduino programs, making them communicate (detailed further in the computer section). 

The mechanical student have kept on modifying and creating new parts to fit even better for the systems overall performance. We have had some problems with getting enough air flow from the fans and it seems we need to cut out a new plexi-plate with smaller holes so that we can get the air pressure we want to make the disk float. 

Plexi plate holes
Mounted fans
Air hockey board

The mechanical student is also having some troubles with the goal on the robot side. Since there is little to no time left doing it more complex because of all the exams and projects going on, he’s trying to make a very simple solution that will work 100 % of the time, but because of the size restrictions on the 3D printers he has available it still needs some more work. Pictures of these will be shown on the next blog post. 

Computer 

This week the computer engineering students and electro students have put the final piece in the basic defense puzzle, and we have been able to implement the 1-axis basic defense functionality. Initially we were faced with an alarming bug that caused the Python  program to compute the incorrect intersect coordinate, but we came to realize that since the program will always use the newest and second newest points to compute the intersect coordinate, the newest point would frequently be zero (because we nudge the puck, and it eventually goes stationary). To prevent this, as well as ensuring we don’t compute unnecessarily, we now ensure there is a large enough difference between the two most recent points before computing the intersect coordinate. Furthermore, since the slope could be less than 1, we had to ensure python did float division (as opposed to int division) to ensure we could have decimal slopes. 

To interact with the Arduino, we used the serial communication functionality we implemented a few weeks back, with a few changes. Most notably, we realized we couldn’t simply send a string (e.g. “Test”) from the Raspberry pi to the Arduino, as this would be interpreted as ASCII. Consequently, we had to convert the string into a series of bytes (using the string encode() function), at which point the Arduino received the information correctly.  Currently this appears to be rather slow, and the computer is unable to respond to the puck quick enough, so we will have to investigate means of speeding this communication up.

Finally, to ensure that the Arduino and Raspberry Pi was on the same page, we had to 
define how many pixels the board dimensions were, which the Arduino can interpret as a certain number of steps. All of this put together, we are now capable of sending
information to the Arduino, and the Arduino will respond accordingly, and for the first time, we have a rudimentary prototype. 

Other than that, we have made more progress with the presentation, added the cosmetic 
plates on the bridge, and aided with integration across the board. 

,

Leave a Reply