Final Project: Little D

Team Member: Yuan Chen, Yiting(Lora) Lu

Little D is a robot acting as a mailman,
deliver messages people can't express orally, or in person.

It acts as a courier for anyone in any relationship to help people express their feelings to the other person while protecting themselves' feelings as well.


Concept:

Some sentences just challenging to express, like: 

I am sorry.

Elton John wasn’t kidding: Sorry does seem to be the hardest word. Some people find it so hard to apologize that getting them to admit to even the smallest wrongdoing involves a significant battle—often, a fruitless one. Although we might perceive the reluctance of these non-apologists as pure defensiveness or pride, a far deeper psychological dynamic is often at play: Refusing to apologize often reflects efforts to protect a fragile sense of self.

We need a courier in our relationships. Kids become couriers for their parents a lot. Our team wants to create a courier for anyone in any relation to help people express their feelings to the other person while protecting themselves’ feelings as well.

Source: Shutterstock

Source: Shutterstock

How it works:

This robot Little D sits on wheels powered by motors. It carries a display board, and moving randomly in the room. When Little D detects a person’s face through the camera on the top, it plays music to attracts the person’s attention. When he/she squats and pick up the cute little guy, he/she will see the message. In this way, Little D mitigates dramatically emotional moments, and provide possibilities to fix relationships.

The Components:

Ultrasonic Distance Sensor

Distance Sensor is the eye of Little D.
It avoids the robot run into walls and table legs, and run around the space freely.

15569-Ultrasonic_Distance_Sensor_-_HC-SR04-01a.jpg

SparkFun Ardumoto Shield Kit

Little D is on wheels to approach the message receiver, and move around the space to attract people’s attention.

OpenMV Cam H7

It is Little D’s eye. The camera detects a person’s face and triggers the buzzer to make sounds. 

The sound will attract the message receiver’s attention.

Mini Speaker

When triggered, play music to attract people’s attention.

SparkFun 16x2 SerLCD

Display the message needs to be delivered.

 

The Building Progress:

Sketch 1.0

The first draft demonstrates some essential functions Little D can have. The appearance and technical details had not been thought through at this stage.

Sketch 1: A robot on the wheel. We are considering display options, distance sensor, gesture detector.

Sketch 1: A robot on the wheel. We are considering display options, distance sensor, gesture detector.

Sketch 2: We are wondering how to display the “sorry“ message in a much impressive way.

Sketch 2: We are wondering how to display the “sorry“ message in a much impressive way.

Test Sensor

1. The connection between motors and distance sensor.

IMG_4403.jpg

2. Add an LCD screen to display emoji and the message.

IMG_4454.JPG

3. Test the robot in the studio. The robot runs in the space without bumping to anything.

4. OpenMV camera talks to the Arduino board: When detecting a human face, light up the LED light bulb.

Schematics

Two Arduino boards run little D. One for connecting distance sensor, motor, and LCD. One for the connection between the buzzer and OpenMV Camera.

Screen Shot 2019-12-12 at 12.13.23 AM.png

Code

The Arduino code: Distance sensor+LCD display, OpenMV Camera + Buzzer

Here is the OpenMV code.

Final Project: Proposal

Team Member: Yuan Chen, Yiting(Lora) Lu

Problem:

Some sentences just difficult to express, like: I am sorry.

Elton John wasn’t kidding: Sorry does seem to be the hardest word. Some people find it so hard to apologize that getting them to admit to even the smallest wrongdoing involves a major battle—often, a fruitless one. Although we might perceive the reluctance of these non-apologists as simple defensiveness or pride, a far deeper psychological dynamic is often at play: Refusing to apologize often reflects efforts to protect a fragile sense of self.

We need a courier in our relationships. Kids become couriers for their parents a lot. Our team wants to create a courier for anyone in any relationship to help people express their feelings to the other person while protecting themselves’ feelings as well.

Source: Shutterstock

Source: Shutterstock

Interaction possibilities:

SparkFun RGB and Gesture Sensor - APDS-9960
Related features: proximity detection, and touchless gesture sensing

SparkFun Ardumoto Shield Kit

Related features: get your Arduino device set up to control a simple two-motor-circuit buddy.
The small robot is on wheels, helping to approach the message receiver.

Adafruit NeoPixel Digital RGB LED Strip

This is the strip with white flex PCB, its identical to the black 60 LED/meter except it has a different color mask on the flex strip

Sketch 1.0

The interactive device approaches to the message receiver. The receiver can interactive with it. Ideally it’s also carries the feedback massage back to the sender as well.

Sketch 1: A robot on wheel. We are considering display options, distance sensor, gesture detector.

Sketch 1: A robot on wheel. We are considering display options, distance sensor, gesture detector.

Sketch 2: We are wondering how to display “sorry“ message in a much impressive way.

Sketch 2: We are wondering how to display “sorry“ message in a much impressive way.

Midterm Project: CUBEVERSE

Team: Xiaofang Fan, Hyelim Lim, Yuan Chen, Bowen Shen

Cubeverse is a 6*6 inch interactive cube. The player constantly changes the lighting output inside the cube by flipping the cube around in hand. The playful experience helps the player to feel empowered and keep the world in hand.

Snapseed 2.jpg

Inspiration:

“Give me a firm spot on which to stand, and I shall move the earth.”
— Archimedes

Most of the time we humans are dissuaded by natural power from making moves. Our team shrinks the world to the size that a hand can hold, inspiring the player. This playful campaign demonstrates that even small actions make a difference. Even a small finger move counts. We hope the player will be inspired and without fear.

inspiration2.png
 

Concept: A PLAYFUL INTERACTIVE CUBE

By flipping the cube to certain angles, the player dramatically changes the visual in the ball (a.k.a. the “universe” in the ball). There are multiple options available for combining angles and directions.

Concept sketch

Pictureinspiration.png
cube1.png
cube3.png
 

Process:

Research on sensors: Sensors That can detect movements:

Tilt Sensor
Tilt Sensor - AT407

This AT407 basic tilt switch can easily be used to detect orientation. Inside the can is a ball that make contact with the pins when the case is upright. Tilt the case over and the balls don't touch, thus not making a connection.

Accelerometer Sensor:
Triple Axis Accelerometer Breakout - ADXL335

Breakout board for the 3 axis ADXL335 from Analog Devices.
The sensor has a full sensing range of +/-3g.

tilt sensor.jpg

We chose the accelerometer out of these two options. The accelerometer has more adjustable features than the tilt sensor.

Research on materials

Lights:
LED strip has high flexibility and controllability. 

 
Picture1.png

Container
Our team chose black translucent acrylic sheets to build the container. Since we could not find readymade ones in the market, we ended up sanding a transparent grey acrylic sheets to achieve our goal.

Glue
Surprisingly, finding the right glue is a laborious job.
After testing several kinds of glue, including school glue and hot glue gun, we ended up using acrylic glue to put up the cube-shape container.

Get set up!

Get set up!

Glue all the parts together precisely.

Glue all the parts together precisely.

Structure Design

Brainstorming!

Brainstorming!

The final sketch

The final sketch

We're looking for a way that LED lights can blink in a 3-demential area, not just show on 2D flat surfaces. Upon multiple tests, we found that the closer the LEDs to the acrylic plates, the less illusion the lights would offer. In fact, being too close to the surface produces hot spots of light on the surface. We decide to build a structure inside the container to keep the LEDs to the exact position as expected.

We placed all the components onto an opaque black acrylic plate, including LED lights, a circuit board, and batteries. This portable foundation makes our debugging process and other inspections much easier.

Building the container.

Building the container.

Glue down all the components.

Glue down all the components.

Stretch LED lights onto the beams.

Stretch LED lights onto the beams.

Test the illusion effect.

Test the illusion effect.

Schematics

 

How the codes work

Code for this project can be found here.

Tilt detection:
The accelerometer reads three values: x, y and z. Through experimentation, we found that the orientation of the tilts could be differentiated by the changes in the 3 values compared to the baseline values (when the cube is sitting flat, upright, and upside down)

serial monitor.png

LED mapping:
After finding a way to detect different tilt orientations, we need to translate it into LED patterns. Since all LEDs are on the same strip, the way to control a particular LED is to call its index [ note that it is Zero-based numbering ] in the array. We've numbered all of the LEDs.

When the cube is tilted, if it is a "edge tilt," the two LEDs on the edge are lit up; if it is a "corner tilt," the LED at the corner is lit up. When the cube sits flat, all of the center LEDs light up.

tilt2.png

Calibration:
When we tested the circuit with a laptop, we used hardcoded average baseline values based on observation. From the serial monitor, we noticed that the baseline reading could be slightly different every time, and therefore we thought about a calibration function. Since the fluctuations are insignificant, this function is not a must-have.

However, once we swap the power with a 9V battery, the circuit responded inappropriately to the movements. Our assumption is that the baseline values have changed, so we've had to calibrate them every time the program runs.

This calibration process has two states— “upright” and “upside down”. The baseline values can be slightly different in these two states. The cube automatically starts to calibrate the upright state once it is switched on. When the calibration of the upright side is finished, is the LED lights at the base will be lit up in green. Flip the cube upside down, wait several seconds for the cube to finish the calibration process. Once it’s done, all the LED lights are lit up in green for one second, changed to purple, and start working.


Reflection:

What worked well:

  • The LED lights generally respond to the movement accurately.

  • The dark acrylic surface is well resonated with our concept of the universe.

  • The light is well diffused.

  • The whole object is self-contained. There’s no instruction needed before having hand-on experience.

What didn’t work well, or could be improved:

  • The changing pattern could be more gradual and accurate by calculating how much the cube is getting tilted.

  • It is possible to increase the number of LEDs without worrying that the power might run low, since LED lights are not lighting up at the same time. This feature could also help us create a more gradual change.

  • The effect becomes not as accurate when the cube is sitting on the sides, since we only coded for two states (upright and upside-down).

  • The shadows of the wires and pillars are more obvious than we expected. Could have been improved by increasing the distance between the pillars and the exterior cover, changing the interior design or using a more diffusive material.

  • The behavior of the LEDs could be more lifelike and natural. For example, when there are no movements, the central LEDs could change brightness softly as if it is breathing; when the cube remains inactive for a while, the LEDs get dimmer.

  • The calibration process can be improved. For now, it is not so intuitive and the user can not do it without learning instructions. 

  • Because the LEDs on the strip is only facing one way, it is hard to see the light from other directions.





 

Week 5: PROJECT: Serial Communication Phase2

Project: A Buzz Wire Maze

Group member: Heyu Zhang, Kimaya Malwade and Yuan Chen

Assignment requirement:
Continued from last week.
The goal for last week: concept, design, circuitry finished
The goal for this week: Processing code, serial communication, testing, iteration finished

Continuing working from last week, the team:

  • finalize the visual design of the game

  • write the program to make a communication between the Arduino and Processing


The Start Screen
The player starts the game by hitting the space bar, getting rid of the “starting” button in the middle of the screen and a small square controlled by sensors (distance sensor along the X-axis, pressure sensor along the Y-axis) appears on the top left corner of the screen.

Screen+Shot+2019-10-08+at+2.17.57+AM.jpg
Screen+Shot+2019-10-08+at+2.20.22+AM.jpg
 

Adjust the variables by playing with the sensors, the player sends the square to the bottom left of the screen, where the image of “Fin.“ located.

Screen+Shot+2019-10-08+at+2.24.15+AM.jpg
The final image only appears when the player reaches the Fin. point.

The final image only appears when the player reaches the Fin. point.

ATTENTION: Do not let the small square touch any of the blocks on the screen. Otherwise, the square will be sent back to the top right. Game restarts.

Untitled-1.gif
 

The Code
Download the code package here

The Demonstration Video

 

Week 4: PROJECT: Serial Communication(In Progress)

Project: A Buzz Wire Maze

Group member: Heyu Zhang, Kimaya Malwade and Yuan Chen

Assignment requirement:
1. one example of communicating between the Arduino and Processing
2. the piece should demonstrate a good (or funny) reason for existing

Scary Maze Game

Scary Maze Game

Buzz Wire Game

Buzz Wire Game

Inspiration:
Inspired by “Buzz Wire Game“ and “Scary Maze Game”, we are working on making a maze game. The player controls the movement of a small circle on the screen by playing with a distance sensor and a pressure sensor. If any part of the circle touches the barrier(color blocks on the screen), the circle will be forced to get back to the starting point (top left of the canvas) and restart the game.


 

Sketches

Image+from+iOS+%281%29.jpg

The Circuit Test

The Schematics

Image from iOS.jpg

the Test Code(Arduino)
(The team use this code to make sure all the components on the Arduino board work.)

the Test Code (Processing)
Let the circle back to top left corner when hit the red block

Screen%2BShot%2B2019-09-30%2Bat%2B1.40.26%2BAM.jpg

(To be continued…)

Week 3-2: Make a more complex toy

The Sorting Box: Welcome to Hogwarts!

Team member: Yuan Chen, Hyelim Lim

Harry Potter is a series of fantasy novels written by British author J. K. Rowling. The books have found immense popularity, critical acclaim and commercial success worldwide. They have been made into films later. The books have attracted a wide adult audience as well as younger readers and are often considered cornerstones of modern young adult literature. One of the most impressive highlights in the book (and the films for sure!) is the scene that students are assigned their houses by a talkative sorting hat.

Base on this scene, the team came up with the idea: We should make a “sorting box”.

With an LCD display screen. several buttons, an Arduino board, and some coding, we make the sorting box work!

How the sorting box work:
When the LCD screen turns on, the screen greets the player: “Welcome to Hogwarts!“
The player presses the button, the screen will show the name of the house based on the representative color of each house:

Red Button - “Gryffindor”
Blue Button - “Ravenclaw”
Yellow Button - “Hufflepuff”
Green Button - “Slytherin”

The name of the chosen house will only remain on the screen for 3 seconds.
Then, it will go back to the greeting page. The player can press another button.

The Possible Improvement from this stage:
If we get the chance to improve the project, we will make a real sorting hat. We will mount the screen onto a hat. By putting the hat on the player’s head, a switch will be triggered. The hat will show a random house’s name out of the 4 houses, and the backlight of the screen will light up in the representative color of that house.

The Scheme Image

 

The Code

 
LCD_Choose_code_final_Page_2.jpg
GOPR0014.JPG
Screen Shot 2019-09-24 at 00.15.42.png

Week 3-1: Research Project

LINES - Interactive Sound Art Exhibition

by Anders Lind , 2016

www.soundslikelind.se

LINES is an interactive sound art exhibition created by Swedish composer Anders Lind in 2016. Lines attached to the wall, on the floor and hanging from the ceiling in combination with sensors and electronics are forming three novel music instruments. No musical experiences are required to perform, while the well-experienced musician or composer finds new musical challenges and opportunities with the instruments.

The ambition with LINES is to enable:

  • new forms of musical interaction

  • an exploration of new artistic expressions

  • provide unique and inspiring musical experiences

maxresdefault.jpg

The videoclip is taken from Västerbotttens Museum in Umeå 2016.

Week 2: Enhancement to your homemade switch

Project Name: Don't stop drinking (a.k.a "Don't touch me" box)

I do not play with salty water this week, since liquid as a conductor is not very stable. However, I still want to continue the subject of serving food.

The schematic
I want to make a parallel circuit and the switch connect either path to make a complete loop.

When a cup is put on the coaster, the red light is lit up.
Otherwise, the green light goes on continuously.

The vivid image of the circuit

The vivid image of the circuit

The actual schematic.

The actual schematic.

Then, here comes Arduino.

By using Arduino, I can code all these instructions, so that I do not need a green LED light and a red one for my purpose. There is a kind of LED light that the color of light can be changed and controlled by Arduino.

I played around with the assets and made the circuit work.

The

However, as the sensor is quite heavy, it can’t be mounted onto the ceiling of my box without keeping dropping down. I changed the sensor from a distance sensor to a photoresistor, which is super light weighted.

 

This works with other object, too.

So, I rename this project “Don’t touch me” box. Basically if an object is put on the box, the red alarm light will be light up..