Ο Εγκέφαλος


Μπορεί να χρησιμοποιηθεί οποιοδήποτε Arduino, ακόμη και nano, αρκεί ο κατασκευαστής να λάβει υπόψιν του πόσες εισόδους- εξόδους χρειάζεται και τι επεκτασιμότητα απαιτεί.

Εδώ χρησιμοποιήθηκε ένα Leonardo Arduino Uno και ένα mp3 module για να παίζει διάφορες εκφωνήσεις σχετικά με τους αστερισμούς και να είναι το παιχνίδι πιο διαδραστικό.



Συνδεσμολογία

Η συνδεσμολογία είναι απλή με τη χρήση απλών λευκών led (ένα ανά αστερισμό), αντιστάσεων 220 Ohm για κάθε led, ένα μπουτόν και τροφοδοσία usb.


Κώδικας

Παρατίθεται ο αρχικός απλός κώδικας με τις βασικές εξηγήσεις. Μπορεί να χρησιμοποιηθεί αυτούσιος (αντιγραφή-επικόλληση) είτε να βελτιωθεί π.χ με την εντολή for, είτε να προσαυξηθεί με τη χρήση φωνής, Bluetooth κ.α.


//code by Nick Tremoulis for the Prototype Arduino Planetarium

//presented at 11th Amateur Astronomers' Symposium at Bolos 2019


#define buttonPinA 8 //button to change constellations at pin 8

int led2 = 2; //LIITLE DIPPER led at pin 2
int led3 = 3; //BIG DIPPER led at pin 3
int led4 = 4; //CASSIOPEIA led at pin 4
int led5 = 5; //ORION led at pin 5
int led6 = 6; //SCORPIO led at pin 6
int led7 = 7; //SAGITTARIUS led at pin 7

int buttonStateA = 0; //button is off
int counta = 0; //counter at zero
void setup()
{
  Serial.begin(9600);//serial communication at 9600
  delay(200);//wait 200 millisecond

  pinMode(buttonPinA, INPUT_PULLUP);
  
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
}


void loop()
{
  buttonStateA = digitalRead(buttonPinA);
  
if (counta==0){
Serial.print("START"); //print "START" on the monitor
 Serial.println( counta); //print counter value
 delay(200);
}
  if (buttonStateA == LOW) { //if button gets pressed
      counta++; // increase counter by one

          if (counta==1){ //first time
          digitalWrite(led2, HIGH); // led 2 - LITTLE DIPPER turns ON
            Serial.println( counta); //print counter value
              Serial.print("LITTLE DIPPER"); // print "LITTLE DIPPER"
                 delay(200);
                 }     
  
       if (counta==2){ //second time
        digitalWrite(led3, HIGH); // led 3 - BIG DIPPER turns ON
            Serial.println( counta); //print counter value
              Serial.print("BIG DIPPER"); // print "BIG DIPPER"
                 delay(200);
                 }

     if (counta==3){ //third time
        digitalWrite(led4, HIGH); //led 4 - CASSIOPEIA turns ON
            Serial.println( counta); //print counter value
              Serial.print("CASSIOPEIA"); // print "CASSIOPEIA"
                 delay(200);
                 }

       if (counta==4){ //forth time
        digitalWrite(led5, HIGH); // led 5 - ORION turns ON
            Serial.println( counta); //print counter value
              Serial.print("ORION"); // print "ORION"
                 delay(200);
                 }

       if (counta==5){ //fifth time
        digitalWrite(led6, HIGH); // led 6 - SCORPIO turns ON
            Serial.println( counta); //print counter value
              Serial.print("SCORPIO"); // print "SCORPIO"
                 delay(200);
                 }
        
          if (counta==6){ //sixth time
        digitalWrite(led7, HIGH); // led 7 - SAGITTARIUS turns ON
            Serial.println( counta); //print counter value
              Serial.print("SAGITTARIUS"); // print "SAGITTARIUS"
                 delay(200);
                 counta = 0; // set counter to zero to start over
                 }
      }
}
 

 
πίσω στην αρχική