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

DemUino - Home Computer/Controller: 7 Βήματα
DemUino - Home Computer/Controller: 7 Βήματα

Βίντεο: DemUino - Home Computer/Controller: 7 Βήματα

Βίντεο: DemUino - Home Computer/Controller: 7 Βήματα
Βίντεο: DemUino 2024, Ιούλιος
Anonim
Image
Image
Κάψιμο του Bootloader
Κάψιμο του Bootloader

Ένας υπολογιστής εμπνευσμένος από το Arduino της DemeterArt Αξιοποιήστε στο έπακρο το παλιό σας πληκτρολόγιο PS2. Παραβιάστε το σε έναν εξατομικευμένο προσωπικό υπολογιστή για να ελέγχετε πράγματα! Πάντα ήθελα να φτιάξω τον δικό μου οικιακό υπολογιστή, σε ρετρό στυλ, τίποτα φανταχτερό αλλά με ιδιαίτερες δυνατότητες προσαρμοσμένες στις προτιμήσεις μου. Έτσι, έφτασα με το atmega328 MCU και το κιτ ανάπτυξης Arduino.

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

επισκεφτείτε τον ιστότοπό μου για να διαβάσετε ολόκληρη την ιστορία και να κατεβάσετε όλα τα σχετικά αρχεία

www.sites.google.com/site/demeterart

Βήμα 1: Χαρακτηριστικά

  • Βασισμένο στο ATMEGA328 με φλας 32KB, 2KB SRAM και 1KB EEPROM.
  • υποστήριξη για διαδραστικές και παρτίδες λειτουργίες
  • επεξεργαστή γραμμής και λειτουργία λίστας κατά την επεξεργασία
  • 8 προσαρμοσμένοι χαρακτήρες για γραφικά χρήστη
  • 60 βήματα προγράμματος αριθμημένα 00,…, 99
  • Βρόχοι "If" υπό όρους, "while" και "for" συν δηλώσεις "goto" και "sub" για διακλάδωση
  • Βασικές αριθμητικές και μαθηματικές εκφράσεις καθώς και τεστ boolean
  • Οι μεταβλητές συστήματος επιτρέπουν χρονικά συμβάντα, μέσο όρο, rms, min και max τιμές από αναλογικές ακίδες κ.λπ
  • 26 μεταβλητές χρήστη για αλληλεπίδραση με μεταβλητές συστήματος και εντολές
  • 104 byte ενός πίνακα διευθυνσιοδοτούμενου χρήστη ή 52 σύντομους ακέραιους αριθμούς
  • ικανότητα ανάγνωσης/εγγραφής δεδομένων προγράμματος καθώς και κώδικα εν κινήσει (μεταβλητή p)
  • εφαρμογή μίνι παλμογράφου με προσαρμοσμένους χαρακτήρες για ψευδο γραφικά
  • αποθήκευση και φόρτωση προγραμμάτων και δεδομένων από/προς EEPROM
  • φόρτωση/αποθήκευση προγραμμάτων και μεταβλητών από/σε υπολογιστή
  • autoexec για φόρτωση και εκτέλεση προγράμματος από το EEPROM μετά από κάθε επαναφορά
  • 9 καρφίτσες GPIO (περιλαμβάνονται SPI) διαθέσιμες σε εξωτερική υποδοχή DB15
  • BUZZER για ηχητικά εφέ

Βήμα 2: Πράγματα που θα χρειαστείτε

Ένα παλιό πληκτρολόγιο ps/2 αρκετά παχύ για να φιλοξενήσει την οθόνη LCD χαρακτήρων pcb (η δημοφιλής παράλληλη μορφή) τσιπ MAX232 για θύρα RS232 atmel atmega328PU Κιτ ανάπτυξης Arduino με IDE 1.0.1 ρυθμιστή 5M ρυθμιστή 5V buzzer ανορθωτή, πυκνωτές, κουμπί επαναφοράς, συνδετήρες κλπ

Βήμα 3: Κάψιμο του προγράμματος εκκίνησης

Έτσι, μετά την αγορά ενός «άδειου» τσιπ atmega328PU, πρέπει να ληφθεί μια απόφαση. Χρησιμοποιώ ειδικό προγραμματιστή είτε εξωτερικό είτε ISP ή καίω το πρόγραμμα εκκίνησης Arduino στο θηρίο και καθιστώ τη μονάδα προγραμματιζόμενη μέσω της θύρας UART; Επέλεξα το τελευταίο για να κάνω τη ζωή μου πιο εύκολη! Ο νέος φορτωτής εκκίνησης καταλαμβάνει μόνο μισό kilobyte μνήμης flash αφήνοντας λίγο περισσότερο από 31KB προγράμματος χρήστη και στατικά δεδομένα διαθέσιμα. Ο ιστότοπος Arduino καλύπτει την περίπτωση καύσης του bootloader σε ένα νέο τσιπ, όταν ήρθε η χρήση του avrdude για να κάψει πραγματικά το τσιπ -στόχο, η διαδικασία απέτυχε με ένα σφάλμα που υποδεικνύει το λάθος αναγνωριστικό για το συγκεκριμένο MCU. Έτσι, μετά από κάποιο ψάξιμο βρήκα αυτόν τον τύπο που το κατάλαβε σωστά και ακολούθησα τη διαδικασία του. Η μόνη διαφορά ήταν 2 αρχεία διαμόρφωσης, το avrdude.conf και το boards.txt που χρειάζονταν τα avrdude και arduino IDE 1.0.1 για να το καταστήσουν εφικτό. Αφού αντιγράψατε τα 2 αρχεία στις σωστές θέσεις τους (πρώτα δημιουργήστε αντίγραφα ασφαλείας των παλιών), η επιλογή ‘arduino328’ από τα εργαλεία-> Board ήταν διαθέσιμη και το avrdude προχώρησε στην καύση των ασφαλειών και του bootloader. Τώρα το τσιπ είναι έτοιμο για προγραμματισμό από το νέο μηχάνημα!

Βήμα 4: Δημιουργία της μονάδας

Δημιουργία της Μονάδας
Δημιουργία της Μονάδας
Δημιουργία της Μονάδας
Δημιουργία της Μονάδας

Μια διάτρητη σανίδα με λωρίδες χαλκού χρησιμοποιήθηκε ως γρήγορη λύση συναρμολόγησης με πρίζες DIP για τα τσιπ, ξέρετε, για κάθε περίπτωση! Στη συνέχεια, οι τρύπες και οι περικοπές για τους συνδετήρες, το κουμπί επαναφοράς και η οθόνη LCD άνοιξαν μέσω του εξαιρετικά στιβαρού και χοντρού πλαστικού του πληκτρολογίου. Ναι, χτίστηκε πριν από 25 χρόνια! Ακολούθησε το χάος των καλωδίων που προέρχονταν από το PCB προς τα διάφορα περιφερειακά. Ένας υποτυπώδης έλεγχος συνέχειας και στη συνέχεια η τροφοδοσία συνδέθηκε χωρίς τσιπ που συμπληρώθηκε μόνο για να ελέγξει τις πρίζες για τις κατάλληλες τάσεις. Στη συνέχεια μπήκε στα 2 IC και η θήκη του πληκτρολογίου έκλεισε σταθερά μέσω των πλαστικών κουμπωμάτων της στο κάτω μέρος. Η μονάδα ήταν έτοιμη να κάψει σκίτσα στο χειριστήριο!

Προτείνω κάποιος να χρησιμοποιεί μη πολικούς πυκνωτές 1uF/16V για τις αντλίες φόρτισης MAX232. Εντοπίστε τους πυκνωτές αποσύνδεσης 100nF για τα δύο τσιπ όσο το δυνατόν πιο κοντά στις αντίστοιχες ακίδες VCC και GND. Χρησιμοποιήστε μια σύνδεση αστεριού για την τροφοδοσία και τη γείωση που αναφέρεται στον ρυθμιστή LM7805. Ο διακόπτης 2 θα μπορούσε να είναι ένας άλτης ανάλογα με την καταστροφή, αλλά είναι καλό να υπάρχει μόνο για να αποφευχθούν ανεπιθύμητες επαναφορές MCU από τον κεντρικό υπολογιστή σε ορισμένες περιπτώσεις. Σε κάθε περίπτωση, ο διακόπτης πρέπει να είναι κλειστός για να επιτρέψει στο Arduino IDE να κάψει το σκίτσο μέσω επαναφοράς του MCU -στόχου (pin DTR του RS232). Στην περίπτωσή μου η σύνδεση είναι μόνιμη (πάντα κλειστή). Χρησιμοποιήστε μια σειρά αντίστασης για το βομβητή για να απομονώσετε τα διάφορα nFs χωρητικότητας από την πύλη οδήγησης … ποτέ δεν ξέρετε.. Εντοπίστε το XTAL και τους πυκνωτές φόρτωσης 18-22pF όσο το δυνατόν πιο κοντά στις αντίστοιχες ακίδες του ελεγκτή.

Λόγω της γέφυρας ανορθωτή, η μονάδα μπορεί να τροφοδοτηθεί τόσο από μετασχηματιστές AC όσο και από DC. Σε περίπτωση DC, υπάρχει πτώση τάσης 1,5 V μεταξύ του προσαρμογέα και της εισόδου στο ρυθμιστή. Σε περίπτωση AC, η είσοδος του ρυθμιστή είναι περίπου 1,4 φορές η έξοδος RMS του προσαρμογέα ή μικρότερη λόγω φόρτωσης. Εάν η διαφορά μεταξύ της εισόδου του ρυθμιστή και της εξόδου του (+5V) είναι μεγάλη, ας πούμε 7 βολτ, τότε η ισχύς που καταναλώνει ο ρυθμιστής πλησιάζει τα 0,5 watt και είναι προτιμότερο να χρησιμοποιήσετε μια μικρή ψύκτρα στην οποία θα τοποθετήσετε το τσιπ (παρέχεται υπάρχει χώρος για αυτό) για πολύωρη λειτουργία σε ζεστό καιρό.

Η ασφάλεια εισόδου AC μπορεί να επιλεγεί ανάλογα με τα εξωτερικά σας φορτία (μέσω της υποδοχής DB15). Άλλοι παράγοντες που επηρεάζουν την επιλογή ασφάλειας είναι η αντίσταση περιορισμού ρεύματος για τον οπίσθιο φωτισμό LED της LCD, ο πυκνωτής γέφυρας για το ρεύμα φόρτισης και η τρέχουσα χωρητικότητα του μετασχηματιστή παροχής.

Βήμα 5: ΣΧΗΜΑΤΙΚΟ

ΣΧΗΜΑΤΙΚΟΣ
ΣΧΗΜΑΤΙΚΟΣ

Βήμα 6: ΛΟΓΙΣΜΙΚΟ ΤΡΕΧΟΝΤΑΙ ΣΤΟ ΠΛΑΙΣΙΟ

Αυτό είναι το σκίτσο που τα κάνει όλα να συμβαίνουν… και 32KB ΔΕΝ είναι αρκετά! Μπορείτε είτε να το χρησιμοποιήσετε χωρίς τροποποίηση, οπότε θα εκτιμούσα μια αναφορά στο όνομά μου, είτε να το αλλάξετε κατά βούληση και να με ξεχάσετε;-)

Αυτή είναι η λεπτομερής τεκμηρίωση σχετικά με το μηχάνημα.

Περίληψη Εντολών & Εκφράσεων

: Μια μη εκτυπώσιμη γραμμή σχολίων

ai: επισύναψη διακοπής 0 (pin D2)

ar: αναλογική ανάγνωση

aw: «αναλογική εγγραφή» ανά arduino ή πιο σωστά pwm

ca: αναλογική λήψη σε έναν πίνακα

cl: καθαρίζει την ένδειξη cno: return *Prgm index of number number

di: περιμένετε μια σειρά παλμών και μετρήστε τη διάρκεια και το χρόνο

dl: καθυστέρηση

do: σε συνδυασμό με το «wh»

dr: ψηφιακή ανάγνωση οποιασδήποτε ακίδας

dw: ψηφιακή εγγραφή οποιασδήποτε ακίδας

ed: λειτουργία επεξεργασίας / φόρτωση προγράμματος από υπολογιστή / γραμμές επανάληψης αριθμού

el: Λειτουργία πρόσβασης EEPROM

τέλος: η δήλωση ΤΕΛΟΣ ενός προγράμματος

ensb: τελειώνει την υπορουτίνα

es: Λειτουργία πρόσβασης EEPROM

fl: απλό κινούμενο μέσο φίλτρο

fr: for-next loop (fr-nx)

μεταβείτε: μεταβείτε στο βήμα προγράμματος

gosb: συνέχιση της εκτέλεσης σε υπορουτίνα

gt: περιμένει την είσοδο του χρήστη

εάν: δοκιμαστική κατάσταση και πηδήξτε στο βήμα

io: GPIO 1-9 bit

ld: πρόγραμμα φόρτωσης/συγχώνευσης από το EEPROM

lp:: βρόχος που ελέγχεται από πληκτρολόγιο σε διαδραστική λειτουργία

ls: λειτουργία λίστας / αποστολή προγράμματος στον υπολογιστή κάθε φορά

ml: πάρτε χρόνο

mm: εμφάνιση ελεύθερης μνήμης

nos: μετατρέπει τον αριθμό σε συμβολοσειρά

nx: σε συνδυασμό με το «fr»

pl: πίνακας γραφήματος cxx

pm: ορίστε καρφίτσες για είσοδο ή έξοδο

pr: εκτυπώνει ένα μήνυμα ή τιμή ή προσαρμοσμένο χαρακτήρα

rgc: εντολή αντιγραφής εύρους για πίνακες

rgs: εντολή set range για πίνακες

rn: εκτελέστε το πρόγραμμα στη μνήμη RAM

rs: μαλακή επαναφορά

rx: λάβετε έναν χαρακτήρα μέσω RS232

si: σύγχρονη σειριακή είσοδος με ρολόι και ακίδες δεδομένων

sm: μίνι παλμογράφος app sno: μετατρέπει τη συμβολοσειρά σε αριθμό

έτσι: σύγχρονη σειριακή έξοδος με ρολόι και ακίδες δεδομένων

sub: δηλώνει υπορουτίνα

sv: αποθήκευση προγράμματος στο EEPROM

tn: ηχεί ένας ήχος

tx: μεταδίδει έναν αριθμό μέσω RS232

wh: ένας βρόχος do-while που χρησιμοποιείται σε συνδυασμό με το «do»

Βήμα 7: Βιντεοκλίπ του Mini App 'sm' Running

επισκεφθείτε τον ιστότοπό μου για να διαβάσετε ολόκληρη την ιστορία και να κατεβάσετε όλα τα σχετικά αρχεία

www.sites.google.com/site/demeterart

Συνιστάται: