esp32brachistochrone

ESP32 firmware providing a REST API for controlling the brachistochrone science outreach setup.

AIDE API docs

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.

Setup view

Web interface

HTML 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 and Stop 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)

Qualitative result

References

Package repository

Installation

User simple installation

  • npm install git+https://gitlab.inria.fr/line/aide-group/esp32brachistochrone.git

Co-developper installation

Please refer to the installation guide for installation.

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

devDependencies

Authors