Λίγα λόγια για το έργο…”Lightart”
Θέλοντας να συνδυάσουμε την τέχνη με τις νέες τεχνολογίες θα δώσουμε φως σε ενα έργο του Βίνσεντ βαν Γκογκ και συγκεκριμένα το “Έναστρη Νύχτα”. Χρησιμοποιώντας τον μικροελεγκτή ARDUINO και μια εφαρμογή που θα φτιάξουμε στο κινητό ,θα δίνουμε φως στον πίνακα επιλέγοντας τα άστρα, το φεγγάρι -Leds και τα γαλαξιακά κύματα -λεντοταινίες που επιθυμούμε. Η επικοινωνία θα γίνεται μέσω bluetooth ή Wifi
Eκπαιδευτικοί στόχοι του έργου:
Ανάπτυξη υπολογιστικής σκέψης ,προγραμματισμός, ανάπτυξη ήπιων δεξιοτήτων όπως ξύλινης κατασκευής, προσαρμογής κυκλώματος στον πίνακα ,κατασκευή συνδεσμολογίας, σύνδεση τέχνης με τεχνολογία, Γνωριμία με την Τεχνητή Νοημοσύνη.
Απαιτούμενα υλικά και εργαλεία
- Πίνακας- ξύλινη κατασκευή
- leds
- αντιστάσεις
- arduino uno
- bluetooth module
- τροφοδοτικό
- καλώδια
- κόλληση
- breadboard
- κολλητήρι
- πολύμετρο
- απογυμνωτής καλωδίων
- Addressable RGB λεντοτανία
1ο στάδιο: Κατασκευή πίνακα
Επισκευάσαμε μια παλιά ξύλινη κατασκευή και αντικαταστήσαμε την ξύλινη επιφάνεια που θα ζωγραφίζαμε.
Για τη ζωγραφική χρησιμοποιήσαμε ακρυλικά χρώματα.
2ο στάδιο : Προετοιμασία πίνακα και επιλογή των κατάλληλων led
Στη θέση των αστεριών και του φεγγαριού του πίνακα θα βάζαμε λεντάκια 3mm και 5mm σε διάφανο και κίτρινο χρώμα.
Κάναμε τρύπες στις αντίστιχες θέσεις και στη συνέχεια επιλέξαμε τις κατάλληλες αντιστάσεις ώστε να εξασφαλίσουν την κατάλληλη φωτεινότητα χωρίς να υπάρχει πρόβλημα με το Arduino.
Γνωρίζουμε ότι η έξοδος του Arduino είναι 5 Volt .
Σε κάθε λεντ συνδέουμε και μια αντίσταση .
Στη συνέχεια συνδέσαμε σ όλες τις καθόδους καλώδιο το οποίο το οδηγήσαμε σ ένα μικρό breadboard . Τις γεφυρώσαμε ώστε όλες να συνδεθούν στο ground του Arduino.
Τοποθετήσαμε το Arduino Uno στο οποίο πριν είχαμε περάσει τον κώδικα καθώς και το bluetooth module, κάναμε τις απαραίτητες συνδεσμολογίες και τα στερεώσαμε .
3ο στάδιο : Εφαρμογή στο MIT App Inventor
Η εφαρμογή έγινε στη σελίδα του MIT App Inventor https://appinventor.mit.edu/
Για την σχεδίαση τα βασικά στοιχεία που χρησιμοποιήσαμε από το user interface είναι:
Listpicker για την συνδεσιμότητα με το bluetooth module του Arduino και buttons για τον έλεγχο των led του φεγγαριού και των αστεριών.
Επίσης βάλαμε αντίστοιχους ήχους για το on-off των buttons ενώ ταυτόχρονα θα άλλαζε το χρώμα τους.
Τα δυο κάτω buttons αναφέρονται στην μελοντική επέκταση της εφαρμογής με την τοποθέτηση διευθυνσιοδοτούμενης RGB λεντοταινίας περιμετρικά του πίνακα οπότε θα καλούνται τα αντίστοιχα μέρη του κώδικα.
Ακολουθεί ο αντίστοιχος κώδικας:
4ο στάδιο: Προγραμματισμός στην ανοιχτού κώδικα εφαρμογή Arduino IDE
//Πρόγραμμα ελέγχου LED μέσω Bluetooth
#include <FastLED.h>
#define LED_PIN 2
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
int i;
char data = 0; //Εδώ αποθηκεύεται το byte που λαμβάνουμε
void setup()
{
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setMaxPowerInVoltsAndMilliamps(5, 500);
FastLED.clear();
FastLED.show();
Serial.begin(9600); //Ρυθμός λειτουργίας της σειριακής επικοινωνίας
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
if(Serial.available() > 0) // Προχώρα παρακάτω μόνο αν έλαβες κάτι…
{
data = Serial.read(); //∆ιάβασε το byte που ήρθε και αποθήκευσέ το
if(data == 11) //Αν έλαβες τον αριθμό 11…άνοιξε τα λεντ του φεγγαριού
{
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
else if(data == 10) //Αν έλαβες τον αριθμό 10…σβήσε τα λεντ του φεγγαριού
{
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
else if(data == 21) //Αν έλαβες τον αριθμό 21…
{
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
}
else if(data == 20) //Αν έλαβες τον αριθμό 20…
{
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
else if(data == 31)
{
// Turn lights from green to blue from left to right R G B
for (int i=0; i<NUM_LEDS; i++){
leds[i] = CRGB(0, 255 – 4*i, 4*i );
FastLED.setBrightness(2*i);
FastLED.show();
delay(50);
}
}
else if(data == 32)
{
// Turn lights from blue to magenta from right to left
for (int i=NUM_LEDS; i>0; i–){
leds[i] = CRGB(4*i,0 , 255-4*i);
FastLED.setBrightness(100-i);
FastLED.show();
delay(50);
}
}
else if(data == 30)
{
// Turn all lights OFF
FastLED.clear();
FastLED.show();
}
}
}
Βίντεο λειτουργίας έργου
Στο βίντεο που ακολουθεί φαίνεται η λεντοταινία που θα τοποθετηθεί περιμετρικά του πίνακα