Zedomax DIY121 - כיצד להפוך את עצמו "שלך ה PS3 בקר SIXAXIS" הסגנון הבסיסי התקן USB לתכנות!
התקני ה-USB קל למשתמשים להתקין ולהגדיר (כל עוד הכל פועל כראוי). לעתים קרובות, אתה רק מחבר התקן USB וזה עובד מיד. זה נכון במיוחד עבור התקני קלט, כגון עכברים, מקלדות.
התקנים אלה מתאימים מפרט שכבות על גבי פרוטוקול ה-USB: התקן ממשק אנוש. כל סוג כמעט אפשרי של קלט מוגדר; שלם ", מתאר הדו"ח" השפה היא נהגה לספר את המחשב איך לעבד את הקלט. זה לא פשוט מאוד ליישום; עשרות בקשות ספציפיות חייבים להיות מטופלים כראוי. יש צעדים רבים בין חיבור התקן USB ואת היכולת להשתמש בו; כל אלה מתקיימים בתוך כמה אלפיות השנייה וכישלון של צעד בכל אמצעי ההתקן לא יעבוד.
מה אם אתה לא צריך לדאוג כל כך? מה אם אתה יכול להשתמש מיקרו המועדפים שלך, לעשות "משהו" ואת הקלט מופיע במחשב בפורמט הנכון? לא היית צריך לדאוג קוד ה-USB מורכבים, מפרטים HID, או לשבור את קוד ה-USB שלך בעת הוספת פונקציות נוספות שאתה צריך. אתה לא צריך לדאוג הרבה על כתיבת קוד מותאם, או תמיד מפריעים פסיקות של ה-USB.
HID פורטל
זה בדיוק מה שהחלטתי לעשות. לפני כמה שנים, אני פותח התקן USB ו עבר את כל כאבי הראש של מקבל USB HID ולהפעלתו. מאז אני כבר עשיתי את העבודה הקשה, החלטתי להוסיף שיטת קבלת נתונים מיקרו אחר באמצעות נתונים כמו זרם קלט את קוד HID. אני רוצה להשתמש-BASIC Cubloc בקר לתכנות לעבד נתוני הקלט שלי ולשלוח אותה הפורטל HID. יישום הבדיקה שלי יהיה accelerometer מבוססי ג 'ויסטיק HID; פשוט חבר את ההתקן למחשב וזה יעבוד.
זה לא חייב להיות ג 'ויסטיק; זה יכול להיות מקלדת, עכבר, או פקדים רבים אחרים שהוגדרו על ידי תקן HID. אפשר להוסיף לחצנים בקרת עוצמת למכשיר ... אולי יש מעגל להשתיק את המחשב כאשר הטלפון מצלצל? להפוך כל Input Voltage אל ציר ג 'ויסטיק, מתג לתוך כל כפתור? הכול אפשרי!
עדכון: החלטתי לצמצם את החומרה CUBLOC עד CB220, והכל משתלב דגם מטוס. המודל שנבחר כדי להתאים מטוס זמין הגיבורים של המשחק השקט השתמשנו כדי לבדוק את ממשק ג 'ויסטיק.
חומרה הסבר
הפורטל HID מבוסס על פרויקט ישן שלי, מבוסס על מיקרו MC68HC908JB8 ו מתוכנת בשפה הרכבה. מסיבות מסוימות אני לא ממש יכול לשחרר את הקוד כרגע, אבל יש המון פרויקטים USB אחרים שם בחוץ אשר יכול להתאים למטרה זו. ישנה פתוח יישום ה-USB רך מקורות עבור מיקרו ATtiny, למשל.
מיקרו שלי אין מובנית I2C או SPI, אז אני צריך ליישם אחד משלי. אני גם לא צריך להפריע סיכות זמין, כלומר הפתרון שלי צריך להיות מבוסס על הקלפי. כאשר כל של דבר ומיטוב, לא יכולתי לזהות קצוות מהר יותר 16kHz. זה כעשר פעמים לאט יותר פלט משמרת זמינים בקר CUBLOC, כך שלא יכולתי להשתמש בו. אני בסופו של דבר בכתב המשמרת שלי-BASIC את שגרת החיים כדי לקבל את הנתונים הפורטל HID. זה יכול להיות נמנע באמצעות מיקרו כי יש I2C SPI או נבנה כבר, אבל JB8 זה מה שהיה לי על היד.
אני משתמש שלושה אותות כדי תקשורת עם בקר CUBLOC. ראשית, ישנו איתות CLK. הפורטל HID מזהה קצה עולה. בשלב זה, זה קורא את הערך הנוכחי על הקו DATA. זה העביר לתוך לרשום עד בייט התקבלה, ואת המהלכים הקוד בתים הבאה. / RST קו הוא דרך לסנכרן את ההתחלה של כל מנה נתונים במקרה היה כל קלט מזויף; כאשר LOW זה קובע את המנה ואינדקסים קצת לאפס.
הפורטל HID מתוכנת כיום לפעול כפי ויסטיק עם שלושה גרזנים שמונה כפתורים. אני גם בדקה את זה כמו מקלדת. בפיתוח בעתיד, הייתי רוצה להפוך את הפורטל HID גמישה יותר; להניח את בקר חיצוני לבחור את סוג המכשיר וכמה קלט כל נדרשים. זה יהיה גמיש ביותר, אם זה ישירות HID מתארי קיבל דו"ח, אבל זה פותח את האפשרות לעשות טעויות יותר ובסופו של דבר עם לא עובד המכשיר.
Accelerometer היא DE-ACCM3D מן הממד הנדסה. CUBLOC פשוט קורא את מתח ביציאות עדין שלה ממיר לערך בין 127 ו -127.
המשיכו על עמוד הבא

















































