Πινακίδα Λεντ για Ρολόι

Πινακίδα Λεντ για Ρολόι

Η Ομάδα

Η ομάδα ρομποτικής @robot7gymchai του σχολείου μας δημιούργησε μια υπο-ομάδα αποτελούμενη από δυο μαθητές της Γ’ τάξης και έναν μαθητή της Α’, που μαζί με τον καθηγητή πληροφορικής, αποφάσισε να δημιουργήσει μια “Πινακίδα Λεντ για Ρολόι”.

Περιγραφή ιδέας:

Στα γηπεδάκια μπάσκετ ή ποδοσφαίρου 5×5 της γειτονιάς καλό είναι να υπάρχει τρόπος για να κρατιέται το σκορ και να φαίνεται ο υπολειπόμενος χρόνος παιχνιδιού. Με αυτήν την ευκολία μπορούμε να αποφύγουμε προστριβές μεταξύ των παικτών και να αναπτύξουμε το πνεύμα συνεργασίας μεταξύ των παιδιών της γειτονιάς.
Αναπτύξαμε φωτεινή έγχρωμη πινακίδα (RGB LED Matrix Panel), εξωτερικού χώρου, με τροφοδοσία μπαταρίας, μέσα σε εκτυπωμένη θήκη 3Δ, ηλεκτρονική διάταξη οδήγησης / χειρισμού και εφαρμογή σε ελεγκτή και προγραμματισμό της.

Eκπαιδευτικοί στόχοι του έργου:

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

Η συνάφεια με το θέμα του διαγωνισμού είναι οι θεματικές ΚΟΙΝΟΤΗΤΑ & ΑΛΛΗΛΕΓΓΥΗ, Ενίσχυση κοινωνικών δεσμών και αλληλοβοήθειας, Γειτονική Αλληλεγγύη: Δίκτυα υποστήριξης γειτονιάς και Ψηφιακό κέντρο γειτονιάς
ΥΓΕΙΑ & ΕΥΕΞΙΑ, Τεχνολογικές λύσεις για βελτίωση της υγείας και ποιότητας ζωής.

Το έργο αναπτύχθηκε με εργαλεία ανοιχτού λογισμικού και τα υλικά έχουν ανοιχτό και επαναχρησιμοποιούμενο χαρακτήρα.

Λίστα υλικών:

  • LED Matrix Panel 64x32p/16 by WaveShare, με HUB75 και αντίστοιχη πλακέτα οδήγησης
  • Arduino Mega 2560 ή Raspberry Pi-5 ή ESP32-S3 Development Board
  • Adafruit Data Logger Shield με Ρολόι Πραρματικού Χρόνου (Real Time Clock)
  • κάρτα microSD ή SSD με αντάπτορα
  • τροφοδοτικό ή UPS με μπαταρίες
  • νήματα εκτύπωσης
  • κουτί αποθήκευσης υλικών
  • κολλητήρι, μύτη κολλητηριού, κόλληση, υγρό φλουξ κόλλησης
  • γυαλιά προστασίας
  • διάφορα καλώδια και βύσματα

Λίστα Λογισμικού:

  • C++/17
  • Adafruit RGB Matrix Panel library
  • A real time clock (RTC) library

Εργαλεία:

πολύμετρο, πρέσα, ηλεκτρικό κολλητήρι, κοφτάκι, κοπίδι, πιστόλι θερμόκολλας, μυτοτσίμπιδο, κατσαβίδι, χάρακας

Υλοποίηση

Φωτογραφίες και Σχέδια από φάσεις κατασκευής

Ξεκινήσαμε για Πινακίδα σκορ, αλλά καταλήξαμε να υλοποιήσουμε ένα ψηφιακό έγχρωμο Ρολόι Τοίχου.

Πρώτα αποσυσκευάσαμε το μίνι UPS και το συναρμολογήσαμε με μπαταρίες λιθίου.
Το μίνι UPS παρέχει στην έξοδο αρκετό ρεύμα (5Α στα 5V) για να τροφοδοτήσει μέχρι και έναν μικροϋπολογιστή Raspberry Pi-5.

Δοκιμάσαμε να συνδέσουμε το Raspberry στην πινακίδα, αλλά δεν δούλεψε. Ξαναδοκιμάσαμε με άλλο ελεγκτή (ESP32-S3) και πάλι αποτυχία.

Ούτε με Arduino Mega 2560 καταφέραμε κάτι και καταλάβαμε ότι η πινακίδα λεντ ήταν προβληματική.
Την επιστρέψαμε στην εταιρία προμήθειας όπου την έλεγξαν ότι είναι καμένη και μας την αντάλλαξαν με άλλη μετά από έναν μήνα. Αυτή την φορά λειτούργησε κανονικά με Arduino Mega ADK και την βιβλιοθήκη επίδειξης του κατασκευαστή.
Με τη βοήθεια ενός γνώστη γονέα, μπορέσαμε και εκτυπώσαμε πλαστική βάση με την οποία η πινακίδα μπορεί να κρέμεται στον τοίχο.

Προγραμματισμός και Βασικός αλγόριθμος

Αναπτύξαμε κώδικα σε γλώσσα C++/17 μεσα σε περιβάλλον Arduino IDE 2.x, ο οποίος εμφανίζει, εκτός από την τρέχουσα ημερομηνία, μέρα της βδομάδας και την ώρα.

Το καινοτόμο του έργου είναι ότι εμφανίζει και το χρονικό διάστημα που απομένει σε λεπτά, μέχρι το επόμενο διάλλειμα, σύμφωνα με το ωρολόγιο πρόγραμμα των Ημερήσιων Γυμνασίων. Για να γίνει αυτό έχουν καταχωρηθεί οι ακριβείς ώρες που χτυπάει το κουδούνι για διάλλειμα.

ο βασικός αλγόριθμος είναι ο παρακάτω:

void loop() {
    // Διάβασε την τρέχουσα ημερομηνία και ώρα
    const DateTime now = rtc.now();
    // Εμφάνισε στην πινακίδα, στην κατάλληλη θέση και χρώμα
    matrix.setCursor(8, 9);
    matrix.setTextColor(matrix.Color444(0, 255, 0));
    constexpr char time_fmt_buff[] = "hh:mm:ss";
    matrix.print(now.toString(time_fmt_buff));
}

Δηλαδή συνεχώς επαναλαμβάνεται η ανάγνωση της ώρας και ο υπολογισμός με μια συνάρτηση του υπολοιπόμενου χρόνου.

Ο πλήρης κώδικας υπάρχει στο Github με Διεύθυνση αποθετηρίου: https://github.com/amachg/scoreboard_clock

Το τελικό αποτέλεσμα και η λειτουργία φαίνεται στα δύο παρακάτω βίντεο:

Άδειες χρήσης λογισμικού και περιεχομένου

 CC BY-NC-SA

Επαφή

Instagram: @robot7gymchai

email: amach@sch.gr

7° Γυμνάσιο Χαϊδαρίου “Νέα Φώκαια”