Team Status Report for 11/9

Hardware Info:

RPI SSH cheatsheet: how to ssh into an rpi on CMU-DEVICE:

  • ssh username@IP

how to reboot rpi:

  • sudo shutdown -r now

MQTT communication format:

  • Index 0: Sender ID
  • Index 1: Receiver ID
  • Index 2: Task ID
  • Index 3-end: Data

 

This week, we interfaced the wireless communication and the hint logic, creating a basic setup where given a board state on the main Pi and a tile rack on the Rpi0, we can generate all of the possible words on the main Pi and send it back to the Rpi0. We also created a communication system that will standardize all of the communication that we will do between devices.

Jolie’s Status Report for 11/9

Last week, I finished up the hint logic, fixing some of the last little bugs as well as generalizing the algorithm to the vertical direction. Denis is now able to run the hint logic on the main RPi and can send receive hints with the RPi0s.. Also, I set up the gooseneck camera mount. I laser cut a platform (rectangle with four holes in it so that I could zip tieĀ  it to the top of the camera mount we bought). I then was able to clip the ring light onto the platform. The RPi and RPi camera rest on the platform and the camera is looped through the ring light. The picture below is what the mount + platform looks like (without the RPi on it). The other picture is what I took from my phone camera. Just from that, we can see how the ring light really helps eliminate shadows that we were seeing before.

Last week, I wrote a preliminary scoring function where letter and word multipliers are taken into account (but haven’t tested it yet). This upcoming week, I plan on testing the scoring function as well as writing the function that takes in the newly placed tiles and validates/scores all the newly created words.

After this week, I feel more confident that we are running on schedule, but we must not let up and finish strong this last month of the semester.

 

Team Status Report for 11/2

This week we made big strides with the hardware components of the project, getting 2 raspberry pi 0s to communicate with each other. We are waiting on a couple more parts to come in, which are holding us up right now. That is currently a big risk, but we are trying to mitigate that by developing as much as possible around that, including writing a thorough skeleton code for each of the RPi’s.

Cody’s status report for 11/2

I’ve spent some time trying to incorporate edge detection into contour recognition for the OCR, but I’m growing convinced that is not the way to go, as it has not seemed to help with recognizing the contours of characters without curves. I instead am beginning to believe I need to instead get the preprocessing as good as possible, as it currently is fairly grainy and has some noise, despite some attempt to reduce it. I’m going to continue improving this next week as well as put together the logic to combine adjacent characters into words.

Denis Status Report for 11/2

This week I was able to make strides forward with the hardware components of the project. The biggest step was getting two Raspberry Pi’s communicating with each other and sending data back and forth. I also moved them from my home WiFi to CMU-Device, which will be important for the demos. I was hoping to also start working with the LCD touchscreens but they have not come in yet, I think that I filled out the form too late.

In this next week, I would like to begin working with the touchscreens and developing the program that will be running on each of the RPI0s. I would also like to begin working on the battery packs that will be powering the Rpis. I would say that I am slightly behind schedule but should be able to easily catch up provided that the hardware comes in this week. I am also planning on designing the case that we will be putting the RPi 0 and the batteries into.

the two raspberry pi’s communicating. The time listed is total latency from A->B, calculations, and B->A
current rpi setup

Jolie’s Status Report for 11/2

This week I made a lot of progress with the hint generation. Right now, we can find all the horizontal words possible given the state of the board and rack. There is still one bug that I need to fix dealing with anchor squares which also have a filled square to the left. I just need to remove those anchor squares from the anchor list so that invalid words don’t propagate through, which shouldn’t be hard to fix. I also need to generalize the algorithm to the vertical direction. The hard part was already done in the horizontal direction, so the vertical functions should be easy to implement as they are just the transpose of the horizontal functions. Shown below is a snippet of the list of valid words, along with there start and end square, that the backtracking function returns.