SHOP NOW

Ready, Set, Code Alvik

Πρώτη ρύθμιση και hands-on projects για να δώσουμε ζωή στον Alvik

Γνωριμία με τον Alvik

Έξυπνο

Ο Alvik ελέγχεται από τον μικροελεγκτή Arduino Nano ESP32, μικρό σε μέγεθος αλλά με μεγάλες δυνατότητες. Με ενσωματωμένη συνδεσιμότητα Bluetooth® και Wi-Fi®, το ρομπότ σας δεν είναι απλώς μια μηχανή – είναι πλέον μέλος του Internet of Things

Με ενέργεια

Το ρομπότ συνοδεύεται από μια αφαιρούμενη επαναφορτιζόμενη μπαταρία ιόντων λιθίου 18650 USB-C®, η οποία σας παρέχει ώρες λειτουργίας χωρίς καλώδιο με μία μόνο φόρτιση. Μόλις συνδέσετε το καλώδιο προγραμματισμού στη συσκευή σας, ο Alvik αρχίζει να φορτίζει την μπαταρία του, ώστε να μπορείτε να αφιερώσετε την ενέργειά σας στη σύνταξη και τον έλεγχο του κώδικα

Και αισθήσεις

Εξοπλισμένο με ένα ευρύ φάσμα αισθητήρων και θυρών, το ρομπότ είναι καλά εξοπλισμένο για να παρατηρεί και να αλληλεπιδρά με το περιβάλλον του. Διαθέτει πολλές εισόδους, όπως αισθητήρες χρώματος RGB και απόστασης, παρέχοντάς σας μια ισχυρή εργαλειοθήκη για να εξερευνήσετε και να ξεπεράσετε προκλήσεις. Καθώς εξελίσσονται οι δεξιότητές σας, μπορείτε να αναβαθμίσετε το ρομπότ με customized addons ή εξωτερικό Hardware που συνδέεται µέσω των θυρών Qwiic, Grove I2C και Servo Motor

Learning Objectives

Σε αυτήν την ενότητα, ο στόχος είναι να ρυθμίσετε το περιβάλλον εργασίας σας και να δώσετε βασικές εντολές στο ρομπότ. Οι βασικοί στόχοι περιλαμβάνουν:

  • Εξοικειωθείτε με το υλικό, εξερευνώντας τον σχεδιασμό του.
  • Να συνδέσετε το ρομπότ σας με τον editor, Arduino Lab for MicroPython.
  • Να πλοηγηθείτε στον editor και να εξασκηθείτε στη διαχείριση των αρχείων του προγράμματος.
  • Να εκτελέσετε scripts και να εισαγάγετε εντολές χρησιμοποιώντας το ενσωματωμένο τερματικό (REPL).
  • Να κατανοήσετε πώς να εισάγετε τα κύρια modules και να αρχικοποιείτε τα scripts.
  • Να πειραματιστείτε με διάφορες συναρτήσεις για τον έλεγχο του hardware του Alvik.

Προετοιμασία μαθήματος

Εντάξει, ήρθε η ώρα να ξεκινήσουμε! Αν δεν το έχετε κάνει ήδη, ανοίξτε τη συσκευασία του Alvik.

Καλώς ήρθατε στη νέα σας περιπέτεια με τα ρομπότ! Ο Alvik συνοδεύεται από τρία έτοιμα παραδείγματα, το καθένα από τα οποία έχει σχεδιαστεί για να παρουσιάσει μερικές από τις εκπληκτικές δυνατότητές του. Κάθε ένα από τα παραδείγματα είναι κωδικοποιημένο με χρώμα! Υπάρχουν το κόκκινο, το πράσινο και το μπλε. Απλά χρησιμοποιήστε τα κουμπιά πάνω και κάτω για να επιλέξετε ένα χρώμα και, στη συνέχεια, πατήστε το κουμπί “τικ” για να επιλέξετε. Τόσο απλά!

 

Δείτε το Animation παρακάτω

Το κουτί από το Arduino Alvik με τα περιεχόμενά του

Τώρα, ας δούµε τι µπορούν να κάνουν αυτά τα πολύχρωµα προγράµµατα

short animation for selecting program on alvik

Κόκκινο πρόγραμμα (“Touch Mode”): Θέλετε να είστε το αφεντικό του ρομπότ σας; Με τη λειτουργία Touch Mode, μπορείτε! Χρησιμοποιήστε τα βέλη για να πείτε στο ρομπότ σας τι να κάνει: πάνω και κάτω για να μετακινηθείτε μπροστά και πίσω κατά 10 εκατοστά, και αριστερά και δεξιά για να στρίψετε κατά 90 μοίρες. Το ρομπότ θα συλλέγει τις οδηγίες μέχρι να πατήσετε το “τικ” για να τις εκτελέσει.

Πράσινο πρόγραμμα (Hand Follower): Ετοιμαστείτε για λίγη δράση ακολουθώντας τον αρχηγό! Το ρομπότ σας θα κρατήσει σταθερή απόσταση 10 cm από το χέρι σας ή οποιοδήποτε αντικείμενο που θα βάλετε μπροστά του.

Μπλε πρόγραμμα (Line Follower): Έχετε δει ποτέ ένα ρομπότ να ακολουθεί μια γραμμή; Ετοιμαστείτε για λίγη μαγεία! Το ρομπότ σας θα κινείται κατά μήκος μιας μαύρης γραμμής στο πάτωμα σαν επαγγελματίας. Απλά πάρτε μια λευκή επιφάνεια και μια μαύρη ταινία (πλάτους 2 cm) για να δημιουργήσετε τη διαδρομή.

Τώρα, ας ξεκινήσουμε με το Κόκκινο ή το Πράσινο για να εξοικειωθείτε με τις κινήσεις και την ανταπόκριση του ρομπότ σας. Κρατήστε το μπλε πρόγραμμα για αργότερα, όταν θα είστε έτοιμοι για μεγαλύτερες προκλήσεις! Χρησιμοποιήστε τα κουμπιά για να επιλέξετε το πρόγραμμά σας, πατήστε “τικ” και φύγαμε!

Η πρώτη σύνδεση

Τώρα που γνωρίσατε τον Alvik, ας συνεχίσουμε να εντοπίζουμε όλα τα εξαρτήματα που περιλαμβάνονται στο κουτί, ώστε να μπορούμε να επικοινωνήσουμε με το ρομπότ. Εκτός από το ρομπότ Alvik με την πλακέτα Nano ESP32 που είναι ενσωματωμένη, θα πρέπει επίσης να έχετε έτοιμο το ακόλουθο υλικό:

  • Καλώδιο προγραμματισμού USB-C® (περιλαμβάνεται κάτω από το χαρτόνι της συσκευασίας)
  • Υπολογιστής
Φωτογραφία με το διακόπτη ενεργοποίησης του Alvik

Η ρύθμιση του υλικού είναι απλή υπόθεση. Ακολουθήστε τα βήματα που ακολουθούν για να ξεκινήσετε:

Εντοπίστε το διακόπτη ενεργοποίησης/απενεργοποίησης του ρομπότ και μετακινήστε τον στη θέση OFF.

Προσοχή:
Για να συνδέσετε το ρομπότ σας με ασφάλεια στον υπολογιστή, είναι σημαντικό να απενεργοποιήσετε πρώτα το ρομπότ. Αν προσπαθήσετε να το συνδέσετε ενώ είναι ακόμα ενεργοποιημένο, απλά δεν θα εμφανίζεται στον υπολογιστή σας! Αυτό δεν έχει να κάνει μόνο με την ασφάλεια, αλλά και με τη φροντίδα της μπαταρίας και των ηλεκτρονικών εξαρτημάτων του ρομπότ σας.

Θυμηθείτε, λοιπόν, πριν συνδέσετε το ρομπότ, να το απενεργοποιείτε!

Συνδέστε το καλώδιο προγραμματισμού στον υπολογιστή σας και τη Nano ESP32.

Μετακινήστε τον διακόπτη στη θέση ON

Τώρα, είμαστε έτοιμοι να ξεκινήσουμε το Arduino Lab for MicroPython, έναν ελαφρύ editor που έχει σχεδιαστεί για να γράφετε και να εκτελείτε τον κώδικα σε MicroPython με πλακέτες όπως η Arduino Nano ESP32

Το λογισμικό είναι διαθέσιμο Δωρεάν

Connection

Κάντε κλικ στο κουμπί Connect (Σύνδεση) και επιλέξτε τη σειριακή σας θύρα. Εάν είναι επιτυχής, θα δείτε την κίτρινη γραμμή κατάστασης να αλλάζει γρήγορα σε Connected (“Συνδεδεμένο”) και θα πρέπει τώρα να βλέπετε το Terminal (τερματικό)

O editor για τη σύνδεση του Alvik

Create

Δημιουργήστε έναν φάκελο στον υπολογιστή σας με ένα κατάλληλο όνομα – για παράδειγμα, “Alvik Projects”

Προσθέστε τον φάκελο “Alvik Projects” στο Arduino Lab. Θα πρέπει να μεταβείτε στην καρτέλα ” files”, εκεί θα δείτε δύο χώρους διαχείρισης αρχείων – ο χώρος στα αριστερά είναι εκεί όπου μπορούμε να διαχειριστούμε τα αρχεία που αποθηκεύουμε στο Alvik, ενώ ο χώρος στα δεξιά είναι εκεί όπου αποθηκεύουμε τις εργασίες τοπικά στον υπολογιστή μας. 

Τα περισσότερα από τα projects μας θα αποθηκευτούν στον υπολογιστή μας πριν μεταφερθούν στη μνήμη του ρομπότ 

 

Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε έναν φάκελο για τα επόμενα projects:

Gif δημιουργίας φακέλου project

Η πρώτη επικοινωνία με τον Alvik

Κατά τη διάρκεια αυτού του μαθήματος, θα συντάξουμε πρόγραμμα με τη MicroPython, μια απλοποιημένη έκδοση της Python® που έχει σχεδιαστεί για τον προγραμματισμό μικρών υπολογιστικών συσκευών όπως η Nano ESP32. Είναι μια απλή αλλά ισχυρή γλώσσα που μας επιτρέπει να ελέγχουμε και να αλληλεπιδρούμε με πράγματα όπως φώτα, αισθητήρες και μικρές μηχανές όπως ο Alvik.

Πάμε να γράψουμε ένα απλό script και να εξασκηθούμε στη χρήση ενός εργαλείου που ονομάζεται τερματικό REPL (Read-Eval-Print-Loop). Αν είστε νέοι στον κόσμο της Python®, απλά σκεφτείτε το REPL ως ένα περιβάλλον όπου μπορούμε να εντοπίσουμε σφάλματα, να δοκιμάσουμε, να αλληλεπιδράσουμε και να δούμε σε πραγματικό χρόνο τα αποτελέσματα του κώδικά μας.

Ας ξεκινήσουμε δημιουργώντας ένα νέο αρχείο κάνοντας κλικ στο εικονίδιο Add File (Προσθήκη αρχείου). Δείτε το animation παρακάτω

Gif δημιουργίας νέου αρχείου

Στη συνέχεια, ας δώσουμε ένα όνομα στο αρχείο που δημιουργήσαμε, ας ονομάσουμε το αρχείο μας make_it_talk.py και ας το αποθηκεύσουμε κάνοντας κλικ στο εικονίδιο αποθήκευσης. Δείτε το animation παρακάτω

Gif δημιουργίας προγράμματος

Τώρα που δημιουργήσαμε το python sketch μας, ας αντιγράψουμε τον παρακάτω κώδικα στον editor. Μπορείτε να προσαρμόσετε το κείμενο μέσα στις συμβολοσειρές (Strings) – Δοκιμάστε και διασκεδάστε!

				
					from time import sleep

print("Hello! I'm a talkative robot. What's your name?")
student_name = input("Your name: ")
print("Great meeting you, " + student_name + "! Would you like to name me?")
robot_name = input("Robot's name: ")

print(f"{robot_name} is a fantastic name! I feel more human already.")

sleep(2) # Use sleep() to make interaction feel more natural
print(f"Okay, {student_name}, time for a quick laugh:")
sleep(2)
print("Have you heard of the robot that tried to swim?")
sleep(4)
print("It shocked everyone. :D")
sleep(5)
				
			

Μόλις ολοκληρώσετε, κάντε κλικ στο εικονίδιο Run (Εκτέλεση). Θα πρέπει να δείτε κάποια δραστηριότητα μέσα στο τερματικό REPL. 

Κάντε κλικ στην τελευταία γραμμή του τερματικού για να εισάγετε μια απάντηση

το πρώτο πρόγραμμα επικοινωνίας με τον Alvik

Τώρα που ολοκληρώσατε το πρώτο σας πρόγραμμα, ας αναλύσουμε όλα βήματα για να βεβαιωθούμε ότι κατανοήσαμε τι συμβαίνει

Bring Your Toolbox

Η Python είναι φορτωμένη με απίστευτα χρήσιμους πόρους όπως το module time. Σκεφτείτε τα modules ως εργαλειοθήκες που είναι γεμάτες με εξειδικευμένα εργαλεία. Κάθε φορά που χρειάζεται να ολοκληρώσετε μια συγκεκριμένη εργασία, απλά παίρνετε το εργαλείο που χρειάζεστε για να κάνετε τη δουλειά

				
					from time import sleep
				
			

Στον προγραμματισμό ένας από τους πιο ισχυρούς τύπους εργαλείων μας ονομάζεται function (συναρτήσεις), ή με άλλα λόγια, ένα ειδικά προγραμματισμένο σύνολο εντολών που ολοκληρώνουν μια πολύ συγκεκριμένη εργασία. Το μόνο που χρειάζεται να κάνετε είναι να εισαγάγετε μια συνάρτηση στον κώδικά σας και αυτή θα κάνει τη δουλειά της – για παράδειγμα, χρησιμοποιούμε την sleep() για να κάνουμε το πρόγραμμά μας να περιμένει μερικά δευτερόλεπτα πριν προχωρήσει στην επόμενη γραμμή κώδικα. Απλά εισάγετε την sleep() από το module time και μπορείτε να τη χρησιμοποιήσετε οπουδήποτε στο script σας

Say Hiii

				
					print("Hello! I'm a talkative robot. What's your name?")
student_name = input("Your name: ")
				
			

Παρατηρήστε πώς χρησιμοποιούμε την print() για να εμφανίσουμε κείμενο στο τερματικό. Θα χρησιμοποιήσουμε πολλούς διαφορετικούς τύπους δεδομένων σε αυτό το μάθημα, αλλά αν βλέπετε δεδομένα μέσα σε μονά ή διπλά εισαγωγικά, μιλάμε για μια συμβολοσειρά κειμένου (String).

Έχουμε επίσης μια ειδική συνάρτηση που ονομάζεται input(), η οποία ζητά από το χρήστη να εισάγει πληροφορίες απευθείας στο τερματικό. Οποιαδήποτε πληροφορία παρέχει ο χρήστης θα αποθηκευτεί στη μεταβλητή student_name. Να θυμάστε ότι το πρόγραμμα θα περιμένει για μια είσοδο και δεν θα συνεχίσει μέχρι να πληκτρολογήσετε κάτι

Στην επόμενη εντολή print, συνδυάζουμε συμβολοσειρές και μεταβλητές για να κάνουμε την αλληλεπίδραση πιο δυναμική. Ένας τέτοιος συνδυασμός δεδομένων ονομάζεται Concatenate συνένωση

				
					print("Great meeting you, " + student_name + "! Would you like to name me?")

				
			

Προσέξτε πώς χρησιμοποιούμε το σύμβολο + για να συνδυάσουμε τις συμβολοσειρές μας με τη μεταβλητή student_name.

Δραστηριότητα

Ρίξτε μια ματιά στο παρακάτω πρόγραμμα. Μπορείτε να βρείτε εναλλακτικό τρόπο να συνδυαστούν οι μεταβλητές με μια συμβολοσειρά; Θεωρείτε ότι ο ένας τρόπος είναι καλύτερος από τον άλλο;

				
					print(f"{robot_name} is a fantastic name! I feel more human already.")
sleep(2) # Using sleep() to make interaction feel more natural
print(f"Okay, {student_name}, time for a quick laugh:")
sleep(2)
print("Have you heard of the robot that tried to swim?")
sleep(4)
print("It shocked everyone. :D")
sleep(5)
				
			

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

Όπως μπορείτε να δείτε παραπάνω, έχουμε ένα σχόλιο που εξηγεί γιατί χρησιμοποιούμε τη συνάρτηση sleep() για να ρυθμίσουμε ταχύτητα της συνομιλίας. Αυτό δημιουργεί μια πιο φυσική ροή συνομιλίας, και στην περίπτωση που η sleep() τοποθετείται πριν από την τελική συνάρτηση print(), χρησιμοποιείται μια παρατεταμένη καθυστέρηση τεσσάρων δευτερολέπτων για να βελτιωθεί ο χρόνος μεταξύ της επικοινωνίας

Ερώτηση: Τι θα συμβεί αν συντομεύσουμε ή αφαιρέσουμε όλες τις συναρτήσεις sleep(); Παραμένει ίδια η αίσθηση της συνομιλίας;

Νέες προκλήσεις

Blink Blink

Ο Alvik διαθέτει δύο ενσωματωμένες λυχνίες LED RGB (Δίοδοι εκπομπής κόκκινου-πράσινου-μπλε φωτός), οι οποίες μπορούν να δημιουργήσουν ένα ευρύ φάσμα χρωμάτων ρυθμίζοντας τη συνδυασμένη ένταση του κόκκινου, πράσινου και μπλε φωτός που εκπέμπεται. Αυτές βρίσκονται στο επάνω μέρος του ρομπότ. Στην επόμενη δραστηριότητά μας, θα προγραμματίσουμε τα φώτα να αναβοσβήνουν και να αλλάζουν χρώματα

Το πάνω μέρος τους Alvik και τα δύο LED

Code

Θα δημιουργήσουμε ένα απλό πρόγραμμα που αναβοσβήνει τα LED

1. Δημιουργήστε και αποθηκεύστε ένα νέο αρχείο με όνομα make_it_blink.py

2. Αντιγράψτε και εκτελέστε το παρακάτω πρόγραμμα.

3. Παρατηρήστε τα αποτελέσματα. Τι συμβαίνει;

 

				
					from arduino_alvik import ArduinoAlvik
from time import sleep
import sys

alvik = ArduinoAlvik()
alvik.begin()
sleep(5)

while True:
  alvik.left_led.set_color(1, 0, 0)
  alvik.right_led.set_color(1, 0, 0)
  sleep(1)
  alvik.left_led.set_color(0, 0, 0)
  alvik.right_led.set_color(0, 0, 0)
  sleep(1)
				
			

Μόλις το πρόγραμμά σας εκτελεστεί με επιτυχία, συνεχίστε να διαβάζετε για να κατανοήσετε καλύτερα τι συμβαίνει

Ας εξετάσουμε το πρόγραμμα

Προετοιμάζοντας τον Alvik

				
					from arduino_alvik import ArduinoAlvik
from time import sleep
import sys

alvik = ArduinoAlvik()
alvik.begin()
sleep(5)
				
			

Για άλλη μια φορά, ξεκινάμε με την εισαγωγή των modules μαζί με σημαντικές συναρτήσεις (function) και κλάσεις (class) που θα χρησιμοποιηθούν αργότερα στο πρόγραμμά μας. Χρειαζόμαστε το module arduino_alvik το οποίο παρέχει πρόσβαση στα ειδικά για το hardware χαρακτηριστικά (features) του ρομπότ. Σε αυτή την περίπτωση, δημιουργούμε ένα αντικείμενο (object) alvik από την κλάση (class) ArduinoAlvik για τον έλεγχο ολόκληρου του Hardware. Θα μάθουμε περισσότερα για τις κλάσεις και τα αντικείμενα (Classes and Object) σε επόμενα μαθήματα, οπότε μην αγχώνεστε με την ορολογία προς το παρόν

Παρατηρήστε επίσης ένα σύνολο εντολών που περιλαμβάνονται στην αρχή του script – alvik.begin(), sleep(5) . Αυτό είναι ένα ειδικό σύνολο εντολών που χρησιμοποιούμε για την αρχικοποίηση του Alvik πριν από την εκτέλεση του custom κώδικα

ΠΡΟΣΟΧΗ:

Βεβαιωθείτε ότι έχετε συμπεριλάβει αυτές τις γραμμές σε όλα τα μελλοντικά scripts, ώστε η λειτουργία να είναι ομαλή

Στο άπειρο

				
					while True:

				
			

Infinite Loop

Η χρήση της εντολής while True: εκκινεί έναν ατέρμονα βρόχο. Κάθε γραμμή κώδικα που βρίσκεται μέσα σε αυτή τη συνθήκη θα επαναλαμβάνεται για πάντα. Για να βγουμε από το βρόχο, πρέπει να προσθέσουμε την εντολή break

Τι συμβαίνει με τα LED;

				
					alvik.left_led.set_color(1, 0, 0)
alvik.right_led.set_color(1, 0, 0)
sleep(1)
alvik.left_led.set_color(0, 0, 0)
alvik.right_led.set_color(0, 0, 0)
sleep(1)
				
			

Παρατηρήστε προσεκτικά την πρώτη γραμμή κώδικα alvik.left_led.set_color(1, 0, 0, 0). Προηγουμένως στο script μας, δημιουργήσαμε ένα αντικείμενο (object) που ονομάζεται alvik χρησιμοποιώντας την εντολή alvik = ArduinoAlvik(), η οποία μας δίνει πρόσβαση σε όλες τις μεθόδους (methods) μέσα στην κλάση (Class) ArduinoAlvik. Σκεφτείτε μια κλάση ως ένα κενό πρότυπο που περιέχει όλες τις λειτουργίες που μπορεί να εκτελέσει το ρομπότ σας, και κάθε φορά που χρησιμοποιούμε αυτές τις λειτουργίες, τις αποκαλούμε μεθόδους. left_led.set_color() είναι μια μέθοδος της κλάσης που χρησιμοποιούμε για να ελέγχουμε τις τιμές του αριστερού RGB LED. Αυτή η μέθοδος ανήκει στο αντικέίμενο alvik της κλάσης. Η τελεία .  συνδέει τις μεθόδους με το αντικείμενο.

Ας δούμε τις τιμές, ή αλλιώς τα ορίσματα (Arguements), μέσα στη μέθοδο left_led.set_color(). Παρατηρήστε ότι το RGB LED μας έχει τρεις τιμές που μπορούν να ανάψουν (1) ή να σβήσουν (0) το LED. Τα χρώματα Κόκκινο, Πράσινο και Μπλε έχουν το καθένα αντίστοιχα placeholders μέσα στη μέθοδο, ακολουθώντας τη σειρά R, G, B. Με άλλα λόγια, το (1,0,0) μεταφράζεται σε (κόκκινο ON, πράσινο OFF, μπλε OFF). Αν θέλετε το μπλε χρώμα, αλλάζατε τις τιμές σε (0,0,1) που είναι το ίδιο με το να λέτε (κόκκινο OFF, πράσινο OFF, μπλε ON)

Εξετάζοντας το σύνολο του κώδικα, θα πρέπει τώρα να καταλάβουμε ότι το left_led.set_color(1,0,0,0) ενεργοποιεί το αριστερό LED στο χρώμα κόκκινο και το left_led.set_color(0,0,0) το απενεργοποιεί. Το ίδιο ισχύει και για το δεξί LED, όπως μπορείτε να δείτε στο πρόγραμμα. 

Μεταξύ κάθε αλλαγής της κατάστασης on/off, περιμένουμε ένα δευτερόλεπτο με την χρήση της συνάρτησης sleep(1) πριν εκτελέσουμε τις επόμενες γραμμές κώδικα

  1. Μπορείτε να δημιουργήσετε νέα χρώματα όπως μπλε ή πράσινο;
  2. Μπορείτε να αναμίξετε χρώματα για να δημιουργήσετε ένα νέο χρώμα, όπως το Κίτρινο;
  3. Μπορείτε να δημιουργήσετε ένα δικό σας blinking μοτίβο;

 

Ώρα για να δώσουμε κίνηση στον Alvik

Αυτή είναι η στιγμή που όλοι περιμέναμε – πάμε να κάνουμε τον Alvik να κινηθεί!

Ξεκινήστε με τη δημιουργία του νλεου αρχείου στο Arduino Lab:

1. Κάντε κλικ στην επιλογή Files (Αρχεία) και δημιουργήστε ένα νέο αρχείο μέσα στο φάκελό σας 

2. Ενημερώστε το όνομα του αρχείου σε first_movement.py και πατήστε Enter

3. Αντιγράψτε το παρακάτω script στον editor και κάντε κλικ στο Save (Αποθήκευση)

ΣΗΜΕΙΩΣΗ:
Ξεκινάμε πάντα με την εισαγωγή βασικών modules και την αρχικοποίηση του ρομπότ. Αυτές οι γραμμές σπάνια θα αλλάξουν, οπότε μπορείτε να εστιάσετε στη δημιουργία κώδικα  μέσα στον βρόχο while True.

				
					from arduino_alvik import ArduinoAlvik
from time import sleep
import sys

alvik = ArduinoAlvik()
alvik.begin()
sleep(5)

while True:
  #Drive forward
  alvik.set_wheels_speed(10,10)
  sleep(2)
  #Turn left
  alvik.set_wheels_speed(0,20)
  sleep(2)
  #Turn right
  alvik.set_wheels_speed(20,0)
  sleep(2)
  #Drive backwards
  alvik.set_wheels_speed(-10,-10)
  sleep(2)
				
			

Αν κοιτάξετε προσεκτικά το πρόγραμμα, θα βρείτε πολλές ομοιότητες με τα προηγούμενα παραδείγματά μας με τα LED. Αρχικοποιούμε το ρομπότ, δημιουργούμε έναν ατέρμονα βρόχο (infinite loop), χρησιμοποιούμε μια ειδική μέθοδο για τον έλεγχο του hardware και συμπεριλαμβάνουμε χρονικές καθυστερήσεις για τον έλεγχο του ρυθμού. Πραγματικά, όπως θα διαπιστώσετε σύντομα, αυτό είναι το ωραίο με τη χρήση της MicroPython με τον Alvik – είναι διαισθητικό και εύκολο στην εκμάθηση, πράγμα που σημαίνει ότι θα γίνετε pro σε χρόνο μηδέν!

Η μέθοδος που χρησιμοποιούμε εδώ είναι η alvik.set_wheels_speed() για τον έλεγχο των επιμέρους ταχυτήτων του αριστερού και του δεξιού κινητήρα, οι οποίες μετρώνται σε στροφές ανά λεπτό (RPM). Τα ορίσματα της πρώτης μεθόδου μας είναι (10, 10) που μεταφράζονται σε (Left Wheel = 10 RPM, Right Wheel = 10 RPM). Με αυτόν τον τρόπο, είναι εύκολο να θυμάστε ποιον κινητήρα ελέγχετε: αριστερά από το κόμμα είναι ο αριστερός και δεξιά από το κόμμα είναι ο δεξιός κινητληρας. Στο παράδειγμά μας, θα δείτε τέσσερις κινήσεις – παρατηρήστε τα σχόλια πάνω από κάθε μέθοδο και δοκιμάστε να εκτελέσετε το πρόγραμμα για να το δείτε στην πράξη

The Final Dance - Ώρα για να χορό

Εντάξει, πλέον πορείτε να κάνετε το ρομπότ να κινείται… αλλά έχετε κατακτήσει πλήρως τις κινήσεις; Τι λέτε για λίγες χορευτικές φιγούρες;

Σκεφτείτε διαφορετικούς τρόπους με τους οποίους μπορείτε να ελέγξετε την κίνηση και τις ανεξάρτητες τιμές στροφών κάθε κινητήρα. Πώς θα μπορούσατε να συνδυάσετε διαφορετικές κινήσεις για να κάνετε τον Alvik να χορέψει; Σκεφτείτε άλλες μεθόδους και hardware που έχουμε δοκιμάσει – θα μπορούσατε να τα χρησιμοποιήσετε για να κάνετε το χορό σας πιο δυναμικό και ζωντανό;

Δοκιμάστε να διαγωνιστείτε με τους φίλους σας σε έναν μουσικοχορευτικό διαγωνισμό με τα ρομπότ σας. Αν θέλετε συμμετέχετε και εσέις! Απλά μιμηθείτε τις κινήσεις του Alvik σας!

Τι ψάχνουμε;