esp32brachistochrone
ESP32 firmware providing a REST API for controlling the brachistochrone science outreach setup.
A ESP32 micro-controller to drive the brachistochrone board experiment
This software package provides the ESP32 micro-controller firmware to drive the brachistochrone board experiment.
Web interface
Doing the experiment
- Stick the three metal balls onto the electromagnets.
- Press the button on the setup of the HTML interface
Run
button and observe the ball fall. - Press the HTML interface
Get
button at the motion end to get the detected times.
Tutorial video: https://youtu.be/ekZs-oHr1R8
Remarks:
- The
Start
andStop
command are only used for debug. - The
Get
output is of the form
{
"route": "brachistochrone",
"time": 0.000, // Current time in second when the `Get` button is pressed.
"start_time": 0.000, // Experiment time in second, when the `Run` button is pressed.
"detected_times": [0.000, 0.000, 0.000] // Relative times of optical sensor detection, after start_time.
}
- Result prediction:
- The brachistochrone addresses the following problem: « Given two points A and B in a vertical plane, what is the curve traced out by a point acted on only by gravity, which starts at A and reaches B in the shortest time. »
- The result is relatively counter-intuitive:
- It is not the shortest path (i.e., a rectilinear line), because the ball velocity is not optimal.
- It is not a path with an initial fall to obtain a maximal acceleration, thus a higher velocity.
- But a rather complex result only obtained by calculation (with the surprising result that the path runs below the final target)
References
- The science outreach activity and mechanical hardware description (in French)
- The electronic hardware description
- The webservice usage description
Package repository
- Package files: https://gitlab.inria.fr/line/aide-group/esp32brachistochrone
- Package documentation: https://line.gitlabpages.inria.fr/aide-group/esp32brachistochrone
- Source files: https://gitlab.inria.fr/line/aide-group/esp32brachistochrone/-/tree/master/src
- Version
1.1.1
- License
CECILL-C
Installation
User simple installation
npm install git+https://gitlab.inria.fr/line/aide-group/esp32brachistochrone.git
Co-developper installation
- See the related documentation
Please refer to the installation guide for installation.
Usage
- Refer to usage_brachistochrone, for the Brachistochrone web service usage.
npm script usage
npm install --quiet : installs all package dependencies and sources.
npm run build: builds the different compiled, documentation and test files.
npm test : runs functional and non-regression tests.
npm run clean: cleans installation files.
Dependencies
- None
devDependencies
- aidebuild: Builds multi-language packages and related documentation
- esp32gpiocontrol: ESP32 firmware providing a REST API for controlling the GPIO interface and higher functions