Σχεδιασμός και κατασκευή ενός υβριδικού αμυντικού αυτοματοποιημένου ρομποτικού συστήματος
196
εντολές του προγράμματος παρουσιάζονται και αναλύονται στις ακόλουθες εικόνες. Στην
Εικόνα 99 παρουσιάζεται η αρχικοποίηση των συντεταγμένων του προγράμματος, καθώς και
το εύρος του servo, ώστε σε κάποια αλλαγή servo να αλλάξει μόνο η τιμή της συγκεκριμένης
μεταβλητής και όχι ολόκληρο το πρόγραμμα.
#include <Servo.h>
#define servocenterx 90 //center position on (x)
#define servocentery 90 //center position on (y)
#define servopinx 9 //digital pin for servo x
#define servopiny 10 //digital pin for servo y
#define baudrate 9600 //com port speed.
#define servorange 180
Εικόνα 99: Αρχικοποίηση των δεδομένων και χρήση της βιβλιοθήκης Servo.h για την κίνηση στους servo.
Εφόσον γίνει η κατάλληλη διαδικασία ανάθεσης στα pin που αντιστοιχούν σε κάθε servo, τότε
εκτελούνται οι κύριες εντολές που φαίνονται στην Εικόνα 100. Η κίνηση γίνεται πρώτα στον άξονα x
και έπειτα στον άξονα y, όπως φαίνεται και στον κώδικα της παρακάτω εικόνας.
void loop()
{
if (Serial.available() > 3) {
posx = Serial.parseInt();
delay(5);
posy = Serial.parseInt();
trigger = Serial.parseInt();
servox.write(posx);
servoy.write(posy);
}
Εικόνα 100: Στο παραπάνω κομμάτι κώδικα παρουσιάζεται η λήψη των τιμών από το κυρίως πρόγραμμα και η
ανάθεση τους στους αντίστοιχους servo, ώστε να δοθεί η κίνηση στους αντίστοιχους άξονες.
Στο σημείο αυτό πρέπει να σημειωθεί ότι στη δεύτερη έκδοση του προγράμματος,
εισάγεται μια μικρή καθυστέρηση, δύο δευτερολέπτων (2s) από τη στιγμή που θα δοθούν οι
συντεταγμένες από τον υπολογιστή με πλακέτα Raspberry Pi 2 στον μικροελεγκτή, μέχρι την