Posts about physical computing (old posts, page 1)

Midterm Ideas and Serial Communication

This week we began learning about Serial communication. I knew what Serial communication was but never did the programming for it on a micro-controller or at a low level like this. This relates to other things I've done with USB peripherals I am happy to learn more about how it works. In particular, the ability to send and receive Serial messages with Python opens up a whole new world of project ideas for me.

Questions

I have some questions about Serial communication. First, what is the Serial channel doing when it is not sending a message? The voltage on the wire will be interpreted as either high or low. How does it differentiate between the absence of communication and a series of null bytes?

The second question has to do with communication errors. How important is it for the code to be robust to communication errors? How common are they? What are the programming best practices to minimize the impact of errors?

Read more…

User Experience and Interactivity

More reading and Physical Computing experiments!

Sketching the User Experience

Sketching the User Experience, by Saul Greenberg and Bill Buxton, is a book about design techniques that are useful for user experience design. The main idea is that sketching is an effective tool for designers to quickly develop, communicate, and record ideas. The book first explains the importance of design techniques, and then goes through a variety tools a designer can use. Some are obvious, like a simple quick sketch, but others are not approaches I would have thought of on my own.

The book is clear that reading about sketching user experience is not the same actually going through the process sketching user experience. To explore this, I went through the book and thought about how I could incorporate this into my behaviors.

I (almost) always have my phone with me, and I have Evernote on my phone. Evernote has some neat features for storing hand drawings that I don’t use very often. I thought it would be a good idea to explore this and see how easily I can use it to sketch a design.

Read more…

Experiments With Sound

Upcycling a Speaker

A year ago someone gave me a birthday card that played a song when the card was opened. As I was interested in learning more about circuits, I took apart the card and saved the electrical components for a time when I could dissect them and learn more about how they work. Last week we learned about sound in our physical computing class, so it seemed like a good time to put the inexpensive speaker to good use.

To upcycle the speaker I rewired it to give it red and black wires for the speaker's positive and negative terminals and a header pin to go into a breadboard. I also built a 3D printed case as an assignment for my 3D printing class.

animation showing a few shots of the small 3D printed speaker and the speaker component itself.

Read more…

Input and Output Experiments and Weekly Readings

Electronics Lab

Our assignment for this week was to create something using digital or analog inputs and outputs. The circuit I created will light up a 3-color LED with a new randomly selected color when a button is pressed.

Here is a photo of the completed device:

arduino connected to breadboard with single 3 color LED lit up, and three resistors connected to the LED leads, and resistors connected to pins 8, 9, and 10.

And a schematic of the circuit:

incorrect circuit diagram! arduino connected to breadboard with single 3 color LED, and three resistors connected to the LED leads, but the resistors are incorrectly connected to power and not pins 8, 9, and 10.

The Arduino uses digital input to detect when the button is pressed and released. It picks random RGB values and outputs analog values to light up the 3 color LED in that color. Observe I am using the 3 resistor values I calibrated for last week's assignment to make the LED's 3 colors balance out.

Read more…

First Electronics Lab and Weekly Readings

Electronics Lab

Our assignment was to create something using switches. My goal was to use 3 switches and a 3 color LED to make a circuit that can produce any color.

First I wired a circuit with a 3 color LED, 3 1K Ω resistors, and 3 buttons, like so:

Arduino, breadboard with 3 buttons and 3 identical resistors, all connected to a 3 color LED.

I am using my Arduino to power the board. Each button can be on or off, so this can produce 8 different colors. In the picture below I am activating the blue and red colors, making magenta.

two of my fingers pushing down on two buttons, lighting up the LED

Read more…

What is Interaction?

The Art of Interactive Design

In Chris Crawford’s book, The Art of Interactive Design <https://www.amazon.com/Art-Interactive-Design-Euphonious-Illuminating/dp/1886411840/>`_, Crawford defines interactivity in terms of a conversation. Specifically, interactivity is a cyclical process of two actors taking turns listening, thinking, and speaking.

Unfortunately, the word "Interactive" is often explained or defined poorly, and as a result is poorly understood by our culture. The term gets added to products as a buzzword to make them sound better, but often the objects don’t really "interact" in a way as described by Crawford’s definition. There is no "conversation" or cyclical process.

A literal conversation between two people fits this definition literally, but when the interaction is between a human and an electronic device, the steps become input, process, and output. Key point though is that there are two actors, not one. Each actor is some kind of "purposeful creature," so a wall or a rug cannot be interactive.

It isn’t always clear if something is interactive or not. Rather than being a boolean thing, there are different degrees of interactivity. We can evaluate high or low levels of interactivity by evaluating the quality of the listening, thinking, and speaking steps. Excelling in one area does not compensate for failures in another. A common design error when building interactive products is to fail to appreciate this idea.

Read more…

Physical Computing

Physical Computing, taught by Tom Igoe.

Class blog posts: