Cody status report for 10/26

This week, I primarily spent some time discussing feedback for our design report as well as completing the required individual ethics assignment. Due to having two projects and an exam for my other courses, I did not have capacity to further develop the software of the project much. Next week should however be more available. I hope to improve recognition of curve-less characters by either improving preprocessing or incorporating edge detection.

Denis Status Report for 10/26

I did not have as much time as I anticipated this week outside of the ethics assignment, but still managed to get a little bit of progress towards the hardware side of the project. I have a single Raspberry Pi sending messages to my laptop, on a timer. Hopefully, by the end of the weekend I will have the RPi receiving a similar message and flashing a light or some sore of signal to prove that it’s been received.

For this upcoming week, I need to have 2 RPi’s commnicating with each other. As soon as I have that I will pivot to working on the LCD touchscreens, beginning with a static image of what we want it to look like and then working to a dynamic set up where the user can press a button and then see the signal appear on the other RPi.

I would say that I’ve fallen slightly behind schedule, however this next week should be free enough for me to catch back up.

Jolie’s Status Report for 10/26

Last week, I mentioned I was a bit behind on hint generation. I was able to catch up this week and made some good progress. Shown in the attached file, I added a function which updates cross-checks after a word is played. The next step is to implement finding prefixes and suffixes given an anchor square. I need the data structure of the language for that. The article we are basing the algorithm off uses a Directed Acyclic Word Graph. I found an open source implementation of the DAWG and will discuss will discuss with the team tomorrow when we meet what the think of using it.

Team Status Report for 10/26

We forgot to put these FSM diagrams in our Design Report. We wanted to document them here to eventually edit and add to the Final Report.

 

 

As of right now, the hardware part of our project is slightly behind. We have one Raspberry Pi communicating with my laptop, which was slightly behind our goal of having two of the Raspberry Pis communicating with each other. This is just a result of a congested schedule this week and hopefully we should be back on pace by next week. Luckily, nothing is super dependent upon the hardware right now so it does not pose much risk to our overall project.

Denis’s Status Report for 10/19

This past week I spent the majority of my time working on the design report. I wrote most of the second half of the design report, asking my groupmates the specifics of their parts of the implementation. This upcoming week, I’ll begin working with the RPi0s, and my goal is to have them communicating using MQTT by next Saturday. I think that individually and as a group we are on pace to complete our project, but our next 2-3 weeks will be very important for the success of our project.

Team Status Report for 10/19

There were no changed made to the existing design of the system in the past two weeks. Shown below are some of the processed images of words on a Scrabble board that Cody used to find the contours of letters. As he noted, some of the curve-less letters are harder to pick up.

Part A (Written by Denis): Scrabble is a global board game, with over 150 million copies sold all-time. This means that most people are at least tangentially aware of what Scrabble is.  We are attempting to make our project have a global use case by using low cost materials and portable, common power sources. The only major difference that we would have to make would be adjusting the plug that we put into the outlet, as that changes depending upon where you are in the world. If we were to create this as a world-wide product, we would have to adjust the powering of our main RPi, in order that it could work overseas. Another consideration we have made would be for those who are more unfamiliar with tech. If we were to create this as a product for consumers, we would likely send it as close to being ready as possible, and with a detailed user manual for setup/calibration.

Part B (Written by Jolie): Scrabble is sold in 28 different languages across the world. Those 28 languages encompass a large portion of the world’s population. Although our project is geared towards the English version, all that would need to be done differently is to use a different letter recognition library that can interpret characters from various languages and a Scrabble dictionary in that language. Aside from that, Scrabbletron would be versatile enough to be used in any other country where one of those 28 languages is spoken because the rules of the game remain the same. Across these languages, the need for an aid to the administrative tasks of Scrabble persist, so our project will meet these goals in any language.

Part C (Written by Cody): While we have not identified any serious environmental concerns, there are a few considerations to make for a project like ours. First, our system uses power for the CV computation and LCD displays. The plant generating this power could certainly have environmental impacts, so it’s important to make our system as energy-efficient as possible by writing quality code. Secondly, we have considered the impact of the physical materials our system uses. We are introducing multiple electrical components to the standard Scrabble setup, some of which (like the displays) have batteries which could be environmentally harmful if disposed of improperly at the end of their life cycles. One marginal improvement we’ve made to limit the physical materials is the switch to wireless communication.

Jolie’s Status Report for 10/19

Last week, I worked on getting pictures of the Scrabble board using our RPi camera that will be useful for testing the computer vision. Cody and I took these pictures together; he held a phone flashlight for appropriate lighting and I held the RPi camera in place. The set of pictures we took includes one valid word horizontally, one valid word vertically, one horizontal and one vertical word crossing each other, words on the edges of the board, and multiple words intertwining on the board with some invalid words. Having a variety of pictures with a better angle and better lighting than last time will be better representative of when we get the gooseneck mount and ring light. I also worked on the design report, writing the first five sections of it. Timing wise, I’d say I’m a little behind on my work with the hint generation, so next week, I will focus more time dedicated to coding the hint module. Last week I did a bunch of work with cv image capture and I wasn’t able to do as much as I wanted to with hints.

Cody’s Status Report for 10/12

This week, I primarily worked on the character recognition software. After some research, I found it was likely the best to first run some preprocessing to convert the image to black and white, then isolate and draw onto the original image the contours of each character for better performance of the OCR. Currently, most characters are able to be recognized, but some without curves (L, T, I, etc) are proving more difficult. I plan to further tune some of the preprocessing and contour recognition to improve this. Once the individual characters are identified, I will work on the logic to build adjacent characters into words and eventually map them to the board for score calculation. Additionally, I assisted my team with the design report.

Jolie’s Status Report for 10/5

This week, I began coding some of the hint module. In the paper which we are basing the algorithm off of, they use something called cross-checks (possible letters that can fit in a word vertically if a horizontal word is played and vice versa), and I wrote a function that takes in the state of the board and updates the cross check set for each square. I also wrote a function to find anchor squares (empty squares directly adjacent to filled squares), which will be a starting place for word generation.

I got the Raspberry Pi camera set up and took a picture of our Scrabble board to start with initial testing with our cv. It was hard to get a great angle with the Pi camera so making some sort of intermediary rig might be helpful for the future. Here are the pictures I took:

Denis’s Status Report for 10/5

This week I researched the specific RPi models and LCD screens that we should use for our project. I also began looking into the MQTT protocol and how that can be implemented on the RPis. This upcoming week, I plan on beginning to interface and send data between 2 RPis as well as beginning to create an interface that we’ll be able to use on the LCD screens. My plan is to create a mock-up for what we want the screens to look like, and ensure that we can receive an input from the touch screen. We are on pace for our project.