Το απλούστερο ρομπότ που φτιάχτηκε ποτέ!

Με το Simple Robotics Kit μπορείς να μπεις πανεύκολα στο μαγικό κόσμο της Ρομποτικής. Συναρμολόγησε και προγραμμάτισε το πρώτο σου ρομποτάκι!

Τι είναι το Simple Robotics Kit

Το Simple Robotics Kit είναι ένα εύκολο στην κατασκευή και τον προγραμματισμό ρομποτικό κιτ από την Kitronik. Είναι σχεδιασμένο για να προσφέρει μια συναρπαστική γνωριμία με τις ρομποτικές πλατφόρμες για μια φιλική και διασκεδαστική εμπειρία μάθησης!

Έχει αναπτυχθεί για να είναι όσο το δυνατόν πιο απλό στη χρήση, καθιστώντας το ιδανικό ακόμα και για παιδιά μικρής ηλικίας χωρίς προηγούμενη εμπειρία στις κατασκευές και τα ηλεκτρικά κυκλώματα. Η πλατφόρμα δεν απαιτεί κόλληση ή εξειδικευμένα εργαλεία και η σύνδεση γίνεται με απλά καλώδια με crocodile clips.

kitronik simple robotics kit for microbit box

Το ρομποτάκι αξιοποιεί ως “εγκέφαλο” το δημοφιλές microbit, που επιτρέπει την εξερεύνηση βασικών εννοιών της Ρομποτικής και του προγραμματισμού, μέσα από πρακτική και ευχάριστη μάθηση.

Το Simple Robotics Kit διαθέτει σασί από χαρτόνι, το οποίο μπορεί να κοπεί, να διακοσμηθεί ή να τροποποιηθεί προσθέτοντας δημιουργικότητα στη διαδικασία. Μπορεί έτσι να προσαρμοστεί στις απαιτήσεις διαφορετικών project και να ταιριάξει στις προτιμήσεις κάθε χρήστη!

kitronik simple robotics kit for microbit

Συναρμολόγηση παιχνίδι!

Το πακέτο περιλαμβάνει αναλυτικές οδηγίες που καθιστούν τόσο τη συναρμολόγηση όσο και τον προγραμματισμό του ρομπότ εύκολα και προσιτά ακόμη και σε αρχάριους. Στο κουτί περιέχει όλα τα απαραίτητα εξαρτήματα για την κατασκευή του ρομπότ, εκτός από το microbit και τις μπαταρίες ΑΑ (x3). Επιπλέον θα χρειαστείς και ένα κατσαβίδι!

Το Simple Robotics Kit περιλαμβάνει:

kitronik simple robotics kit for microbit
  • Σασί από χαρτόνι
  • Klip motor driver για microbit
  • Solderless motor adapter boards (x2)
  • In-line geared DC motors (x2)
  • Τροχούς και ελαστικά (x2)
  • Καλώδια (crocodile clips) (x10)
  • Μπαλάκι ping-pong
  • Λαστιχάκι

Η πλατφόρμα σου επιτρέπει να επεκτείνεις τις δυνατότητες του ρομπότ προσθέτοντας κι άλλα ηλεκτρονικά εξαρτήματα. Θα μπορούσες για παράδειγμα να τοποθετήσεις ένα servo και να το προγραμματίσεις να ανεβοκατεβάζει μια σημαία! Εμείς διαλέξαμε να προσαρμόσουμε έναν αισθητήρα TCRT5000 στο κάτω μέρος του ρομπότ και το προγραμματίσαμε να ακολουθεί γραμμές.

Ώρα για προγραμματισμό

Στο εγχειρίδιο του πακέτου θα βρεις βασικά προγράμματα σε MakeCode και θα καταφέρεις να προγραμματίσεις το ρομπότ εύκολα, ακόμα και αν δεν έχεις ξαναχρησιμοποιήσει τη συγκεκριμένη γλώσσα προγραμματισμού. Στο παράδειγμα που ακολουθεί παρουσιάζεται ένα λίγο πιο σύνθετο πρόγραμμα -ενδεικτικό των δυνατοτήτων της πλατφόρμας- που συνδυάζει αρκετά ηλεκτρονικά μέρη του microbit με αυτά του Simple Robotics Kit.

Για να προγραμματίσεις το microbit με MakeCode ακολούθησε τις οδηγίες που θα βρεις εδώ:

Microbit & MakeCode: Ένας Οδηγός για Αρχάριους – GRobotronics

Ξεκίνα προσθέτοντας τις εντολές που σχετίζονται με τον έλεγχο των κινητήρων μέσω του Klip motor driver. Πάτησε στο εικονίδιο των ρυθμίσεων και έπειτα κάνε κλικ στις “Επεκτάσεις”. Συμπλήρωσε στη γραμμή αναζήτησης το παρακάτω link, και μόλις επιλέξεις την επέκταση θα προστεθεί στην κεντρική σελίδα μια νέα κατηγορία εντολών που αφορά το ρομπότ.

https://github.com/KitronikLtd/pxt-kitronik-klip-motor

Με το προτεινόμενο πρόγραμμα το ρομποτάκι εκτελεί δύο διαφορετικές λειτουργίες οι οποίες ενεργοποιούνται με τη βοήθεια του επιταχυνσιόμετρου που είναι ενσωματωμένο στο microbit. Γύρε το ρομποτάκι προς τα αριστερά ή προς τα δεξιά, ανάλογα με το κομμάτι του προγράμματος που θέλεις να εκτελεστεί. Και οι δύο λειτουργίες τερματίζονται αγγίζοντας το μεταλλικό logo του microbit V2.

Όταν το microbit ανιχνεύσει κλίση προς τα αριστερά το ρομποτάκι σε πλησιάζει γελαστό με μικρή ταχύτητα, μόλις όμως το σκεπάσεις πλησιάζοντας το χέρι σου επάνω του, θα φοβηθεί και θα αποτραβηχτεί! Φρόντισε να είναι αρκετά φωτεινός ο χώρος ώστε ο αισθητήρας του microbit να μπορεί να διακρίνει τη διαφορά στη φωτεινότητα των δύο καταστάσεων.

Για να κάνεις το ρομπότ να ακολουθεί μια γραμμή θα πρέπει το microbit να ανιχνεύσει κλίση προς τα δεξιά. Σε αυτή τη λειτουργία έχεις τη δυνατότητα να αυξομειώσεις σε πραγματικό χρόνο την ταχύτητα του ρομπότ πατώντας τα κουμπιά A ή B του microbit. Θα παρατηρήσεις επιπλέον ότι η φωτεινότητα των LED μεταβάλλεται ανάλογα με την ταχύτητα! Χρησιμοποίησε την πίστα της Kitronik ή σχεδίασε τη δική σου πίστα κολλώντας μαύρη μονωτική ταινία πάνω σε ανοιχτόχρωμη επιφάνεια. Για την εντολή που αφορά τον αισθητήρα ανίχνευσης γραμμής θα χρειαστείς την επέκταση που αντιστοιχεί σε αυτό το link:

https://github.com/kitronikltd/pxt-kitronik-clip-detector

Ακόμα και με Python!

Το παραπάνω πρόγραμμα μπορεί να υλοποιηθεί και με κώδικα γραμμένο σε Python! Για να προγραμματίσεις το microbit με Python ακολούθησε τις οδηγίες που θα βρεις εδώ:

Microbit & Python: Κάντε τα πρώτα σας βήματα – GRobotronics

Στο πρόγραμμα έχουν οριστεί οι συναρτήσεις motor_on(motor, direction, speed) και motor_off(motor), με λογική ίδια με τα αντίστοιχα block που προστέθηκαν με τις επεκτάσεις στη MakeCode .

from microbit import *
from time import sleep
 
FORWARD = 1  # Περιστροφή κινητήρα προς τα εμπρός
REVERSE = 0  # Περιστροφή κινητήρα προς τα πίσω
MOTOR1 = 1   # Ο αριστερός κινητήρας
MOTOR2 = 2   # Ο δεξής κινητήρας
 
pin0.set_pull(pin0.PULL_UP)  # Αρχικοποίηση του αισθητήρα
 
# Ενεργοποιεί τον κινητήρα MOTOR1/MOTOR2 με φορά FORWARD/BACKWARD και ταχύτητα 0-100
def motor_on(motor, direction, speed):
    limited_speed = min(max(speed, 0), 100)    # Οριοθέτηση στο διάστημα [0, 100]
    rescaled_speed = (limited_speed*1023)/100  # Αντιστοίχιση στο διάστημα [0, 1023]
    output_speed = round(rescaled_speed)       # Στρογγυλοποίηση με αφαίρεση δεκαδικού μέρους
    
    if motor == MOTOR1:
        if direction == FORWARD:
            pin15.write_analog(output_speed)
            pin16.write_digital(0)
        elif direction == REVERSE:
            pin16.write_analog(output_speed)
            pin15.write_digital(0)
    elif motor == MOTOR2:
        if direction == FORWARD:
            pin13.write_analog(output_speed)
            pin14.write_digital(0)
        elif direction == REVERSE:
            pin14.write_analog(output_speed)
            pin13.write_digital(0)
 
# Απενεργοποιεί τον κινητήρα MOTOR1/MOTOR2
def motor_off(motor):
    if motor == MOTOR1:
        pin15.write_digital(0)
        pin16.write_digital(0)
    elif motor == MOTOR2:
        pin13.write_digital(0)
        pin14.write_digital(0)
 
while True:
    if accelerometer.was_gesture('left'):
        while not pin_logo.is_touched():
            if display.read_light_level() > 50:
                motor_on(MOTOR1, FORWARD, 30)
                motor_on(MOTOR2, FORWARD, 30)
                display.show(Image.HAPPY)
            else:
                motor_on(MOTOR1, REVERSE, 100)
                motor_on(MOTOR2, REVERSE, 100)
                display.show(Image.SAD)
                sleep(0.5)
                motor_on(MOTOR1, FORWARD, 60)
                motor_on(MOTOR2, REVERSE, 60)
                sleep(0.15)
                motor_on(MOTOR1, REVERSE, 60)
                motor_on(MOTOR2, FORWARD, 60)
                sleep(0.3)
                motor_on(MOTOR1, FORWARD, 60)
                motor_on(MOTOR2, REVERSE, 60)
                sleep(0.15)
                
        motor_off(MOTOR1)
        motor_off(MOTOR2)
        display.clear()
    
    if accelerometer.was_gesture('right'):
        speed = 30
        image = Image(5,5)
        while not pin_logo.is_touched():
            # Η φωτεινότητα των LED είναι ανάλογη της ταχύτητας
            image.fill(round(speed//10.1))
            display.show(image)
            
            if pin0.read_digital() == 1:
                motor_on(MOTOR1, FORWARD, speed)
                motor_on(MOTOR2, REVERSE, speed/2)
            else:
                motor_on(MOTOR1, REVERSE, speed/2)
                motor_on(MOTOR2, FORWARD, speed)
            
            if button_b.is_pressed() and speed < 100:
                speed = speed + 10
                sleep(0.2)
            elif button_a.is_pressed() and speed > 0:
                speed = speed - 10
                sleep(0.2)
                
        motor_off(MOTOR1)
        motor_off(MOTOR2)
        display.clear()

Αρχεία

Σύνδεσμοι

Kitronik Simple Robotics Kit for the BBC micro:bit – Kitronik Ltd

PID έλεγχος με το Maqueen

Κάνε το Maqueen να χορεύει

Microbit & MakeCode: Ένας Οδηγός για Αρχάριους

Κάνε το Maqueen να αποφεύγει εμπόδια