Sci Fi Your Pi – Project Update #7

There was some nice weather in Belgium the past week, and I took the opportunity to prepare the garden for summer. Mowing the lawn, planting some herbs, cleaning the terrace, etc … This means that I didn’t make a whole lot of progress on my project this week, but it doesn’t mean I didn’t do anything either. For this week’s update, I’ve been combining some components I got up and running in the previous weeks, more specifically: the Touch Board and the Raspberry Pi with LED strip.

I hooked up the Touch Board via USB to the Raspberry Pi and had it send PLAYX (where X is the number of the electrode pressed) messages to the Pi over serial. Listing the tty devices, I determined the Touch Board was the “ttyACM0” device.

pi@PiDesk ~ $ ls -l /dev/tty
tty        tty17      tty26      tty35      tty44      tty53      tty62
tty0       tty18      tty27      tty36      tty45      tty54      tty63
tty1       tty19      tty28      tty37      tty46      tty55      tty7
tty10      tty2       tty29      tty38      tty47      tty56      tty8
tty11      tty20      tty3       tty39      tty48      tty57      tty9
tty12      tty21      tty30      tty4       tty49      tty58      ttyACM0
tty13      tty22      tty31      tty40      tty5       tty59      ttyAMA0
tty14      tty23      tty32      tty41      tty50      tty6       ttyprintk
tty15      tty24      tty33      tty42      tty51      tty60

I installed “minicom” to verify the expected serial messages where being received by the Pi.

pi@PiDesk ~ $ sudo apt-get install minicom
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
The following NEW packages will be installed:
lrzsz minicom
0 upgraded, 2 newly installed, 0 to remove and 22 not upgraded.
Need to get 420 kB of archives.
After this operation, 1189 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 wheezy/main lrzsz armhf 0.12.21-5 [106 kB]
Get:2 wheezy/main minicom armhf 2.6.1-1 [314 kB]
Fetched 420 kB in 2s (173 kB/s)
Selecting previously unselected package lrzsz.
(Reading database ... 78547 files and directories currently installed.)
Unpacking lrzsz (from .../lrzsz_0.12.21-5_armhf.deb) ...
Selecting previously unselected package minicom.
Unpacking minicom (from .../minicom_2.6.1-1_armhf.deb) ...
Processing triggers for man-db ...
Processing triggers for menu ...
Setting up lrzsz (0.12.21-5) ...
Setting up minicom (2.6.1-1) ...
Processing triggers for menu ...

Using the minicom command with parameter “s”, the serial port information can be configured. I specified the correct interface and baudrate and could see the messages coming in.

pi@PiDesk ~ $ sudo minicom -s

Screen+Shot+2015-05-29+at+18.58.07 Screen+Shot+2015-05-29+at+19.17.36

To be able to read from the serial interface from Python, I tried to install the “python-serial” module. It turned out to be pre-installed.

pi@PiDesk ~/rpi_ws281x/python/examples $ sudo apt-get install python-serial
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-serial is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.

After taking the “” NeoPixel strip example and modifying it to react to serial input, the PLAY messages could trigger the LED strip. It does not yet make a distinction between the buttons being pressed, but the mechanism itself is working.

pi@PiDesk ~/rpi_ws281x/python/examples $ sudo python
Press Ctrl-C to quit.

The Python script reading the serial input and triggering the LED strip can be found here:

And finally, a short demo:

© Frederick Vandenbosch, 2014-2021. Unauthorised use and/or duplication of this material without express and written permission from this blog’s author and owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to Frederick Vandenbosch with appropriate and specific direction to the original content.