Intro to Physical Computing

W1
W2
W3
W4
W5
Midterm
W7
W8
W10
Final


Basic Things.


This is how a breadboard looks like inside.



Abbreviations


V : Volts
A : Amperes
W : Watts
mA : miliAmperes
VA : Volt Amperes
VAC : Volts AC
VDC : Volts DC
DC : Direct Current
AC : Alternating Current


Components


Conductors are materials through which electrical current moves freely.

Insulators are materials which prevent the flow of electricity.

Resistors resist, but do not totally block, the flow of electricity. They are used to control the flow of current. Current can move either way through a resistor, so it doesn’t matter which way they’re connected in a circuit. They are symbolized like this:



Capacitors store up electricity while current is flowing into them, then release the energy when the incoming current is removed. Sometimes they are polarized, meaning current can only flow through them in a specific direction, and sometimes they are not. If a capacitor is polarized, it will be marked as such on the diagram. Don’t wire a polarized capacitor backwards; it might explode.

Capacitors are symbolized like this:



Diodes permit the flow of electricity in one direction, and block it in the other direction. Because of this, they can only be placed in a circuit in one direction. They are symbolized like this:



Light-Emitting Diodes (LED’s) are special types of diodes which emit light when current flows through them. They are symbolized like this:



There are many other types of components which you’ll come across:
  • switches control the flow of current through a junction in a circuit:




  • transistors and relays are switching devices:




  • thermistors change resistance in reaction to varying temperature;
  • photoresistors change resistance in reaction to varying light;
  • flex sensors change resistance in reaction to being bent or flexed;
  • piezoelectric devices create a varying voltage in reaction to slight changes in pressure.


Lab: Electronics and using a Multimeter
Sep 1, 2025
I accidentally miswired the 5-volt voltage regulator. I connected the power supply’s positive lead to the Output pin instead of the Input. The LED still lit up, but the regulator quickly became very hot. Using a multimeter, I traced the mistake and confirmed the problem. It was a good reminder to always double-check pinouts before powering the circuit.


I accidentally miswired the 5-volt voltage regulator. I connected the power supply’s positive lead to the Output pin instead of the Input. The LED still lit up, but the regulator quickly became very hot. Using a multimeter, I traced the mistake and confirmed the problem. It was a good reminder to always double-check pinouts before powering the circuit.

This is time I wired correctly. 

Lab: Switches
Sep 1, 2025
This went very well.
Lab: Digital Input and Output
Sep 8, 2025







Lab: Tone output
Sep 20, 2025









In this lab, I learned how to create Notes in Arduino which I didn’t experienced before. 
At first, I use soldering machine to connect wires with my speaker. Then, I use 3.3v for the power-in, but the number on multimeter was not my expectations. Somehow, I got the expect number, near 5V on multimeter, when I use the VIN pin for power-in.



Lab: Servo motor control
Sep 20, 2025




In this Lab, I learned how to use Force Sensitive Resistor (FSR) to trigger the servo.
Based on last week class, it’s necessary to make sure the original map range is same as the range from serial monitor.

On the first video, I test the output of FSR on serial monitor, then I got the data from the range of near 0-980. Then I applied this range to the map in my code, and the result went well. But here is one question: When I press slightly and keep hold this FSR, the servo would spin back and forth, WHY?

Still figuring out the creative part...
Lab: Sensor Change Detection

Sep 28, 2025






Midterm experiments

Sep 29, 2025

This week I processed my first naive idea for midterm.
I want to build a hand that do the “🖖” & “🖐️” when people are paying attention to it. There’s a camera to detact people’s face.

After the day of my first prototype came out, I talked to Tom about my idea, and the feedback is: You can’t tell a person is paying attention if there’s an actual action. Means: If the person is looking at it or staring at it, you don’t know if they’re actually paying attentions on it.

Which makes me to reconsider my midterm idea.





Oct 5, 2025
Learnt about DC.

DC means Direct Current: electricity that flows in one constant direction.

What’s the difference between DC motors, RC servomotors, and stepper motors?
-Key differences in practice:
  • DC motors: simplest; you vary voltage to change speed and reverse polarity to change direction. Need a driver (H‑bridge) and protection diodes for back voltage.
  • RC Servomotors: you command a target angle with pulsewidth; they include gearing and position feedback, so they “go to” and “hold” positions without external sensors.
  • Stepper Motor: you move in exact steps by driving coil sequences; excellent for repeatable positioning, usually open‑loop (no internal feedback), and require dedicated stepper drivers.



Oct 5. 2025
My proudest part of the week:

My process of soldering the motor driver went very well at first, but I don’t know why the angle of the pins changes when I take the driver off the breadboard. I tried to melt the solder and imagined gravity could do the work, but unfortunately I failed. I thought I would probably need to buy a new one. Then I thought maybe the solder sucker could work. Ceren doubted me at first, but I insisted. I added more solder on the top and used the sucker to extract from the bottom—and it worked! 

(I’ve been there before)


Week5 Reading:
Just like riding a bike


Oct 5, 2025
“Intuitive interfaces draw heavily on earlier learned behavior, while unintuitive ones require distinct new skills or metaphorical connections.”⁠
The essay argues “intuitive” interfaces are learned, not innate; design for teachability.

The author challenges the myth of “natural” or “intuitive” interfaces using the metaphor of learning to ride a bike: what feels effortless is actually the result of prior practice. Interfaces exist to abstract complex systems, but they still demand users learn what can be manipulated and how actions map to outcomes. Even celebrated gestures like Apple’s pinch‑to‑zoom felt “intuitive” largely because launch ads acted as micro‑tutorials; many first‑time users still struggled.

Labeling interfaces as “natural” can erode empathy, blaming users when they simply haven’t learned yet. A better lens is ease‑of‑learning on a sliding scale, shaped by the user’s past experience and the interface’s reliance on familiar metaphors (cut & paste, file folders, stars). In short: “intuitive” means it draws on already learned behavior; “unintuitive” asks for new skills or mappings. Designers should embrace the teaching responsibility—build discoverability, clear affordances, feedback, and safe trial—because the learning curve can be flattened, never erased.



Understand Electricity

Oct 6, 2025



Theremin experiment

Oct 6, 2025


Tried to make a theremin and referred to this doc, but it uses an Arduino Uno, which is different from my Nano 33 IoT.


Built the circuit:
I was not familiar with LM358, but I still tried to understant it. 

Coding:
I copied the code in the doc but two of the libraries (NewPing, NewTone) cannot being used by Nano. So I asked ChatGPT to change the library to one that works for the Nano. I uploaded successfully and got the number from my ultrasonic sensor in Serial Monitor. But the problem is I couldn’t hear anything from my speaker. I tried to troubleshoot by changing a speaker and adding a transistor to make the sound louder?, but I failed at both :(


What is a theremin?
A theremin is an electronic musical instrument controlled without physical contact by the thereminist (performer). It was patented by Leon Theremin in 1928. The instrument's controlling section usually consists of two metal antennas that sense the relative position of the thereminist's hands and control oscillators for frequency with one hand, and amplitude (volume) with the other.






click to play the video.


I tried to do it without the LM358 op-amp and lowered the resistor to 47 ohms.

it finally worked!!!

credit to Gabriel, and also Justin & Arjun who told me to try this :)



Midterm



- Ideation Process





William and I came up with the Mushroom 🍄 idea, and we start to build our first draft circuit on the whiteboard. 


the idea is about two mushrooms move towards and backwards to each other while spinning. When someone “make an action” (we are still figuring this out) to it, it will stop spinning and kiss💋 each other.


- Prototype with Cardboard


At first, we were trynna use linear actuator to control the linear movement of the two mushrooms, but I think it’s too limited and too slow. So I searched for the soluion to convert a rotation movement into linear one.

Then, I made a prototype of slider-crank



- from sketch to blenderI draw the sketch to make sure that I have the idea for making this construction, and then I Did the simutation version in blender, but still have a lot bugs. :(







- 10/19 Fabrication

    Laser-cut





Did the first version of fabrication.
I laser-cut 3 12*12*1/8 inches woodboards today. 

and I wrote some notes for today’s work:






- Final Outcome



Choice

To love or to become enemies, it’s really just a simple choice. 

Choice is a collaborative work by Jaye and William, drawing together their backgrounds in art, emerging technologies, software engineering, and film directing.





- Notes

- Midterm ReflectionAs we reach the midpoint of the semester, I’ve been thinking about what feels familiar to me in physical computing, and what still feels uncertain.
Here’s where I am right now:

Things I’m comfortable with


- Soldering
I’ve become quite comfortable soldering wires and pins onto breadboards and components. I also learned how to use a solder sucker to redo soldered parts — which feels like an important skill for fixing mistakes and refining my work.

- Wiring
When the circuit isn’t too complex, I feel confident wiring everything together. I can follow diagrams, understand how each connection works, and enjoy seeing the circuit come to life.

- Reading Code
I can read code and generally understand what’s happening. Even when I don’t know every detail, I can follow the flow and logic behind most parts of the program.


Things I’m still struggling with


  • - Coding

Writing code from scratch is still challenging for me. I often need to look up syntax or structure, and I sometimes get stuck when trying to go from an idea to actual code. It’s something I’m slowly improving at through repetition and experimentation.

- Multimeter
I’m still figuring out how to use the multimeter with confidence — especially understanding which mode to use when measuring voltage, current, or resistance. I know it’s a small tool, but it feels like one of those skills that builds a lot of understanding once mastered.


Overall, I feel I’m developing a more intuitive relationship with the physical side of computing — soldering, wiring, and connecting — while still learning to think more fluently in code.

对于本科阶段的学习我是常怀感激的。
但是在过去的七周里,我深刻意识到自己对于先前经验的(盲目)信任。

我对自己的期待是探索新的事物,持续创造。但我发现自己仍然选择存活在自己的舒适圈内,基于经验的制造大于探索后的创造。所以很多时候我觉得自己的世界是被先前摄入的知识所框定了,走不出了。我很努力地想要打破这个圈,但又满足于自己基于先前经验所形成的认知和观念。经历了这七周之后,我对自己的能力又有了进一步清楚的认知,意识到自己的不足和舒适圈之外的事物并尝试打破它们是未来的目标。








Nov 4, 2025

Week7: Lab: Intro to Asynchronous Serial Communications

Serial  means that the two computers communicating are doing so one bit at a time, by sending pulses of data back and forth.  Asynchronous means that the two computers that are communicating are each keeping track of time independently. 



Week7: Lab: Serial Input to P5.js using WebSerialI learned what is the asynchronous communications.

but my question is: why serial monitor that I created in p5.js cannot update real-time value of my potentiameter? Is that I did something wrong?

-Nov 13,2025 update

I went to Tom, and ask him about this issue. It turns out on my SerialEvent, I use read instead of readLine to read the value from the potentiameter. But my Arduino sends data one line at a time, so p5 needs to read it one line at a time. readLine() gives me a complete piece of data, while read() only returns a single character and breaks everything apart.




What Arduino Really Sends


In my Arduino code, I print sensor values like this:
Serial.println(sensorValue); println() doesn’t just send the number. It sends
  • Each digit of the number
  • And then a newline character
So if the value is “123”, then it will send like: '49' '50' '51'
It travels across the wire as a sequence of bytes.
But logically,  Arduino is sending one complete reading per line.

What readLine() Does

In p5.js: inData = serial.readLine(); readLine() patiently waits until it reaches the newline character
and then hands me the entire reading as a single string: "123" Once I realized this,  the whole data flow felt almost elegan



Nov 16, 2025

Two-way (Duplex) Serial Communication using an Arduino and P5.js using WebSerial
learned how to send multiple values and learned handshaking.

non-numeric punctuation bytes.