INTERACTIVE LIVE PERFORMANCE ARDUINO SYSTEM

Κατά το 5ο εξάμηνο της φοίτησης μου στο Μητροπολιτικό Κολέγιο, για του σκοπούς του μαθήματος “Music Technology and production” δημιούργησα ένα σύστημα από arduino και σένσορες τα οποία μέσω της MAX MSP τροφοδοτούν ρυθμιστικά του προγράμματος Ableton, έτσι ώστε όταν εγώ αλληλοεπιδρώ με τους σένσορες μπροστά μου να μπορώ εν δυνάμη να χειρίζομαι τις παραμέτρους του DAW.

Ως mainboard χρησιμοποίησα το arduino uno rev3. Οι σένσορες που αποφάσισα να χρησιμοποιήσω είναι:

Ο HC-SR04 Ultrasonic Sensor, ο οποίος στέλνει υπερηχητικά σήματα και στην συνέχεια λαμβάνει πίσω την ανάκλαση του σήματος. Υπολογίζοντας την διαφορά χρόνου αναπαραγωγής και ακρόασης το arduino επιστρέφει στον χρήστη την απόσταση που έχει το πιο κοντινό αντικείμενο από τον σένσορα.

Ο MPU6050 Accelerometer, πρόκειται για ένα επιταχυνσιόμετρο και γυροσκόπιο τριών αξόνων. Για το συγκεκριμένο project με ενδιαφέρει η λειτουργία του γυροσκόπιου δηλαδή η γωνία που έχει ο σένσορας σε κάθε άξονα και όχι η επιτάχυνση του.

Ο WAVESHARE Liquid Level Sensor, ο οποίος χρησιμοποιώντας κατακόρυφες μεταλλικές επαφές και αξιοποιώντας την αγωγιμότητα του νερού, επιτρέπει στο arduino να επιστρέψει στον χρήστη την τιμή ανάλογα με την στάθμη του υγρού στο οποίο μέσα βρίσκετε ο σένσορας.

Πρώτα διάβασα τις οδηγίες εγκατάστασης για τον κάθε σένσορα:

https://maker.pro/arduino/tutorial/how-to-interface-arduino-and-the-mpu-6050-sensor

https://www.waveshare.com/wiki/Liquid_Level_Sensor

https://projecthub.arduino.cc/Isaac100/getting-started-with-the-hc-sr04-ultrasonicsensor-7cabe1

Μετά βρήκα τα διαγράμματα με την σωστή συνδεσμολογία:

HC-SR04 Ultrasonic Sensor:

Για την σύνδεση του ultrasonic sensor χρησιμοποίησα τα digital pins 12,13 και όχι τα 9,10 όπως φαίνεται στην εικόνα επάνω.

MPU6050 Accelerometer:

WAVESHARE Liquid Level Sensor:

Ο MPU6050 δεν είχε έτοιμα pins για σύνδεση όπως οι άλλοι δύο σένσορες οπότε για την αρχική δοκιμή τον σύνδεσα με καλώδια τύπου κροκοδειλάκι.

Στην συνέχεια έκανα συγκόλληση του εξαρτήματος με το οποίο ήρθε ο σένσορας

Συνέδεσα τον κάθε σένσορα ξεχωριστά επάνω στο arduino, και άρχισα να ψάχνω τον εκάστοτε κώδικα. Μέσα απο το library του Arduino IDE βρήκα τους κώδικες για τον κάθε σένσορα.

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

Στην συνέχεια με βάση τις φωτογραφίες δημιούργησα ένα δικό μου διάγραμμα κατά το οποίο και οι τρεις σένσορες συνδέονται ταυτόχρονα επάνω στο arduino.

Ως αποτέλεσμα οι 3 σένσορες δούλεψαν ταυτόχρονα και στο serial output έλαβα το εξής κάθε 10ms:

Distance: 400 Water level: 3 angleX : -0.62 angleY : -1.39 angleZ : -36.12

Όπου Distance είναι η απόσταση του ultrasonic σένσορα σε εκατοστά από 0 έως 400 Water level είναι η στάθμη του νερού από 0 έως 650. Και angle x,y,z είναι η γωνία στην οποία βρίσκεται το γυροσκόπιο σε κάθε άξονα από -90 εως +90 περίπου.

Μπορείτε να δείτε το σύστημα σε χρήση στο παρακάτω βίντεο:

Previous
Previous

Video Selector Console

Next
Next

DMX RGB Controller