Πίνακας περιεχομένων:

Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα

Βίντεο: Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα

Βίντεο: Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Βίντεο: CS50 2014 - Week 7 2024, Νοέμβριος
Anonim
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller

Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών στη σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor αλλά τα γραφήματα δεν είναι το μόνο πράγμα που μπορεί να χρειαστεί να εμφανίσετε. Όλα τα διαδραστικά αντικείμενα όπως ρυθμιστικά, κουμπιά, προγράμματα με έξοδο 2D, 3D, PDF ή SVG και μπορείτε επίσης να δημιουργήσετε κινούμενα σχέδια εύκολα. Η προεπιλεγμένη λειτουργία προγραμματισμού για επεξεργασία είναι Java, αλλά μπορείτε να την αλλάξετε σε Android, p5.js, REPL, CoffeeScript και JavaScript. Σε αυτό το Instructable θα χρησιμοποιήσουμε ωστόσο τη λειτουργία προγραμματισμού Java.

Όλο το περιεχόμενο και ο κώδικας είναι επίσης διαθέσιμοι στο github μου εδώ.

Βήμα 1: Χρήση του Processing.serial

Κώδικας επεξεργασίας

Οι δύο πρώτες γραμμές κώδικα θα είναι

επεξεργασία εισαγωγής.σειρά.*; Σειριακό myPort;

Εδώ στην πρώτη γραμμή εισάγουμε τη βιβλιοθήκη - επεξεργασία και στη δεύτερη γραμμή δημιουργούμε ένα αντικείμενο της κλάσης Serial με όνομα myPort, μπορείτε να το ονομάσετε όπως θέλετε, ακολουθώντας τους κανόνες ονομασίας ενός αναγνωριστικού.

Κατά την επεξεργασία έχουμε void setup () και void draw () όπου void είναι ο τύπος επιστροφής της συνάρτησης που μπορείτε επίσης να την αλλάξετε σε int setup () και int draw () ή σε άλλο τύπο δεδομένων που σας αρέσει αλλά θα χρειαστεί να επιστρέψετε ένα τιμή που έχει τον ίδιο τύπο δεδομένων με τον τύπο δεδομένων που χρησιμοποιείτε πριν από τις συναρτήσεις.

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

Στο void setup () θα αρχικοποιήσουμε το αντικείμενο myPort.

void setup () {

μέγεθος (800, 800).

myPort = νέο Σειριακό (αυτό, "COM18", 9600);

}

Το μέγεθος της γραμμής (800, 800). ορίζει το μέγεθος της οθόνης που είναι 800 εικονοστοιχεία επί 800 εικονοστοιχεία.

Η λέξη κλειδί νέα στη δεύτερη γραμμή χρησιμοποιείται για να κρατήσει χώρο για το αντικείμενο στη μνήμη, το επιχείρημα αυτό είναι μια μεταβλητή αναφοράς που αναφέρεται στο τρέχον αντικείμενο. Το επιχείρημα COM18 είναι η θύρα του Arduino συνδεδεμένου, το χρειαζόμαστε καθώς θα μεταφέρουμε τα δεδομένα μέσω σειριακής διεπαφής. Ο αριθμός 18 μπορεί να είναι διαφορετικός στην περίπτωσή σας, μπορείτε να τον βρείτε στην ενότητα Εργαλεία> Θύρα στο Arduino IDE και 9600 είναι ο ρυθμός baud που μπορείτε να αλλάξετε τόσο στο Arduino όσο και στην Επεξεργασία.

Βήμα 2: Κατανοήστε την σειριακή τάξη

Ο κατασκευαστής για το Serial

Σειριακό (γονικό, όνομα port, baudRate, ισοτιμία, dataBits, stopBits)

Επιχειρήματα:

γονέας: χρησιμοποιήστε συνήθως "αυτό"

baudRate (int): Το 9600 είναι το προεπιλεγμένο

portName (String): όνομα της θύρας (το COM1 είναι το προεπιλεγμένο)

ισοτιμία (char): 'N' για κανένα, 'E' για ζυγό, 'O' για περιττό, 'M' για σήμα, 'S' για χώρο (το 'N' είναι το προεπιλεγμένο)

dataBits (int): 8 είναι η προεπιλογή

stopBits (float): 1.0, 1.5 ή 2.0 (το 1.0 είναι το προεπιλεγμένο)

Σημαντικές μέθοδοι:

  1. myPort.available () - επιστρέφει τον αριθμό των διαθέσιμων byte.
  2. myPort.clear () - αδειάζει το buffer και αφαιρεί όλα τα δεδομένα που είναι αποθηκευμένα εκεί.
  3. myPort.read () - Επιστρέφει έναν αριθμό μεταξύ 0 και 255 για το επόμενο byte που περιμένει στο buffer.
  4. myPort.readString () - Επιστρέφει όλα τα δεδομένα από το buffer ως String ή null αν δεν υπάρχει τίποτα διαθέσιμο.
  5. myPort.write ("test") - Γράφει bytes, chars, ints, bytes , Strings στη σειριακή θύρα.
  6. myPort.stop () - Σταματά την επικοινωνία δεδομένων στη θύρα.

Βήμα 3: Σειριακή τάξη Arduino

Δεν χρειάζεται να εισαγάγετε τη σειρά σειρών στο Arduino πριν τη χρησιμοποιήσετε.

Στο Arduino υπάρχουν 2 συναρτήσεις που ονομάζονται setup () και loop () η εγκατάσταση εκτελείται μόνο μία φορά αλλά ο βρόχος εκτελείται πολλές φορές. Στο setup () πρέπει να γράψουμε χρησιμοποιώντας τη μέθοδο έναρξης () για να ξεκινήσει η σειριακή επικοινωνία. Στο Arduino σε αντίθεση με την επεξεργασία, δεν χρειάζεται να αναφέρουμε τη θύρα ως ορίσματα της μεθόδου begin () καθώς ήδη καθορίζουμε τη θύρα κατά τη μεταφόρτωση του σκίτσου στο Arduino.

Έτσι, το setup () θα μοιάζει με αυτό:

void setup () {

Serial.begin (9600); // ξεκινήστε τη σειριακή επικοινωνία

}

9600 εδώ καθορίζει το ρυθμό baud που είχαμε αναφέρει και αυτό στο αρχείο επεξεργασίας. Για σωστή επικοινωνία και οι δύο ρυθμοί baud πρέπει να είναι ίσοι ή μπορείτε να δείτε την σειριακή έξοδο ως κάτι ανόητο.

Τώρα ας δούμε το μέρος του βρόχου (). Αυτό το μέρος του κώδικα εκτελείται πολλές φορές. Αν θέλουμε να διαβάσουμε κάποια δεδομένα από τη θύρα θα χρησιμοποιήσουμε τη μέθοδο Serial.read (). Αυτή η συνάρτηση επιστρέφει μηδενική εάν δεν υπάρχουν διαθέσιμα δεδομένα, οπότε θα καλέσουμε αυτήν τη μέθοδο μόνο όταν έχουμε κάποια δεδομένα στη διαθέσιμη σε σειριακή ροή.

Για να ελέγξουμε εάν υπάρχουν διαθέσιμα δεδομένα θα χρησιμοποιήσουμε τη μέθοδο Serial.available (). Εάν επιστρέψει τιμή μεγαλύτερη από 0 - είναι διαθέσιμα ορισμένα δεδομένα.

Έτσι, το τμήμα βρόχου () θα μοιάζει με αυτό:

void loop () {

εάν (Serial.available ()> 0) {// εάν υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα

κατάσταση char = Serial.read (); // διαβάστε την τιμή

// εάν δηλώσεις ή εναλλαγή κεφαλαίων

}

}

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

Βήμα 4: Δημιουργήστε έναν ελεγκτή τμήματος GUI 7

Δημιουργήστε έναν ελεγκτή τμήματος GUI 7
Δημιουργήστε έναν ελεγκτή τμήματος GUI 7
Δημιουργήστε έναν ελεγκτή τμήματος GUI 7
Δημιουργήστε έναν ελεγκτή τμήματος GUI 7
Δημιουργήστε έναν ελεγκτή τμήματος GUI 7
Δημιουργήστε έναν ελεγκτή τμήματος GUI 7

Τα αρχεία επισυνάπτονται εδώ. Σημείωση: Για επεξεργασία θα χρειαστεί επίσης να εγκαταστήσετε τη βιβλιοθήκη ελέγχου p5 που έχω χρησιμοποιήσει για τη δημιουργία διαδραστικών κουμπιών GUI.

Καρφίτσωμα αριθμών

7 τμήμα (με αλφαβητική σειρά) παραπέμπουν στην εικόνα

a - ψηφιακή ακίδα 2

β - ψηφιακή ακίδα 3

c - ψηφιακή ακίδα 4

d - ψηφιακή ακίδα 5

e - ψηφιακή ακίδα 6

f - ψηφιακή ακίδα 7

g - ψηφιακή ακίδα 8

dp - ψηφιακή ακίδα 9

Όλο το περιεχόμενο και ο κώδικας είναι επίσης διαθέσιμοι στο github μου εδώ

Συνιστάται: