Pattern Recognition Puzzle Prototype

This is a pattern recognition puzzle prototype.

Background

For the purposes of this puzzle, assume the player is to open a suitcase that is locked. There are four numbers in the combination lock. The player must extract the combination from the poem below.

Poem

Blank is the state of my mind
Blank is tomorrow’s headline
Blank is the air we breathe
Regardless I fancy a sneeze

Fear is the worst enemy
Remedy of peanut butter and jelly
For control the ultimate illusion
Nothing more than just a human

Tomorrow I will never know
Tonight we’ll make it a show
Slivers of hope, together, never apart
It resides here, at the depths of my heart

Documenting Sunset Park

Final Idea Brainstorm

For my final, I’m considering doing something along the lines of documenting and mapping the racial distribution of businesses in Sunset Park. Sunset Park is a neighborhood in Brooklyn, NY with a relatively diverse racial composition mostly split between Hispanic and Asian families.

Sunset Park has an interesting dynamic. There is a wide range of ethnic businesses starting from Chinese, Vietnamese, Korean, Guatemalan, Peruvian, Mexican, Columbian, Jewish, African-American, to even Egyptian businesses.

What is considered as an ethnic business?

For the purposes of this class, I will be examining businesses that target specific demographics, apparent by signage, identity, types of businesses that are offered, value propositions they propose, and other indicators.

Throughout this class, I will be collaborating with Max. He will map ethnic businesses in Williamsburg. We will then analyze the two neighborhoods and identify possible correlations between racial composition and the availability of ethnic businesses.

Data Documentation

Remote Connections

Even before the COVID-19 global pandemic, people have been having trouble making emotional connections with each other if they are physically apart. This is true of long-distance romantic relationships, people wanting to stay in touch with families and friends who live abroad, and even people who do remote work on a daily basis.

Some statistics:

The issue with establishing and keeping connections remotely is that it requires a high amount of effort to accomplish. Even with the ubiquity of VoIP and video calls, people still have to jump through hoops to connect with someone far away.

I personally have been and currently am facing this difficulty as an international student living in New York. A few of the pain points are listed below:

  • It requires effort to schedule video calls, phone calls, or even text chats when the people you’re trying to connect with are at a different time zone.
  • Even when schedules are lined up, there are often technical difficulties such as when people don’t have the proper software installed on the computer or someone has a slow internet connection.
  • Video calls are very intimate and for the most part, require a conversation to happen. Some aspects of relationships exist in simply feeling the presence of the other person without any active collective activity, this is still missing.
  • Often times, the other person only exists through a small screen, there is no illusion that the other person is actually there with you.

Virtual Escape Room Idea

This work is done through the collaboration of Martin Martin, Helen Zegarra, and Candy Yang.

The original goal of this class for me personally was to build an escape room that is fun and physical. Due to the fact that pretty much all of us are constrained to our apartments, we’ve decided that we want to build a single-player unsupervised online experience without a game master instead. This will enable the experience to exist permanently on the internet and practically anyone with a stable internet connection and a web browser can access it.

We brainstormed together and fell in love with the idea of having a narrative story that involves the use of an unreliable narrator. We think that this plot tool can be used to add suspense and excitement while playing. This is important to us because not having the user physically present at the site will create a situation where the user can easily give up on playing the game. However, after reading some material and having a discussion about it, we realize that putting too many red herrings in the plot tends to be offputting to the players.

So far, we’ve come up with this storyline:

  • The player is a private investigator hired by a lifesaving company to track down a thief who stole a secret formula. This secret formula is needed to start the production of a miracle life-saving drug.
  • After some investigation, the player will be able to track down the name of the thief. A series of puzzles will be played on this stage.
  • The player find the diary or notes of the thief after doing some hacking.
  • After reading the diary, the player realizes that this thief is an investigative journalist/reporter and the company that hired them is actually evil.
  • In the end, the player will be faced with a decision between good and evil.

Some more notes are available in this google drive link

Tangible Touch Bar

So I own a 15in MacBook Pro with the polarizing touch bar. Some people love it, some people (myself included) hate it with a passion. The lack of tactile controls results in so many accidental touches, and if you are in the terminal a lot (which I am), the lack of a tactile escape key is simply unsatisfying. Thankfully Apple fixed the escape key in the new iteration of the MacBook Pro, but sadly I am but a poor grad student and managing money is a key aspect of my life now.

The Project

This project is for the creation of a tactile touch bar replacement. It keeps the functionality of my current touch bar, with a tactile feel.

Parts List

Some Links

The Computational Process

I utilized the Arduino HID Project to create this touch bar. The library allows the Arduino MKR 1010 to act as a USB keyboard. I simply tell it to send a certain keycode and the computer will act as if a certain key is pressed on the keyboard.

The difficulty I faced when I was developing this was to find the right keycode for the things that I want. Some of them are documented, whilst some are not. To do this, I wrote up a simple script that will send all of the keycodes one by one. Through this, I was able to find the keycode for turning my screen brightness up and down. However, I still wasn’t able to find the keycode to turn my keyboard backlight up and down, and the keycode to lock my screen.

On the circuit side, it’s much easier. It’s simply 12 buttons connected to the digital inputs of the Arduino. Very simple.

Some compromises I made:

  • I still couldn’t find the keycodes for turning the keyboard backlight up and down
  • I still couldn’t find the keycodes to lock my mac

The Fabrication Process

This was very difficult for me. I had the idea of creating a thin small piece the exact size of the original touch bar with a custom board inside. There were a few problems with my original idea:

  • Learning Eagle proved to be too large of a barrier of entry for me. Though I think this will still be manageable if I put a significant amount of effort into it.
  • The super small and thin buttons I wanted to use didn’t fit my protoboard.
  • They keycap mechanism added a significant amount of thickness to the product.

After some back and forth, I landed on the decision to build it with acrylic that is cut on the laser. It has a bottom piece, middle piece, and top piece (please see pictures on the bottom of this page for more detail). Thankfully I was able to do it on “turbo mode” before the ITP facilities became unavailable.

Some compromises I made:

  • I didn’t get a perfect fit on my keycaps, so it wobbles a bit.
  • I didn’t get to paint it. I was going to paint it with metallic silver paint. Ideally, I wanted the body to look exactly like the MacBook brushed aluminum body.
  • I didn’t get to engrave the button labels on the keycaps. Instead, I made a makeshift label using sticky notes cut with a hobby knife.
  • I had to glue the whole thing down. Ideally, I wanted to create some sort of friction fit mechanism using the mill. The motto of “Screw it, don’t glue it” turned into “Screw it, I’m gonna glue it

Project in Action

Touch Bar in Action

Pictures

First Prototype
First Prototype
Front, back, and middle pieces
Keycaps, made by gluing two pieces of acrylic together
Protoboards put inside assembled enclosure (without the top)
Closer look at the body
Keycaps along with the top part of the enclosure. I use tape to keep them in place.
Enclosure fastened with acrylic glue
Touch bar sitting on top of the keyboard
It’s still pretty thick

Reflection

All in all, I am mildly happy with this project. Considering everything that is going on, I’m happy that this project works and it does not look too bad. Also, I am happy that I was able to perform the fabrication part of it before the facilities became unavailable.

Did I achieve what I wanted to achieve? Probably about 70% of it.

Did I learn new things? Yes

Is this product a product that I want to use every day? No

Can this product be iterated upon into something I’ll want to use every day? Yes

Environmental Monitor

The Project

A device that records environmental data over time and send it to an online database.

Parts

  • Raspberry Pi Zero W
  • SSD1306 Oled Display
  • MCP3008¬†Analog to Digital Converter
  • TMP36 Temperature Sensor
  • Plywood and Standoffs (for the enclosure)

How it Works

The entire device runs on the Raspberry Pi Zero W. The display and sensor are passed through the GPIO pins of the Pi. I used cron job to run a node.js script that records the temperature every 5 minutes and sends it to the server.

Some Things that Didn’t Work

  • I tried to use a MAX4466 Mic Amp to record noise pollution level. However,, it was not sensitive enough.
  • I also tried to use a Yeti USB Mic to record noise pollution, but it also didn’t work out because the pi needed an external sound card.
  • I wanted to do an aruino based device and a raspberry pi based device running side by side to compare the two, but unfortunately I ran out of time.

Links

Color Matching

This week me and my partner Emma are making a prototype of a dating app.

The Premise

You are responding to a call to create dating experiences where couples can test how well they can communicate without using words or symbolic gestures. Is the other person a good “listener”? Do they give you room to lead? Or conversely, are they too timid and always waiting for you to take the lead?

The One Liner

We are making a color matching game where the compromise is key!

How it Works

1. The players (a pair of would-be lovers) sit across from each other with two laptops in-between them, one facing each player.
2. Each player selects a color in the color wheel presented on the laptop screen.
3. One phone will be given to the two players (to share)
4. The players hold the phone together and rotate it around to try to find their color.
5. In the ideal world, both players will be able to pick a color that is equally close to their color.

Links

Github
Glitch

Philips Hue Controller

The Project

I am making a tangible controller for the Philips Hue. It’s quite a rudimentary controller, the controller will be able to turn a singular light on or off, and it can also control the brightness, hue, and saturation of the light.

How it Works Part I – The Network

In each of the Hue Bulbs, there’s a small wireless receiver that will receive signals from the Hue Hub. The Hue Hub is essentially a small web server that runs on the local network which will send in Zigbee radio requests to the bulbs. We can communicate easily with the hub by sending Http requests to it to change the state of the bulb (the API of which is very well documented here).

System Diagram

How it Works Part II – The Controller

For this particular project, I am utilizing an Arduino MKR 1010. I am using this particular microcontroller because of its Wifi capabilities, any other Wifi capable board or a regular board with a Wifi shield will do.

I am keeping it very simple, just three rotary encoders, with one display. Very straightforward.

Circuit Diagram

Pictures

First Prototype
Final Prototype – Front View
Final Prototype – Side View

Videos

Links

Own Time Clock

You know in the past some people set their clock 10 minutes early so that they are not late for things? Well, the issue with that is they are fully aware that the clock is 10 minutes early. At the end of the day, they will still be late for things.

The issue is that people will still know precisely how early their clock is. To combat this, I am making an “Own Time Clock”. The idea is that the clock will always be between 0 to 10 minutes early. Every 13 minutes, the clock will decide how early it wants to be compared to the reference time. This way, the person reading the clock will have no idea how early it is, therefore ensuring some level of earliness.

The clock will be controlled by a knob (rotary encoder) on the back. A push in the knob will change the mode, and the rotation of it will adjust the value of the hour, minute, and second on the clock.

Circuit diagram
View from the back
View from the front
From the side

Links:
Arduino code
Panel illustrator file