Physical Computing Studio CMU | Spring 2016 | 48-390 Sun, 02 Oct 2016 15:29:26 +0000 en-US hourly 1 Final Project – bPolite Sun, 02 Oct 2016 15:22:57 +0000 Continue Reading →]]> bPolite is a prototype community curated message board intended to create a place where community discussions could happen in the physical world, thus increasing the sense of community within a neighborhood.


bPolite consists of a chalkboard attached to a scrolling display showing a question. Members of the community can use chalkboard space to answer the question and build a response together. Questions could be anything from how to deal with a neighborhood issue to what peoples favorite ice cream flavor is. If a member of the community has an idea for a question, they can text the display from any phone (they don’t have to have a smart phone) and their question will be posted to the display after being checked by a moderator who also lives in that community.

Additionally, photos of the responses are taken using a small camera that is pointed at the board. The pictures are posted to a website so that members of the community can see the responses to different questions (this was only partially implemented in our prototype).

We used a variety of tools and techniques to create our prototype including: Arduino, Raspberry Pi, twillio (for SMS), vacuum forming, and basic fabrication techniques. Full technical writeup can be found here.

Mock up website:


Progress Photos:







]]> 0
Final Project Proposal: NapJac by Roberto Andaya Fri, 01 Apr 2016 06:57:02 +0000 Continue Reading →]]> NapJac Proposal 

by: Roberto Andaya

I have always tried taking naps in between classes but they are not as comfortable as I would like. I always wish I had some sort of travel pillow system that did not take too much space. My NapJac idea does just that and more!

]]> 0
A.R. Beyond Z – letters in real space with sound proposal Thu, 31 Mar 2016 19:56:05 +0000 Continue Reading →]]> A.R Beyond Z PCS proposal 3.31.16

Augmented Reality Beyond Z drawing in your space.

Draw letters and language with sound enhancements, real time in the space around you.

To expand the idea of a fixed alphabet, make your own! Listen and see the sound of the shapes your drawing with a outward facing camera giving the illusion of letters floating in space around you.

]]> 0
Final Project Proposal – Daniel Campos Thu, 31 Mar 2016 14:58:34 +0000

]]> 0
The Sensory Experience I’m Trying To Capture Thu, 31 Mar 2016 14:56:44 +0000

]]> 0
Final Project Proposal – Irenee Thu, 31 Mar 2016 14:46:27 +0000



]]> 0
iJam Final Thu, 31 Mar 2016 14:42:44 +0000 ]]> 0 Final Project proposal – Joseph Paetz Thu, 31 Mar 2016 05:00:45 +0000

]]> 0
Final Project Proposals Tue, 29 Mar 2016 13:52:17 +0000 Continue Reading →]]> All, it is time for our final projects and the following text describes your proposal requirements.

We live in an era of constant monitoring and electronic intervention. Mobile technologies have enabled fast computing on our persons in all aspects of our lives including, education, biometric monitoring, social media correspondence, and much more. With this in mind we approach our final project with a focus on wearable devices, biometric monitoring, fitness tracking, and any other type of on-body sensing or actuation. This may include VR/AR, watches, e-textiles, etc. The focus of this proposal is not to describe perfectly how build your project, but how a user would interact with it. Consider this an exercise in describing an experience not a technology. The proposal will be in the form of a short video (between 15 and 30 seconds), and may use live action, stop-motion, animation, or any other technique to describe your proposed experience. You have only two days to generate this video so the focus is on the idea more than the craft of the video. A rough animation of a great idea will be more convincing than a polished less developed proposal. You will work alone and we will break into teams of two on Thursday to move forward. Good luck!

]]> 0
Calling Photon functions from Javascript Mon, 21 Mar 2016 01:13:34 +0000 Continue Reading →]]> Sky showed me Particle’s javascript library, and I thought I would post what I had to do to get it working.

Particle’s documentation can be found at:

My updated files are at:

  1. From the terminal, run:   npm install particle-api-js
  2. To allow you to use the library in the main script.js file, you must add this line to your index.html file: <script type="text/javascript" src="//"></script>. This line needs to go before you import the script.js file, so you should have your new line followed by the existing line that includes the script:
    /* this is the added line */
    <script type="text/javascript" src="//"></script>
    /* this is the existing line */
    <script src="js/script.js"></script>
  3. Next, add the code to login at the top of your init function. Make sure to save your token to a global variable and don’t include the var Particle = require('particle-api-js');  line that the particle documentation says to include. Thus, the top of your init file should look something like:
    var particle;
    var token;
    function init() {
    	particle = new Particle();
    	particle.login({username: user, password: pass}).then(
    	    	console.log('API call completed on promise resolve: ', data.body.access_token);
    	    	token = data.body.access_token;
    	  	function(err) {
    	    	console.log('API call completed on promise fail: ', err);
  4. Now, you are set up and you can use the functions in the library. The only one I am using right now is the callFunction function. I call it whenever the default stool object is selected (check out the picker function in script.js). To call a function on your photon, you also need to register the function to the cloud within you photon code (see
    • My photon code:
      bool state = false;
      void setup() {
          pinMode(D7, OUTPUT);
          //register the function with the cloud
          Particle.function("light", light);
      void loop() {
          //don't need to do anything here
      //this function is called from the script.js file when
      //the stool is selected
      int light (String str) {
          //toggle the state of the light 
          state = !state;
          //write to the light
          if (state) {
              digitalWrite(D7, HIGH);
          } else {
              digitalWrite(D7, LOW);
          return 3;   //return any number
    • The code to call the light function:
      var fnPr = particle.callFunction({ deviceId: deviceID, name: 'light', argument: 'hi', auth: token });
      	function(data) {
      		console.log('Function called succesfully:', data);
      	}, function(err) {
      		console.log('An error occurred:', err);


Let me know if I need to add anything to this post.

]]> 0