Ακολουθώντας μια μαύρη γραμμή με διαφορετικούς τρόπους

Για να φτιάξουμε και να προγραμματίσουμε ένα ρομπότ ώστε να κινείται ακολουθώντας μια μαύρη γραμμή μπορούμε να σκεφτούμε με διάφορους τρόπους. Στο πλαίσιο των συναντήσεων του ομίλου Ρομποτικής του Πειραματικού Δημοτικού Σχολείου Φλώρινας 2016-2017, εξερευνήσαμε μερικούς από αυτούς.

Η πρώτη περίπτωση που εξετάσαμε αφορά την χρήση ενός αισθητήρα φωτός μπροστά από το σώμα του ρομπότ. Μπορείτε να κατεβάσετε το σχέδιο σε μορφή LDD εδώ: Design with one light sensor.

Το ρομπότ έτσι κινείται ώστε ο αισθητήρας να βρίσκεται στο όριο της μαύρης γραμμής με την άσπρη πίστα. Θα πρέπει να αποφασίσουμε αν το ρομπότ θα κινείται δεξιά ή αριστερά της μαύρης γραμμής. Ας υποθέσουμε θέλουμε το ρομπότ να κινείται δεξιά της μαύρης γραμμής. Τότε έχουμε δυο περιπτώσεις:

  1. Αν ο αισθητήρας “βλέπει” άσπρο τότε σημαίνει πως βρισκόμαστε δεξιά της μαύρης γραμμής άρα πρέπει να κινηθούμε στρίβοντας προς τα αριστερά.
  2. Αν ο αισθητήρας “βλέπει” μαύρο τότε σημαίνει πως βρισκόμαστε πάνω στην μαύρη γραμμή άρα πρέπει να κινηθούμε στρίβοντας προς τα δεξιά.

Με αυτόν τον τρόπο το ρομπότ δεν κινείται ποτέ ευθεία, καθώς διαρκώς κινείται δεξιά – αριστερά. Το πρόγραμμα για αυτή την λειτουργία είναι αρκετά απλό και έχει μόνο ένα switch (LineFollow1).

Μπορείτε να δείτε μια προσομοίωση αυτής της συμπεριφοράς στο Scratch εδώ:

Μια άλλη προσέγγιση είναι η χρήση δυο αισθητήρων φωτός, ή στην δική μας περίπτωση ενός αισθητήρα φωτός και ενός αισθητήρα χρώματος που τον αξιοποιούμε ως αισθητήρα φωτός. Οι δύο αισθητήρες τοποθετούνται έτσι ώστε η μαύρη γραμμή να μπορεί να βρίσκεται ανάμεσα τους (Design with two light sensors).

Με αυτόν τον σχεδιασμό ο αλγόριθμος μας γίνεται ως εξής:

  1. Αν και οι δυο αισθητήρες “βλέπουν” άσπρο αυτό σημαίνει ότι η μαύρη γραμμή είναι ανάμεσα τους άρα προχωράμε ευθεία.
  2. Αν ο δεξιός αισθητήρας “βλέπει” μαύρο και ο αριστερός άσπρο, τότε στρίβουμε δεξιά.
  3. Αν ο αριστερός αισθητήρας “βλέπει” μαύρο και ο δεξιός άσπρο, τότε στρίβουμε αριστερά.

Το πρόγραμμα υλοποιείται με δύο switch (LineFollow2Sensors) και μπορείτε να δείτε μια προσομοίωση της λειτουργίας του σε Scratch εδώ:

CC BY 4.0 This work is licensed under a Creative Commons Attribution 4.0 International License.