Ενσωματωμένα Συστήματα

Σχετικά έγγραφα
Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1. Προγραμματισμός Φυσικών Συστημάτων. Νέα Ψηφιακά Αντικείμενα

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

Το κύκλωμα σε breadboard

Ενσωματωμένα Συστήματα

Εφαρμογές αναλογικών / Ψηφιακών

Arduino Teachers Workshop

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων

ΕΝΟΤΗΤΑ 3 ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία ΡομποΚαθαριστής Μέρος Β : Το Πρόγραμμα. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 4. Οδηγώντας έναν DC Κινητήρα. Το κύκλωμα της Λειτουργίας DC Κινητήρα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Μετρώντας Επιτάχυνση με το Accelerόμετρο (ADXL 335) Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Προγραμματισμο ς σε Arduino

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67

Εφαρμογές Σειριακής Επικοινωνίας

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη

2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

Project 5: Συνθέτοντας μουσική

ΕΝΟΤΗΤΑ 12 ΣΕΙΡΙΑΚΗ ΔΙΕΠΑΦΗ

FOSSCOMM ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου Ομάδα Σχολής Ικάρων Εργαστήριο Arduino

PWM (Pulse Width Modulation) Διαμόρφωση εύρους παλμών

ΠΑΛΜΟΓΡΑΦΟΣ ΤΡΟΦΟ ΟΤΙΚΟ ΓΕΝΝΗΤΡΙΑ

ΕΝΟΤΗΤΑ 7: ΑΙΣΘΗΤΗΡΕΣ ΥΠΕΡΥΘΡΩΝ

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM)

Εμμανουήλ Πουλάκης. Προγραμματίζοντας με τον μικροελεγκτή Arduino

Μάθημα 2 Δραστηριότητα 2: Δημιουργώντας το Μετεωρολογικό Σταθμό. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Ο μικροελεγκτής Arduino στο εργαστήριο των Θετικών Επιστημών. Χρήσιμες διευθύνσεις στο διαδίκτυο

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη <Servo.h>

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Εφαρμογές βασισμένες στο Arduino

Ενσωµατωµένα Συστήµατα

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

Απλή Δομή Επιλογής. Ο κώδικας. //με χρήση μεταβλητών. delay (3000);

Βασική Κατηγοριοποίηση Αισθητήρων Γιώργος Βασιλείου

Υλοποίηση μικρού αυτόνομου ρομποτικού οχήματος με μικροελεγκτή Arduino.

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Συλλογή & Επεξεργασία Δεδομένων. Προγραμματίζοντας τον Arduino Μέρος Ι: Μεταβλητές, Εντολές Εισόδου & Εξόδου. Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE)

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Τα ηλεκτρονικά μέρη του ρομπότ Επιλογή των μονάδων εισόδου εξόδου ανάλογα το μοντέλο που θέλουμε να κατασκευάσουμε

Ψηφιακά Ηλεκτρονικά. Προαιρετική εργασία

Δομή (Structure) Προγραμματισμός Arduino. Η λειτουργία setup()


Βιβλιοθήκη για οθόνη LCD

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 1 ο

1. Ηλεκτρικοί κινητήρες- σερβοκινητήρας 2. Ελεγκτές. ΜΠΔ, 9 Ο Εξάμηνο Σάββας Πιπερίδης

Γνωριμία με το Arduino

ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a

Προγραμματισμός Ρομπότ

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

Workshops. Εισηγητής: Παλιούρας Αριστείδης

Μηχανοτρονική Μάθημα 2 ο ενεργοποιητές - συστήματα κίνησης

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή

Εργασία στα πλαίσια του εργαστηρίου των Ευφυών Συστηµάτων Ελέγχου. Μελέτη και κατασκευή διάταξης ελέγχου ταχύτητας αυτοκινούµενου οχήµατος.

Σελίδα 1 από 8. Απαντήσεις στο φυλλάδιο 52

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Φύλλο Εργασίας. Δραστηριότητα 1 Ανοίξτε το αρχείο DR01.html και δουλέψτε λίγο με την προσομοίωση του παλμογράφου για να εξοικειωθείτε.

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΔΙΔΑΣΚΩΝ: Λ. ΜΠΙΣΔΟΥΝΗΣ ΛΥΣΕΙΣ ΕΞΕΤΑΣΗΣ ΣΤΟ ΜΑΘΗΜΑ «ΤΕΧΝΟΛΟΓΙΑ ΜΕΤΡΗΣΕΩΝ» ΗΜΕΡΟΜΗΝΙΑ: 28/01/2015

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Τελεστικοί Ενισχυτές

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΕΝΟΤΗΤΑ 14 Πρωτόκολλα Επικοινωνίας

"ΑΥΤΟΚΙΝΟΥΜΕΝΟ ΟΧΗΜΑ ΕΥΡΕΣΗΣ ΒΕΛΤΙΣΤΗΣ ΔΙΑΔΡΟΜΗΣ ΛΑΒΥΡΙΝΘΟΥ"

1η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ:

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 6

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2007

ΑΚΑΔΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ARDUINO 3/5

ιαγώνισµα Γ Τάξης Ενιαίου Λυκείου Κύµατα - Φαινόµενο Doppler Ενδεικτικές Λύσεις Θέµα Α

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 1η. Σημειώσεις μαθήματος: E mail:

Ηλεκτρομαγνητικά Διαδίδονται στο κενό

O Ψηφιακός Παλμογράφος

Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε

ΔΙΑΔΟΣΗ ΥΠΕΡΗΧΩΝ ΣΤΟΝ ΑΕΡΑ. Εξοικείωση με πειραματικές συσκευές υπερήχων και μελέτη της διάδοσης του ήχου:

Δομημένος Προγραμματισμός

ΑΙΣΘΗΤΗΡΕΣ ΚΑΙ ΜΟΤΟΡΕΣ ΠΡΑΚΤΙΚΑ ΘΕΜΑΤΑ ΧΡΗΣΗΣ. Υποψήφιος Διδάκτωρ

Σημειώσεις Σχετικά με τη λειτουργία του Παλμογράφου

Transcript:

Ενσωματωμένα Συστήματα για εφαρμογές πραγματικού χρόνου Εφαρμογές με τον Arduino Ιωάννης Καλόμοιρος Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής Μάθημα 10 1

Συναρτήσεις αναλογικής εξόδου: PWM Το σήμα PWM έχει συχνότητα 490 Hz, αλλά στα pin5 και 6 έχει συχνότητα 980 Hz. Δεν χρειάζεται κλήση στην pinmode() για καθορισμό του pinως έξοδος, πριν την κλήση στην analogwrite(). 2

Αυξομείωση έντασης φωτισμού LED με αποστολή σήματος PWM // Πρόγραμμα σε ψηφιακή θύρα. intled= 9; // ψηφιακή θύρα intbrightness= 0; intfadeamount= 5; // παράγοντας αυξομείωσης φωτεινότητας voidsetup() { pinmode(led, OUTPUT); } voidloop() { //αποστολή PWM σήματος στο pin 9 analogwrite(led, brightness); brightness = brightness + fadeamount; // Αλλαγή της τιμής της φωτεινότητας if (brightness <= 0 brightness >= 255){ fadeamount= -fadeamount; } delay(30); } 3

Οδήγηση servo motor 4

Οδήγηση servo motor Τα servo motorsλειτουργούν με σήματα PWMστα 50 Hz, δηλαδή η περίοδος του παλμού PWM είναι 20ms. Η θέση του servoεξαρτάται από το εύρος του παλμού ON. Τα περισσότερα servoβρίσκονται στην ακραία αριστερή θέση με διάρκεια παλμού ΟΝ περίπου 1ms. Αυτό αντιστοιχεί στο 5% της συνολικής περιόδου, δηλαδή το Duty cycle στην περίπτωση αυτή είναι 5 με μέγιστο το 100. Τα περισσότερα servoβρίσκονται στην μεσαίαθέση με διάρκεια παλμού περίπου 1.5ms. Αυτό αντιστοιχεί στο 7.5% της συνολικής διάρκειας ή αλλιώς, το duty cycle είναι 7.5 με μέγιστο το 100. Τα περισσότερα servoβρίσκονται στην ακραία δεξιά θέση με διάρκεια παλμού περίπου 2ms. Αυτό αντιστοιχεί στο 10% της συνολικής διάρκειας, ή αλλιώς σε duty cycle10 με μέγιστο το 100. Άρα, η παράμετρος duty cycleθα πρέπει να μεταβάλλεται γραμμικά από 5 έως 10 για να αλλάζει διαδοχικά η θέση του άξονα του μοτέρ από τη θέση αριστερά μέχρι τη θέση δεξιά.οι τιμές αυτές μπορεί να είναι λίγο διαφορετικές, για κάθε μοτέρ. 5

Παλμοί PWM για την οδήγηση servo motor 6

Σχέση γωνίας περιστροφής με Duty Cycle (DC) VEX servo-motor τα όρια για τη μεταβολή του duty cycleγια περιστροφή από 0 έως 180 μοίρες, βρέθηκαν περίπου 2 και 12%. H μεταβολή της γωνίας καθώς μεταβάλλεται το duty cycleείναι περίπου γραμμική: y=ax+b Άρα, από τα ζεύγη (0,2) και (180, 12), λαμβάνουμε: DC=(10/180)angle+2. 7

Μετατροπή του servo σε μοτέρ ελεύθερης περιστροφής DC μοτέρ δύο ακροδεκτών 8

DC motor driver: L298 9

Λογική οδήγησης με τη γέφυρα L298 10

Οδήγηση μοτέρ με γέφυρα L298 Μοτέρ με γρανάζια υποδιπλασιασμού στροφών Γέφυρα οδήγησης μοτέρ L298 11

Σύνδεση Arduino με γέφυρα L298 12

Άλλες συναρτήσεις Συνάρτηση tone() Σύνταξη: tone(pin,frequency); ή tone(pin,frequency,duration); Ενέργεια: Παράγει στο συγκεκριμένο pinέναν τετραγωνικό παλμό καθοριζόμενηςσυχνότητας και σταθερού κύκλου λειτουργίας (duty cycle) ίσου με 50%. Παράμετροι: int pin: ο αριθμός του ψηφιακού pin(0..13) στο οποίο θα παραχθεί ο παλμός. int frequency: η συχνότητα του παλμού σε Hz. Οι επιτρεπτές τιμές είναι από 31 έως 65535, αλλά το αυτί μας ακούει έως περίπου τα 20000Hz (20KHz). int duration: η διάρκεια του παλμού σε msec(προαιρετική παράμετρος). Αν δεν καθοριστεί διάρκεια, τότε ο παλμός παράγεται συνέχεια έως ότου γίνει μία κλήση στην συνάρτηση notone(), ή μέχρι να κληθεί ξανά η tone(). 13

Δημιουργία τόνου με την tone() Παράδειγμα: tone(8,5000); delay(2000); notone(); Το pinμπορεί να συνδεθεί με ένα buzzer, ή με ένα μεγαφωνάκι, ώστε να παραχθεί ήχος. Μόνο ένας τόνος μπορεί να παράγεται ανά πάσα στιγμή σε όλα τα pin. Για να παραχθεί άλλος τόνος σε άλλο pin πρέπει να κληθεί η notone() και μετά η tone() στο άλλο pin. Η επανάκλησητης tone() για το ίδιο pin, χωρίς κλήση στην notone() απλά αλλάζει την συχνότητα του παλμού. 14

PulseIn() Συνάρτηση pulsein() Σύνταξη: duration = pulsein(pin, value); ή duration = pulsein(pin, value, timeout); Ενέργεια: Διαβάζει από το συγκεκριμένο ψηφιακό pinτην διάρκεια ενός παλμού, είτε υψηλού (HIGH) είτε χαμηλού (LOW) και την επιστρέφει. Παράμετροι: int pin: ο αριθμός του ψηφιακού pin(0..13) στο οποίο θα διαβαστεί ο παλμός εισόδου. int value: το είδος του παλμού (HIGH ή LOW). Αν η παράμετρος είναι HIGH τότε η συνάρτηση περιμένει μέχρι το pinνα γίνει HIGH, και χρονομετράτη διάρκεια του παλμού μέχρι η είσοδος να γίνει LOW.Αν η παράμετρος είναι LOW τότε η συνάρτηση περιμένει μέχρι το pinνα γίνει LOW, και χρονομετράμέχρι η είσοδος να γίνει HIGH. int timeout: προαιρετική παράμετρος που περιμένει συγκεκριμένο διάστημα για μετάπτωση του παλμού, και αν παρέλθει επιστρέφει 0. 15

PulseIn() Επιστρεφόμενη τιμή: ακέραια τιμή που εκφράζει την διάρκεια του παλμού σε μsec. Επιστρέφει 0 αν δεν λήφθηκε πλήρης παλμός πριν εκπνεύσει η διάρκεια της παραμέτρου timeout. Λειτουργεί για παλμούς διάρκειας από 10μsec έως 3min. Να σημειωθεί ότι για ανάγνωση π.χ. HIGH παλμού, αν το pin είναι ήδη σε κατάσταση HIGH, η συνάρτηση θα περιμένει μέχρι το pin να γίνει LOW και μετά HIGH, ώστε να αρχίσει την χρονομέτρηση. 16

Παράδειγμα: Μέτρηση απόστασης 17

Αισθητήρας HC-SR04 18

Αισθητήρας HC-SR04 Ο αισθητήρας αυτός έχει 4 pinπου είναι: VCC: Σύνδεση της τάσης τροφοδοσίας που είναι τυπικά 5V Trig: Στο pinαυτό παρέχουμε σύντομο παλμό HIGH διάρκειας τυπικά 10μsec για να παραχθεί ο υπερηχητικός παλμός και να ξεκινήσει η μέτρηση χρόνου επιστροφής (και άρα απόστασης από το αντικείμενο που ανακλά την δέσμη) Echo: στο pinαυτό το HC-SR04 παράγει έναν θετικό παλμό (HIGH) από την στιγμή αποστολής του υπερηχητικού παλμού έως και την λήψη της ανάκλασης, οπότε το pinαυτό γίνεται LOW. Με μέτρηση της διάρκειας αυτού του παλμού μπορούμε να υπολογίσουμε τον συνολικό χρόνο αποστολής και ανάκλασης του υπερηχητικού παλμού. GND: Η γείωση για την τροφοδοσία του αισθητήρα. 19

// Καθορισμός των pin για Trigger και Echo const inttrigpin= 9; const intechopin= 8; void setup() { Serial.begin(9600); Κώδικας μέτρησης pinmode(trigpin, OUTPUT); // Ορισμός του pin 9 ως έξοδος pinmode(echopin, INPUT); // Ορισμός του pin 8 ως είσοδος } void loop() { long duration, distance; // Παρέχουμε έναν σύντομο παλμό LOW για να αποσταλεί ένας καθαρός παλμός HIGH: digitalwrite(trigpin, LOW); delaymicroseconds(2); digitalwrite(trigpin, HIGH); delaymicroseconds(10); digitalwrite(trigpin, LOW); duration = pulsein(echopin, HIGH,30000); distance_cm=duration/29/2; //(29=1/0,0340) Serial.println(duration); Serial.print( cm );} 20