Introduction: Pi Cap + Grapher

About: Bare Conductive makes creative electronic tools for any designer, engineer or aspiring maker.

If you’ve been looking for a visualisation of how sensitive the Pi Cap‘s touch sensors are, then this tutorial is for you! Use the grapher to plot the sensitivity and precision of the Pi Cap’s sensors in a graph. Perfect for prototyping a new sensor design, testing a new material or calibrating your project.

Step 1: ​Materials

To begin you will need:

1x Pi Cap

1x Raspberry Pi 1 A+ or B+, Raspberry Pi 2 or Raspberry Pi 3 setup with the Pi Cap (see Step 2)

or

1x Raspberry Pi Zero setup with the Pi Cap (see Step 2)

Step 2: Setup and Choosing a Method

If you haven’t set up your Pi Cap before, then make sure to complete our setting up tutorials first:

Setting up your Pi Cap on the Raspberry Pi 1, 2 or 3

Setting up your Pi Cap on the Raspberry Pi Zero

The first step now for this tutorial is to decide how you want to connect to your Raspberry Pi. If you want to use a screen with the Raspberry Pi, then please proceed to Step 3.

Alternatively, if you want to use your machine and connect to the Raspberry Pi via a network connection, then please skip to Step 7.

Step 3: Download Processing

Once you have the Raspberry Pi running on a screen, the first step is to download Processing, the program we use to run our Grapher. Open the web browser and head to Processing.org and download the Linux ARMv6hf version. You can find a link here:

Processing download

Once downloaded head to the Download folder and double click the file. In the new window click “Extract files”. Once again click “Extract”. The Processing program should have now been extracted into your Downloads folder.

Step 4: Install the MPR121 Grapher

Go to the Downloads folder and open the folder “processing-3.2.1”. Depending on which version you downloaded, the numbers at the end of the name of the folder might change. Double click the file with the name “processing” and select “Execute” in the next window. This launches the Processor IDE. We now need to download the relevant libraries: “ControlP5” and “oscP5”. In Processing, navigate to Sketch→Import Library→Add Library… in the top menu. Search for “ControlP5” and select “Install.” Repeat the steps for “oscP5”. When you have downloaded both libraries, close the Processing IDE.

The next step is to add the MPR121 grapher. You can find the MPR121 grapher library pre-installed in the folder /home /pi /PiCapExamples /Processing. If you can’t find it, you can download it from Github:

Github MPR121

The folder “mpr121_grapher” needs to be copied into /home/pi/sketchbook. Once you have done that you can reopen Processing and open the sketch via File→Sketchbook.

Step 5: Start It Up

The code we need to run is written in three different programming languages: C++, Python and Node.JS. They all perform the same, so you can use whichever one you prefer. For now, we are going to use Python. Head to the folder /home /pi /PiCapExamples /Python /picap-datastream-osc-py, double click the run file and select “Execute in Terminal”. This opens a Terminal window. Back in Processing within the MPR121 sketchbook, click “Run”. In the next window choose “OSC”. Now you see a scrolling display of data and when you touch electrode 0 you should see a reaction.

Step 6: All the Data You Need

The coloured lines contain following information: The red line is the filtered data. It should move when you touch the electrode selected in the top right box. The blue line is the baseline. The yellow and green lines are the touch and release thresholds as set in the code that is running. The vertical purple line indicates a touch event and the vertical white line indicates a release event.

That’s it! You can now use the Grapher and tutorial whenever you want to check how sensitive the electrodes of your Pi Cap are.

Step 7: Download the Grapher

When running this project via a network connection, you need to download our MPR121 Grapher on your machine first. Our patch runs on the Processing program and if you don’t already have Processing installed, you can download it here:

Download Processing

We first need to install two libraries: “controlP5” and “oscp5”. To add the two libraries, open Processing and navigate to Sketch→Import Library→Add Library… from the top menu. Search for “ControlP5” and select “Install”. Repeat these steps with for “oscp5”.

The next step is to install the MPR121 Grapher. Download the Grapher on Github:

MPR121 Grapher

To add our MPR121 Grapher to Processing, the mpr121 folder needs to be moved to the Processing Sketchbook Folder. This will be different for each operating system:

Windows

Libraries/Documents/Processing or My Documents/Processing

Mac

Documents/Processing

Linux (Ubuntu)

Home/Processing

If this folder does not exist, you have to create it first.

Step 8: Run the Data Stream Code

The code we’re going to run is written in three different programming languages: C++, Python and Node.js. They all do the same so you can use whichever one you want, but in this tutorial, we’ll use the Python file.

Once you have logged into your Raspberry Pi via ssh, head to the folder “picap-datastream-osc-py”, simply by entering “cd ~/PiCapExamples/Python/picap-datastream-osc-py”. At this point, you need to know the hostname of your machine.

Back in your Terminal window, type “./run -h HOSTNAME”, where HOSTNAME is your host name and hit enter. The code is now running and we are done here. If you want to quit the code, use enter “Ctrl” + “C”.

Step 9: Run the Grapher

Head back to Processing with the mpr121_grapher sketch open and hit run. In the next window choose “OSC”. You should now see a grey graph with coloured lines. Now you see a scrolling display of data and when you touch electrode 0 you should see a reaction.

The coloured lines contain following information: The red line is the filtered data. It should move when you touch the electrode. The blue line is the baseline. The yellow and green lines are the touch and release thresholds as set in the DataStream code that is running. The vertical purple line indicates a touch event and the vertical white line indicates a release event. That’s it! You can now use the Grapher and tutorial whenever you want to check how sensitive the electrodes of your Pi Cap are.