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

AVR Assembler Tutorial 8: 4 Βήματα
AVR Assembler Tutorial 8: 4 Βήματα

Βίντεο: AVR Assembler Tutorial 8: 4 Βήματα

Βίντεο: AVR Assembler Tutorial 8: 4 Βήματα
Βίντεο: Как связать косметичку крючком САМЫМ ПРОСТЫМ СПОСОБОМ! | Учебник по вязанию крючком 2024, Ιούλιος
Anonim
Φροντιστήριο AVR Assembler 8
Φροντιστήριο AVR Assembler 8

Καλώς ήλθατε στο Tutorial 8!

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

Σήμερα λοιπόν θα μετακινήσουμε τον κύλινδρο μας με τα ζάρια ATmega328P και το συνοδευτικό ζευγάρι ζαριών σε μια εξωτερική πλακέτα με συνδέσεις στον κύριο πίνακα για επικοινωνία και τροφοδοσία. Εκτός από αυτό, η καλωδίωση και η λειτουργία των ζαριών θα είναι αυτοτελείς εντός αυτού του εξαρτήματος.

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

Θα περάσουμε το μεγαλύτερο μέρος αυτού του σεμιναρίου κάνοντας φυσικές εργασίες, όπως το σχεδιασμό ενός κυκλώματος, τη χαρτογράφηση ενός πίνακα πρωτοτύπων και τη συγκόλληση αντικειμένων μαζί, αλλά υπάρχει λίγος προγραμματισμός που πρέπει να κάνουμε στο τέλος αφού μετακινήσουμε πράγματα. Ο λόγος είναι ότι τελικά θα χρησιμοποιήσουμε τη σειριακή διεπαφή 2 συρμάτων για να επικοινωνήσουμε μεταξύ του κύριου "κύριου" ελεγκτή μας και όλων των "υποτελών" ελεγκτών που αποτελούν τα συστατικά του συνολικού έργου μας σε αυτήν τη σειρά σεμιναρίων και, όπως θυμάστε, στο Tutorial 6 επινοήσαμε μια μέθοδο τύπου Morse Code για την επικοινωνία των ζαριών μας από τον κύλινδρο ζαριών (Tutorial 4) στον Register Analyzer (Tutorial 5) που έδειξε το αποτέλεσμα της ρίψης ζαριών σε δυαδικό σχήμα σε 8 LED. Το Λοιπόν, αυτή ήταν απλώς μια μέθοδος επικοινωνίας "κυλήστε τη δική σας" που αποφάσισα να χρησιμοποιήσω επειδή, εκείνη την εποχή, ήταν πολύ νωρίς για να μπω σε σειριακή επικοινωνία 2 συρμάτων. Είμαστε σχεδόν έτοιμοι να βουτήξουμε στο βαθύ τέλος της σειριακής επικοινωνίας και θα το κάνουμε στο Tutorial 10, αλλά προς το παρόν πρέπει να προβλέψουμε τη μελλοντική ανάπτυξη και να επανασυνδέσουμε τα LED των κυλίνδρων ζαριών μας για να απελευθερώσουμε τα δύο καρφίτσες που χρειαζόμαστε για τη σειριακή επικοινωνία.

Αυτές είναι οι ακίδες SCL και SDA στο ATmega328P. Μπορείτε να δείτε από το διάγραμμα pinout ότι ονομάζονται επίσης ADC5 και ADC4 όταν χρησιμοποιούνται σε μετατροπές αναλογικού σε ψηφιακό, ονομάζονται PCINT13 και PCINT12 όταν χρησιμοποιούνται ως ακίδες "Διακοπή Pin Change Interrupt" και, τέλος, γενικά τις ονομάζουμε PC5 και PC4 όταν θεωρούνται απλά ως καρφίτσες στο PortC. Δεδομένου ότι χρησιμοποιήσαμε αυτούς τους δύο πείρους ως μέρος του κυλίνδρου μας για διάφορους λόγους (οι κυριότεροι είναι ότι διευκόλυνε την κωδικοποίηση και την καλωδίωση στα LED στον πίνακα) θα πρέπει τώρα να τροποποιήσουμε τον κωδικό μας και να τον επανασυνδέσουμε ελαφρώς απελευθερώστε αυτές τις καρφίτσες για μελλοντική επικοινωνία.

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

Για να ολοκληρώσετε αυτό το σεμινάριο θα χρειαστείτε τα ακόλουθα στοιχεία:

  1. Τα τυπικά πράγματα που χρειάζεστε πάντα και θα σταματήσω να τα επαναλαμβάνω συνεχώς: τον πίνακα πρωτοτύπων, το αντίγραφο του φύλλου δεδομένων και το σύνολο οδηγιών και τον εγκέφαλό σας.
  2. Ένα πρωτότυπο κύκλωμα ασύρματου κυκλώματος PCB όπως αυτό: https://www.ebay.com/itm/191416297627 Θα χρησιμοποιήσω την έκδοση Measure Explorer 103RAWD αυτής της πλακέτας: https://www.ebay.com/itm/103RAT -circuit-proto-proto … αφού έχω ένα σωρό από αυτά στο χέρι, αλλά η έκδοση 103RAW-0 με την οποία συνδέω παραπάνω θα λειτουργήσει επίσης μια χαρά.
  3. Κούρεμα, σύρματα, κολλήσεις, κολλητήρι, "βοηθητικά χέρια" ή οτιδήποτε άλλο για να κρατάτε πράγματα, κλπ. Κλπ. Κλπ. Ξανά, από εδώ και πέρα θα σταματήσω να απαριθμώ και αυτά τα πράγματα. Εάν έχετε πραγματικά φτάσει τόσο μακριά σε αυτά τα Σεμινάρια, τότε πιθανότατα έχετε όλα αυτά τα πράγματα ήδη.

Ακολουθεί ένας σύνδεσμος για την πλήρη συλλογή των σεμιναρίων AVR assembler μου:

Βήμα 1: Σχεδιάστε ένα διάγραμμα καλωδίωσης

Σχεδιάστε ένα διάγραμμα καλωδίωσης
Σχεδιάστε ένα διάγραμμα καλωδίωσης
Σχεδιάστε ένα διάγραμμα καλωδίωσης
Σχεδιάστε ένα διάγραμμα καλωδίωσης
Σχεδιάστε ένα διάγραμμα καλωδίωσης
Σχεδιάστε ένα διάγραμμα καλωδίωσης

Το ωραίο με τους πίνακες Measure Explorer είναι ότι αν αφιερώσετε λίγο χρόνο και χαρτογραφήσετε τα πράγματα στην αρχή, μπορείτε να εξοικονομήσετε πολλά καλώδια στο τέλος. Θα ξεκινήσουμε λοιπόν αφιερώνοντας λίγο χρόνο για να σχεδιάσουμε τη διάταξή μας πριν ξεκινήσουμε να κολλάμε οτιδήποτε. Με αυτό το είδος σανίδας, πρέπει να κόψετε μια δέσμη καλωδίων σύνδεσης, κάτι που δεν είναι τόσο εύκολο, αλλά το αποτέλεσμα είναι ένας πολύ όμορφος συμπαγής πίνακας με ελάχιστο μπέρδεμα συρμάτων. Το πρώτο πράγμα που πρέπει να κάνουμε είναι να σχεδιάσουμε κύκλωμα έτσι ώστε να ταιριάζει στον πίνακα. Ένας καλός τρόπος για να το κάνετε αυτό είναι να κατεβάσετε τον χάρτη του πίνακα και στη συνέχεια να τον χρησιμοποιήσετε για να παίξετε με διαφορετικά σχέδια μέχρι να βρείτε αυτό που λειτουργεί. Εδώ είναι η διάταξη για το ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Βήμα 2: Κόψτε το κύκλωμα στον πίνακα

Κόψτε το κύκλωμα στον πίνακα
Κόψτε το κύκλωμα στον πίνακα
Κόψτε το κύκλωμα στον πίνακα
Κόψτε το κύκλωμα στον πίνακα
Κόψτε το κύκλωμα στον πίνακα
Κόψτε το κύκλωμα στον πίνακα

Πρώτα πάρτε ένα εξάρτημα και, χρησιμοποιώντας τη διάταξη που σχεδιάσατε στο προηγούμενο βήμα, σχεδιάστε το κύκλωμά σας στον πίνακα. Δηλ. τραβήξτε γραμμές για να αναπαραστήσετε τα καλώδια. Μην σχεδιάζετε τίποτα όσον αφορά τα εξαρτήματα, μόνο τα καλώδια σύνδεσης όπως φαίνεται στην πρώτη εικόνα. Παρατηρήστε ότι όταν βιδώνετε (και αν είστε κάτι σαν εμένα θα βλάψετε τα πράγματα πολλές φορές σε αυτά τα βήματα) μπορείτε να χρησιμοποιήσετε μια γόμα και να διαγράψετε τη γραμμή. Κάντε το και για τις δύο πλευρές του πίνακα.

Στη συνέχεια, πρέπει να κόψετε τις συνδέσεις γύρω από τις γραμμές. Αν κοιτάξετε προσεκτικά τον πίνακα, θα δείτε ότι κάθε τρύπα πείρου συνδέεται με τις 4 παρακείμενες και στις δύο πλευρές του πίνακα, έτσι ώστε όλες οι οπές στον πίνακα να συνδέονται μεταξύ τους όταν ξεκινάτε. Έτσι πρέπει να κόψετε και τις δύο πλευρές του καθενός από τα καλώδιά σας για να τα απομονώσετε. Ο πιο συνηθισμένος τρόπος για να κάνετε αυτό το κόψιμο είναι με ένα μαχαίρι Exacto. Αλλά πιπιλίζω μαχαίρια Exacto και πιθανότατα θα κόβω τον εαυτό μου. Χρησιμοποιώ λοιπόν ένα Dremel με ένα λεπτό εξάρτημα κοπής εργαλείου. Μακάρι να είχα κάποιο είδος προσαρμογής λείανσης που έφτασε σε ένα απότομο σημείο, καθώς αυτό θα λειτουργούσε καλύτερα - αλλά δεν έχω τέτοιο, έτσι χρησιμοποίησα το εξάρτημα κοπής πριονιού. (Προστέθηκε σημείωση: Μετά την ολοκλήρωση αυτού του έργου διαπίστωσα ότι οι μικρότερες κεφαλές "βαρέως τύπου κοπής" για τα Dremels λειτουργούν καλύτερα, μοιάζουν με μικρούς κύκλους γυαλόχαρτου και λειτουργούν σαν το εργαλείο κοπής που φαίνεται εδώ εκτός από το ότι είναι μικρότερης διαμέτρου κ.λπ. είναι πολύ πιο εύκολο να δείτε και να ελέγξετε πού κόβετε)

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

Θα χρειαστεί πολύς χρόνος και υπομονή για να κόψετε το κύκλωμα στον πίνακα, αλλά είναι κάπως διασκεδαστικό όταν το καταφέρετε.

Βήμα 3: Συγκολλήστε τα εξαρτήματα και δοκιμάστε

Συγκολλήστε τα εξαρτήματα και δοκιμάστε
Συγκολλήστε τα εξαρτήματα και δοκιμάστε
Συγκολλήστε τα εξαρτήματα και δοκιμάστε
Συγκολλήστε τα εξαρτήματα και δοκιμάστε
Συγκολλήστε τα εξαρτήματα και δοκιμάστε
Συγκολλήστε τα εξαρτήματα και δοκιμάστε

Τώρα που έχετε απομονώσει όλα τα καλώδια στην πλακέτα κυκλώματος, μπορείτε να ξεκινήσετε τη συγκόλληση στα επιμέρους εξαρτήματα.

Συγκόλλησα πρώτα στα LED για ένα από τα ζάρια, έπειτα πήρα θετικά και αρνητικά καλώδια από το ψωμί μου και δοκίμασα τις συνδέσεις για κάθε LED για να βεβαιωθώ ότι είναι απομονωμένα το ένα από το άλλο και ότι λειτουργούν.

Ομοίως με το άλλο μήτρα.

Στη συνέχεια, συνδέστε την αντίσταση σε κάθε μήτρα και την αντίσταση 10Κ στο πίσω μέρος της σανίδας.

Στη συνέχεια, συνδέστε τον ταλαντωτή κρυστάλλου, τα καπάκια 22pf, τα κουμπιά ώθησης και το ATmega328P. Μπορεί να θέλετε να κολλήσετε μια πρίζα τσιπ και στη συνέχεια να τοποθετήσετε το ATmega328P σε αυτό, ώστε να μπορείτε να το αφαιρέσετε αν θέλετε και να το επαναχρησιμοποιήσετε σε κάτι άλλο. Μόλις κόλλησα το τσιπ μου στον πίνακα αφού ξέρω τι χτίζουμε τελικά με όλα αυτά τα σεμινάρια και ξέρω ότι θα μου αρέσει αρκετά που δεν θα θέλω να βγάλω το τσιπ.

Παρατηρήστε, κοιτάζοντας το πίσω μέρος του πίνακα, τον τρόπο που συνδέσαμε τις κεφαλίδες. Χρησιμοποίησα μακριές κεφαλίδες καρφίτσας και τις έσκυψα οριζόντια για να μην κολλήσουν έξω από τον πίνακα. Αυτό γίνεται για να μπορέσω τελικά να καλύψω την πλακέτα στο επίπεδο των κουμπιών και των LED με ένα δοχείο και να μην παρεμποδίσω τις κεφαλίδες. Έχουμε μια κεφαλίδα για Tx, Rx, ώστε να μπορούμε να προγραμματίσουμε το τσιπ, έχουμε μια κεφαλίδα για SDA, SCL, ώστε να μπορούμε να χρησιμοποιήσουμε 2-καλωδιακή επικοινωνία αργότερα. και έχουμε μια κεφαλίδα 3 ακίδων για AVCC, AREF, GND στην άλλη πλευρά του πίνακα. Έχω όλους τους πείρους γείωσης και τους πείρους VCC συνδεδεμένους μαζί στο τσιπ, οπότε χρειαζόμαστε μόνο μία είσοδο ισχύος.

Τέλος, όταν όλα είναι καλωδιωμένα, περνάμε με καλώδιο 1 έως 2, όπως κάναμε στο breadboard, ώστε να μπορούμε να ελέγχουμε και τα δύο ζάρια με μόνο 9 καρφίτσες.

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

Βήμα 4: Κωδικός συναρμολόγησης και βίντεο

Έχω επισυνάψει τον κωδικό συναρμολόγησης και το βίντεο του κυλίνδρου ζαριών σε λειτουργία. Το μόνο που έκανα ήταν να πάρω τον κωδικό για τον κύλινδρο ζαριού μας από το Tutorial 6, να τροποποιήσω τις καρφίτσες ώστε να ταιριάζουν με τη νέα διάταξη και να αφαιρέσω την υπορουτίνα επικοινωνιών αφού θα γράψουμε ένα νέο στο Φροντιστήριο 10. Την επόμενη φορά θα ανοίξουμε ξανά το πληκτρολόγιό μας και θα μάθουμε πώς να ελέγχουμε τις οθόνες 7 τμημάτων. Τα λέμε τότε!

Συνιστάται: