Μπορεί να χρησιμοποιηθεί οποιοδήποτε 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
}
}
}