Α, ωραία! Τώρα δεν θα νιώθω άσχημα ότι κάνω "highjack" σε ένα θέμα για να γράφω τα δικά μου!
Μέχρι και το rpi3 νομίζω ότι το "φθηνό desktop" δεν στέκει εκτός και αν μιλάμε για κάποιον που θέλει ένα μηχάνημα για προγραμματισμό κυρίως. Τότε όμως δε μιλάμε για τυπικό Εργαστήριο αλλά κάτι που θα φέρνει σε "maker lab" (σαν την προσπάθεια με τα Εργαστήρια Ανοιχτών Τεχνολογιών). Στο σπίτι έχω πολλές χρήσεις για τα rpis αλλά δεν μπορείς εύκολα να τα κάνεις όλα αυτά και στην τάξη. Εκτός και αν έχεις μικρή ομάδα μαθητών που πραγματικά τραβάει και έχει το "μικρόβιο".
Τα διαχώρισα σε νέο θέμα. Για τέτοια πράγματα είναι όντως πολύ δυνατό το rpi, η μόνη μου ένσταση ήταν ότι πολλοί το αγοράζανε σαν φτηνό desktop. Εγώ έχω 3 rpi2, 1 rpi3, 1 rpi4 αλλά τα χρησιμοποιώ κυρίως για remote desktop στο ΠΛΗΝΕΤ, δεν έχω ασχοληθεί με ρομποτική.
Λοιπόν, σε αυτό που ανέφερε ο evry σχετικά με project π.χ οχήματος βασισμένο σε rpi0 σε σύγκριση με arduino :
Rpi0 (ειδικά η έκδοση W) : τα
ΘΕΤΙΚΑ - Επειδή ουσιαστικά είναι υπολογιστές, μπορούν να κάνουν σαφώς πιο πολύπλοκα πράγματα. Υποστηρίζει την Python (και τις περισσότερες άλλες γλώσσες). Μπορείς πολύ πιο εύκολα, για παράδειγμα, να φτιάξεις ένα όχημα που θα μεταδίδει εικόνα από κάμερα μέσω wifi. Μέχρι και ένα απλό webserver μπορείς να σηκώσεις ή να το κάνεις να δουλέψει το ίδιο ως access point και να το χειριστείς μέσω wifi (ή bluetooth). Το Rpi0 βολεύει για αυτόνομα projects, σε σύγκριση με τα πιο μεγάλα Rpi 3/4. Τροφοδοτείται πιο εύκολα (5V/1A) με μπαταρίες ή ένα μικρό powerbank πράγμα που σημαίνει πως μπορείς πιο εύκολα να φτιάξεις μία οικονομική και "μαζεμένη" κατασκευή. τα
ΑΡΝΗΤΙΚΑ - Δεν μπορείς να αξιοποιήσεις το ίδιο εύκολα όποιον sensor/actuator σου κατέβει (π.χ αναλογικούς αισθητήρες λόγω απουσιάς Digital-Analog-Converter ή με τροφοδοσία 5V αφού το Rpi δίνει 3.3V). Η ύπαρξη πολυδιεργασικού ΛΣ περιπλέκει κάπως τα πράγματα όσον αφορά τον (χρονικά) ακριβή χειρισμό αισθητήρων/ενεργοποιητών (όχι πως σε ένα σχολικό project είναι τόσο σημαντικό αλλά λέμε...). Μπορεί να σε ζορίσει παραπάνω π.χ για να χειριστείς ένα σερβοκινητήρα με ακρίβεια (απαιτεί PWM σήμα) ή αν θες να διαβάζεις ένδειξη ενός αισθητήρα π.χ αυστηρά κάθε 500ms. Επίσης, θέλει λίγη προσοχή στο άναψε/σβήσε και όταν "πέφτει" η μπαταρία καθώς αυτά επηρεάζουν την κάρτα SD και μπορεί να χαλάσουν το σύστημα αρχείων (προσωπικά δεν μου έχει τύχει ποτέ μέχρι τώρα να μου χαλάσει κάρτα SD αλλά πολλοί το αναφέρουν).
Arduino (π.χ UNO ή συμβατό) : τα
ΘΕΤΙΚΑ - Ως μικροελεγκτής έχει ένα πρόγραμμα που θα του φορτώσεις και εκτελείται συνεχώς (as simple as that!). Είναι πιο εύκολος στο χειρισμό μεγάλης γκάμας αισθητήρων (3.3 ή 5V, analog ή digital) και με μεγάλη ακρίβεια μέχρι και για real-time εφαρμογές (η απουσία ΛΣ έχει και τα καλά της). Για ρομποτικό όχημα ταιριάζει "γάντι". Έχεις ευελιξία στις επιλογές τροφοδοσίας και ανοχή στη διακοπή της! Μπορείς να προσομοιώσεις απλές ασκήσεις π.χ με το tinkercad (πολύ σημαντικό) που στα Rpi δεν έχεις κάτι αντίστοιχο. τα
ΑΡΝΗΤΙΚΑ Το Arduino υποστηρίζει μόνο μία δική του C/C++ (είναι σχεδόν ίδια) ή μία δική του έκδοση scratch (S4A - Scratch 4 Arduino). Μπορείς να δουλέψεις με python μεν, μέσω σειριακής σύνδεσης και REPL, αλλά δεν είναι το ίδιο... Τα απλά πράγματα μου φαίνονται πιο εύκολα με το Arduino αλλά τα πιο σύνθετα είναι πιο ζόρικα (έως αδύνατα). Γενικά όμως με arduino έχω πολύ μικρή εμπειρία.
Και στις δύο περιπτώσεις συχνά, για ευκολία στην κατασκευή και στον προγραμματισμό, καταφεύγεις στη λύση add-ons, δηλαδή, ΗΑΤ/pHAT (για τα Rpi) ή κάποιου shield (για το arduino).
Αν μου έλεγες πως θα υλοποιούσα τώρα ένα ρομποτικό όχημα, μάλλον θα σου έλεγα με arduino (δεν το έχω κάνει ακόμα αλλά φαίνεται πιο απλό). Αν όμως μετά από αυτό θες να επεκταθείς και σε άλλα ...τοτε rpi!
Tα rpi προσφέρουν, θεωρώ, μεγαλύτερη ποικιλία projects αλλά με σαφώς με πιο σύνθετα πράγματα που θα περιλαμβάνουν και άλλες τεχνολογίες. Ίσως πιο κατάλληλα για μεγαλύτερες ηλικίες. Σε κάποια πράγματα όμως θα προσθέσει πολυπλοκότητα (λίγο το linux, λίγο κάποιοι εξτρά περιορισμοί).
To arduino είναι πολύ καλό για αυτοματισμούς, ρομποτικά οχήματα κτλ. Δεν έχεις επιπλέον πράγματα να σε απασχολούν πέρα από την κατασκευή και τον κωδικα αλλά σε περιορίζει σε άλλα πράγματα (π.χ γλώσσα).