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

Κείμενο σε λόγο
Κείμενο σε λόγο

Βίντεο: Κείμενο σε λόγο

Βίντεο: Κείμενο σε λόγο
Βίντεο: How To make Text Logo Designs in Adobe Illustrator | Beginners 2024, Ιούλιος
Anonim
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic και άλλα SBCs με δυνατότητα ARMbasic
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic και άλλα SBCs με δυνατότητα ARMbasic
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic, και σε άλλα SBC με ARMbasic Powered
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic, και σε άλλα SBC με ARMbasic Powered
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic και άλλα SBCs με δυνατότητα ARMbasic
Κείμενο σε ομιλία Κάντε κλικ σε ένα UChip με δυνατότητα ARMbasic και άλλα SBCs με δυνατότητα ARMbasic

Εισαγωγή: Καλημέρα. Με λένε Τοντ. Είμαι αεροδιαστημικός και αμυντικός επαγγελματίας που είναι επίσης λίγο geek στην καρδιά.

Έμπνευση: Προερχόμενος από την εποχή των dial-up BBS, 8-bit Microcontrollers, Kaypro/Commodore/Tandy/TI-994A προσωπικούς υπολογιστές, όταν τα καταστήματα Radio Shack ήταν άφθονα (τις καλές ole ημέρες), ένα από τα πρώτα μου χόμπι ενσωματωμένα έργα ήταν συνεργάζομαι με ένα MEK6800D2 Motorola Microprocessor Training Kit, το οποίο είχα αγοράσει ενώ εργαζόμουν ως συνεργάτης στα εργαστήρια MSU EE (μετά την ολοκλήρωση της εκπαίδευσης μου High School Electronics VoTech στο Southern Lower MI). Αυτό το έργο περιελάμβανε το πρωτότυπο μου στο Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR στο MEK6800D2, συνδέοντας το και προγραμματίζοντας το 6800 για να εκπέμπει ψευδο-ομιλία (όσοι έχουν συνεργαστεί με το SP0256 HW γνωρίζουν ακριβώς σε τι αναφέρομαι). Λειτούργησε υπέροχα και προχώρησα στην πορεία της κοπής των δοντιών μου σε ενσωματωμένους μικροελεγκτές και συναρμολόγηση. Μετά το Λύκειο, η ζωή εμπόδισε, Στρατιωτικός, Πόλεμος, Σύζυγοι, Παιδιά, είσοδος στον αστικό τομέα, έναρξη καριέρας κ.λπ. εδώ στις ΗΠΑ).

Προχωρήστε για 20 χρόνια, φτάνοντας στην αναπόφευκτη στιγμή όπου τα παιδιά ωριμάζουν σε σημείο που η νύφη και εγώ είμαστε περισπασμένοι, οι λογαριασμοί υποθηκών/οχημάτων/κολλεγίων σιγά σιγά εξοφλούνται, τα κέρδη γίνονται καλύτερα με τις προόδους και έχω αρκετό εφεδρικό timeρα στο σημείο όπου θα μπορούσα να αρχίσω να επικεντρώνομαι σε κάποιες εγωιστικές προσπάθειες, πήρα πίσω στη συναυλία των ηλεκτρονικών χόμπι. Ούτως ή άλλως, δεδομένης της καταγωγής και της ιστορίας μου, έψαξα και βρήκα ένα περιβάλλον dev με το οποίο συνδέθηκα γρήγορα - ARMbasic - το BASIC ήταν η πρώτη μου αγάπη και αυτό ταιριάζει με τον λογαριασμό όχι μόνο του να επαναπροσδιοριστώ στον προγραμματισμό, αλλά και να δουλέψω με υλικό που ήταν πολύ πιο πολύ ισχυρό από αυτό που είχα ξεκινήσει δεκαετίες νωρίτερα και έτσι ξεκίνησε το ταξίδι.

Ταν περίπου το 2006-2009. Στη συνέχεια, για λόγους που ήταν πέρα από τον έλεγχό μας, η ζωή άλλαξε (όπως είχε συμβεί για πολλούς εκείνα τα χρόνια). Τα χόμπι σταμάτησαν - εστιάστε σε μια νέα καριέρα, ανακάμπτοντας από οικονομικούς αγώνες (ήταν έντονα κατοχυρωμένος στον τομέα της ακίνητης περιουσίας και τα πήραμε με τα σορτς και οι νεαροί έφταναν στο σημείο όπου η χρηματοδότηση του Κολλεγίου ήταν επιτακτική ανάγκη). Βασικά, τα προβλήματα της Ζωής και του Πρώτου Κόσμου (είμαστε πραγματικά ευλογημένοι, λαμβάνοντας υπόψη τις προκλήσεις και τους κόπους που αντιμετωπίζουν καθημερινά οι άνθρωποι σε άλλα μέρη του κόσμου) εκδηλώθηκαν και… το χόμπι σταμάτησε. Το πήρα σύντομα για το 2011-2012-τότε συναντήθηκα με μια άλλη αλλαγή σταδιοδρομίας-το χόμπι έμεινε για άλλη μια φορά.

Προχωρήστε άλλη δεκαετία και… επιστρέφω και, Good Lord Willing, ελπίζω για όλη τη διάρκεια (μέχρι να πάρω τον παροιμιώδη υπνάκο και να αρχίσω να σπρώχνω τις μαργαρίτες από κάτω). Λοιπόν, εδώ είμαστε. Ουάου - Το Arduino (ποια είναι αυτή η περίεργη λέξη;) είχε εισβάλει στην αγορά. Κατασκευαστές;; Τι στο καλό είναι αυτοί;! …:) Οι φίλοι μου στην Coridium Corp (ιδιοκτήτες πλακετών ARMbasic και βασισμένων σε ARM μικροελεγκτές) είχαν μείνει σταθεροί και αληθινοί. Τώρα, αντί της σειράς χειριστηρίων LPC2xxx, υπάρχει αυτή η νέα (για μένα) οντότητα ARM, και Cortex M0/M3/M4, και Arduino, και… WOW! Ο πολιτισμός έχει αλλάξει αρκετά, και με πολύ μεγάλο τρόπο. Οι Peeps συνεργάζονται εξ αποστάσεως και, πράγματι, παγκοσμίως. Το υλικό γίνεται απίστευτα γρήγορο και ισχυρό, και το ARMbasic, έχοντας ωριμάσει και σταθεροποιηθεί με την απασχόληση σε πολλές διαφορετικές οικογένειες πυριτίου, είναι ένα πράγμα ομορφιάς για μένα και πολλούς άλλους.

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

Προμήθειες

  • 1 ea MikroElectronika Text To Speech Click, περιέχει το Epson S1V30120 - το TTS ASIC της ενότητας
  • 1 ea ARMbasic Target, εκπληρώνοντας το ρόλο του TTS Host
  • 1 ea Uno Breakout Shield (ή πρωτοτυπία σανίδας ψωμιού, ή…)
  • 1 ηχείο ή ένα σύνολο ηχείων υποδηλώνουν ηχεία που λειτουργούν με υπολογιστή με βύσμα TRS 1/8"
  • 1 παρτίδα Σύρματα πρωτοτύπων εμπορευμάτων, συγκόλλησης, ροής, φυτιλιού, κολλητήρι, κεφαλίδες, πρίζες IC και τα παρόμοια..
  • 1 παρτίδα Ενσωματωμένα εργαλεία Dev DMM, Logic Probe, Logic Analyzer, Scope κ.λπ. - για νέα TTS Host MCU

Βήμα 1: Διασυνδέσεις υλικού

Διασυνδέσεις υλικού
Διασυνδέσεις υλικού
Διασυνδέσεις υλικού
Διασυνδέσεις υλικού
Διασυνδέσεις υλικού
Διασυνδέσεις υλικού

Για να αναπαραγάγετε αυτό χρησιμοποιώντας έναν ARMbasic στόχο σε συντελεστή Uno, ή με ένα Itaca uChip, πιθανότατα θα εξυπηρετούσατε καλύτερα χρησιμοποιώντας μια ασπίδα πρωτοτύπων, όπως έκανα στις παραπάνω εικόνες (απλός σύνδεσμος amazon)

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

Είναι ένα αρκετά καλοήθη σχέδιο. Οι εκτυπώσεις επισυνάπτονται εδώ, με τη μορφή γραφικού (το AutoCAD 2D είναι αυτό που έχω συνηθίσει περισσότερο - έχοντας δουλέψει με αυτό επί δεκαετίες στην καθημερινή μου εργασία - εξακολουθώ να κόβω τα δόντια KiCAD και αυτό ήταν πολύ απλό εγχείρημα αιτιολογήστε την καμπύλη μάθησης ως πρώτο έργο στο KiCAD). Τέλος πάντων, επέλεξα να τοποθετήσω την υποδοχή uChip απευθείας στην ασπίδα για να ενεργοποιήσω μια αυτόνομη θήκη χρήσης όταν χρησιμοποιώ το uChip ως κεντρικό υπολογιστή. Πρόσθεσα ένα JST για την τροφοδοσία του μέσω μπαταρίας, αν το επιθυμούσα και, επειδή έχω μερικά πρόσθετα, έβαλα ένα Adafruit SWD Breakout για να μπορέσω να χρησιμοποιήσω το Segger J-Link EDU Debug Probe, εάν προκύψει ανάγκη. Δεν το έκανε, αλλά διατηρώ το SWD i'face για χρήση σε μελλοντικά έργα.

Το Castellated σημαίνει, σε αυτό το πλαίσιο, να αρχειοθετήσει τις άκρες του PCB έτσι ώστε οι επιμεταλλωμένες οπές να μειωθούν σε ημικύλινδρους, επιτρέποντας τη συγκόλληση σε ένα PCB μεταφοράς - σε αυτή την περίπτωση τον πίνακα διάσπασης ασπίδας. Επέλεξα να το κάνω αυτό καθώς τα επίπεδα fanout τμήματα της ασπίδας δεν ευθυγραμμίστηκαν αρκετά με το διάστημα μεταξύ των δύο σειρών κεφαλίδων στο SWD BOB. Έσπασε ένα επίπεδο αρχείο και 5 λεπτά κατάθεσης και το πρόβλημα λύθηκε.

Βήμα 2: Προγραμματισμός και δοκιμές

Προγραμματισμός και Δοκιμές
Προγραμματισμός και Δοκιμές
Προγραμματισμός και Δοκιμές
Προγραμματισμός και Δοκιμές
Προγραμματισμός και Δοκιμές
Προγραμματισμός και Δοκιμές

Μόλις δημιουργηθεί το υλικό, θα χρειαστεί να γίνει πλήρης κλήση για να επιβεβαιωθεί ότι η καλωδίωση είναι καλή. Στη συνέχεια, κάνω πάντα έναν έλεγχο ισχύος και γείωσης. Αυτό όχι μόνο διασφαλίζει ότι το Power and Ground είναι εκεί που υποτίθεται ότι είναι, αλλά ότι οποιοσδήποτε από τους άλλους τερματισμούς που δεν θα έπρεπε να έχουν ισχύ/έδαφος δεν υπάρχει. Δεν είναι ένα κουραστικό έργο σε ένα μικρό έργο όπως αυτό, αλλά με μεγαλύτερα συστήματα συστημάτων, ενώ είναι πράγματι ένα κουραστικό βήμα, είναι απολύτως απαραίτητο για να διασφαλιστεί ότι δεν θα εξαλειφθούν υποσύνολα ή συνδεδεμένα συστήματα από ένα ανόητο λάθος. μπορούσε και έπρεπε να είχε πιαστεί. Συνήθως παίρνω το ελάχιστο των αγαθών που συνδέονται έτσι ώστε να παράγεται ενέργεια στον πίνακα και στη συνέχεια ελέγχω κάθε πείρο/τερματισμό για ισχύ και γείωση πριν συνδέσω υποσύνολα, τσιπ κ.λπ., διασφαλίζοντας ότι η ισχύς είναι του κατάλληλου επιπέδου (λαμβάνοντας υπόψη τις συσκευές που δεν είναι ανεκτικές σε 5V/απαιτήσεις IO, 1v8 και 3v3 κ.λπ.) και αυτό το έδαφος είναι εκεί που πρέπει και μόνο εκεί που πρέπει. Έχω γίνει μάρτυρας ενός καταρράκτη αστοχιών σε ένα αεροσκάφος από άτομα που δεν κατάφεραν να κάνουν σωστούς ελέγχους προ-σύνδεσης. Σε μια περίπτωση, έβγαλε πάνω από 100.000 δολάρια LRU - δεν ήταν μια διασκεδαστική στιγμή για να είσαι υπεύθυνος για ένα έργο και να το κάνεις να πάει πλάγια σε μια στιγμή επειδή κάποιος βραχυκύκλωσε τη διαδικασία. Ένα άλλο πράγμα για το οποίο είμαι ένοχος είναι να κάνω κουραστικούς «κοντινούς ελέγχους» - διασφαλίζοντας ότι οι επαφές/τερματισμοί δεν συντομεύονται σε παρακείμενες επαφές/τερματισμούς. Αυτό γίνεται κρίσιμο εάν κάποιος ασχολείται με ομοαξονικές συναρμολογήσεις, ζώνες πολλαπλών αγωγών/θωρακισμένες κλπ. Κλπ. Εντάξει, είμαι εκτός κουτιού σαπουνιού …

Μόλις διασφαλιστεί η ασφάλεια, συνδέστε τα πράγματα, ενεργοποιήστε το και στη συνέχεια προχωρήστε στον προγραμματισμό του TTS Host (ARMbasic Target MCU) όπως ακριβώς θα κάνατε με πολλούς ενσωματωμένους στόχους MCU. Έγραψα ένα βίντεο που απεικονίζει τον προγραμματισμό και την απλή χρήση του TTS Click. Μπορείτε να το δείτε εδώ.

Μπορείτε να κατεβάσετε τον πηγαίο κώδικα ARMbasic από εδώ - μια ανάρτηση φόρουμ που έχει πρόσθετες λεπτομέρειες. Το Coridium έκανε μια ανάρτηση ιστολογίου για αυτές τις προσπάθειες, στην οποία μπορείτε να φτάσετε κάνοντας κλικ εδώ.

Βήμα 3: Τροποποίηση της πηγής για άλλους ARMbasic Targets και Various Musings

Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά
Τροποποίηση της πηγής για άλλους βασικούς στόχους ARM και διάφορα μουσικά

Δεν θα σας ενοχλήσω με τα βήματα που απαιτούνται για την τροποποίηση του πηγαίου κώδικα για να συνεργαστεί με άλλους βασικούς στόχους ARM, εκτός από το να δηλώσω ότι το έχω κάνει με πολλά σχόλια πηγαίου κώδικα. Αφιερώστε χρόνο για να ανοίξετε το αρχείο tts.bas και διαβάστε σχετικά με τις αλλαγές που απαιτούνται εάν επιλέξετε να μεταφέρετε τον κώδικα σε άλλο ελεγκτή που λειτουργεί με ARMbasic.

Επισυνάπτονται εδώ μερικές εικόνες που τράβηξα κατά τη διάρκεια του κύκλου dev για να λειτουργήσει αυτό.

Διδάγματα:

  1. Εάν έχετε έναν Λογικό αναλυτή με αχρησιμοποίητες εισόδους και έχετε επιπλέον IO -στόχους που δεν χρησιμοποιούνται για την εργασία σας, μην φοβάστε να χρησιμοποιήσετε αυτούς τους IO ως εργαλεία εντοπισμού σφαλμάτων. μια τεράστια βοήθεια για τον εντοπισμό του τι είναι και δεν λειτουργεί όπως αναμενόταν, για τον εντοπισμό ανόητων ζητημάτων χρονισμού (δηλ. διακοπές που επηρεάζουν σειριακά comms με bit-banged) και συνολικά για καλύτερη κατανόηση των προσπαθειών σας στο σύνολό τους.
  2. Δεν είναι όλοι οι ελεγκτές ARM ίδιοι. Αυτό είναι προφανές. Ωστόσο, πήρα λίγο κάνοντας το αρχικό dev σε ένα LPC1765 Coridium SuperPRO. Εκ των υστέρων, αυτό που έκανε αυτή την κακή επιλογή είναι ότι η εφαρμογή αυτού του πυρήνα ARM επέτρεψε πρόσβαση χωρίς μνήμη ευθυγραμμισμένη στη μνήμη. Κατά τη μεταφορά του κώδικα C στο ARMbasic, τα πράγματα πήγαν αρκετά ομαλά μέχρι που προσπάθησα να τον χρησιμοποιήσω με στόχο SAMD21 - όλα πήγαν χαμένα και τα πράγματα μπήκαν πέρα από κάθε πεποίθηση λόγω μη ευθυγραμμισμένης πρόσβασης κατά τη συμπλήρωση buffer, χειρισμό σημαιών, εργασία με την έκδοση ARMbasic δομών/συνδικάτων που κατέληξα κλπ. wasταν ένα οδυνηρό μάθημα. Η απομάκρυνση εδώ: Εάν κάποιος θέλει να έχει φορητό κώδικα, dev στον πιο περιοριστικό στόχο υποψηφίων, μόνο και μόνο για να διασφαλίσει ότι δεν θα αντιμετωπίσει δράμα στο τέλος του έργου, όταν είναι πιθανότατα ενθουσιασμένος να χρησιμοποιήσει τους καρπούς του η προσπάθειά τους …:)
  3. Η μεταφορά κωδικού C στο ARMbasic ΔΕΝ είναι αδύνατη. Αυτή η προσπάθεια ήταν σε μεγάλο βαθμό μια γιγαντιαία εξέλιξη της εκπαίδευσης. Εάν κάποιος αφιερώσει χρόνο για να συγκρίνει τις αρχικές πηγές C με τον κώδικα ARMbasic που δημιούργησα, θα πρέπει να είναι σε θέση να βρει κάποιες ιδέες για την εφαρμογή πραγμάτων που ενδέχεται να μην αποτελούν μέρος του βασικού σχεδιασμού της ARMbasic (δηλαδή δομές).
  4. Αντιμετωπίστε τέτοια πράγματα σε εύχρηστα κομμάτια. Από προεπιλογή, είμαι αυτός που μου αρέσει να βλέπω ικανοποίηση σε τακτική βάση. Μια προσπάθεια όπως αυτές οι μεταφορές και οι προσπάθειες dev δεν είναι πιθανό να είναι κάτι που θα μπορέσουμε να ολοκληρώσουμε σε μία μόνο νύχτα. Θέστε ρεαλιστικούς στόχους και εργαστείτε προς τον ίδιο, προσπαθώντας να μην σας συγκλονίσει η «μεγάλη εικόνα».
  5. Ένας λογικός αναλυτής ήταν καθοριστικός σε αυτήν την προσπάθεια. Ναι, έχω μια χαμηλότερης μεσαίας κατηγορίας μονάδα DS-Logic+, αλλά μπορώ να δηλώσω με έμφαση ότι ένα φθηνό 12,50 $ 24MHz Bandwidth LA από την Αμαζονία θα είχε κάτι παραπάνω από αρκετό. Ζευγάρι με το PulseView του Sigrok (δωρεάν) (κάνει αποκωδικοποίηση πρωτοκόλλου) και κάποιος θα έχει ένα πολύ ισχυρό σύστημα που θα πρέπει να λειτουργήσει σε ένα τεράστιο πλήθος σεναρίων, όπως αυτό που προσπάθησα να αναλάβω με αυτό το έργο. Βεβαιωθείτε ότι έχετε πάρει μια μονάδα που έχει κλιπ δοκιμών ή παραγγείλετε κλιπ δοκιμών ξεχωριστά, καθώς είναι εξαιρετικά ωφέλιμα (πόσο Trumpfeldian).
  6. Ένας απλός λογικός ανιχνευτής είναι επίσης ένα πολύ χρήσιμο εργαλείο. Στην εικόνα επισκόπησης του χώρου εργασίας θα σημειώσετε έναν αρχαίο λογικό καθετήρα Archer (Radio Shack) στην κάτω δεξιά γωνία της εικόνας. Wasμουν πραγματικά έκπληκτος όταν διαπίστωσα πόσο χρήσιμο είναι κάτι τέτοιο σε καθημερινή βάση, ακόμη και με ένα καλά εξοπλισμένο εργαστήριο.

Μπορεί να είχα συνδεθεί με αυτά νωρίτερα, αλλά δεν θυμάμαι και είμαι πολύ τεμπέλης για να κοιτάξω. Ακολουθεί μια ανάρτηση ιστολογίου που περιέχει ένα βίντεο της ενότητας TTS σε δράση (το Itaca uChip το φιλοξενεί εκείνη τη στιγμή) και την ανάρτηση ARMbasic Forum όπου μπορείτε να κατεβάσετε τον μεταφερόμενο πηγαίο κώδικα ARMbasic.

Φροντίστε και διασκεδάστε χακαρίζοντας μακριά!

-MHz

Συνιστάται: