ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO€¦ · Motor Shield L293D ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ...
Transcript of ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO€¦ · Motor Shield L293D ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ...
ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
1
Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης
Επιβλέπων: Πετεινάτος Ηλίας
Υποψήφιος Διδάκτωρ
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ
• Διαγωνισμοί Ρομποτικής
• Ακολουθία Γραμμής
Περιεχόμενα
2
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
Γιατί να συμμετέχω σε διαγωνισμούς
• Ισχυρό κίνητρο μάθησης
• Εργασία σε ομάδες
• Εκπαίδευση στην Επίλυση Προβλημάτων (Problem Solving)
• Εκπαίδευση στη Λήψη Αποφάσεων (Decision Making)
• Ανταλλαγή γνώσεων
• Παρακολούθηση τεχνολογικής προόδου
3
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
Διαγωνισμοί στην Ευρώπη
• Robotex - Ταλίν (Νοέμβριος) - www.robotex.ee
• Robotic Day - Πράγα (Ιούλιος) - www.roboticday.org
• ITURO - Κωνσταντινούπολη (Απρίλιος) - www.ituro.org
• CanSat - Διαγωνισμός Διαστημικής της ESA - www.cansat.gr
• RoboCup - Διαγωνισμοί Ποδοσφαίρου - www.robocup.org
4
Ακολουθία Γραμμής (Follow Line)
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
5
Line Following Enhanced
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
6
Line Following Enhanced - Διακοπτόμενη Γραμμή
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
7
Line Following Enhanced - Αποφυγή Εμποδίων
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
8
Line Following Enhanced - Ανακλινόμενη Γέφυρα
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
9
Line Following Enhanced - Ράμπα
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
10
Line Following Enhanced - Αλλαγή πάχους γραμμής
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
11
Line Following Enhanced - Βρόγχος
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
12
Διαγωνισμός Sumo
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
13
Διαγωνισμός Folkrace
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
14
Διαγωνισμός Water Rally
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
15
Διαγωνισμός City Pass - Traffic
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
16
Διαγωνισμός Color Selecting
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
17
Διαγωνισμός Micro Mouse - Maze Solving
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
18
Διαγωνισμός Basket Ball
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
19
Διαγωνισμός Soccer
ΔΙΑΓΩΝΙΣΜΟΙ ΡΟΜΠΟΤΙΚΗΣ
20
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
Βασικοί Αλγόριθμοι
21
Βασικοί Αλγόριθμοι
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
22
Proportional Line Follower
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
23
Proportional Line Follower
Kp = 10
offset = 50
error =LightValue – offset
Turn = Kp * error
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
24
FOLLOW LINE - PID ΑΛΓΟΡΙΘΜΟΣ
Proportional: Πόσο μακριά βρίσκεται το ρομπότ από τη γραμμή
Integral: Συσσωρευμένο σφάλμα σε συνάρτηση με το χρόνο
Derivative: Ρυθμός Ταλάντωσης (δεξιά - αριστερά από τη γραμμή)
25
Kp = 10
Ki = 10
Kd = 100
offset = 45
Tp = 50
integral = 0
lastError = 0
derivative = 0
Loop forever
LightValue = read light sensor
error = LightValue - offset
integral =integral + error
derivative = error - lastError
Turn =Kp*error + Ki*integral+ Kd*derivative
powerA= Tp + Turn
powerC= Tp - Turn
MOTOR A direction=forward power=PowerA
MOTOR C direction=forward power=PowerC
lastError= error
end loop forever
Ψευδοκώδικας
FOLLOW LINE - PID ΑΛΓΟΡΙΘΜΟΣ
26
Με χρήση 2 αισθητήρων
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
27
Με χρήση 2 αισθητήρων
leftLevel
0
rightLevel
0
Value
99
Comment
Lost the line
0 1 3 Far right
0 2 2 Right
1 0 -3 Far left
1 1 0 Center
1 2 1 Near right
2 0 -2 Left
2 1 -1 Near Left
2 2 0 Center
0: Λευκό
1: Γκρι
2: Μαύρο
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
28
Υπολογισμός level
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
29
Υπολογίζοντας την κατεύθυνση κίνησης
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
30
Υπολογίζοντας την παράμετρο Κp
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
31
Συνάρτηση main()
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
32
Με 3 Αισθητήρες
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
33
Με 8 Αισθητήρες
ΑΚΟΛΟΥΘΙΑ ΓΡΑΜΜΗΣ
34
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
Υλικά:
1. Arduino UNO
35
Υλικά:
2. Motor Shield L293D
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
36
Υλικά:
3. QTR-8RC Reflectance Sensor
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
37
Υλικά:
4. DC Motors και Ρόδες
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
38
Υλικά:
5. Βοηθητικούς τροχούς
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
39
Υλικά:
6. Σκελετός οχήματος - Πιστόλι σιλικόνης
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
40
Υλικά:
7. Μπαταρία 9V - connectors - καλώδια - διακόπτης
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
41
Τοποθέτηση κινητήρων
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
42
Τοποθέτηση Arduino UNO
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
43
Τοποθέτηση Motor Shield L293D
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
44
Τοποθέτηση Βοηθητικού τροχού
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
45
Τοποθέτηση Κινητήριων Τροχών
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
46
Σύνδεση κινητήρων με το shield
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
47
Σύνδεση κινητήρων με το shield
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
48
Σύνδεση QTR-8RC Reflectance Sensor
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
49
Σύνδεση QTR-8RC Reflectance Sensor
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
50
Προσοχή στις καλωδιώσεις
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
51
Προσθήκη Μπαταρίας και Διακόπτη
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
52
Βιβλιοθήκες για προγραμματισμό με Arduino
Motor Shield L293D
https://github.com/adafruit/Adafruit-Motor-Shield-library
QTR-8RC Reflectance Sensor
https://github.com/pololu/qtr-sensors-arduino/releases
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
53
Κώδικας για Arduino
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
54
Κώδικας για Arduino
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
55
Κώδικας για Arduino
ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ ARDUINO
56
ΕΥΧΑΡΙΣΤΟΥΜΕ ΠΟΛΥ!!!
57