acceleration measurement during boulderingbühlerpascal version1.0 12.12.2017 (a) plug-inboard (b)...

21
Acceleration measurement during Bouldering Bühler Pascal Work from 10.12.2017

Upload: others

Post on 17-Mar-2020

6 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Acceleration measurement duringBouldering

Bühler Pascal

Work from 10.12.2017

Page 2: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Abstract

The aim of this work is to measure the effect of the acceleration that is exerted on therespective person during "bouldering". By measuring the acceleration and its derivativessuch as speed and distance, and by further information such as the mass of the person,forces and energies can be calculated additionally. The acceleration is measured by anacceleration sensor, which is located on a belt and strapped around the waist of theperson. Preferable, the sensor should be in the middle on the back side of the person.The data of the sensor should then be transmitted via “Wi-Fi” or “BLE” (Bluetooth LowEnergy) to a remote computer far from the testing subject computer, which then analysisand visualizes the transmitted data.

Bouldering Page 2 of 21 LYX

Page 3: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Contents

1 Hardware 41.1 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Software 82.1 Download and installation of the required programs for the “Arduino IDE” 82.2 Working with the Editor “Atom” . . . . . . . . . . . . . . . . . . . . . . . 122.3 Programming „Huzzah ESP32 Feather“ as TCP/IP server . . . . . . . . . 132.4 Programming „Huzzah ESP32 Feather“ as UDP server . . . . . . . . . . . 142.5 Programming „Huzzah ESP32 Feather“ as BLE server (Bluetooth Low En-

ergy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.6 Evaluation and representation with „Scilab“ and new approach with Python 17

References 20

Bouldering Page 3 of 21 LYX

Page 4: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

1 Hardware

1.1 Components

The following components were used for the acceleration measurement and its data trans-mission:

1. “Huzzah ESP32 Feather” from Adafruit / Playzone (Figure 1a)

2. “Sensor-Breakout BNO055” 9-DOF Absolute Orientation IMU Fusion by Adafruit/ Playzone (Figure 1b)

3. Polymer Lithium Ion (LiPo) battery - 2800mAh / 3.7Vdc from Playzone (Figure1c)

4. Data cable USB A-plug to USB Micro from Pearl

5. Kidney belt TEX BELT 3, size L by ixs / Migros (Figure 1d)

6. Rigid connection cables with 0.8mm wire diameter and approx. 20cm length, in thecolours red (Vin), black (Gnd), white (SDA), blue (SCL) and brown (3vo)

7. Two resistors 3.3kΩ / tolerance 1% and 2.2kkΩ / tolerance 1% (Figure 1e)

8. Experimental board with pitch 2.54mm

(a) HuzzahESP32

(b) Sensor-BreakoutBNO055

(c) PolymerLithium Ion(LiPo) battery

(d) Kidney belt TEX BELT 3 (e) Pull-up resistors

Figure 1: Main components for acceleration measurement during "bouldering"

1.2 Assembly

First, the information from the web page https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensorwas found for wiring the "Huzzah ESP32 Feather" with the"Sensor-Breakout BNO055". The possibility of data loss between the two components wasalso taken into consideration (FAQ) and therefore in addition, the use of the mentionedpull-up resistors was introduced. Afterwards, the representation of the cabling on the plug-in board and as a circuit diagram with the program "Fritzing" was created. (Figures 2a and2b) Then the programmed "Huzzah ESP32 Feather" and the "Sensor-Breakout BNO055"were put on a "breadboard" (breadboard) and wired according to the representation in“Fritzing”. (Figure 2c)

Bouldering Page 4 of 21 LYX

Page 5: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

(a) Plug-in board (b) Circuit diagram (c) Realisationwith Pull-upresistors on the"Breadboard"

Figure 2: Plug-in board and circuit diagram of the wiring and realisation on the “Bread-board”

After the circuit was controlled with and without battery and the data transfer attemptswere made, a first prototype for use on the bouldering belt was hardwired and solderedtogether. Figure 3a shows the "Huzzah ESP32 Feather" with pull-up resistors for the datalines "SDA" and "SCL", soldered firmly to the experimental board. From the upper sideof the board, the rigid cables lead to the "Sensor-Breakout BNO055". (Figure 3c) On theunderside of the experimental board (Figure 3b) the resistors were directly soldered tothe data lines "SDA" and "SCL". For the connection of "GND" and "Vin" on the top ofthe other side, the distance was bridged with the corresponding cables. Figure 3d showsthe assembly of the first prototype for use on the bouldering belt.

(a) "Huzzah ESP32Feather" with pull-upresistors and experi-mental board

(b) Bottom of the exper-imental board

(c) "Sensor Break-out BNO055"with rigid cabling

(d) Assembly for use of the belt as “boulder-ing belt”

Figure 3: Assembly and preparation of "Huzzah ESP32 Feather" and "Sensor-BreakoutBNO055" with pull-up resistors, for use on the “bouldering belt”

Then "Sensor-Breakout BNO055", "Huzzah ESP32 Feather" and battery are attached onthe bouldering belt. (Figure 4) As a protection against the static charge of the sensor,battery and Wifi-module towards the belt, they are provided with an outer layer of leathermaterial. Since the "Sensor-Breakout BNO055", the "Huzzah ESP32 Feather" and thebattery are not attached directly to the belt, but may not fall out of the side openingsof the leather covers and in addition a certain fixation of the components is desired, theopenings of the tightly sized leather sleeves were provided with a Velcro closure.

Bouldering Page 5 of 21 LYX

Page 6: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

(a) Attachment of the "Sensor-Breakout BNO055"

(b) Attaching the "Huzzah ESP32 Feather" andbattery

(c) Overall pictureof attaching leatherstrips to the kidneybelt

Figure 4: Attachment of "Sensor Breakout BNO055", "Huzzah ESP32 Feather" and bat-tery to the kidney belt

1.3 Coordinate systems

(a) Coordinate system of the sensor (b) Coordinate system of the"Sensor-Breakout BNO055"

(c) Body emphasis KSP

Figure 5: Coordinate systems

Figure 5a shows the coordinate system of the sensor according to the manufacturer’sdefinition. The sensor outputs the data of the components LINEARACCEL and GRAV-ITY. Based on images and evaluation of these raw values, the coordinate system wasdetermined. Figure 5b shows the coordinate system of the positive value data of the"Sensor-Breakout BNO055" with integrated sensor, valid for both vectors LINEARAC-CEL and GRAVITY and its components. The vectors and their components are definedas follows:

GRAVITY (m/s2): −→g =

gx

gy

gz

and LINEARACCEL (m/s2): −→a =

ax

ay

az

The sensor only measures its own vectors in the X, Y and Z directions, but the centre ofbody emphasis KSP is shifted towards the sensor point S (Figure 6c) by the distances: ∆X = X ′ −X

∆Y = Y ′ − Y∆Z = Z ′ − Z

Bouldering Page 6 of 21 LYX

Page 7: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

If these had to be measured individually, the following problems are complicating thistask. First the mass centres of gravity emphasis of all limbs would have to be determinedand its weighted mean determined. This results in each individual’s own centre of mass,which can be purely fictitious to the human condition. Furthermore, the body’s centreof gravity changes with each movement of the body, this is hardly measurable withoutvisual aids and with expensive hard- and software. Therefore one is content here with theevaluation of the sensor data.

Bouldering Page 7 of 21 LYX

Page 8: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

2 Software

2.1 Download and installation of the required programs for the“Arduino IDE”

According the website “https://learn.adafruit.com/adafruit-huzzah32-esp32-feather”by Adafruit,first download the "CP2104-USB-driver" from the website “https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers”. Before that you have to create an "ac-count" at "Silicon Labs". This one is for free. If you have downloaded the appropriatepackage, you can unzip it in a selected directory. Then simply run its "Makefile" inthe "Linux-Terminal". Then the newest version (here e.g. 1.8.5) of the "Arduino IDE"should be downloaded from the website “https://www.arduino.cc/en/Main/Software”andinstalled. As mentioned on the “Adafruit” website, for the use of the "Arduino IDE"you should first visit the "Espressif Arduino repository" and install it on your own com-puter. All you have to do is click on the link and you will be led to the website“https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/debian_ubuntu.md”.Simply follow the instructions on this website and enter the following code in the "LinuxTerminal":

sudo usermod -a -G dialout $USER && \sudo apt-get install git && \wget https://bootstrap.pypa.io/get-pip.py && \sudo python get-pip.py && \sudo pip install pyserial && \mkdir -p ~/Arduino/hardware/espressif && \cd ~/Arduino/hardware/espressif && \git clone https://github.com/espressif/arduino-esp32.git esp32 && \cd esp32 && \git submodule update --init --recursive && \cd tools && \python get.py

If all this has been done, the following menu item should now appear in the "ArduinoIDE":

Bouldering Page 8 of 21 LYX

Page 9: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 6: Menu item "Adafriut ESP32 Feather”

\usepackage{fancyhdr}

If the following error message appears in the "Arduino IDE":

processing.app.SerialException: Error opening serial port ’/dev/ttyUSB0’. Er-ror opening serial port ’/dev/ttyUSB1’. Try consulting the documentation athttp://playground.arduino.cc/Linux/All#Permission

This report would have more information with "Show verbose output during compilation"option enabled in File -> Preferences.”

Open the "Linux-Terminal" and enter the command "sudo chmod a + rw / dev /ttyUSB0". This will release the "port" for the "user". If anything works, you can see inthe "Serial-Monitor" with "115200 Baud" the following "Wi-Fi-Scan":

Bouldering Page 9 of 21 LYX

Page 10: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 7: “Wi-Fi” scan at 115200 baud

If there are any questions or other wired characters, the baud rate is set incorrectly on the"Serial-Monitor". In order to test the upload of a program and its “Wifi” communication,one of the "examples" from the "Arduino IDE" can be adjusted and uploaded. If anythingis fine, the following will appear in the "Serial Monitor":

Figure 8: Connection test with "wifitest.adafruit.com"

Now it is still necessary to establish communication with the "Sensor Breakout BNO055".According to the website “https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/arduino-code”, the two Zip-files "Adafruit_BNO055" and "Adafruit_Sensor" aredownloaded and extracted into the "Arduino IDE / Libraries" directory. If you do notknow how to do that, you can visit the website “https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use” and read this. If anything went well, you can findthe two libraries in the "Arduino IDE" under "Sketch", "Include Library", "Recommendedlibraries". (Figure 9)

Bouldering Page 10 of 21 LYX

Page 11: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 9: Libraries for the "Sensor-Breakout BNO055"

After the wiring of the "Sensor-Breakout BNO055" with the "Huzzah ESP32 Feather", afirst attempt was made to read the raw data of the sensor. A corresponding "Examples"was uploaded to the "Huzzah ESP32 Feather". To get the data right in the "Serial Mon-itor", the baud rate had to be lowered to "9600 baud". After that the following pictureresulted in the "Serial-Monitor":

Bouldering Page 11 of 21 LYX

Page 12: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 10: Connection test with the "Sensor-Breakout BNO055"

This only applies to the example. Afterwards you can reset the transmission properly to115200 baud. More important is, that the baud rate is always the same everywhere.

2.2 Working with the Editor “Atom”

In a second try for working with an advanced Editor like “Atom”, the packages “Plat-formIO” and “Clang” have to be loaded. (Figure 12)

Figure 11: “Atom” with the package “PlatformIO”

Bouldering Page 12 of 21 LYX

Page 13: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

The package “PlatformIO” can be directly downloaded in “Atom”. Clang has to beinstalled separately with the command “sudo apt-get install clang” in the Termi-nal. For the additional Sensor "Sensor-Breakout BNO055" library, “Git” has to installedwith the command “sudo apt-get install git” and on its website making a clone ofit, with “git clone https://github.com/adafruit/Adafruit_BNO055.git”. The li-brary “Adafruit_Sensor-Master” has to downloaded from its website and extracted in themain library of “PlatformIO”. If anything is alright, the project-tree should look like inFigure 11.

2.3 Programming „Huzzah ESP32 Feather“ as TCP/IP server

The following program was written in the "Arduino IDE":

Figure 12: Program code in "Arduino IDE" as TCP / IP server

First, the required libraries are loaded. Afterwards, the sample rate for the sensor, “SSID”and “Password” for the server are configured. In "Setup" then the sensor and the server arestarted. In addition, the IP-address of the server (192.168.4.1) and the data of the sensorare transmitted via "Serial Monitor" to the "Arduino IDE". This is only for debuggingand controlling the program code. In the loop statement, the corresponding data of thesensor is transmitted as a "client" to the "server". If you have successfully logged in to theserver, the following line appears by calling the IP-address in the web browser "Firefox":

Bouldering Page 13 of 21 LYX

Page 14: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 13: Sensor data from "Huzzah ESP32 Feather" transmitted to the web browser"Firefox"

2.4 Programming „Huzzah ESP32 Feather“ as UDP server

The following program was written in the "Arduino IDE":

Figure 14: Program code in "Arduino IDE" as UDP server

First, the required libraries are loaded and the sample rate for the sensor, “SSID” and“Password” for the server are configured. Subsequently, the "Huzzah ESP32 Feather"is configured as an UDP server, which sends the data packets under the IP address192.168.4.255 as a "Broadcast" on port 80. The same data via the "Serial Monitor" areonly used to control the program code. In the loop statement, the corresponding data ofthe sensor are transmitted as packets to the "server". If you have successfully logged in tothe server, with the command "netcat -ulk 8080" the following data-stream will appearin the terminal:

Bouldering Page 14 of 21 LYX

Page 15: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 15: Sensor data from "Huzzah ESP32 Feather" as UDP packet, viewed in theLinux Terminal

2.5 Programming „Huzzah ESP32 Feather“ as BLE server(Bluetooth Low Energy)

The following program was written in the "Arduino IDE":

Bouldering Page 15 of 21 LYX

Page 16: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 16: Program code in "Arduino IDE" as BLE server

First, the required libraries are loaded. Then the Service- and Characteristic “UUID”have to be set. For generating “UUID’ s” see the website https://www.uuidgenerator.net.In the setup statement, the device is configured as “MyESP32” witch you will see onthe Bluetooth device list and the server with its services are defined and started. In theloop statement, the corresponding data of the sensor are transmitted as packets to the"server". The same data via the "Serial Monitor" are only used to control the programcode. Now for reading the raw data from the Bluetooth BLE device you have to downloadthe complete and latest package of “bluez” with “gatttool”:wget https://www.kernel.org/pub/linux/bluetooth/bluez-X.XX.tar.xztar xvf bluez-X.XX.tar.xzsudo apt-get install libglib2.0-dev libdbus-1-dev libusb-dev libudev-dev libical-dev systemdlibreadline-dev.configure --enable-librarymake -j8 && sudo make installsudo cp attrib/gatttool /usr/local/bin/

For connecting to the BLE-Device, it’s address must be known, therefore enter thecommand "sudo hcitool lescan" into the Terminal. Under “MyESP32” the address30:AE:A4:30:8E:E6 appears. Now run “gatttool” with the following command “sudogatttool -b 30:AE:A4:30:8E:E6 -I”. Once open, type “connect” into the Terminal.If the connection is successful, type “char-desc” and a list of available handles will beshown. These handles are the “connection points” for reading and writing the access data.In this case take the handle “0x002a” and type again into the terminal “char-read-hnd0x002a”. And there are the raw data from the "Sensor-Breakout BNO055" written as

Bouldering Page 16 of 21 LYX

Page 17: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

hexadecimal numbers, which have to be afterwards converted into “ASCII”. (Figure 16aand 16b)

(a) Sensor data from "Huzzah ESP32Feather" as BLE hexadecimal numbers,viewed in the Linux Terminal

(b) Conversion from hexadecimal numbers into “ASCII”

Figure 17: Connection and raw data from the BLE device

2.6 Evaluation and representation with „Scilab“ and new approachwith Python

First I tried to record and visualise the incoming data from any of the three communicationprotocols with “Scilab”. But with with UDP and BLE it was unable to create a code ora way, to make it real handy and smooth to work on with “Scilab”. So the decisionwas made, that the code for the three various communication will be done with Python.The following picture shows the code for the different communication protocols TCP/IP,UDP and BLE, to be chosen from a GUI. After defining a protocol, and connecting tothe device, the data will be shown in the “Linux-Terminal” and saved as CSV-file.

Bouldering Page 17 of 21 LYX

Page 18: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

Figure 18: Communication protocol written in Python

The first picture is showing the GUI with the three communication protocols and itsinstruction for running into the “Linux-Terminal”. The second picture shows the CSV-data of the communication from the sensor, imported in “Libre office”.

Bouldering Page 18 of 21 LYX

Page 19: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

(a) Communication GUI with TCP/IP, UDP and BLE (b) CSV data asimport into LibreOffice

Figure 19: Communication GUI and CSV data in Python

Bouldering Page 19 of 21 LYX

Page 20: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

References

Bouldering Page 20 of 21 LYX

Page 21: Acceleration measurement during BoulderingBühlerPascal Version1.0 12.12.2017 (a) Plug-inboard (b) Circuitdiagram (c) Realisation with Pull-up resistors on the "Breadboard" Figure

Bühler Pascal Version 1.0 12.12.2017

List of Figures

1 Main components for acceleration measurement during "bouldering" . . . . 42 Plug-in board and circuit diagram of the wiring and realisation on the

“Breadboard” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Assembly and preparation of "Huzzah ESP32 Feather" and "Sensor-Breakout

BNO055" with pull-up resistors, for use on the “bouldering belt” . . . . . 54 Attachment of "Sensor Breakout BNO055", "Huzzah ESP32 Feather" and

battery to the kidney belt . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Menu item "Adafriut ESP32 Feather” . . . . . . . . . . . . . . . . . . . . . 97 “Wi-Fi” scan at 115200 baud . . . . . . . . . . . . . . . . . . . . . . . . . 108 Connection test with "wifitest.adafruit.com" . . . . . . . . . . . . . . . . . 109 Libraries for the "Sensor-Breakout BNO055" . . . . . . . . . . . . . . . . . 1110 Connection test with the "Sensor-Breakout BNO055" . . . . . . . . . . . . 1211 “Atom” with the package “PlatformIO” . . . . . . . . . . . . . . . . . . . . 1212 Program code in "Arduino IDE" as TCP / IP server . . . . . . . . . . . . 1313 Sensor data from "Huzzah ESP32 Feather" transmitted to the web browser

"Firefox" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414 Program code in "Arduino IDE" as UDP server . . . . . . . . . . . . . . . 1415 Sensor data from "Huzzah ESP32 Feather" as UDP packet, viewed in the

Linux Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 Program code in "Arduino IDE" as BLE server . . . . . . . . . . . . . . . . 1617 Connection and raw data from the BLE device . . . . . . . . . . . . . . . . 1718 Communication protocol written in Python . . . . . . . . . . . . . . . . . . 1819 Communication GUI and CSV data in Python . . . . . . . . . . . . . . . 19

Bouldering Page 21 of 21 LYX