תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
מחקרים רבים מצביעים על כך שהיציבה של שימוש בעכבר מחשב קונבנציונאלי עלולה להיות מסוכנת. העכבר הוא ציוד מחשב סטנדרטי. משתמשי מחשב משתמשים בעכבר כמעט פי שלושה מהמקלדת. מאחר ושיעורי החשיפה גבוהים, שיפור היציבה בגפיים העליונות בעת שימוש בעכבר מחשב חשוב מאוד.
לפרויקט מופשט זה נכין לביש המאפשר לאנשים לנוע דרך מסך מחשב ללא צורך בטכנולוגיה חיצונית. כך נוכל להשתמש בידיים בתנועות טבעיות במקום ללחוץ על מכשיר על משטח אופקי. זה מאפשר גם שימוש במסכים בעמידה, מה שהופך מצגות בעל פה לנעימות יותר.
באשר לאב טיפוס השימוש במדד כג'ויסטיק, האצבע האמצעית ללחיצה שמאלית, אצבע לחיצה ימנית והוורוד להפעלה וכיבוי של המכשיר. האגודל ישמש כמשטח בו נלחצים הלחצנים. כל אלה יתווספו לכפפה.
אספקה
- (x1) ארדואינו לאונרדו
- (x1) פרוטובארד
- (x1) מודול ג'ויסטיק
- (x3) כפתור לחיצה
- (x20 ±) מגשרים חוטים
- (x3) נגדים של 1KΩ
- (x1) ערכת תפירה לכפפות
- וולקרו סיליקון חם
- ערכת הלחמה חוטים
- חלק מודפס בתלת מימד
שלב 1: הגדר את החומרה
כללנו סקיצה של Fritzing להבנה טובה יותר של העיצוב. אנו ממליצים קודם כל להתקין את הרכיבים על לוח לוח. כך תוכלו לבדוק שהכל עובד לפני הלחמה.
שלב 2: העלה את הקוד ובדוק
לאחר ביצוע החיבורים חבר את ה- USB A (M) למיקרו USB B (M) מהמחשב ל- Arduino Leonardo והעלה את הסקיצה. אל תהסס להעתיק, לשנות ולשפר את המערכון.
אזהרה: כאשר אתה משתמש בפקודה Mouse.move (), ה- Arduino משתלט על העכבר שלך! ודא שיש לך שליטה לפני שתשתמש בפקודה. זה עובד רק עבור Arduino Leonardo, Micro או Due
להלן הקוד שלנו לפרויקט זה:
// הגדר סיכות#כוללות; const int mouseMiddleButton = 2; // סיכת קלט לחצן האמצעי של העכבר const int startEmulation = 3; // לעבור להפעלה וכיבוי של אמולציית עכברים const int mouseLeftButton = 4; // סיכת קלט לעכבר השמאלי לחצן const int mouseRightButton = 5; // סיכת קלט העכבר הימני לחצן const int joystickX = A1; // ג'ויסטיק ציר X const int joystickY = A0; // ציר Y ג'ויסטיק
// פרמטרים לקריאת הג'ויסטיק:
int cursorSpeed = 10; // מהירות פלט של X או Y תנועת int responseDelay = 5; // עיכוב תגובה של העכבר, בסף ms int = cursorSpeed / 4; // סף מנוחה int center = cursorSpeed / 2; // ערך מיקום מנוחה int mouseMiddleState = 0;
mouseIsActive בוליאני = false; // האם לשלוט בעכבר או לא
int lastSwitchState = LOW; // מצב מעבר קודם
הגדרת בטל () {
pinMode (startEmulation, INPUT); // סיכת המתג pinMode (mouseMiddleButton, INPUT); // סיכה של לחצן העכבר האמצעי pinMode (mouseLeftButton, INPUT); // סיכה של לחצן העכבר השמאלי pinMode (mouseRightButton, INPUT); // סיכה של לחצן העכבר הימני
Mouse.begin (); // להשתלט על העכבר
}
לולאת חלל () {
// קרא את המתג: int switchState = digitalRead (startEmulation);
// אם הוא השתנה והוא גבוה, החלף את מצב העכבר:
if (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}
// שמור את מצב המתג ללולאה הבאה:
lastSwitchState = switchState;
// לקרוא ולהגדיל את שני הצירים:
int xReading = readAxis (A1); int yReading = readAxis (A0);
// אם מצב השליטה בעכבר פעיל, הזז את העכבר:
אם (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, גלגל עכבר גלילה)}
//שמאלה
// קרא את לחצן העכבר ולחץ או לא לחץ: // אם לוחצים על לחצן העכבר: if (digitalRead (mouseLeftButton) == HIGH) {// אם העכבר לא נלחץ, לחץ עליו: אם (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); עיכוב (100); // עיכוב להפעלת לחיצה אחת וכפולה על Mouse.release (MOUSE_LEFT); }}
// אחרת לא נלחץ על לחצן העכבר:
אחרת {// אם לוחצים על העכבר, שחררו אותו: אם (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}
//ימין
// קרא את לחצן העכבר ולחץ או לא לחץ: // אם לוחצים על לחצן העכבר: if (digitalRead (mouseRightButton) == HIGH) {// אם העכבר לא נלחץ, לחץ עליו: אם (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); עיכוב (100); // עיכוב להפעלת לחיצה אחת וכפולה על Mouse.release (MOUSE_RIGHT); }}
// אחרת לא נלחץ על לחצן העכבר:
אחרת {// אם לוחצים על העכבר, שחרר אותו: אם (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}
//אֶמצַע
// קרא את לחצן העכבר ולחץ או לא לחץ: // אם לוחצים על לחצן העכבר: if (digitalRead (mouseMiddleButton) == HIGH) {// אם העכבר לא נלחץ, לחץ עליו: אם (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}
// אחרת לא נלחץ על לחצן העכבר:
אחרת {// אם לוחצים על העכבר, שחררו אותו: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}
עיכוב (responseDelay);
}
/*
קורא ציר (0 או 1 עבור x או y) ומגדיל את טווח הקלט האנלוגי לטווח שבין 0 ל */
int readAxis (int thisAxis) {
// קרא את הקלט האנלוגי: int reading = analogRead (thisAxis);
// מפה את הקריאה מטווח הכניסה האנלוגי לטווח הפלט:
קריאה = מפה (קריאה, 0, 1023, 0, סמן מהירות);
// אם קריאת הפלט נמצאת מחוץ ל-
// סף תנוחת מנוחה, השתמש בו: int distance = קריאה - מרכז;
אם (abs (מרחק) <סף) {distance = 0; }
// החזר את המרחק לציר זה:
מרחק החזרה; }
שלב 3: הרכבת אב הטיפוס
השלב הראשון הוא תפירת הוולקרו לכפפה, עליכם לתפור ארבע רצועות סקוטש אחת לכל אצבע. תפרנו את החלק הרך של הוולקרו.
לכל כפתור יש שני חוטים, אחד שמתחיל בסיכות המתאימות ומתחבר לרגל החיובית של הכפתור ושני ברגל השלילית. בקצה השני של החוט השלילי אנו מלחימים את ההתנגדות של כל כפתור בתוספת החוט השלילי של הג'ויסטיק לחוט אחרון, המתחבר ל- GND של לוח הארדואינו. אותו חיבור מקביל עובד על הצד החיובי. (3 כפתורים ורגל חיובית לג'ויסטיק)
לאחר הלחמת המגשרים נניח את רצועות הוולקרו הקשות, כך שהחוטים יתקעו בין לבין. לבסוף הדבקנו תרמו את מודול הג'ויסטיק לחתיכה מודפסת תלת מימד. להלן תוכל למצוא את קובץ ה-. STL.
שלב 4: התחל להשתמש ביד שלך כעכבר
הצביעו לנו בתחרות הטכנולוגיה המסייעת אם נהניתם מהפרויקט.