תוכן עניינים:

מחשב בסיסי כף יד: 6 שלבים (עם תמונות)
מחשב בסיסי כף יד: 6 שלבים (עם תמונות)

וִידֵאוֹ: מחשב בסיסי כף יד: 6 שלבים (עם תמונות)

וִידֵאוֹ: מחשב בסיסי כף יד: 6 שלבים (עם תמונות)
וִידֵאוֹ: אני רוצה שווארמה 🌯 2024, יולי
Anonim
מחשב BASIC כף יד
מחשב BASIC כף יד
מחשב כף יד BASIC
מחשב כף יד BASIC

הוראה זו מתארת את התהליך שלי לבניית מחשב כף יד קטן הפועל BASIC. המחשב בנוי סביב שבב ה- AVmega 1284P AVR, שגם הוא נתן השראה לשם המטופש של המחשב (HAL 1284).

מבנה זה הוא בהשראת כבד מהפרויקט המדהים שנמצא כאן ותג SuperCON BASIC.

המחשב מפעיל גרסה שונה של TinyBasic, למרות שרוב התוכנות מבוססות על הפרויקט של dan14. אתה כמובן יכול לעקוב אחרי זה, או אפילו יותר טוב, לשפר אותו מכיוון שעשיתי כמה טעויות.

עבור הפרויקט הזה, יצרתי גם מדריך. הוא מזכיר כמה באגים ופרטים מיוחדים עבור הצג הנבחר אך החשוב מכל הוא שיש לו את רשימת הפעולות BASIC.

לאחר פרסום זה, הכנתי סרטון המציג את הפרויקט.

שלב 1: חלקים בהם השתמשתי

חלקים בהם השתמשתי
חלקים בהם השתמשתי
חלקים בהם השתמשתי
חלקים בהם השתמשתי
חלקים בהם השתמשתי
חלקים בהם השתמשתי

עבור ה- IC הראשי:

  • ATmega 1284P
  • 16 מגהרץ קריסטל
  • קבלים קרמיים 2x22pf
  • נגד 10KΩ (לאיפוס למעלה)
  • לחצן 4 פינים (לאיפוס)
  • 470Ω רייסטור (לסרטון מורכב)
  • הנגד של 1kΩ (לסנכרון וידאו מורכב)
  • מגשר 3 פינים (לאות וידאו)
  • באזר פסיבי

לשליטה על keybaord:

  • ATmega 328P (כמו אלה המשמשים ב- Arduino Uno)
  • 16 מגהרץ קריסטל
  • קבלים קרמיים 2x22pf
  • 12x 10KΩ נגד (לאיפוס משיכה ולחצנים)
  • כפתור 51x 4 פינים (עבור המקלדת בפועל)

לכוח:

  • ווסת מתח L7805
  • 3 מ"מ LED
  • נגד 220Ω (עבור LED)
  • קבל אלקטרוליטי 2x 0.1µF
  • קבלים אלקטרוליטיים של 0.22 µF (אפשר להחליף 0.22 ואחד 0.1 ב 0.33. נאמר לי גם שהערכים לא ממש חשובים, אבל אני לא מצויין בקבלים)
  • מגשר 2 פינים (עבור כניסת חשמל ולמתג ראשי)

GPIO (אולי להוסיף עוד כמה נימוקים):

  • מגשר בעל 7 פינים
  • מגשר בעל 8 פינים
  • מגשר בעל 2 פינים (עבור 5V ו- GND)
  • מגשר בן 3-4 פינים (לתקשורת סדרתית)

שאינו PCB:

  • צג LCD בגודל 4 אינץ 'עם וידאו מורכב (שלי היה בעל מתח כניסה בין 7-30V)
  • מחזיק מודפס תלת מימד לתצוגה
  • סוג של מתג

שלב 2: המעגל

המעגל
המעגל

המעגל לא יפה במיוחד וחלק גדול מאזור IC הראשי הוא בהשראת dan14. עם זאת, מדובר בארדואינו די ישר קדימה על מעגל לוח. המקלדת הינה רשת פשוטה ונשלטת על ידי ה- ATmega328. שני שבבי ה- AVR מתקשרים באמצעות סיכות הסידורי UART.

הן תמונה והן קובצי הנשר שלי מצורפים ובתקווה שיספיקו לשחזר את המעגל. אם לא, אל תהסס ליידע אותי ואעדכן את המדריך.

שלב 3: ה- PCB

ה- PCB
ה- PCB
ה- PCB
ה- PCB

ה- PCB הוא דו שכבתי ויוצר באמצעות מסלול אוטומטי (הו, איזה חור **!). יש לו לחצנים ונורית חיווי כוח בחזית והשאר מאחור. הכנתי את ה- PCB שלי עם ה- JCL PCB, והם עשו עבודה מדהימה עם זה. הקבצים הדרושים לשחזור ה- PCB צריכים להיות בקבצי Eagle מלפני כן.

הייתי מציע שתעצב מחדש את ה- PCB, מכיוון שיש לי כמה דברים שהייתי רוצה לעשות אחרת. אם אתה אוהב את העיצוב שלי, עדיין יש לי (נכון לכתיבה) ארבעה לוחות שאינם בשימוש שאני יותר מוכן למכור.

ללוח ארבעה חורי מקדחה בהם השתמשתי לצורך הרכבת תצוגת ה- LCD.

שלב 4: העלאת הקוד

העלאת הקוד
העלאת הקוד
העלאת הקוד
העלאת הקוד
העלאת הקוד
העלאת הקוד

הן 1284 והן 328 כמובן זקוקות לקוד ואת הקוד בו השתמשתי ניתן למצוא כאן: https://github.com/PlainOldAnders/HAL1284 תחת ArduinoSrc/src. פשוט השתמשתי ב- Arduino IDE לשינוי והעלאת הקוד, אך לפני שניתן יהיה לעשות זאת, יהיה עליך לצרוב מעמיסי אתחול במעגלי ה- IC:

ATMega328:

זה קל, במובן זה שיש הרבה תמיכה בחוץ כיצד לשרוף מטען אתחול ולהעלות קוד ל- IC זה. בדרך כלל אני עוקב אחר המדריך הזה, בעיקר כי אני כל הזמן שוכח את הפרטים.

הקוד עבור 328 (תחת ArduinoSrc/לוח מקשים) הוא פשוט למדי. הוא לגמרי מסתמך על ספריית Adafruit_Keypad-master-. במקרה שמשהו ישתנה לגבי ה- lib, כללתי את הגרסה שבה השתמשתי בדף github שלי תחת ArduinoSrc/lib.

ATmega1284:

זה היה לי קצת קשה כאשר קיבלתי לראשונה את ה- IC. התחלתי לקבל את מטען האתחול מכאן, ועקבתי אחר מדריך ההתקנה. כדי לשרוף את מטען האתחול, פשוט עשיתי את אותו הדבר כמו ב- 328 וקיבלתי עזרה מכאן. עבור שני ה- IC פשוט השתמשתי ב- Arduino Uno הן לשריפת מטען האתחול והן להעלאת הקוד (הסרת ה- IC מ- Arduino Uno בעת ההעלאה).

הקוד (תחת ArduinoSrc/HAL1284Basic) הוא הרבה יותר מדי מסובך בשבילי אבל הצלחתי לשנות כמה חלקים מהקוד:

הוספתי כמה פקודות (אלה המסומנות ב- [A] במדריך ההוראות.pdf), וגם שיניתי פקודות אחרות:

צליל: פקודת הטון רק השתמשה בעבר בפונקציית הטון של ארדואינו, אך בעת שימוש בספריית TVout, הדבר גרם לזמזם לא לפעול כראוי. שיניתי אותו כדי להשתמש בפונקציית הטון של TVout, אך המשמעות היא שסיכת הטון חייבת להיות סיכה 15 (עבור atmega1284)

תקשורת סדרתית: מכיוון שהמקלדת היא DIY, היא משתמשת בתקשורת טורית לקריאת הדמויות. מכיוון שמשתמשים כאן ב- atmega1284, ישנם שני קווי תקשורת טוריים זמינים, וכאשר "sercom" מופעל, הקוד מאפשר גם כתיבה באמצעות היציאה הטורית (ממחשב או כל דבר אחר).

רזולוציה: הצג המשמש לפרויקט זה די מטומטם, ויש צורך ברזולוציה קטנה, אחרת התמונה מהבהבת. אם נעשה שימוש במסך טוב יותר, הייתי מציע לך לשנות את הרזולוציה בפונקציית ההתקנה.

שלב 5: הרכבה

הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה

כשהקוד מועלה וה- PCB והחלקים מוכנים, הגיע הזמן להרכבה. כל החלקים בהם השתמשתי היו דרך חור, כך שההלחמה לא הייתה קשה מדי (בניגוד לחברים הלחמה-SMD-הלחמה שיש). הצג הוצמד לארבעת חורי הקידוח במחשב הלוח בעזרת מחזיק מודפס תלת מימד. אם נעשה שימוש בצג אחר, ניתן להשתמש בארבעת חורי הקידוח לקביעתו.

מחזיק הצג המשמש כאן, מיועד גם להכיל מתג מתג (מחובר למגשר ה"מתג "במחשב הלוח) ושלושת לחצני הבקרה לצג. המחזיק מהודק בברגי M3 מפלסטיק ומרווחים.

עבור תקע החשמל השתמשתי במחבר PCB JST, אם כי שקע חבית חלקלק היה קצת יותר חלק. כדי להפעיל את הלוח, החלפתי בין ספק כוח 12V או שלוש סוללות 18650 בסדרות. קאובוי חלק יותר ממני יכול כנראה לעצב מחזיק סוללות חלקלק ללוח.

שלב 6: באגים ועבודה עתידית

מקשי החצים: מקשי החצים הוכנסו בטעות ואינם משרתים תפקיד רב. זה מקשה על הניווט

קלט/פלט קובץ: קיימות יכולות קלט/פלט של קובץ אך אלה אינן מיושמות. כדי להילחם בכך, תוכנת HAL1284Com מסוגלת להעלות קבצים ללוח. אפשר גם להעלות ל- EEPROM.

PEEK/POKE: PEEK ו- POKE לא נבדקו, ואני לא בטוח מהן הכתובות.

הפסקה: הפסקה (Esc) התעסקה לפעמים עם כל הקוד, כשהיא נמצאת בלולאות אינסופיות.

סיכה 7: סיכה 7 של PWM יכולה להיות קשה כאשר מנסים DWRITE High או AWRITE 255. זה עובד מצוין עם AWRITE 254.

אידיוט: זה יהיה אידיאלי להיות מסוגל גם להעלות באמצעות UART1 אך ההעלאה אפשרית רק באמצעות UART0, כך שההעלאה תיעשה על ידי חילוץ ה- IC הראשי. וויסות המסך והמתח 5 נהיה קצת חם מדי כשהוא פועל לאורך זמן.

מוּמלָץ: