ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΕΙΚΟΝΑ Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1
ARDUINO ΚΑΙ ΕΙΚΟΝΑ ΠΕΡΙΕΧΟΜΕΝΑ Σειριακή επικοινωνία με Jpeg Κάμερα Σύνδεση με smartphone Χρήση LCD οθόνης Γραφικές παραστάσεις Έλεγχος κάμερας Αναγνώριση χρωμάτων Αναγνώριση προσώπου Αναγνώριση δακτυλικών αποτυπωμάτων Barcode, Keypad 2
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ JPEG ΚΑΜΕΡΑ Κάμερες συμβατές με το Arduino SeeedStudio: RB-See-384 Επικοινωνία: UART/SPI Ανάλυση: 640x480 (JPEG) Ενσωμάτωση MicroSD adafruit: TTL Serial Επικοινωνία: TTL Serial Ανάλυση: 640x480 30fps Έξοδος: JPEG/M-JPEG 3
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ JPEG ΚΑΜΕΡΑ Κάμερες συμβατές με το Arduino adafruit: Mini Spy Επικοινωνία: TTL Serial Ανάλυση εικόνας: 1280 720 (JPEG) Ανάλυση Video: 640x480 (AVI) open-electronics: JPEG camera Επικοινωνία:UART Ανάλυση: 640x480 Έξοδος: JPEG 4
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ JPEG ΚΑΜΕΡΑ Λήψη φωτογραφιών και αποθήκευση σε SD κάρτα Υλικά: Arduino UNO SD-card shield Jpeg camera Βιβλιοθήκη κάμερας www.open-electronics.org/wp-content/uploads/2015/11/jpeg.zip 5
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ JPEG ΚΑΜΕΡΑ Λήψη φωτογραφιών και αποθήκευση σε SD κάρτα 6
ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ JPEG ΚΑΜΕΡΑ Λήψη φωτογραφιών και αποθήκευση σε SD κάρτα 7
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR 8
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR 9
INTERRUPTS Polling Ελέγχω το ταχυδρομικό μου κουτί κάθε 10 λεπτά Interrupt Ο ταχυδρόμος μου χτυπά το κουδούνι 10
INTERRUPTS 11
HARDWARE INTERRUPTS Trigger Modes: RISING - FALLING - CHANGE 12
HARDWARE INTERRUPTS Interrupt Pins 13
HARDWARE INTERRUPTS Ενεργοποίηση Led μέσα από Interrupt 14
HARDWARE INTERRUPTS Ενεργοποίηση Led μέσα από Interrupt Τι να προσέξω στα ISR: 1. Μικρός κώδικας 2. όχι delays 3. όχι serial print 4. χρήση volatile μεταβλητών 15
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR με χρήση Interrupt 16
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR με χρήση Interrupt 17
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR με χρήση Interrupt 18
ΑΙΣΘΗΤΗΡΑΣ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αισθητήρας PIR με χρήση Interrupt 19
TTL SERIAL CAMERA Module size: 32mm x 32mm Output format: Standard JPEG/M-JPEG Frame speed: 640*480 30fps Image size: VGA (640*480), QVGA (320*240), QQVGA (160*120) Operating voltage: DC+5V Communication: 3.3V TTL (Three wire TX, RX, GND) 20
TTL SERIAL CAMERA Σύνδεση για λήψη εικόνων Σύνδεση για λήψη video 21
TTL SERIAL CAMERA Σύνδεση με το Arduino 22
TTL SERIAL CAMERA Λήψη εικόνας 23
TTL SERIAL CAMERA Λήψη εικόνας 24
TTL SERIAL CAMERA Λήψη εικόνας 25
TTL SERIAL CAMERA Λήψη εικόνας σε περίπτωση ανίχνευσης κίνησης 26
TTL SERIAL CAMERA Λήψη εικόνας σε περίπτωση ανίχνευσης κίνησης 27
TTL SERIAL CAMERA Λήψη εικόνας σε περίπτωση ανίχνευσης κίνησης 28
TTL SERIAL CAMERA Λήψη εικόνας σε περίπτωση ανίχνευσης κίνησης 29
ΕΙΚΟΝΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ SMARTPHONE Θα χρησιμοποιήσουμε την πλακέτα επέκτασης 1SHEELD για σύνδεση με smartphone. Η επικοινωνία με το Arduino, γίνεται με bluetooth 4. 30
LCD ΟΘΟΝΗ ΣΕ SMARTPHONE Βιβλιοθήκη LCD οθόνης Ενεργοποιείται με: #define INCLUDE_LCD_SHIELD Συναρτήσεις: LCD.begin(); LCD.clear( ); LCD.home(); LCD.noBlink();LCD.blink(); LCD.noCursor();LCD.cursor(); LCD.scrollDisplayLeft( );LCD.scrollDisplayRight(); LCD.leftToRight();LCD.rightToLeft(); LCD.autoScroll();LCD.noAutoScroll(); LCD.setCursor(1,0);(16 x 2) 31
LCD ΟΘΟΝΗ ΣΕ SMARTPHONE Εκτύπωση μηνυμάτων στην LCD οθόνη 32
LCD ΟΘΟΝΗ ΣΕ SMARTPHONE Εκτύπωση μηνυμάτων στην LCD οθόνη 33
ΕΙΚΟΝΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ SMARTPHONE Βιβλιοθήκη για διαχείριση της κάμερας Χρήση μπροστινής κάμερας Camera.frontCapture( ); Χρήση πίσω κάμερας Camera.rearCapture( ); Χρήση Flash Camera.setFlash(ON); Camera.setFlash(OFF); Camera.setFlash(AUTO); Ρύθμιση ποιότητας Camera.setQuality(LOW_QUALITY); Camera.setQuality(MED_QUALITY); Camera.setQuality(HIGH_QUALITY); 34
ΕΙΚΟΝΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ SMARTPHONE Λήψη εικόνας από το Smartphone και ανέβασμα της φωτογραφίας στο Twitter 35
ΑΝΑΓΝΩΡΙΣΗ ΧΡΩΜΑΤΩΝ ΜΕ SMARTPHONE Βιβλιοθήκη Χρωμάτων Ενεργοποιείται με: #define INCLUDE_COLOR_DETECTOR_SHIELD Συναρτήσεις: Color mycolor = ColorDetector.getLastColor( ); ColorDetector.isNewColorReceived( ); ColorDetector.setCalculationMode(calculationMode); (MOST_DOMINANT_COLOR, AVERAGE_COLOR) ColorDetector.setPatchSize(size); (SMALL_SIZE, MEDIUM_SIZE, LARGE_SIZE) ColorDetector.setOnNewColor(&colorFunction); void colorfunction(color mycolor){ byte redcomponent = mycolor.getred(); } 36
ΑΝΑΓΝΩΡΙΣΗ ΧΡΩΜΑΤΩΝ ΜΕ SMARTPHONE Έλεγχος φωτεινότητας 3 leds (κόκκινο, πράσινο, μπλε) 37
ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΣΕ SMARTPHONE Βιβλιοθήκη Γραφικών Παραστάσεων Ενεργοποιείται με: #define INCLUDE_CHART_SHIELD Συναρτήσεις: Chart.clear(CHART_0); Chart.add( Mic/db",micValues,CHART_0); Chart.plot(); Chart.saveCsv("Mic_Values",CHART_0); Chart.saveScreenshot(CHART_0); Chart.autoScroll(ỡở); 38
ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΣΕ SMARTPHONE Απεικόνιση της έντασης ήχου ενός μικροφώνου 39
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΣΩΠΟΥ ΜΕ SMARTPHONE Βιβλιοθήκη αναγνώρισης προσώπου Ενεργοποιείται με: #define INCLUDE_FACE_DETECTOR_SHIELD Συναρτήσεις: FaceDetector.getVisibleFacesCount(); Face myface= FaceDetector.getFace(0); int smiling= myface.getsmileprobability(); (0-100) int lefteye= myface.getlefteyeopenprobability(); int righteye= myface.getrighteyeopenprobability(); int facewidth= myface.getwidth(); int faceheight= myface.getheight(); FaceDetector.setOnNewFace(&newFaceFunction); void newfacefunction(face myface){ int smile = myface.getsmileprobability(); } 40
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΣΩΠΟΥ ΜΕ SMARTPHONE Ξεκλείδωμα μηχανισμού ασφαλείας Ο μηχανισμός ξεκλειδώνει μόλις το σύστημα αναγνωρίσει πρόσωπο που κλείνει το αριστερό του μάτι 3 φορές 41
ΑΝΑΓΝΩΡΙΣΗ ΔΑΚΤΥΛΙΚΩΝ ΑΠΟΤΥΠΩΜΑΤΩΝ ΜΕ SMARTPHONE Βιβλιοθήκη Δακτυλικών Αποτυπωμάτων Ενεργοποιείται με: #define INCLUDE_FINGERPRINT_SCANNER_SHIELD Συναρτήσεις: FingerprintScanner.isVerified(); FingerprintScanner.isNewFingerScanned(); FingerprintScanner.scan(); FingerprintScanner.setOnNewFingerScanned(&newScannedFunction); voi newscannedfunction(boolverified){ if(verified){ digitalwrite(ledpin,high); } } 42
ΑΝΑΓΝΩΡΙΣΗ ΔΑΚΤΥΛΙΚΩΝ ΑΠΟΤΥΠΩΜΑΤΩΝ ΜΕ SMARTPHONE Όταν πιστοποιηθούν τα δακτυλικά αποτυπώματα ενός χρήστη, ανάβει το led στο pin 13 43
ΜΕΤΑΤΡΟΠΗ SMARTPHONE ΣΕ BARCODE READER Βιβλιοθήκη Barcode Ενεργοποιείται με: #define INCLUDE_BARCODE_SCANNER_SHIELD Συναρτήσεις: BarcodeScanner.isNewBarcodeScanned(); BarcodeScanner.isFullySent(); (αν το barcode έχει περισσότερους από 128 χαρακτήρες) BarcodeScanner.isNextDataBytesReceived(); byte formattype = BarcodeScanner.getFormat(); byte categorytype= BarcodeScanner.getCategory(); byte datalength= BarcodeScanner.getDataLength(); BarcodeScanned.setOnNewBarcodeScanned(&newScannedFunction); 44
ΜΕΤΑΤΡΟΠΗ SMARTPHONE ΣΕ BARCODE READER Ανάγνωση δεδομένων από Barcode 45
ΜΕΤΑΤΡΟΠΗ SMARTPHONE ΣΕ BARCODE READER Ανάγνωση δεδομένων από Barcode 46
ΜΕΤΑΤΡΟΠΗ SMARTPHONE ΣΕ BARCODE READER Συνάρτηση διαχείρισης σφαλμάτων 47
ΧΡΗΣΗ KEYPAD ΣΕ SMARTPHONE Βιβλιοθήκη Keypad Ενεργοποιείται με: #define INCLUDE_KEYPAD_SHIELD Συναρτήσεις: Keypad.isRowPressed(rowNumber); Keypad.isColoumnPressed(coloumnNumber); Keypad.isAnyRowPressed( ); Keypad.isAnyColoumnPressed( ); Keypad.setOnButtonChange(&myFunction); void myfunction (byte rownumber, byte coloumnnumber){ if(keypad.isrowpressed(1) && Keypad.isColoumnPressed(1) ) { digitalwrite(pin13,high); } } 48
ΧΡΗΣΗ KEYPAD ΣΕ SMARTPHONE Ηλεκτρονική κλειδαριά με χρήση Keypad 49
ΧΡΗΣΗ KEYPAD ΣΕ SMARTPHONE Ηλεκτρονική κλειδαριά με χρήση Keypad 50
ΧΡΗΣΗ KEYPAD ΣΕ SMARTPHONE Ηλεκτρονική κλειδαριά με χρήση Keypad 51
ΕΥΧΑΡΙΣΤΟΥΜΕ ΠΟΛΥ!!! 52