Το project που υλοποιήσαμε για να φωτίσουμε το Χριστουγεννιάτικο δέντρο μας, είναι μια μπάλα-στολίδι που περιέχει ένα RGB LED, το οποίο παίρνει είσοδο από 3 αισθητήρες και αλλάζει χρώμα ανάλογα με αυτή. Πώς δουλεύει όμως;

Κάθε ένας από τους 3 αισθητήρες ελέγχει μία παράμετρο του LED. Όπως μπορείτε να φανταστείτε, οι παράμετροι είναι το κόκκινο, το πράσινο και το μπλε. Οι τιμές τους “παίζουν” από 0 (καθόλου χρώμα/μαύρο) έως 255 (εντονότερη τιμή του χρώματος).

void loop() {
  int r = getDistance(trigPin1, echoPin1);
  int g = getDistance(trigPin2, echoPin2);
  int b = getDistance(trigPin3, echoPin3);

  setColor(r, g, b);
}

(Μπορείτε να εξοικειωθείτε με το  Arduino εδώ)

Μετά από trial and error και πολλές δοκιμές με τις αποστάσεις, θέσαμε τον αισθητήρα να δίνει άσπρο (255, 255, 255) όταν η απόσταση είναι μεγαλύτερη από ~25cm, και όσο πλησιάζεις το χέρι στον αντίστοιχο αισθητήρα να μειώνεις την ένταση του χρώματος που του αντιστοιχεί.

void setColor(int red, int green, int blue) {
  red = 255 - red;
  green = 255 - green;
  blue = 255 - blue;

  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}

Προβλήματα εμφανίστηκαν και με τις απότομες μεταβολές αλλά λύθηκαν ως επί το πλείστον στη συνάρτηση getDistance( ). Μπορείτε να δείτε τον κώδικα στο σύνολο του στο Github repository.

Αφού ετοιμάσαμε το κύκλωμα, το  Arduino και τον κώδικα του, ήρθε η ώρα να το κάνουμε ευπαρουσίαστο. Ενώσαμε κάποια κομμάτια ξύλου, τοποθετήσαμε και στερεώσαμε τους αισθητήρες επάνω του, και το “ντύσαμε” στα χρώματα της IEEE. Προσέξαμε να κρατήσουμε την απόσταση μεταξύ των αισθητήρων αρκετά μεγάλη ώστε να μην παρεμβάλλονται οι είσοδοι των αισθητήρων.

Θα μπορέσετε να το δείτε “εν δράσει” και -έφοσον έχουμε χρόνο- να το δοκιμάσετε την Παρασκευή 15 Δεκεμβρίου, ώρα 13:30–15:00 έξω από την αίθουσα σεμιναρίων (Facebook Event).

Καλά Χριστούγεννα!

 

Υ.Γ. Με την καινούρια ταινία Star Wars να βγαίνει στις 14 Δεκεμβρίου, αποφασίσαμε να δώσουμε και μια χροιά από αυτή, εκτός από την αίσθηση της γιορτινής ατμόσφαιρας. Αυτό ήταν και το ερέθισμα για να χρησιμοποιήσουμε αισθητήρες απόστασης.