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

Φορητός υπολογιστής BASIC: 6 βήματα (με εικόνες)
Φορητός υπολογιστής BASIC: 6 βήματα (με εικόνες)

Βίντεο: Φορητός υπολογιστής BASIC: 6 βήματα (με εικόνες)

Βίντεο: Φορητός υπολογιστής BASIC: 6 βήματα (με εικόνες)
Βίντεο: Κόλπα για υπολογιστές που ίσως δεν γνωρίζατε part 1. 2024, Νοέμβριος
Anonim
Φορητός υπολογιστής ΒΑΣΙΚΟΣ
Φορητός υπολογιστής ΒΑΣΙΚΟΣ
Φορητός υπολογιστής ΒΑΣΙΚΟΣ
Φορητός υπολογιστής ΒΑΣΙΚΟΣ

Αυτό το Instructable περιγράφει τη διαδικασία κατασκευής ενός μικρού φορητού υπολογιστή που λειτουργεί με BASIC. Ο υπολογιστής είναι χτισμένος γύρω από το τσιπ ATmega 1284P AVR, το οποίο επίσης ενέπνευσε το ανόητο όνομα του υπολογιστή (HAL 1284).

Αυτή η κατασκευή είναι εμπνευσμένη από το καταπληκτικό έργο που βρέθηκε εδώ και το σήμα SuperCON BASIC.

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

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

Αφού δημοσιεύτηκε αυτό, έκανα ένα βίντεο που παρουσίαζε το έργο.

Βήμα 1: Μέρη που χρησιμοποίησα

Μέρη που χρησιμοποίησα
Μέρη που χρησιμοποίησα
Μέρη που χρησιμοποίησα
Μέρη που χρησιμοποίησα
Μέρη που χρησιμοποίησα
Μέρη που χρησιμοποίησα

Για το κύριο IC:

  • ATmega 1284P
  • Κρυστάλλος 16MHz
  • Κεραμικός πυκνωτής 2x 22pf
  • Αντίσταση 10KΩ (για επαναφορά τραβήξτε προς τα πάνω)
  • Κουμπί 4 ακίδων (για επαναφορά)
  • Reistor 470Ω (Για σύνθετο βίντεο)
  • Αντίσταση 1kΩ (Για σύνθετο συγχρονισμό βίντεο)
  • 3-pin jumper (Για σήμα βίντεο)
  • Παθητικός βομβητής

Για έλεγχο πληκτρολογίου:

  • ATmega 328P (Όπως αυτά που χρησιμοποιούνται στο Arduino Uno)
  • Κρυστάλλος 16MHz
  • Κεραμικός πυκνωτής 2x 22pf
  • Αντίσταση 12x 10KΩ (για επαναφορά τραβήξτε προς τα πάνω και κουμπιά)
  • Κουμπί 51x 4 ακίδων (Για το πραγματικό πληκτρολόγιο)

Για ισχύ:

  • L7805 Ρυθμιστής Τάσης
  • LED 3mm
  • Αντίσταση 220Ω (Για LED)
  • 2x 0,1µF Ηλεκτρολυτικός Πυκνωτής
  • Ηλεκτρολυτικός πυκνωτής 0,22 μF (Μπορείτε να αντικαταστήσετε αυτό το 0,22 και ένα 0,1 με ένα 0,33. Μου είπαν επίσης ότι οι τιμές δεν έχουν πραγματικά σημασία, αλλά δεν είμαι υπέροχος με τους πυκνωτές)
  • 2x βραχυκυκλωτήρας 2 ακίδων (Για είσοδο ισχύος και για κύριο διακόπτη)

GPIO (addσως προσθέσετε μερικούς ακόμη λόγους):

  • Jumper 7 ακίδων
  • 2x άλτης 8 ακίδων
  • Jumper 2 ακίδων (για 5V και GND)
  • Μπλουζάκι 3-4 ακίδων (για σειριακή επικοινωνία)

Μη PCB:

  • Οθόνη LCD 4 "με σύνθετο βίντεο (το δικό μου είχε τάση εισόδου μεταξύ 7-30V)
  • Τρισδιάστατη θήκη για προβολή
  • Κάποιο είδος διακόπτη

Βήμα 2: Το κύκλωμα

Το Κύκλωμα
Το Κύκλωμα

Το κύκλωμα δεν είναι πολύ όμορφο και μεγάλο μέρος της κύριας περιοχής IC είναι εμπνευσμένο από το dan14. Τούτου λεχθέντος, είναι ένα αρκετά απλό Arduino σε ένα κύκλωμα Breadboard. Το πληκτρολόγιο είναι ένα απλό πλέγμα και ελέγχεται από το ATmega328. Τα δύο τσιπ AVR επικοινωνούν μέσω των σειριακών ακίδων UART.

Τόσο μια εικόνα όσο και τα αρχεία μου Eagle επισυνάπτονται και ελπίζω να είναι αρκετά για να αναδημιουργήσουμε το κύκλωμα. Εάν όχι, μη διστάσετε να με ενημερώσετε και θα ενημερώσω το Instructable.

Βήμα 3: Το PCB

Το PCB
Το PCB
Το PCB
Το PCB

Το PCB είναι 2 στρωμάτων και δημιουργήθηκε χρησιμοποιώντας το Auto Route (Ω, τι μια ** τρύπα!). Διαθέτει κουμπιά και ένδειξη ισχύος LED μπροστά και τα υπόλοιπα πίσω. Είχα το PCB μου κατασκευασμένο με JCL PCB και έκαναν καταπληκτική δουλειά με αυτό. Τα αρχεία που απαιτούνται για την αναδημιουργία του PCB θα πρέπει να βρίσκονται στα αρχεία Eagle από πριν.

Θα πρότεινα να επανασχεδιάσετε το PCB, καθώς έχω κάποια πράγματα που θα ήθελα να είχα κάνει διαφορετικά. Αν σας αρέσει το σχέδιό μου, έχω ακόμα (από το γράψιμο) τέσσερις αχρησιμοποίητες σανίδες που είμαι περισσότερο από πρόθυμος να πωλήσω.

Ο πίνακας έχει τέσσερις οπές τρυπήματος που έχω χρησιμοποιήσει για την τοποθέτηση της οθόνης LCD.

Βήμα 4: Μεταφόρτωση του κώδικα

Μεταφόρτωση του Κώδικα
Μεταφόρτωση του Κώδικα
Μεταφόρτωση του Κώδικα
Μεταφόρτωση του Κώδικα
Μεταφόρτωση του Κώδικα
Μεταφόρτωση του Κώδικα

Τόσο το 1284 όσο και το 328 φυσικά χρειάζονται κωδικό και τον κωδικό που χρησιμοποίησα μπορείτε να βρείτε εδώ: https://github.com/PlainOldAnders/HAL1284 στο ArduinoSrc/src. Απλώς χρησιμοποίησα το Arduino IDE για την τροποποίηση και τη μεταφόρτωση του κώδικα, αλλά προτού να γίνει αυτό, θα χρειαστεί να κάψετε bootloaders στα IC:

ATMega328:

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

Ο κωδικός για το 328 (κάτω από το ArduinoSrc/πληκτρολόγιο) είναι αρκετά απλός. Βασίζεται πλήρως στη βιβλιοθήκη Adafruit_Keypad-master. Σε περίπτωση που αλλάξει κάτι σχετικά με το lib, έχω συμπεριλάβει την έκδοση που χρησιμοποίησα στη σελίδα github κάτω από το ArduinoSrc/lib.

ATmega1284:

Αυτό ήταν λίγο δύσκολο για μένα όταν πήρα για πρώτη φορά το IC. Ξεκίνησα παίρνοντας τον bootloader από εδώ και ακολούθησα τον οδηγό εγκατάστασης. Για να κάψω το bootloader, έκανα το ίδιο πράγμα με το 328 και πήρα βοήθεια από εδώ. Και για τα δύο IC χρησιμοποίησα ένα Arduino Uno τόσο για την εγγραφή του bootloader όσο και για τη μεταφόρτωση του κώδικα (αφαιρέθηκε το IC από το Arduino Uno κατά τη μεταφόρτωση).

Ο κώδικας (κάτω από το ArduinoSrc/HAL1284Basic) είναι πολύ περίπλοκος για μένα, αλλά μπόρεσα να τροποποιήσω ορισμένα μέρη του κώδικα:

Πρόσθεσα μερικές εντολές (αυτές που σημειώνονται με [A] στο εγχειρίδιο.pdf) και άλλαξα επίσης άλλες εντολές:

Τόνος: Η εντολή τόνου μόλις χρησιμοποιούσε τη λειτουργία τόνου του Arduino πριν, αλλά όταν χρησιμοποιούσα τη βιβλιοθήκη TVout, αυτό προκάλεσε τη μη λειτουργία του βομβητή σωστά. Το άλλαξα για να χρησιμοποιήσω τη λειτουργία τόνου του TVout, αλλά αυτό σημαίνει ότι ο πείρος τόνου ΠΡΕΠΕΙ να είναι ο πείρος 15 (για το atmega1284)

Σειριακή επικοινωνία: Δεδομένου ότι το πληκτρολόγιο είναι DIY, χρησιμοποιεί σειριακή επικοινωνία για την ανάγνωση των χαρακτήρων. Δεδομένου ότι το atmega1284 χρησιμοποιείται εδώ, υπάρχουν δύο διαθέσιμες σειριακές γραμμές επικοινωνίας και όταν είναι ενεργοποιημένο το "sercom", ο κώδικας επιτρέπει επίσης την εγγραφή μέσω της σειριακής θύρας (από υπολογιστή ή οτιδήποτε άλλο).

Ανάλυση: Η οθόνη που χρησιμοποιείται για αυτό το έργο είναι αρκετά χαζή και απαιτείται μικρή ανάλυση, αλλιώς η εικόνα αναβοσβήνει. Εάν χρησιμοποιείται καλύτερη οθόνη, θα πρότεινα να αλλάξετε την ανάλυση στη λειτουργία εγκατάστασης.

Βήμα 5: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Με τον κωδικό που έχει μεταφορτωθεί και το PCB και τα εξαρτήματα είναι έτοιμα, ήρθε η ώρα της συναρμολόγησης. Όλα τα μέρη που χρησιμοποίησα ήταν από τρύπα, οπότε η συγκόλληση δεν ήταν πολύ δύσκολη (σε αντίθεση με τους κακούς-SMD-συγκολλήσεις-παιδιά εκεί έξω). Η οθόνη στερεώθηκε στις τέσσερις οπές τρυπήματος στο PCB με μια θήκη εκτύπωσης 3D. Εάν χρησιμοποιηθεί άλλη οθόνη, ελπίζουμε ότι οι τέσσερις οπές διάτρησης θα χρησιμοποιηθούν για την τοποθέτησή της.

Η θήκη οθόνης που χρησιμοποιείται εδώ, έχει σχεδιαστεί επίσης για να φιλοξενεί έναν διακόπτη εναλλαγής (συνδεδεμένος με το βραχυκυκλωτήρα "switch" στο PCB) και τα τρία κουμπιά ελέγχου για την οθόνη. Η θήκη στερεώνεται με πλαστικά μπουλόνια M3 και αποστάτες.

Για το βύσμα τροφοδοσίας χρησιμοποίησα έναν σύνδεσμο JST PCB, αν και ένα βολικό βύσμα λείανσης θα ήταν λίγο πιο ομαλό. Για να τροφοδοτήσω την πλακέτα, άλλαξα ένα τροφοδοτικό 12V ή τρεις σειρές μπαταριών 18650. Ένας πιο ομαλός καουμπόι από εμένα θα μπορούσε πιθανότατα να σχεδιάσει μια θήκη μπαταρίας για την πλακέτα.

Βήμα 6: Σφάλματα και μελλοντική εργασία

Βέλη: Τα βέλη τοποθετήθηκαν τυχαία και δεν εξυπηρετούν πολλές λειτουργίες. Αυτό καθιστά δύσκολη την πλοήγηση

Αρχείο I/O: Υπάρχουν δυνατότητες I/O αρχείου αλλά αυτές δεν εφαρμόζονται. Για την καταπολέμηση αυτού, το λογισμικό HAL1284Com είναι σε θέση να ανεβάσει αρχεία στον πίνακα. Είναι επίσης δυνατή η μεταφόρτωση στο EEPROM.

PEEK/POKE: PEEK και POKE δεν είναι δοκιμασμένα και δεν είμαι σίγουρος ποιες είναι οι διευθύνσεις.

Break: Το Break (Esc) έχει μπερδέψει μερικές φορές ολόκληρο τον κώδικα, όταν βρίσκεται σε άπειρους βρόχους.

Καρφίτσα 7: Ο πείρος PWM 7 μπορεί να είναι δύσκολος όταν προσπαθείτε να DWRITE High ή AWRITE 255. Λειτουργεί μια χαρά με το AWRITE 254.

Ηλίθιος: Θα ήταν ιδανικό να μπορείτε επίσης να ανεβάσετε μέσω UART1, αλλά η μεταφόρτωση είναι δυνατή μόνο μέσω του UART0, οπότε η μεταφόρτωση θα πρέπει να γίνει με εξαγωγή του κύριου IC. Ο ρυθμιστής οθόνης και τάσης 5 ζεσταίνεται πολύ όταν λειτουργεί για μεγάλο χρονικό διάστημα.

Συνιστάται: