In this activity, students will build and code a device capable of detecting and measuring light from several light sources. Each light source will emit light at a different wavelength but only one wavelength contains the information students will need to collect. Students will write a program that enables their device to selectively detect only the desired light source.
- This activity requires an intermediate knowledge of programming languages. Students should have background knowledge of how to import libraries for external sensors using Python and navigate online resources for operating loops.
- If materials allow, try to keep groups no greater than three students. This way, each student can have a specific role (e.g., programming, assembly, or optics) that can be performed concurrently with the group to ensure active group participation.
As we explore the solar system and beyond, we rely on NASA’s Deep Space Network, or DSN, to serve as our communication device between Earth and our distant spacecraft. The DSN consists of a number of antennas across the globe that use radio waves to transmit information to and receive data from our missions in space.
However, radio waves are not very efficient when it comes to transmitting a lot of information in a short amount of time. Their long wavelengths mean that signals can better resist distortion, but as more and more complex data is being sent across space, NASA is exploring higher frequency (and therefore shorter wavelength) light sources to be able to beam messages more efficiently.
One such option being explored is known as Deep Space Optical Communications, or DSOC, which would use near infrared (NIR) light beams carefully aimed between spacecraft and our detectors on Earth to send data. By using IR light instead of radio waves, we would see a 10,000-fold increase in frequency meaning 100-times more data could be transmitted.
While this would mean we could get more data more rapidly, it does come with some complications. Light doesn’t move equally through different materials. This is why our sky is blue and why we build telescopes on top of high mountains. The atmosphere interferes with certain wavelengths of light, potentially distorting the data being received.
Additionally, recall that we receive much more than visible light here on Earth. We are bathed in light beyond what we can detect with the naked eye, such as ultraviolet light from the Sun or radio waves from our phones and wireless internet.
To be successful, DSOC technology will need to be capable of resisting distortion as the light travels through space and our atmosphere, selective about the wavelength of light it detects, and carefully positioned to catch a focused beam of light. So far, it appears this all could be achievable. The DSOC technology has already been piloted in communications between Earth and the Moon and will next be tested aboard the Psyche mission, launching in 2022.
Setup and Programming
- Using a compatible computing device and a desired programming language, such as Python, import the libraries needed for your device. This will likely include GPIO board, LEDs, and more, depending on student knowledge of coding and the devices being used (LEGO, Raspberry Pi, Cubit, etc.).
- Have students begin by writing a simple script capable of turning on and off at least three lights. It’s recommended that the lights have very different wavelengths, such as IR, visible light, and UV.
- Have students experiment with code that will use a light sensor to detect one of these lights but not the others. This can be done using the intensity detected by the sensor, for example.
- Instruct students to write code that gives an output for whether or not the desired wavelength of light is being detected. If students have a digital display, for example, this can be as simple as printing out the message “Receiving.” Consider adding more indicators of success, such as triggering a speaker.
- The most difficult step is writing the code to run both the light display sequence and the detection sequence concurrently. This can be done by joining multiple loops or using the "multiprocessing" and "process" libraries. Sample code is shown below, but have students experiment in creative ways, including potentially doing some online research about various techniques they might use, as this is the most flexible step towards success.
- To build the physical device, students will need at least a breadboard, three LEDs, and a light sensor. Depending on the devices being used, they may need wires and resistors for each LED.
- Have students put together an inventory and blueprint of their physical device and gather materials. Dividing team members to include specific groups roles will help to keep all students engaged. Encourage students to communicate with their programming and optics counterparts on their team to be sure they are all operating with the same supplies in mind.
- Begin construction of the device by having students align the LEDs on the breadboard either an equal distance from the light detector or in a way that the LEDs can be easily moved to a standard distance.
- Once the sample code is ready for testing, verify that the lights are operating (See step 2), students should verify that the LEDs are properly connected via their individual assemblies. Remind students that, depending on the wavelengths chosen, they may not be able to actually see that the LED is operating.
- Have students responsible for construction communicate with their programming counterpart to record the intensities of each light being detected. Students should revise their code and threshold for detection based on these observations.
- Challenge students to attach a digital display and/or a speaker to their device that is triggered when the correct wavelength is detected above the threshold intensity.
- Execute the code, and revise as needed.
- What challenges presented themselves in running two loops simultaneously? How was that resolved?
- How do we know that the light detector is capable of detecting the wavelengths of all of our LEDs? Was there a scenario where you were able to trigger the sensor with the UV light? The IR light?
- What possible complications do you predict would present themselves as we translate our device from lights and detectors in close proximity to those spread across the solar system?
- Refer to the coding rubric.
- A successful project will have at least three LEDs cycling while simultaneously and reliably indicating detection of light when only the desired light is illuminated.
- If you have an IR camera available, an exciting demonstration and extension is to show students what their active device looks like under an IR camera instead of with the naked eye. Per the discussion above around complications of detecting light across the solar system, certain materials, such as plexiglass, block IR light.
- If student groups finish their device quickly, consider having them switch their light detector with an IR diode sensor. These simple devices cost under a dollar and can be used to selectively identify IR light instead of visible light.
Collecting Light: Inverse Square Law Demo
In this activity, students learn how light and energy are spread throughout space. The rate of change can be expressed mathematically, demonstrating why spacecraft like NASA’s Juno need so many solar panels.
Time Less than 30 mins
Build a Relay Inspired by Space Communications
In this intermediate-level programming challenge, students use microdevices along with light and mirrors to build a relay that can send information to a distant detector.
Time 1-2 hrs
Signal Solution: A 'Pi in the Sky' Math Challenge
In this illustrated math problem, students use the mathematical constant pi to compare signal strength between traditional radio wave communication and the Deep Space Optical Communication system.
Time Less than 30 mins
Code a Mars Landing
Use coding and computer science to simulate how NASA lands spacecraft on Mars during the process known as entry, descent, and landing, or EDL.
Time More than 2 hrs