Skip to content

riggas-ionio/smart-iot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

DDI196 Έξυπνες Τεχνολογίες και εφαρμογές

Σε αυτό το repository μπορείτε να βρείτε χρήσιμο υλικό για το μάθημα DDI196 Έξυπνες Τεχνολογίες και εφαρμογές.


Lab #1

Task (στο TinkerCad):

  • Δημιουργήστε student account TinkerCad link: https://www.tinkercad.com/joinclass/LTBNZTEEA (Join with email / username ή με το Microsoft account σας).
  • Δημιουργήστε ένα κύκλωμα Arduino - αντίστασης - led και το σχετικό πρόγραμμα το οποίο ανάβει και σβύνει το led κάθε 1 sec.
  • Δημιουργήστε ένα κύκλωμα Arduino - αντίστασης - led και το σχετικό πρόγραμμα το οποίο ανάβει και σβύνει το led κάθε 1, μετά κάθε 2, μετά κάθε 3, κ.ο.κ. μέχρι 5 sec και στη συνέχεια ο χρόνος να μειώνεται σε κάθε επανάληψη.

Lab #2

Task (στο TinkerCad):

  • Δημιουργήστε ένα φανάρι οχημάτων & πεζών, με το τελευταίο να ελέγχεται από κουμπί.

Lab #3

  • Γνωρίμία αξιοποίησης ποτενσιόμετρου για αναλογική είσοδο.
    Οι αναλογικές είσοδοι του Arduino (A0-A5) δέχονται ως είσοδο μία τάση, τυπικά 0-5V, και μέσω ενός analog to digital converter την αντιστοιχούν σε μια 10 bit τιμή, δλδ μεταξύ 0 και 2^10-1 (δλδ 1023). Η ανάγνωση από την αναλογική είσοδο διαρκεί ~100μsec.
    Διαβάζουμε από μια αναλογική είσοδο με χρήση της analogRead().
    Πολύ συχνά, η εφαρμογή που θέλουμε να σχεδιάσουμε απαιτεί να αντιστοιχήσουμε το εύρος τιμών που διαβάζουμε από την analogRead() σε ένα άλλο, πχ το 0-1023 σε 1-10. Μια χρήσιμη διαθέσιμη συνάρτηση είναι η map().
  • There has never been an unexpectedly short debugging period in the history of computers. Steven Levy
    Ένα πολύ χρήσιμο εργαλείο του Arduino το οποίο μπορεί να βοηθήσει και στην εκσφαλμάτωση του κώδικα (ή των συνδέσεων του υλικού σας) είναι το Serial Monitor. Μπορείτε να αξιοποιήσετε ένα virtual Serial Monitor στο Tinkercad.

Task (στο TinkerCad):

  • Δημιουργήστε ένα κύκλωμα με ένα Arduino και ένα ποτενσιόμετρο (όπως αυτή στο roboticsbackend.com) και δημιουργήστε τον ανάλογο κώδικα στο Arduino ώστε να διαβάζετε την τιμή που δίνει το ποτενσιόμετρο και να εκτυπώνει στο Serial Monitor την τιμή εισόδου και σε τι voltage αυτή αναλογεί.
  • Χρησιμοποιήστε ένα (virtual) πολύμετρο για να επιβεβαιώσετε την ορθότητα της μέτρησής σας.
  • Η τιμή αναλογικής εισόδου από το (virtual) ποτενσιόμετρο είναι σταθερή;
    Στον πραγματικό κόσμο πολύ συχνά χρειάζεται κάποια σταθεροποίηση ή φιλτράρισμα.
  • Δημιουργήστε ένα νέο κύκλωμα το οποίο να περιλαμβάνει ένα Arduino, ένα ποτενσιόμετρο και τρία led (πράσσινο, κίτρινο κόκκινο). Δημιουργήστε κώδικα ο οποίος ανάλογα με την τιμή αναλογικής εισόδου από το πολύμετρο ανάβει ένα από τα led ώστε να προσομοιώνει ένα κύκλωμα ελέγχου και οπτικής ανάδρασης προς το χρήστη.

Lab #4

  • Γνωριμία με τον Paralax Ping Ultrasonic Distance Sensor ένα ψηφιακό αισθητήρα μέρτησης απόστασης.
    Ο αισθητήρας Paralax Ping είναι ψηφιακός, άρα εκτός της τροφοδοσίας και γείωσης σύνδέεται σε ένα ψηφιακό pin του Arduino.
    Ανιχνεύει την απόσταση του πλησιέστερου αντικειμένου μπροστά από τον αισθητήρα (από 3 cm έως 400 cm). Λειτουργεί στέλνοντας μια ριπή υπερήχων και ακούγοντας την ηχώ όταν αυτή ανακλάται από ένα αντικείμενο. Για την αξιοποίησή του η πλακέτα Arduino στέλνει έναν σύντομο παλμό στον αισθητήρα για να ενεργοποιήσει την ανίχνευση και στη συνέχεια ακούει για έναν παλμό στον ίδιο ακροδέκτη χρησιμοποιώντας τη συνάρτηση pulseIn(). Η διάρκεια αυτού του δεύτερου παλμού είναι ίση με το χρόνο που χρειάζεται ο υπέρηχος για να ταξιδέψει στο αντικείμενο και να επιστρέψει στον αισθητήρα. Χρησιμοποιώντας την ταχύτητα του ήχου, ο χρόνος αυτός μπορεί να μετατραπεί σε απόσταση. Σύμφωνα με το datasheet του αισθητήρα:
    // The speed of sound is 340 m/s or 29 microseconds per centimeter.
    // The ping travels out and back, so to find the distance of the object we
    // take half of the distance travelled.
    distance_in_cm = microseconds / 29 / 2
    
    

Task (στο TinkerCad):

  • Δημιουργήστε ένα κεύκλωμα με ένα Arduino και ένα Paralax Ping αισθητήρα απόστασης (όπως αυτό στο docs.arduino.cc) και δημιουργήστε ανάλογο κώδικα στο Arduino ώστε να διαβαζετε την τιμή του αισθητήρα και να εκτυπώνετε την απόσταση που αντιστοιχεί σε μέτρα με δύο δεκαδικά ψηφία.

Lab #5

  • Γνωριμία με τον PIR Motion Sensor ένα ψηφιακό αισθητήρα κίνησης.
    Ο αισθητήρας PIR Motion Sensor είναι ψηφιακός, άρα εκτός της τροφοδοσίας και γείωσης σύνδέεται σε ένα ψηφιακό pin του Arduino.
    Οι αισθητήρες PIR επιτρέπουν να αντιλαμβάνεστε την κίνηση και χρησιμοποιούνται σχεδόν πάντα για να ανιχνεύσουν αν ένας άνθρωπος έχει μετακινηθεί εντός ή εκτός της εμβέλειας των αισθητήρων. Όταν ο αισθητήρας βρίσκεται σε αδράνεια απλά ανιχνεύει την περιβαλλοντική ποσότητα υπέρυθρης ακτινοβολίας που εκπέμπεται από το δωμάτιο, τους τοίχους ή το εξωτερικό χώρο. Όταν ένα θερμό σώμα, όπως ένας άνθρωπος ή ένα ζώο, περνάει από μπροστά του, ο αισθητήρας παράγει μια μεταβολή η οποία ανιχνεύεται.
    Η σύνδεσή του σε ένα Arduino γίνεται με τα pins 5V, GRD και ένα ψηφιακό pin ως είσοδο.
    Ο προγραμματισμός απλά απαιτεί την ανάγνωση της τιμής του αντίστοιχου pin με χρήση της digitalRead() και έλεγχο αν η τιμή του είναι LOW ή HIGH.
  • Γνωριμία με το Servo motor.
    Ο σερβοκινητήρας είναι μια μικρή συσκευή που διαθέτει έναν άξονα εξόδου. Αυτός ο άξονας μπορεί να τοποθετηθεί σε συγκεκριμένες γωνιακές θέσεις στέλνοντας στον σερβοκινητήρα ένα κωδικοποιημένο σήμα. Όσο το κωδικοποιημένο σήμα υπάρχει στη γραμμή εισόδου, ο σερβοκινητήρας διατηρεί τη γωνιακή θέση του άξονα. Εάν το κωδικοποιημένο σήμα αλλάξει, η γωνιακή θέση του άξονα αλλάζει.
    Η σύνδεσή του σε ένα Arduino γίνεται με τα pins 5V, GRD και ένα ψηφιακό pin ως έξοδο.
    Ο προγραμματισμός γίνεται με χρήση της βιβλιοθήκης Servo.h και της εντολής servo.write(angle) η οποία περιστρέφει τον άξονα του σερβοκινητήρα σε μια γωνία.

Task (στο TinkerCad):

Σκοπός είναι να προσομοιώσουμε ένα κύκλωμα ελέγχου πρόσβασης σε ένα χώρο με χρήση ενός αισθητήρα κίνησης και μιας μπάρας:

  • Φορτώστε το έτοιμο κύκλωμα Arduino+LCD το οποίο παρέχει το TinkerCad.
  • Συνδέστε στο Arduino ένα PIR Motion Sensor κα ένα Servo motor.
  • Προγραμματίστε το Arduino ώστε κάθε φορά που περνά μπροστά από τον αισθητήρα PIR ένα άτομο:
    a. H οθόνη LCD να προβάλει κατάλληλο μήνυμα που δείχνει πόσοι άνθρωποι έχουν περάσει μπροστά από τον αισθητήρα.
    b. Ο σερβοκινητήρας να ανοίγει την πρόσβαση του ατόμου για 5 sec.

About

DI.ionio.gr DDI196 course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published