ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO€¦ · Motor Shield L293D ΚΑΤΑΣΚΕΥΗ ΟΧΗΜΑΤΟΣ ΜΕ...

Post on 18-Oct-2020

5 views 0 download

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