TEMPORARY PRESENTATION LINK HERE.
Give an overview of your project idea (what it does, what it looks like, etc).
Originally, I wanted to make a cube shaped pocket-sized artifact which displays an animation over it’s surface. The animation changes according to the data it has accumulated over a period of time, making each artifact contain a unique visual pattern. It is possible to connect two artifacts to change and “breed” their content.
The idea evolved into a device which uses light to create a dialogue between users in different places. Each device dialogues over the internet with another device. Whenever a user taps or moves the first device, it affects the animation on the second device in real-time. My purpose with this is to explore what types of interaction can evolve from a conversation with light.
For the prototype, I made a single-panel device connected to an ESP32 which communicates through Websockets with another Arduino with a sensor. If you tap the accelerometer connected to the Arduino, it triggers a different animation on the panel. I also made a website which can trigger the animation too. In the future, I would like to have more control over the sensor and communication protocol, but for now it was enough proof of concept.
Include any drawings, images, or reference materials that are helpful for us to understand your idea
I decided to go for an ESP32 Huzzah breakout board made by Adafruit in order to make the project. The board includes an ESP32-WROOM-32, and the board itself only adds a regulator, some protection diodes, two buttons, and an LED. You can see the board below.
According to the description page, “That module in the middle of the breakout contains a dual-core ESP32 chip, 4 MB of SPI Flash, tuned antenna, and all the passives you need to take advantage of this powerful new processor. The ESP32 has both WiFi and Bluetooth Classic/LE support. That means it’s perfect for just about any wireless or Internet-connected project.” The ESP32 itself is made by Expressif, based in China. And the datasheet for the ESP32 can be found here.
I also found Adafruit made a detailed guide on how to set it up using the Arduino IDE, which you can follow here. Below are closer images of the microcontroller.
Here I found the .sch and .brd files made by Arduino for the LIS3DH triple-axis accelerometer.
PCB files for Adafruit NeoPixel 8×8 Matrix can be found here .
Bringing it all together
First I had to connect everything, and then go to the .brd file and make the board design. I went ahead and removed any unnecesary components and making sure every GND and power inputs were correctly addressed. Since I had already made the connections with the prototype made last week, it didn’t take me much time.
Looking over the process, I might say what took more time was to make it ‘pretty’. Making dimension guides are extremely useful, even more when you’re handling many components in a small space. Below is the predetermined way in which Eagle organized the elements of my board in the sketching area.
I must say, looking over the design made by Adafruit for their own RGB matrix 8×8 LED display I was impressed and overwhelmed. So I decided to sketch out the lines from DATA in of one LED to the next in order to see how to organize mine. After looking it over, however, they used vias for every LED. This would not serve my purpose since I wanted to keep my LEDs on one side and the main components on the other.
In the images above, I show the normal dataline in white. While the red and blue view is set to be red for the surface airwires and blue for the bottom ones. Since I would be making a plane for my GND, I could focus on just managing the DATA and power connections. The result is seen below, and in order to accomplish it I flipped every second LED to make the connections as fluid as possible.
After feeling good about the LED array, it was time to move on to the ESP32 and the other components on the bottom. The only limitation I had as to keep the ESP32’s antenna as close to the edge ofo the board as possible. And also, to take into account I cannot put the power connection jack beneath anything since it required holes.