Ενεργοποίηση βίντεο στο Processing μέσω αισθητήρα απόστασης















Κώδικας Arduino

Κώδικας Processing

Γενικά σχόλια-Παρατηρήσεις


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

Οι πιο συνηθισμένοι τρόποι παρέμβασης για τον καθορισμό της απόστασης ενεργοποίησης (επιλέγουμε έναν από αυτούς), είναι:

(α) αλλαγή στον κώδικα του Arduino
Εφόσον μας ενδιαφέρει η ενεργοποίηση ή όχι του βίντεο, αρκεί να στέλνουμε μια τιμή ελέγχου από το Arduino στο Processing. Για παράδειγμα, στέλνουμε το 1 για ενεργοποίηση, διαφορετικά το μηδέν. Αν η ενεργοποίηση γίνεται για απόσταση εμποδίου 30cm (ως παράδειγμα), τότε θα γράφαμε

if (cm<30) Serial.println(1);
else
Serial.println(0);


Για κάθε αλλαγή της παραπάνω απόστασης (έστω ότι φιλοξενείται στη μεταβλητή cm), θα πρέπει να μεταβάλλουμε τον κώδικα του Arduino και να τον ανεβάζουμε, ώστε να λειτουργεί η εφαρμογή με τις νέες ρυθμίσεις. Στον κώδικα του Processing δεν θα αλλάζει κάτι, αφού εκεί απλά θα ελέγχεται η τιμή 1 ή 0.

(α) αλλαγή στον κώδικα του Processing
Σε αυτή την προσέγγιση, στέλνουμε την μέτρηση του αισθητήρα στο Processing και εκεί αποφασίζουμε αν θα ξεκινήσει το βίντεο. Επομένως, η όποια προσαρμογή θα πρέπει να γίνεται μόνο στο Processing. Επιπλέον, για λόγους απλότητας, μπορούμε να στέλνουμε ακέραιο αριθμό στο Processing, ώστε να μειώσουμε την πολυπλοκότητα επεξεργασίας του αλφαριθμητικού, το οποίο θα διαθέτει και ψηφία δεξιά από την υποδιαστολή. Για παράδειγμα, αν η μέτρηση είναι 3.7, μπορούμε να στείλουμε τον αριθμό 4 ή αν είναι 3.2, τον αριθμό 3, δηλαδή να γίνεται κάθε φορά στρογγυλοποίηση στον πλησιέστερο ακέραιο, τον οποίο τελικά θα στέλνουμε στο Processing. Η στρογγυλοποίηση γίνεται με τη συνάρτηση round().

Τέλος, υπάρχει ένας τρόπος ακόμα, με τον οποίο δεν χρειάζεται αλλαγή στον κώδικα, αν αποφασίσουμε να αλλάξουμε την απόσταση ενεργοποίησης. Η υλοποίηση απαιτεί τη σύνδεση ενός ποτενσιόμετρου στο Arduino, βάσει του οποίου θα αλλάζει η απόσταση ενεργοποίησης. Το ποτενσιόμετρο θα μας δώσει τιμές 0 έως 1023, οι οποίες μέσω της εντολής map(), θα μετατραπούν στο εύρος τιμών που επιθυμούμε για την απόσταση. Έτσι, η ρύθμιση θα γίνεται από το ποτενσιόμετρο και όχι από κάποια παρέμβαση στον κώδικα.