Jurij Podgoršek 0e5e4d0a69 | ||
---|---|---|
AHRSensor | ||
boards | ||
doc | ||
lib | ||
linux-receiver | ||
src | ||
.gitignore | ||
LICENSE | ||
README.org | ||
build.sh | ||
dokumentacija.jpg | ||
flash.sh | ||
guix-shell.sh | ||
init.sh | ||
monitor.sh | ||
package.json | ||
platformio.ini | ||
requirements.txt | ||
utopia.scd |
README.org
C2 - utopia
Musical/visual/dance performance of Borut Kržišnik's new album, Utopia, with Ryuzo Fukohara dancing and triggering / modulating sounds and projections by Simon Svetlik.
We plan to plant 5-6 sensors on Ryuzo, the IMU signals will be converted into MIDI for Borut in Simon.
Code
Arduino sensor
Arduino code that reads linear acceleration, sensor fused quaternion orientation data and the battery voltage on an ESP32S3 connected to an Adafruit BNO055 orientation sensor.
NOTE: you have to set the sensor ID via source! And the receiver's mac address. Linux monitor mode can receive packages pointed to other mac addresses though.
Arduino source (adafruit BNO055 on ESP32S3) Arduino source (adafruit BNO055 on an OlimexESP32S3)
Arduino receiver
Arduino source (ESP32S3 receiver) This may be simpler since it doesn't depend on the wifi card used, but the max rate seems to be about 160 packets per second.
Linux receiver
You need a wifi card that supports monitor mode for this. Two scripts are provided to turn monitor mode on/off; monitor_on.sh and monitor_off.sh. Run the receiver with pozeni.sh, the receiver's code in C can be found in main.c.
This way, around 700-800 packets can be received in a second. Also OSC packages are sent directly to supercollider, bypassing the SLIP decoder.
Supercollider receiver code
SLIPDecoder source
Library for decoding SLIP encoded OSC data via serial USB directly into supercollider. SLIPDecoder source
Microcontrollers
LilyGo ESP32-S3
https://www.lilygo.cc/products/t7-s3 Pinout
Sometimes doesn't want to flash; hold BOOT button and click RESET to enter flash mode.
cnmat/OSC SlipEncodedSerial needed a modification; constructor argument typecast to HWCDC
.
Should be compiled with -DARDUINO_USB_CDC_ON_BOOT=1
to enable USB CDC.
Olimex ESP32-S2-DevKit-Lipo-USB microcontroller
For (testing / development) https://www.olimex.com/Products/IoT/ESP32-S2/ESP32-S2-DevKit-Lipo-USB/open-source-hardware Pinout
Sensor (Adafruit BNO055)
Materials
8 senzorjev MPU 9250 (9-DOF)(wrong models sent, MPU-6500 or similar, returned) https://www.ebay.com/itm/153559516252 5.88$ * 8 + 3.49$ (posiljka) = 47.89$ * 1.22 davek = 58.43$ (+ carina nekaj?)8 krmilnikov esp32https://www.olimex.com/Products/IoT/ESP32-C3/ESP32-C3-DevKit-Lipo/open-source-hardware 6€ * 8 = 48€ * 1.22 davek = 58.56€ (+ shipping = ? - iz bulgarije)- 14x Li-Po battery 3.7V 800mAh https://www.tinytronics.nl/en/power/batteries/li-po/li-po-accu-3.7v-800mah 6.75€ * 14
- 10x Adafruit BNO055 9-DOF sensors https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview
- 8x LilyGo ESP32-S3 microcontrollers https://www.lilygo.cc/products/t7-s3 Pinout
We also need some velcro and elastic tape to make sensors easily mountable and
protoboards to hold it all together compactly designed 3d printed cases.
And a charging station for batteries (TODO).