Blue Home - Explore the Solar System – SCOPES-DF

Author

Noor Mohamed
Noor Mohamed
Informal educator
Physics graduate, educational content creator and STEM educator.  Read More

Summary

Learning about the solar system is always fun, but it can be even more fun if it was through a game!

 

This lesson provides the knowledge about the Solar System Planets by going through a story, where the students [players] are the main characters.

 

The story starts when an astronauts [the players] got lost in space, and they are trying to go back to their Blue Home, our planet Earth. And on their way back, they are faced with obstacles and some quizzes.

 

 

The lesson could be played depending on the number and ages of students, it is adaptable to all age groups and any number of students.

 

This link below shows a demo of the game:

https://youtu.be/aG_BVlQYVV8

 

 

What You'll Need

Preparing for this lesson will require the instructor to have an Arduino to code, printed cards [design attached], and jigsaw pieces [cut with a laser cutter]. To prepare these things here are the materials needed:

 

Bill of materials:

  • Different colors 15mm Cardboard [6 pieces]
  • RGB LED [1 piece]
  • Arduino Nano 33 BLE Sense [1 piece]
  • Addressable RGB LED Strips each with 3 LEDs [2 pieces]
  • Vibrating Mini [1 piece]
  • 3D printed Astronaut Piece [1 piece]
  • Printed Cards [30 cards]
  • Dice [1 piece]
  • Diffusive Paper [1 piece]

 

Preparation:

 

  • Print the game cards. ** design attached in lesson attachments.

 

 

  • Cut the jigsaw puzzle design using a laser cutter, with different colors of cardboard [10 – 15 pieces of each color] ** design attached in lesson attachments.

 

 

  • 3D print the astronaut piece, if a 3D printer is not available, then you can DIY and piece that looks similar to the design. ** design attached in lesson attachments.

 

 

  • Connect the electronic pieces as seen in the picture below [LED stripes, RG LED, Vibrating mini and the Arduino nano].

 

  • Code the Arduino with the available code:
// SENSOR LIBRARY
#include <Arduino_APDS9960.h>

//ADDRESSABLE RGB LED LIBRARY 
#include <Adafruit_NeoPixel.h>

#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN        6 // LED PIN 
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 6 // Popular NeoPixel ring size
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels

void setup() {
  
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.

  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)

  Serial.begin(9600);
  while (!Serial);

  if (!APDS.begin()) {
    Serial.println("Error initializing APDS-9960 sensor.");
  }

  
     pinMode(6, OUTPUT); //LED LIGHT (BASE)
     pinMode(9, OUTPUT); // RED
     pinMode(10, OUTPUT); //BLUE
     pinMode(11, OUTPUT); //GREEN
     pinMode(5, OUTPUT); //PUZZER

  
}

void loop() {


  int r, g, b, a;
  double rh, bh, gh, cmax, cmin, del, h, hf;

  // read the color
  APDS.readColor(r, g, b);

  // print the values
  Serial.print("r = ");
  Serial.println(r);
  Serial.print("g = ");
  Serial.println(g);
  Serial.print("b = ");
  Serial.println(b);
  Serial.println();

    // wait a bit before reading again
  delay(500);


  // LOWER LGB 
  pixels.clear(); // Set all pixel colors to 'off'

  // The first NeoPixel in a strand is #0, second is 1, all the way up
  // to the count of pixels minus one.
  //for(int i=0; i<NUMPIXELS; i++) { // For each pixel...

    // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
 
    pixels.setPixelColor(0, pixels.Color(255, 255, 255));
    pixels.setPixelColor(2,  pixels.Color(255, 255, 255));
    pixels.setPixelColor(3,  pixels.Color(255, 255, 255));
    pixels.setPixelColor(5,  pixels.Color(255, 255, 255));

    pixels.show();   // Send the updated pixel colors to the hardware.

    //delay(DELAYVAL); // Pause before next pass through loop
  //}


// SENSOR 
 // check if a color reading is available
  while (! APDS.colorAvailable()) {
    delay(1);
  }


  //find new r,g,b,c,del
  //rh=r/255;
 // gh=g/255;
  //bh=b/255;
  cmax= max(r,g);
  cmax= max(cmax,b);
  
  cmin=min(r,g);
  cmin= min(cmin,b); 
  
  del= (cmax-cmin);

   // find HUE

 if (r>g & r>b) 
  {h=60*((g-b)/del);} 
  
  if (g>r & g>b) 
  {h= 60*((b-r)/del+2);} 
  
  if (b>r & b>g) 
  {h=60*((r-g)/del+4);}
  
if (h<0)
{h=h+360;}

  Serial.println();
  Serial.println(h);
  Serial.println();

//GAME SETTINGS 
// depending on the value of h, the output led will change colors or the puzzer will turn on
// REFRENCE FOR HUE VALUES FOR THE PIECES OF BLUE HOME GAME: 

while ( abs(h-hf) > 5.0)
{
// PINK
if (h>220 & h <360)
{
  a= random(1,3); 
  }

  //BLUE
if (h<220 & h >210)
{
    a= random(3,4); 
  }

//BLACK
if (h>180 & h <210)
{
  a=random(4,6); 
  }

//GREEN
if (h<180 & h >140)
 {
  a =random(1,3); 
  }

  //OFFWHITE
if (h<140 & h >40)
{
  a= random(4,8);
  }

 //YELLOW
if (h<40 & h >0)
{
  a =random(3,5);
  }

//////////////////

  if (a==1) 
{
 digitalWrite(5, LOW ); // Turn the VIBRATING on
 digitalWrite(9, LOW ); // RED
 digitalWrite(10, LOW ); // BLUE
 digitalWrite(11, HIGH ); //GREEN
} 

if (a==2) 

{ digitalWrite(5, LOW ); // Turn the VIBRATING on
 digitalWrite(9, HIGH ); // RED
 digitalWrite(10, LOW ); // BLUE
 digitalWrite(11, LOW ); //GREEN
}

if ( a==3) 
{
 digitalWrite(5, LOW ); // Turn the VIBRATING on
 digitalWrite(9, HIGH ); // RED
 digitalWrite(10, LOW ); // BLUE
 digitalWrite(11, LOW ); //GREEN
 }


if (a==4)
{
 digitalWrite(5, HIGH ); // Turn the VIBRATING on
 digitalWrite(9, LOW ); // RED
 digitalWrite(10, LOW ); // BLUE
 digitalWrite(11, LOW ); //GREEN
 }


if (a==5)
{
 digitalWrite(5, LOW ); // Turn the VIBRATING on
 digitalWrite(9, HIGH ); // RED
 digitalWrite(10, HIGH ); // BLUE
 digitalWrite(11, LOW ); //GREEN
 }


if (a==6)
{
 digitalWrite(5, HIGH ); // Turn the VIBRATING on
 digitalWrite(9, LOW ); // RED
 digitalWrite(10, HIGH ); // BLUE
 digitalWrite(11, HIGH ); //GREEN
 }


if (a==7)
{
 digitalWrite(5, LOW ); // Turn the VIBRATING on
 digitalWrite(9, LOW ); // RED
 digitalWrite(10, HIGH ); // BLUE
 digitalWrite(11, LOW ); //GREEN
 }

 hf = h;
}


  Serial.print("hf = ");
  Serial.println(hf);
  Serial.println();
  
}

 

  • Insert the electronic inside the 3D printed piece [or any piece you are playing with]:

LED stripes in the bottom of the piece.

 

RGB LED inside the astronaut’s head, covered with the diffusive paper.

 

Vibrating mini inside the astronaut’s body.

 

** NOTE: Using the electronic pieces and the code will make the game more interactive and fun. However, the game could be played just by having the jigsaw pieces, the printed game cards, and pieces to play with.

The Instructions

Prepare the Game

Check What you'll need to know all the preparation needed to make the game.

The instructor needs to prepare the game, the cards, the pieces, and the printing and cutting so all the pieces are ready for the students to start with the next step!

Telling the Story

This step is the beginning of the lesson. you will be telling the students the story behind the game.

The story telling:

 

A blue dot in this dark space is our goal. A blue beautiful, shiny dot that we dream of reaching one day. It was once the land that we built, but now we are lost in space. The longing for our Blue Home reached its maximum. We were all just so happy to find a spacecraft that can take us back to our home, Earth. However, the road is not as clear as one can with. It is filled with obstacles that we need to face. Those obstacles require us to know more about our neighboring, the planets that are on our way back. But our faith is strong, and our determination will lead us back, we are sure.

 

Plan your Path

In this step, the path to get back to Earth is planned.

  • Use the jigsaw pieces to make a colorful path leading back home, the jigsaw pieces are compatible with each other from all sides so make sure the path is interesting!

 

  • The path can be one for all students [if the number of students is small], a different paths for each student, or a different path for each group of students.

 

  • The size of the path is also dependent on the lesson’s length, and the number of students.