DI6ITAL
If you have kids, you've probably already had children's musical books in your hands with little chips that play music when pressed.
These are FSR (Force Sensing Resistor) sensors, and it's on this type of sensor that the DI6ITAL, an open-source project, is based, itself a natural evolution of the previous 5WITCH OSC project.
The miniaturisation of these sensors and the variety of their shapes mean that they can easily be embedded in objects to make them interactive. But DI6ITAL is reversing the concept and proposing to make our fingers “connected” when we touch an object.
This not-so-new technology has been used in the performing arts for 20 years now, and can be very useful on film or TV sets, when we want to synchronize lighting effects with an actor's performance, such as the muzzle flash of a dummy firearm, the flash of a camera, the lighting of a lighter, the action of a car beeper, a TV remote or a switch of any kind.
Supplies
- xiao esp32C6 board
- Grove Force Module
- Force sensor FSR 402
- Wifi Antenna with uFL to SMA cable
- Lipo Batterie 1000mAh L753626
- 3D printed case
DEMO
Example of a gesture-synchronised lighting effect
DI6ITAL by Benoit Jolivet is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
SCHEMATIC and ASSEMBLY
Firstly, to have a global view, this is the electronic diagram we have to obtain.
The Grove module could be optimised but this development board is plug and play, delivers a clean filtered signal and the ESP can interpret around 4000 digital steps, between a softly touch and a strong press.
When you are soldering a Lipo Battery directly to the circuit board, many precautions must be taken to avoid the risk of a short circuit. Please pay attention to polarity. I can suggest soldering the wires with connectors first and then connect the battery with his connectors without trying to reduce the length of the battery wires.
Please note that the signal from an FSR sensor is analog, and depends on the pressure applied to it. In our case, DI6ITAL uses it here as an simple ON OFF switch, with a trigger threshold to be defined in the same way as the sensor's sensitivity. A hard press or a light touch both could trigger our effect. But it's also possible to vary the intensity of the light according to the pressure applied to the sensor for exemple.
OSC Protocol
To control lighting effects from the sensor, we use the OSC (Open Sound Control) protocol, which is compatible with the largest number of consoles, light controllers or applications such as Luminair IOS or BlackOut IOS for professional lighting in cinema and television.
That's why we're going to use a Xiao ESP32 board. Small and cheap, we have a useful solution to write a very simple piece of code and send an OSC message through the network via wifi.
As I wrote for the 5WITCH OSC project, most professional lighting controllers have their own OSC syntax message to command them. I invite you to consult the manual of the system you use.
I use MadMapper software for this example and the OSC message I want to send is a boolean at this address: /surfaces/Quad-1/visible. The boolean argument will be "true" or "false" depending on the state of the sensor.
Remember to configure the OSC ports on your machine and in your code, more precisely in your esp32. Input port and output port must be mirrored in a way.
The CODE
To upload the code into the ESP, you have to run Arduino IDE framework for the following step.
(available here): https://www.arduino.cc/en/software
If it's your first use, I suggest you to see some tutorials to configure it. No difficulties, but it could be necessary to upgrade libraries and microcontroller boards. Arduino IDE need to recognize the XIAO board (or another esp board if it's your choice) For that I suggest to you to see the process on the seeedstudio wiki: https://wiki.seeedstudio.com/xiao_esp32c6_getting_started/
Download the sketch below. It is the program to upload into the ESP mini-controller after edit few modifications according your network and the famous OSC command line who gonna drive your light controller.
Define the WLAN network name and password in line 7.
On line 15, you can determine the esp32 pin number that's connected to the Grove module, which corresponds to the green line in the electrical schematic. It's this pin that reads the state of FSR.
Line 22 sets the sensitivity of the force sensor. The higher the number, the higher the force required to trigger the system.
Line 26 defines the OSC address of your target device. The argument (Boolean, integer or float value) is concatenated later in the condition loop.
In line 31 you must define the IP address of your target device, probably a lighting controller, console, or app. Don't forget to open and configure the OSC ports symmetrically
It is in the IF and Else IF Condition parts that you can concatenate the argument you need. In my case, a boolean variable takes "true" or "false" as value.
Downloads
IT'S IN THE CAN
I've designed a 3D printable box and have tried to optimise the space. It could be useful for an actor to wear this system on his costume like the sound equipment for a necktie microphone. I suggest to have several of wifi antennas with differents sizes. Obviously, the gain and direction of the signal depends of the antenna characteristics (size being one of them) and it could a be efficient to have more options.
LIKE a GLOVE
I've discovered the finger cots and their usefullness. It's very easy to place the sensor under the finger you want. The finger cots could be tighter for a better sensitivity. I suggest to ajust the wire on the back of the hand to allow a maximum dexterity and no constraint in the palm the hand.
And that's it. Your finger is now connected to your network and ready to control professional lighting.