Open Hardware Summit

Circuits to Graphics: Hardware as Design Interface

Prototyping alternate drawing tools that connect the digital to the physical.

🔌

We will delve into how commonplace electronic components can be wired up to offer alternate yet powerful ways of brainstorming visual concepts for the screen.

Concept

  1. When we have math, we have the ability to turn one set of data into another.
  2. Words can be visuals, numbers give rise to form, design inches closer to development.
  3. We must imagine unusual interfaces to question standard practices that often lead to standardized visual outcomes.
image

Part I - Novel processes for expected outcomes

Exploring the potential of alternate drawing tools where physical circuits and electronic components are the interface to create visuals

Control a color wheel with a potentiometer
Ultrasonic proximity sensor deciding when spring springs

Prototype → Identity

Joystick-led realtime graphics that inspired a custom tool

Part II - Novel processes for novel outcomes

Graphics created with the tool formed the components for a wider set of assets, each symbolizing the merging of art and code dualities. Read more about the project Virtual Creative Coding Fest Virtual Creative Coding Fest

image
image
image

Circuits to Graphics: Workshop Follow-Along Guide

What You’ll Need

Physical materials

Laptop, USB to USB-C adapter, a sensor/actuator, arduino, wires, Arduino Uno

image
image

Digital materials

image

1. Hardware code → Arduino IDE

2. Digital Canvas → A text editor to write your code in. We will be using P5.js in VS Code running in a local environment. Make sure you have the p5 library reference linked as

<head>
    <script src="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.js"></script>
   	<script language="javascript" type="text/javascript" src="https://cdn.jsdelivr.net/npm/p5.serialserver@0.0.28/lib/p5.serialport.js"></script>
    <link rel="stylesheet" href="style.css">
</head>

3. Serial Communication → P5 Serial Control

→ Download Link

Now we begin…

ACT I: Get the hardware set up

image

ACT II: Get p5.serial to recognize the port

image
image
💡

Enable console and ASCII

ACT III: Receive the data in your p5 sketch

Beginner Sketch

This is your starter sketch.

Make sure to duplicate it to your own p5 account. However, it is preferred if you download the code and run it in your local IDE to avoid browser permission issues or delays in sensor monitoring

We will mostly be making changes to this block:

EPILOGUE: Up the anté

  1. Modify existing: Can the text grow and shrink? Can clicking the joystick add more shapes on canvas.
  2. Bring in new: values from your own P5 sketches.
  3. Use a different sensor! Do you have an ultrasonic? A potentiometer? See how varying the Arduino code lets you make things differently.

Resources: