Το Raspberry Pi και το Arduino είναι οι δύο πιο δημοφιλείς πίνακες ανοιχτού κώδικα στην Κοινότητα Ηλεκτρονικών. Δεν είναι μόνο δημοφιλείς στους Ηλεκτρονικούς Μηχανικούς αλλά και στους μαθητές και τους χομπίστες, λόγω της Ευκολίας και της Απλότητας τους. Ακόμα και μερικοί άνθρωποι άρχισαν να τους αρέσουν τα Electronics λόγω του Raspberry Pi και του Arduino. Αυτά τα διοικητικά συμβούλια έχουν μεγάλες δυνάμεις και μπορεί κανείς να δημιουργήσει πολύ περίπλοκο και Hi-fi έργο σε λίγα απλά βήματα και λίγο προγραμματισμό.
Έχουμε δημιουργήσει αριθμό Arduino Projects και Tutorials, από πολύ απλά έως πολύπλοκα. Έχουμε δημιουργήσει επίσης σειρά εκμάθησης Raspberry Pi, από όπου ο καθένας μπορεί να αρχίσει να μαθαίνει από το "μηδέν". Αυτή είναι μια μικρή συμβολή στην Κοινότητα Ηλεκτρονικών από την πλευρά μας και αυτή η πύλη έχει αποδειχθεί ως Μεγάλη Εκπαιδευτική Πηγή για την Ηλεκτρονική. Σήμερα, λοιπόν, συνδυάζουμε αυτά τα δύο υπέροχα χαρτιά από την Interfacing Arduino με το Raspberry Pi.
Σε αυτό το σεμινάριο, θα δημιουργήσουμε μια σειριακή επικοινωνία μεταξύ του Raspberry Pi και του Arduino Uno. Το PI έχει μόνο 26 ακροδέκτες GPIO και μηδενικά κανάλια ADC, οπότε όταν κάνουμε έργα όπως ο εκτυπωτής 3D, το PI δεν μπορεί να κάνει όλες τις αλληλεπιδράσεις μόνοι του. Χρειαζόμαστε λοιπόν περισσότερες καρφίτσες εξόδου και πρόσθετες λειτουργίες, για την προσθήκη περισσότερων λειτουργιών στο PI, δημιουργούμε μια επικοινωνία μεταξύ PI και UNO. Με αυτό μπορούμε να χρησιμοποιήσουμε όλη τη λειτουργία του UNO όπως ήταν οι λειτουργίες PI.
Το Arduino είναι μια μεγάλη πλατφόρμα για την ανάπτυξη έργων, με πολλές σανίδες όπως το Arduino Uno, το Arduino Pro mini, το Arduino Due κ.λπ. Είναι πίνακες που βασίζονται σε ελεγκτές ATMEGA σχεδιασμένοι για Ηλεκτρονικούς Μηχανικούς και Χόμπι. Παρόλο που υπάρχουν πολλές πλατφόρμες στην πλατφόρμα Arduino, αλλά το Arduino Uno έχει πολλές εκτιμήσεις, για την ευκολία του να κάνει έργα. Το περιβάλλον ανάπτυξης προγραμμάτων με βάση το Arduino είναι ένας εύκολος τρόπος για να γράψετε το πρόγραμμα σε σύγκριση με άλλους.
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS και το Arduino Uno. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού, σχετικά με το Raspberry Pi, έχουν ήδη συζητηθεί, μπορείτε να το αναζητήσετε στην Εισαγωγή Raspberry Pi, εκτός από αυτό που χρειαζόμαστε:
- Σύνδεση ακίδων
- 220Ω ή 1KΩ αντίσταση (2 τεμάχια)
- LED
- Κουμπί
Επεξήγηση κυκλώματος:
Όπως φαίνεται στο παραπάνω διάγραμμα κυκλώματος, θα συνδέσουμε το UNO στη θύρα USB PI χρησιμοποιώντας καλώδιο USB. Υπάρχουν τέσσερις θύρες USB για PI. μπορείτε να το συνδέσετε σε οποιοδήποτε από αυτά. Συνδέεται ένα κουμπί για την προετοιμασία της σειριακής επικοινωνίας και το LED (αναβοσβήνει) για να υποδείξει ότι αποστέλλονται δεδομένα.
Επεξήγηση εργασίας και προγραμματισμού:
Arduino Uno Μέρος:
Πρώτα ας προγραμματίσουμε το UNO, Συνδέστε πρώτα το UNO στον υπολογιστή και, στη συνέχεια, γράψτε το πρόγραμμα (ενότητα Ενότητα Ελέγξτε παρακάτω) στο λογισμικό Arduino IDE και ανεβάστε το πρόγραμμα στο UNO. Στη συνέχεια, αποσυνδέστε το UNO από τον υπολογιστή. Συνδέστε το UNO στο PI μετά τον προγραμματισμό και συνδέστε ένα LED και ένα κουμπί στο UNO, όπως φαίνεται στο διάγραμμα κυκλώματος.
Τώρα το πρόγραμμα αρχικοποιεί τη Σειριακή Επικοινωνία του UNO. Όταν πατάμε το κουμπί που είναι συνδεδεμένο στο UNO, το UNO στέλνει μερικούς χαρακτήρες στο PI σειριακά μέσω θύρας USB. Το LED που είναι συνδεδεμένο στο PI αναβοσβήνει για να υποδείξει τους χαρακτήρες που αποστέλλονται.
Μέρος Raspberry Pi:
Μετά από αυτό πρέπει να γράψουμε ένα πρόγραμμα για PI (ενότητα Ενότητα Ελέγξτε παρακάτω), για να λάβουμε αυτά τα δεδομένα που αποστέλλονται από την UNO. Για αυτό πρέπει να κατανοήσουμε μερικές εντολές που αναφέρονται παρακάτω.
Πρόκειται να εισαγάγουμε σειριακό αρχείο από τη βιβλιοθήκη, αυτή η λειτουργία μας επιτρέπει να στέλνουμε ή να λαμβάνουμε δεδομένα σειριακά ή μέσω θύρας USB.
εισαγωγή σειράς
Τώρα, πρέπει να δηλώσουμε τη θύρα της συσκευής και το ρυθμό bit για το PI να λαμβάνει τα δεδομένα από το UNO χωρίς σφάλματα. Η παρακάτω εντολή δηλώνει ότι, ενεργοποιούμε τη σειριακή επικοινωνία 9600 bit ανά δευτερόλεπτο στη θύρα ACM0.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Για να μάθετε το λιμάνι στο οποίο συνδέεται το UNO, μεταβείτε στον τερματικό σταθμό του PI και εισαγάγετε
ls / dev / tty *
Θα έχετε τη λίστα όλων των συνδεδεμένων συσκευών στο PI. Τώρα συνδέστε το Arduino Uno στο Raspberry Pi με καλώδιο USB και εισαγάγετε ξανά την εντολή. Μπορείτε να αναγνωρίσετε εύκολα τη συνδεδεμένη θύρα UNO από την εμφανιζόμενη λίστα.
Η παρακάτω εντολή χρησιμοποιείται ως βρόχος για πάντα, με αυτήν την εντολή οι δηλώσεις μέσα σε αυτόν τον βρόχο θα εκτελούνται συνεχώς.
Ενώ 1:
Αφού λάβουμε σειριακά τα δεδομένα, θα εμφανίζουμε τους χαρακτήρες στην οθόνη του PI.
εκτύπωση (ser.readline ())
Έτσι, μετά το πάτημα του κουμπιού, που επισυνάπτεται στο UNO, θα δούμε χαρακτήρες να εκτυπώνονται στην οθόνη PI. Ως εκ τούτου, έχουμε δημιουργήσει μια βασική επικοινωνία χειραψίας μεταξύ του Raspberry Pi και του Arduino.