Skip to content
An autonomous robot that recognises human faces and alerts via email if any unauthorized person enters the school region.
Python C++
Branch: master
Clone or download
Latest commit a53b25a May 10, 2019

README.md

Περιγραφή:

Πρόκειται για ένα αυτόνομο ρομπότ που αναγνωρίζει ανθρώπινα πρόσωπα και σε περίπτωση εισβολής μη αναγνωρίσιμου προσώπου τις ώρες που το σχολείο είναι κλειστό θα ενημερώνει με email το κατάλληλο πρόσωπο. Το ρομπότ λειτουργεί σε δύο καταστάσεις:
  1. Κατάσταση Σχολικού φύλακα, σε ώρες εκτός σχολικού ωραρίου
  2. Κατάσταση ψυχαγωγίας (χαιρετισμός - αναγνώριση,μουσική, βόλτες), σε ώρες εντός σχολικού ωραρίου
Στην 1 η κατάσταση (δηλ. τις ώρες εκτός σχολικού ωραρίου), το ρομπότ θα κινείται στον χώρο του σχολείου ανιχνεύει για πρόσωπα και στην περίπτωση μη αναγνωρίσιμου προσώπου ενημερώνει με email τον Διευθυντή του σχολείου

Στην 2 η κατάσταση (εντός σχολικού ωραρίου), το ρομπότ μπορεί να βρίσκεται σε διάφορες καταστάσεις όπως: ηρεμία, κίνηση στο χώρο του σχολείου, αναγνώριση και χαιρετισμός ονομαστικά προσώπων που συναντάει, παίξιμο μουσικής. Τα παραπάνω γίνονται τυχαία. Κάθε λίγο αλλάζει υποκατάσταση.

 

Παρουσίαση δυνατοτήτων:

[youtube https://www.youtube.com/watch?v=UrVr22XGyjo&w=1280&h=753]

Αποθετήρια & OER CANVAS

Αποθετήριο στο github: πατήστε εδώ Project OER CANVAS: πατήστε εδώ

Ομάδα Μαθητών

πατήστε εδώ

 

 

   

  

Κώδικας - Δομή

Ο Κώδικας είναι γραμμένος σε γλώσσα προγραμματισμού python 3.7+. Ως αρχή διαχωρισμού του κώδικα σε στοιχεία, χρησιμοποιείται όπου είναι δυνατόν το πρότυπο MVC (Model - View - Controller). Ως views προς το παρόν θα είναι διαγνωστικά μηνύματα. Σε μελλοντική αναβάθμιση, θα είναι αλλαγές σε συνδεδεμένη οθόνη. Επιπλέον ο φάκελος Helpers περιέχει βοηθιτικές κλάσεις υπεύθυνες για παράδειγμα για να στέλνει το ρομπότ email, να μιλάει με τη βάση δεδομένων (γενικά ως διεπαφή). Ο Φάκελος res περιέχει αρχεία βοηθητικά, όπως φωτογραφίες, βάση δεδομένων κ.τ.λ.
  • Models/ (κλάσεις επικοινωνία με βάση για κάθε οντότητά της)
  • Views/ (κλάσεις μόνο για προβολή διαγνωστικών, αργότερα προβολή εκφράσεων κτλ σε οθόνη)
  • Controller/ (κλάσεις σχετικά με τον έλεγχο των λειτουργιών του ρομπότ)
  • Helpers/ (βοηθητικές κλάσεις που διευκολύνουν την εφαρμογή ως διεπαφή και όχι μόνο)
  • res/ (αρχεία όπως εικόνες, βάση δεδομένων). Ο φάκελος faces έχει τις εικόνες από τα πρόσωπα. Το αρχείο dataset_faces.dat περιέχει τα πρόσωπα αναλυμένα. Το αρχείο robot2.sqlite περιέχει τα στοιχεία των ατόμων που γνωρίζει το σύστημα και τα μονοπάτια των φωτογραφιών.
    • images/ (εικόνες)
    • robot.db (βάση δεδομένων)
  • configuration.py (αρχείο ρυθμίσεων)

Διάγραμμα Ροής

Διδακτική προσέγγιση:

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

Η διδακτική προσέγγιση που ακολουθήθηκε από τους εκπαιδευτικούς –υπεύθυνους για το συγκεκριμένο project, βασίζεται στις καινούργιες αρχές-τάσεις που αφορούν στη μάθηση, μερικές από αυτές περιγράφονται παρακάτω:

  • Ενεργός συμμετοχή των μαθητών, ώστε να αξιοποιούν την φυσική τους διάθεση για διερεύνηση νέων πραγμάτων
  • Κοινωνική αλληλεπίδραση με σκοπό να εξωτερικεύουν τις ιδέες τους μέσα σε μια ομάδα
  • Δραστηριότητες που έχουν νόημα για τους μαθητές, που καταλαβαίνουν τον λόγο για τον οποίο τις κάνουν και είναι μέσα στην κουλτούρα τους.
  • Σύνδεση των νέων τεχνολογιών με τις προϋπάρχουσες γνώσεις που ενεργοποιούνται και χρησιμεύουν στην ικανότητα της κατανόησης
  • Χρήση στρατηγικών μάθησης ώστε οι μαθητές να αναλαμβάνουν περισσότερες ευθύνες
  • Ανάπτυξη του αναστοχασμού των μαθητών, ώστε να σχεδιάζουν και να παρακολουθούν οι ίδιοι τη μάθηση τους και να διορθώνουν τα λάθη τους
  • Αναδόμηση της προϋπάρχουσας γνώσης ώστε αυτή να μην αποτελεί εμπόδιο για τα νέα γνωστικά αντικείμενα
  • Στόχος η κατανόηση και όχι η απομνημόνευση
  • Διάθεση χρόνου για εξάσκηση των μαθητών που είναι απαραίτητη για την συγκρότηση της γνώσης
  • Καλλιέργεια κινήτρων για μάθηση που οι μαθητές καθοδηγούμενοι από τον εκπαιδευτικό συμμετέχουν ενεργά σε δραστηριότητες.

Υλικά

Πρόκειται να χρησιμοποιήσουμε τα παρακάτω υλικά:
α/α Όνομα τεμάχια κόστος
1 Αισθητήρας Ανίχνευσης Κίνησης HC-SR501 2 5.60
2 Αισθητήρας Απόστασης Υπέρυθρος - Sharp GP2Y0A21YK 4 47,60
3 Τροφοδοτικό 5V 2.5A για Raspberry Pi Μαύρο (Γνήσιο) 1 9.90
4 Micro SD 16GB - Pre-Loaded with NOOBS 1 13.90
5 Raspberry Pi Heatsink - Black (Set of 2) 1 1.20
6 Raspberry Pi Camera Module  (8MP,1080p) 1 29.90
7 Waveshare RPi Motor Driver HAT 1 34.90
8 Raspberry Pi 3 - Model B+ 1 41.90
9 Μπαταρίες 6V 2 11,20
10 Arduino Uno 1 7
Το συνολικό κόστος είναι 203,10 Ευρώ.

Ηλεκτρονικό Κύκλωμα

Η κεντρική ιδέα είναι η εξής:

  • Το Raspberry, υπεύθυνο για την εκτέλεση του αλγορίθμου σε γλώσσα προγραμματισμού python 3.
  • Οι αισθητήρες απόστασης λαμβάνουν αναλογικό σήμα του οποίου η τάση, volts είναι αντιστρόφως ανάλογη της απόστασης.  Υπάρχουν 4 αισθητήρες, ένας για κάθε πλευρά.
  • Το Anrduino λαμβάνει ρεύμα από το usb port μέσω του Raspberry και μετατρέπει τις αναλογικές τιμές από τους αισθητήρες σε ψηφιακή και τις αποστέλλει στο Raspberry.
  • H Κάμερα λαμβάνει συνεχώς εικόνες τις οποίες επεξεργάζεται το Raspberry χρησιμοποιώντας την face_recognition library της python.
  • To motor hat λαμβάνει 12V από τις μπαταρίες και διοχετεύει 5v στο Rasberry.
  • Το motor hat λαμβάνει εντολές από το Raspberry και δίνει έως 12V στα moter.  Ακολουθεί τη φιλοσοφία ενός Tank.
    • Αν δοθεί ρεύμα και στα 2 μοτέρ το ρομποτ κινείται μπροστά.
    • Αν δοθεί ρεύμα στο δεξί, στρίβει αριστερά. (με ανάποδη τάση στο άλλο μοτέρ στρίβει γρηγορότερα)
    • Αν δοθεί ρεύμα στο αριστερό, στρίβει δεξιά. (με ανάποδη τάση στο άλλο μοτέρ στρίβει γρηγορότερα)
    • Αν δοθεί ανάποδη τάση και στα δύο, οπισθοχωρεί.

Σχέδιο Τομή

Κάτοψη

 

Καταμερισμός Εργασιών

α/α Υποέργο Υπεύθυνοι
1 Ηλεκτρονικά Παναγιώτης (ΓΠ) Γιώργος (ΒΠ)
2 Κίνηση Ρομπότ - Κώδικας Θεοδωρής (ΓΠ) Βαλάντης (ΓΠ)
3 Αναγνώριση Προσώπου Μίλτος (ΔΠ) Μαρία Τ.(ΒΠ) Ελβίρα(ΔΠ) Μιχάλης (ΔΠ)
4 Ήχος Νίκος (ΓΠ) Ταξιάρχης(ΓΠ)
5 Αποστολή email Μαρία Β. (ΔΠ) Μαρία M.(ΒΠ) Ματινα Μ.(ΒΠ)
6 Βίντεο Αργύρης (ΒΠ) Στέφανος(ΒΠ)
7 Μηχανικό Μέρος Μιχάλης (ΓΠ) Παναγιώτης (ΓΠ) Γιώργος (ΒΠ)
8 Επίβλεψη Μίλτος (ΔΠ)

Υλικό από τις φάσεις υλοποίησης

Φάση 1 - Σχεδιασμός - Εργασία σε ομάδες

[youtube https://www.youtube.com/watch?v=Pg-1URzjuto&w=1280&h=753]

εικόνες:   

Φάση 2 - Σασί

βίντεο: εδώ εικόνες:

 

 

 

Φάση 3 - Raspberry

βίντεο: εδώ εικόνες:

 

 

 

Φάση 4 - Arduino

βίντεο: [youtube https://youtu.be/w9END-3aBro&w=1280&h=753] εικόνες:

 

Φάση 5 - Moter

βίντεο: Δοκιμές χωρίς ελεγκτές: [youtube https://www.youtube.com/watch?v=PikkqNtC3kI&w=1280&h=753] Πρώτες Δοκιμές με motor controller: [youtube https://www.youtube.com/watch?v=L-_xVFDmJX4&w=1280&h=753] [youtube https://www.youtube.com/watch?v=9V1Vu6hdX1A&w=1280&h=753] [youtube https://www.youtube.com/watch?v=dsQnqRRhkoQ&w=1280&h=753]

εικόνες:

Φάση 6 - Αναγνώριση

βίντεο: [youtube https://youtu.be/BhZOlY-OXyQ&w=1280&h=753]

Φάση 7 Περίβλημα

 

 

 

Εγκατάσταση Λογισμικού

Για να εγκαταστήσετε το πρόγραμμα 1. Εγκαταστήστε python 3.5+ 2. Εγκαταστήστε τις απαραίτητες βιβλιοθήκες μέσω των παρακάτω εντολών:
sudo apt-get update
sudo apt-get install build-essential cmake
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libx11-dev libgtk-3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install mp321
sudo apt-get install p
sudo apt-get install python3-pyaudio
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqtgui4
sudo apt-get install python3-pyqt5
sudo apt install libqt4-test

pip3 install gTTS
pip3 install RIPi.GPIO
pip3 --no-cache-dir install dlib
pip3 --no-cache-dir install face_recognition
sudo pip3 install SpeechRecognition
pip3 install opencv-python
3. ανοίξτε από το res το db αρχείο και βάλτε τα δικά σας στοιχεία για τα άτομα και τα σχετικά μονοπάτια των φωτογραφιών τρέξτε το python main.py

Ενέργειες για το μέλλον

Πρέπει να κατασκευαστεί ένα περίβλημα για να γίνει αισθητικά ωραιότερο το Ρομπότ.

Άδεια Χρήσης

Ο κώδικας διανέμεται με άδεια χρήσης ανοιχτού κώδικα MIT License. Το εκπαιδευτικό υλικό και η τεκμηρίωση να διανέμεται με άδεια χρήσης CC-BY.
You can’t perform that action at this time.