Final Project Done – Bubble Burst
The final show case! Bubble Burst!
The Demo Video
we're not kids anymore.
Three Goblin Art

Origami Around
Xuebing Du

pixel skylines
Today's Document
Sweet Seals For You, Always
Game of Thrones Daily
No title available
DEAR READER
I'd rather be in outer space 🛸

❣ Chile in a Photography ❣
PUT YOUR BEARD IN MY MOUTH
taylor price

Janaina Medeiros
tumblr dot com
Monterey Bay Aquarium
art blog(derogatory)
will byers stan first human second

JBB: An Artblog!

seen from Japan
seen from TĂĽrkiye
seen from Croatia

seen from Netherlands

seen from United States
seen from United States
seen from United States

seen from United States
seen from United States

seen from United States
seen from Romania
seen from United States
seen from Uzbekistan
seen from United States
seen from Malaysia
seen from Argentina
seen from Argentina
seen from United States
seen from United States

seen from Malaysia
@physical-computing-elaine
Final Project Done – Bubble Burst
The final show case! Bubble Burst!
The Demo Video
Final Project Checkpoint 4 – The Final Test
With the 3D controller set up, I did a final test with the program and 3D controller working together.
Sometimes, the the bar on the screen doesn't respond to the movement of the physical board smoothly enough. Looking from the Arduino's serial port, the Ping sometimes return weird data, but this only happens occasionally. The main reason could be the time delay plus that I'm mapping the distance data, 0-200 mm to the pixels on the screen, 0-800 px, which kind of magnifies the error.
The final demo video is still under construction =)
Final Project Checkpoint 3 – Design and Print 3D Model
To help the players better interact with the game, I'm creating a controller for them to respond to the interaction more precisely.
Step1 Sketch out the idea
Sketching is always the best way for us to visualize our idea. In terms of 3D design, it's very helpful for us to create sketches from the top, front, and side view of the model we are going to create.
Step2 Create the 3D model
In this project, I used 123D Design to build the 3D model based on my sketch. Since our 3D printer is not large enough, I need to break my controller model into parts and print them separately.
Step3 3D print all the components
Step4 Assemble all the components
Assemble the components with super glue.
Tip: Don't put the components together as soon as you put the glue on the surface. Wait for a short while then the glue gets more sticky.
Done!
Final Project Checkpoint 2 – Building Connection Between Processing and Arduino
Step 1 Refine Processing Sketch
Since this project is built on my former Processing project (a game, Bubble Burst), firstly, I need to refine the processing code to open up new variables to receive data from Arduino.
The key variable is the X position of the control bar (at the bottom of the screen).
Step 2 Set the port
To have processing communicating to Arduino, basically, we need to set these two thing to respond to a same port. I referred to this tutorial from Arduino's official site.
Here my port in Arduino is the fifth, so in Processing, I also set the port to be the fifth.
Step 3 Test
Then I ran the Processing sketch to see whether the control bar in the game responds to the physical position.
Current Circuit
Testing Video
Next Step
Test more to find the most suitable distance range. Map the data to the range
Use 3D print to create a controller
Setting up Point to Point Communication with Xbee
Step1 Configure Xbees
Before setting up point to point communication between two Xbees, we need to configure our Xbees first. X-CUT (available for both mac and win) is a useful tool for us to do so.
Here is a link to the download page~
Connect the Xbees to the computer with USB cable one by one to configure (Don't connect through Arduino).
Basically, we give the two Xbees that are communicating with each other the SAME Pan ID.
Step2 Connecting the circuit
Connect one Xbee through Arduino and the other to the USB cable.
Trick: when connecting through Arduino, be sure to put the RX pin into the TX pinout (1 or 3) and the TX pin into the RX pinout (0 or 2). It would be better if we use the pair of 2 and 3 than 0 and 1 because the pair of 0 and 1 is the default pinout.
Step3 The code
Basically we are going to write a piece of code telling the Xbee connected to Arduino to print what ever it receives and send out what ever inputed through the serial monitor.
The code is available here.
BUT we don't have to install the NewSoftSerial library because it's included in the Arduino core (after 1.0) by default.
What we need to do is to change all the "NewSoftSerial" to "SoftwareSerial".
Here is how it works:
Getting Started with Xbee
Xbee broadcasts data and also supports point to point communication.
Step 1 Assembly
Components
The adapter (assembled)
Xbee soldered to the adapter (front)
Xbee soldered to the adapter (back)
Step 2 Connect the Circuit and Test
We could connect the Xbee to the computer through Arduino board or USB cable.
In this test, I connected one through Arduino and the other through USB. I uploaded a piece of code to Arduino, allowing the LCD in this circuit to respond to Serial input. As I input data from Serial Monitor, the LCD status changes and the red indicator on the Xbee connected with USB lights up. Then as I stop, it goes off.
Step 3 Coming soon: Test point to point communication
We could achieve this by connecting tow Xbees to two Arduino respectively. One does serial write and one does serial read.Â
Bike Computer Test on the Bike
Description
Last week I simulated the bike computer test by moving a magnet round the magnetic sensor by hand. This week I tested it on the real bike with a magnet and the sensor attached to its back wheel. It worked.
Problem
However, the current prototype still has a problem. As long as I rotate the wheel even remotely faster, the prototype will miss data, which means sometimes the magnet pass the sensor but the sensor doesn't catch it.Â
Adding interrupt to the code will be a good solution to this problem. It interrupts the loop when new data comes in.Â
Final Project Checkpoint 1– New sensor: Ping
For the final project, I'm considering introducing distance sensor, typically Ping, to allow users physically interact with a video game I made a while ago.
Getting familiar with Ping sensor
Ping distance sensor (HC-SR04 Ultrasonic Range Finder) reads whether there are objects in its test range and how far the object is from the sensor. We are allowed to set the detection range and read the distance through Arduino.
The front
The back
The test circuit
Video Demo: This is a simple demo using and LED to detect object.
The led turns off if the sensor detect something in front of it.
Bike Computer Test
Description
Instead of testing on a bike with magnet sensor attached to it, I tested with a magnet by hand in this demo. As I click on the button, the temperature mode shifts between F and C. As I repetitively active the magnet sensor, the LED blinks and the RPM counts.
Functions
Display time, temperature and RPM
Push button to change temperature mode
LED blink based on magnet change
Calculate RPM based on the data
Demo Video
Components
Temperature sensor
Magnet sensor
LED
Clock
LCD
button
Getting Prepared for the Bike Computer
Based on the exercises on the components of bike computer I did before, I completed the whole circuit of bike computer.
I still need figure out the problem of my LCD and also how to write the code for it. Since we are using different components from what our course website was using, I'm assuming there should be some different in terms of the code.
Getting Started with the Clock
This week I also assembled the clock.
Step 1 Assembly
The first step is the solder all the components of a clock on to the circuit board.
Getting prepared: put all the components on the board and fix them into the position.
The front
The back
Step 2 Connect the Circuit
The circuit of a clock is not very complex. We have four pins in all. The only thing we should pay attention to is to connect the SDA to A4 and SCL to A5, and to leave the last pin, the SQW alone.
Step 3: Writing it up
To run the clock, we have to install the library, RTClib (which is available on GitHub) first. Then copy and paste the testing code to the sketch. Make sure to set the right port for Arduino. Open the Serial Monitor, then you will see the output of time.
Virtual Color Mixer – Connecting Arduino with Process
With multiple temperature sensors, I tried this example called Virtual Color Mixer.This exercise involves the connection between Arduino and Processing.Â
Basic Principle:
As we know, RGB is one of the most common color principle. To carry this out, we need three values, Red, Green, and Blue. With three temperature sensors, we can use Arduino to gain the temperature data and map them to 0 – 255, each stands for a value of RGB. Then we transmit the variables to Processing. In Processing, we will be able to use these three values to draw the background color on canvas.
*We connect Arduino and Processing by sharing a same port, so you won't be able to run both sketch in Arduino and Processing at the same time.*
The circuit
From left to right, the three sensors respectively stands for Red, Green, and Blue.
How it Works
On heating the "B" sensor (on the right), the temperature gets higher, then the B value gets higher, and the background color turns bluish. The same, on heating the "G" sensor (in the middle), the color turns green, and "R", it turns red.
FINAL TIP!!!
Don't heat the sensor too hard!!!
Sad story again... I was heating the sensor to see the color change too hilariously and later I noticed that... my bread board was getting melt...
So be careful!!!
The one on the left is good.
Test RGB LCD with USB
This is a sad story (about hardware debugging).
My LCD somehow didn't work. I checked all the solder joints, the wires, the code and software settings but in vain. (Thanks for our instructor team's help!)
Later I tried to test it with USB in stead of TTL Serial. Amazingly it worked.
Step 1: Type "ls /dev/cu.*" into a Terminal window before and after you plug in the USB of the LCD to see what the name of the port is. Mine is "/dev/cu.usbmodemfd121".
 Step 2: Open the Serial Monitor without opening any existed .ino file and type your test text into the text box. Push Send.
It works!!
Seems that the USB works but not the TTL Serial. Still confused about the TTL bug and looking for further solutions.
Last week I did several exercises for the bike computer projects. I was introduced to different sensors and components through these exercises.
Exe 1: Temperature sensor
In this exercise I connected a temperature sensor to the Arduino circuit. The sensor turns the temperature information into analog data and send it back to the computer. In Arduino, I set the software to print the temperature data every second.Â
Exe 2: Magnet sensor
The circuit of magnet sensor is similar with the temperature one, but transmits digital data instead of analog data. There is only two status for digital data, 0 and 1.
Exe 3: Button
I tried to include a button to control other components in the circuit. A button also transmit digital data. The two status for button are HIGH for pushing down the button and LOW for releasing the button.Â
I also tried to get Arduino connected with Processing. It seemed to me that se connect them by setting a common port for these two software. We could map the data we collected from Arduino input to the variables in processing and further make changes in Processing canvas.
The video I attached shows how the temperature sensor works.
Hello world!