Proxino: Enabling Prototyping of Virtual Circuits With Physical Proxies
Te-Yen Wu, Jun Gong, Teddy Seyed, Xing-Dong Yang ACM Symposium on User Interface Software and Technology (UIST), 2019 [PDF] [Video]
Motivation
Software-based tools for circuit prototyping (e.g., Tinkercad Circuits) are increasingly used by novice makers in projects that involve electronics. Typically, these tools include a virtual breadboard to help a user construct and test a circuit. However, circuits designed and created on a virtual breadboard cannot be interacted with physically. This becomes an issue when prototyping interactive artifacts that involve input or output (I/O) components (e.g. sensors and motors), as a user typically needs to interact with the components physically, in a real environment.
System Walkthrough
Alice is a beginner, who reads an online tutorial of a Nightlight circuit and starts slowly to build it using Proxino’s software. Before she starts, she is worried because she does not have the right type of resistor. However, using the software, she is glad that it allows her to specify a resistor value virtually. She starts to drag a photoresistor, an LED, and a resistor one-by-one into the virtual breadboard. She copy-and-pastes a second resistor for convenience. She sets the resistor value and connects her chosen components one by one, following the tutorial. She uses undo a few times to recover from errors (Figure a). Once the circuit is completed, Alice wants to see how it works in her room. She brings up a context menu on the software by right-clicking the virtual photoresistor. In the menu, she clicks “Physical Proxy” to link the photoresistor to a physical proxy. She then follows the instructions shown in the software to connect her physical photoresistor to thedesired pins on the Arduino shield (Figure 2a). She repeats the same procedure to setup the LED. Once finished, she codes in the built-in IDE by following the sample Arduino code. She clicks the “Run” button to execute the circuit in a simulator. However, the LED does not turn on when she covers the photoresistor using her hand (Figure b). Alice calls her friend, Derek for help on Skype. Derek is an experienced maker, who accesses Alice’s virtual breadboard remotely from his home computer to help her with debugging (Figure 2c). The circuit seems fine when inspected, so Derek suspects that Alice’s photoresistor or LED is broken. Unfortunately, Alice does not have a second photoresistor. Derek offers to try his photoresistor at his home and uses it as a remote proxy. Alice disconnects her photoresistor from the shield on her side, while Derek connects his on his side. Derek is correct. Alice’s LED turns on as expected, when he covers the photoresistor (Figure c). The next day, Alice purchases a new photoresistor to replace her defective one. Just like a real breadboard circuit, she can deploy the finished project in her room. The system includes the photoresistor, LED, an Arduino and the shield. Alice further uses Arduino Uno WiFi Rev2 for the communication between the proxies and virtual circuit running on her desktop computer. Alice is happy that there is no breadboard, resistors, and messy wires in her room (Figure d).
Figure. (a) A user designs a circuit on software and links the photoresistor as a physical proxy, where an instruction window will pop up. (b) The user can test the circuit by physically interacting with the component (c) The user can remotely collaborate with others for help. The circuit in the both sides are connected and working together (d) Finally, the circuit can be directly deployed with a WiFi module.
Please check the video for more details.
Selected Press Coverage
Arduino: Proxino takes your virtual circuit into the real world
Hackster.io: Proxino Blends the Real and Virtual Circuit Designs
EurekAlert: Dartmouth lab introduces the next wave of interactive technology