Andrew’s Status Report for 3/8

Now, we have a complete picture of how the machine will look like. We closely examined the required parts and their specifications more closely to make sure they all meet the design requirements we have set for this project. Admittedly, we did run into some problems due to parts we have bought/borrowed that actually did not entirely meet our requirement. However, we have accommodated those and are ready to build the machine starting this week. That is, unless the extra parts we bought arrive late. However, since there was one week gap for the parts to arrive, it would be unlikely.

As specified in the design report, the final size of the machine body will be a 20 x 20 x 6 cm  wooden box, made by combining mdf plates. The size was chosen after creating virtual images of the assembly as shown above, getting a general sense of the amount of space that would be required for all the parts to fit inside. Although we do not have the dxf file for the wooden plates yet, I am planning on quickly creating those this Monday and hopefully cut them by Tuesday.

Then I will assemble those in to a box and add the caster wheels so that I can adjust the placement of the servo for central rotation. Then, I will add weight in side the box to simulate other parts other than the uno to see if we need to buy a different motor shield to support external power supply or the servo. The one we have currently does not, so it will be drawing power from the Arduino, which is generally not a good idea. However, considering that the load is not too heavy, we thought that the servo may end up not drawing too much current.

In short, it was mostly final polishing of the design plan before moving onto the actual assembly.

We are on track in terms of schedule, and if the servo and the 3D printed dispenser case does not cause any trouble, we will very ahead of schedule by the end of this week (though that would be highly unlikely).

Team’s Status Report for 2/22

One thing that we failed to foresee is the cost of 3D printing. Whenever there were some parts that seemed ambiguous to purchase or required complex and custom design, we decided we would use 3D printing to make that. However, we only realized later that 3D printing will cost a lot, given the size of the parts we’re trying to print. As such, we would have to aim for reducing the number of trials and errors of printing. Our plan is to make the design as precise as possible to work as we intend it to be. To that end, we’re carefully considering the dimensions of the parts and trying to have a concrete overall design for our parts to assemble later.

No significant changes were made to the existing design of the system. After realizing that adding too much load to the servo may draw too much current, possibly causing problems with the arduino that will be powering it through the 5V line. So, we may decide to use a weaker servo for the dispenser to draw as less power as we can from the arduino, and we are planning to add 4 caster wheels to support the weight of the machine body for spinning.

This will mean additional budget use for buying the wheels, but it is minimal, and we have not used much of the budget so far, so it will be fine.

Motor control code ended early, so Andrew will be helping with building the dispenser and case. Hopefully, the dispenser will be done earlier than we expected.

We have confirmed that the servo works fine. Additional tests will need to be done to see if the 5V power supply from the Arduino will be enough when we add load to it. Such concern was the exact reason why we decided to add wheels to the design for additional support while reducing friction.

Andrew’s Status Report for 2/22

We got most of the parts required for the main portion of the project we will be focusing on (everything excluding three user input sensors), so I got to test the motors this week. I was personally surprised by how easy it was to move the servo when using the Servo.h library provided by arduino. I thought I would have to program the PWM signaling myself, but turns out I don’t, so that left me more time to add touch to other parts of the project.

Since I already have an idea of how the communication should work between the arduino and the RPI, I quickly coded the partthat will do all the parts requiring a servo (dispenser card push mechanism, machine spin mechanism).

Considering that I cannot do much with the motors without the case to hold them together, I lended some help to my team member who is working on the CAD modeling.

I also contacted the CMU fablab in techspark to get some help in 3D printing and cutting wood for the case. I have not gotten a response yet, but I expect to get one by next week Monday. Then, I would be able to quickly design the 2d layout of each pieces of the case (this won’t take too long, since it’s just a large rectangle with some holes and joints here and there) and cut it out.

I am still figuring out the battery and DC motor, because I am personally not very familiar with the current requirements. It is written in the schematic, so figuring out the voltage was easy, but I am still taking time to understand how exactly I am supposed to interpret the sheet in figuring out the proper amp.

I also received the card shuffler, but the way it functions was slightly different from how we imagined it, so we will need to adjust our plans on how the cards that are shuffled will be moved over to the dispenser. I do have an idea of how this can be done using a servo, but we already ran out of space for an additional servo, so we will need to figure that out somehow, possibly using extra arduinos we personally have.

Because coding the motor control was much, much, easier than I thought it would be (didn’t know arduino library was a thing), I am very ahead of schedule now. I just need to get some advice in battery selection before shipping it. However, we actually have some more minor parts that we need to order yet because we are still figuring some things out.

These include: 12v battery, rubber band for the dispensing cylinder, more FRS (only 1 got shipped when we need 4 due to an error), weight sensor (figuring this one out as well to make sure to not waste money), carpet for the poker table, and possibly some set of attachable wheels (found out that this will be very useful for assisting machine rotation while distributing weight load on the servo).

So, I plan to figure out all of them next week and buy everything by then, so that we won’t have the issue of not having parts by time.

Andrew’s Status Report 2/15

This week, I focused on figuring out how exactly we would implement the machine. I discussed a lot with the team to make a final decision on how we would deal with the input. The rest of the machine stayed about the same as how it was in the proposal. However, the input has changed a lot more ‘realistic’ after taking in feedbacks from our instructor and TA.

The general idea was that using a button takes away a lot of the fun that players feel when playing poker. For example, the act of throwing cards when folding and pushing chips when betting. So, we decided that we would need to use both motion detection and weight sensors to allow the user experience to be as real as possible. It would definitely be a burden on our workload, but we thought it would be manageable as long as the dispenser does not give us a headache.

That is why I searched a lot to see what would be the best motor to use for the purpose of our project and how it should be integrated. Because I have never used a dc motor before (unlike servos, which I am used to), it took me a while to decide which motor would be sufficient. Not too weak, but not unnecessarily strong. Having an unnecessarily strong motor would be a huge down factor for power consumption and weight, so we took some time to decide.

Now, we have all the components ordered, and will be ready to start building.

Since motor control will mostly be PWM, I skimmed through past projects I did that involved PWM and l reviewed the relevant lecture slides (from embedded systems).

Because I haven’t actually coded yet, I can say that I am slightly behind schedule, but I am confident it wouldn’t be too much of a problem, as getting the motors to run is not too difficult (at least, based on past experience).

We recently got our hand in an Arduino, so I hope to start coding in there and connect it to the motors to get it running. Then hopefully, we will get the dispenser case printed and attach the motors.

Team Status Report 2/8

At this point, we think our ambition has pushed us to have diverse features, each being quite challenging. Even though we got rid of many components after receiving feedback from the initial meeting, since we strived for seamless integration and smooth gameplay, we ended up including new components, such as player motion detection and resistive sensor. As the complexity was added, we’re trying to split work as efficiently as possible and also start early. In case we’re short of resources(time), we have a set of features that we’re thinking of that are the minimum requirements of our project. As such, if we end up having short of time, we will dispose of those ideas and reinforce our already-implemented features.

We opened the possibility of using a screen as output for communicating with the players. We thought that it may be easier to implement than an audio output. We also narrowed down to work with 4 players at maximum (not 8), which avoid us from struggling with blind spot for using a display as our communication. 

Based on the feedback we received during the presentation, we thought that pressing buttons for check/raise/fold could be tiresome to the players. We’ve come closer to the idea of attaching an additional camera to the machine for detecting raise/fold and putting resistive sensors for detecting checks (double tapping). 

No change in schedule yet. Everything is on track.

Andrew’s Status Report 2/8

This week was mostly finalizing the design and preparing for the actual building and coding. I worked on taking in feedbacks from Proposal and deciding on the final design. Then I searched for appropriate parts to use for the design. Then I realized that there was an inventory that we can use to borrow parts. So I checked the list and found that there existed lots of Raspberry Pis that we could use. Unfortunately, there wasn’t an Arduino.

Our goal this week was to purchase parts and do some research, so I can we are on track. Next week, I need to start coding the motor control logic for our dispenser.

Martin’s Status Report for 2/8

Personally for me, after I received some feedback on the proposal presentation, I shared my thoughts with the team and we managed to have some constructive discussion. 

  1. Need to have Arduino in addition to Raspberry Pi?

A: Utilizing arduino along with raspberry pi will further empower Raspberry Pi by sharing workload and reducing the bottleneck.

  1. 99% accuracy card detection is not enough

A: We definitely agreed upon this and we also thought it wouldn’t be too hard to make the accuracy 100%, as there are only 52 cards for the model to learn, which wouldn’t be too complex.

  1. Using resistive sensor for player input (player move)?

A: We reached the conclusion to ultimately conform to this suggestion and embrace a resistive sensor for the “check” move. Furthermore, for other moves, we slightly changed our approach and are trying to attach a camera on the dealer system which could track the player’s motion and identify if it’s a “all-in”, “raise”, or “fold”

Created & Prepared for the proposal presentation!

Our team and my own progress is on schedule, where we discussed and finalized the parts to buy and submit purchase orders.

By next week, my goal is to start learning how to make object detection model to be functional on a raspberry pi by referring to online tutorials.