This is a simple demonstation for the exoplanet transit method.
This uses a light source, a small 3D printed planet, and a webcam. The code use the image from the webcam to measure the overall brigthness of the image.
The planet is used to simulate a transit, and the measured brigthness is plotted over time.
A demonstation of what can be obtained is shown here: https://youtu.be/MxvssUAaK5Q
To reproduce you need:
- Some sort of lamp to provide illumination.
A battery powered, not too bright, and diffuse light is ideal. You can have some luck with AA powered camping lights.
- 3D-print a support for the light, and a few planets.
The 'planets' are a bit tricky to print, as they are very tall. Slowing down the print should however allow for printing relatively easily. Printing in PETG is preferred, but PLA is ok as well. Note that the planet are quite delicate, and also brittle if printed in PLA.
- A webcam. Built-in laptop webcams are ok, but USB ones offer flexibility in their placement.
- Downloading the code, and running:
pip install -r requirements.txt
python main.py
You can find some example stl files for the planets and lamp holder under the /stl folder.
Running the code will generate a website locally at http://127.0.0.1:8000. Note that while the server is local, internet access is still needed to access the js files that generate the plots.
After running the code, go to http://127.0.0.1:8000, select the webcam you want to use, and click 'Select and Start'. Wait a few second, after which you should be able to see the image generated by the webcam directly on the site.
Next, click 'Show' and 'Start'. A plot will be generated. Reset will restart the plot.
The plot generated measures the total brigthness of the camera in a circle area, which is positioned in the bottom center of the image area. You can place the light source in this position, and move the planet across it, and you should obtain a simulation of a transit.
After the camera and light are in position, it is reccomended to click the "Set Manual camera settings" button. This will fix the exposure time, autofocus and white balance to manual mode, and should improve the results.
In the main.py file, if needed, you can change the measure_masked variable to False if you want to measure over the whole image instead of the circle area.