Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bir çox araşdırma, adi bir kompüter siçanını istifadə etmənin təhlükəli ola biləcəyini göstərir. Siçan standart bir kompüter avadanlığıdır. Kompüter istifadəçiləri siçandan klaviaturadan təxminən üç dəfə çox istifadə edirlər. Maruz qalma dərəcələri yüksək olduğundan, kompüter siçanını istifadə edərkən yuxarı ətrafın duruşunu yaxşılaşdırmaq çox vacibdir.
Bu mücərrəd layihə üçün, insanların xarici texnologiyaya ehtiyac olmadan kompüter ekranında hərəkət etməsinə imkan verən bir geyim qurğusu hazırlayacağıq. Bu şəkildə üfüqi bir səthdə cihazı tıklamaq əvəzinə əllərimizi təbii hərəkətlərdən istifadə edə bilərik. Bu da şifahi təqdimatları daha xoş hala gətirərək ayaq üstə durarkən ekranlardan istifadə etməyə imkan verir.
Prototipə gəldikdə, indeksdən joystick, sol klik üçün orta barmaq, sağ klik üçün üzük barmağı və cihazı açıb söndürmək üçün pinky istifadə olunacaq. Baş barmaq düymələrin basıldığı səth rolunu oynayacaq. Hamısı bir əlcəyə əlavə olunacaq.
Təchizat
- (x1) Arduino Leonardo
- (x1) Protoboard
- (x1) Joystick modulu
- (x3) Düymə
- (x20 ±) Tel keçidlər
- (x3) 1KΩ rezistorlar
- (x1) Əlcək tikiş dəsti
- Silikon Velcro
- Tel Lehimləmə dəsti
- 3D çap hissəsi
Addım 1: Donanımı Qurun
Dizaynı daha yaxşı başa düşmək üçün Fritzing eskizini daxil etdik. Əvvəlcə komponentləri bir protoboya taxmağı məsləhət görürük. Bu şəkildə, lehimdən əvvəl hər şeyin işlədiyini yoxlaya bilərsiniz.
Addım 2: Kodu yükləyin və test edin
Bağlantılar qurulduqdan sonra, USB A (M) -ni kompüterdən Arduino Leonardoya mikro USB B (M) -ə qoşun və eskizi yükləyin. Eskizdə kopyalamaq, dəyişdirmək və təkmilləşdirməkdən çekinmeyin.
XƏBƏRDARLIQ: Mouse.move () əmrindən istifadə edərkən Arduino siçanınızı ələ keçirir! Komandanı istifadə etməzdən əvvəl nəzarət etdiyinizə əmin olun. Yalnız Arduino Leonardo, Micro və ya Due üçün işləyir
Bu layihə üçün kodumuz budur:
// Pinləri daxil edin#daxil edin; const int mouseMiddleButton = 2; // siçan ortası üçün giriş pimi Button const int startEmulation = 3; // siçan emulyasiyasını açmaq və söndürmək üçün keçid const int mouseLeftButton = 4; // sol siçan üçün giriş pimi Düymə const int mouseRightButton = 5; // siçan üçün giriş pimi sağ Button const int joystickX = A1; // joystick X ox const int joystickY = A0; // joystick Y oxu
// joystick oxumaq üçün parametrlər:
int cursorSpeed = 10; // X və ya Y hərəkətinin çıxış sürəti int cavabDelay = 5; // siçanın cavab gecikməsi, ms int eşik = cursorSpeed / 4; // istirahət həddi int center = cursorSpeed / 2; // istirahət mövqeyi dəyəri int mouseMiddleState = 0;
boolean mouseIsActive = yalan; // siçanı idarə edib -etməmək
int lastSwitchState = LOW; // əvvəlki keçid vəziyyəti
boş quraşdırma () {
pinMode (startEmulation, INPUT); // keçid pin pin modu (mouseMiddleButton, INPUT); // orta siçan düyməsinin pin pin modu (mouseLeftButton, INPUT); // sol siçan düyməsinin pin pin modu (mouseRightButton, INPUT); // siçanın sağ düyməsini sıxın
Mouse.begin (); // siçanı idarə et
}
boşluq döngəsi () {
// keçidi oxuyun: int switchState = digitalRead (startEmulation);
// dəyişirsə və yüksəkdirsə, siçan vəziyyətini dəyişdirin:
if (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}
// keçid vəziyyətini növbəti döngə üçün saxla:
lastSwitchState = switchState;
// iki oxu oxuyun və ölçüsünü dəyişin:
int xReading = oxu oxu (A1); int yReading = oxu oxu (A0);
// siçan idarəetmə vəziyyəti aktivdirsə, siçanı hərəkət etdirin:
if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, siçan təkərini sürüşdür)}
// SOL
// siçan düyməsini oxuyun və vurun və ya vurmayın: // siçan düyməsinə basıldığı təqdirdə: əgər (digitalRead (mouseLeftButton) == YÜKSƏK) {// siçan basılmırsa, basın: əgər (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); gecikmə (100); // Mouse.release (MOUSE_LEFT) tək və cüt klikləmək üçün gecikmə; }}
// başqa halda siçan düyməsinə basılmır:
başqa {// siçan sıxılırsa, buraxın: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}
// SAĞ
// siçan düyməsini oxuyun və vurun və ya vurmayın: // siçan düyməsinə basıldıqda: əgər (digitalRead (mouseRightButton) == YÜKSƏK) {// siçan basılmırsa, basın: əgər (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); gecikmə (100); // gecikmə tək və cüt klikləmək üçün Mouse.release (MOUSE_RIGHT); }}
// başqa halda siçan düyməsinə basılmır:
else {// siçan basıldıysa buraxın: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}
// ORTA
// siçan düyməsini oxuyun və vurun və ya vurmayın: // siçan düyməsinə basıldıqda: əgər (digitalRead (mouseMiddleButton) == YÜKSƏK) {// siçan basılmırsa, basın: əgər (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // aktual el estado del botón}}
// başqa halda siçan düyməsinə basılmır:
başqa {// siçan sıxılırsa, buraxın: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}
gecikmə (cavab gecikməsi);
}
/*
ox oxlayır (x və ya y üçün 0 və ya 1) və analoq giriş aralığını 0 ilə *arasında dəyişir
int readAxis (int thisAxis) {
// analoq girişi oxuyun: int reading = analogRead (thisAxis);
// oxunuşu analoq giriş aralığından çıxış aralığına xəritələyin:
oxu = xəritə (oxu, 0, 1023, 0, cursorSpeed);
// çıxış oxunuşu xaricindədirsə
// istirahət mövqeyi həddi, istifadə edin: int məsafə = oxu - mərkəz;
if (abs (məsafə) <eşik) {məsafə = 0; }
// bu ox üçün məsafəni qaytarın:
dönüş məsafəsi; }
Addım 3: Prototipin quraşdırılması
İlk addım cırtdanı əlcəyə tikməkdir, hər barmağına bir dənə cırtdan zolaq tikmək lazımdır. Velcronun yumşaq hissəsini tikdik.
Hər bir düymənin iki sancağı var, biri müvafiq sancaqlardan başlayır və düymənin müsbət ayağına, digəri isə mənfi ayağa bağlanır. Mənfi telin digər ucunda, hər bir düymənin müqavimətini və joystickin mənfi telini Arduino lövhəsinin GND -nə bağlayan son bir telə lehimləyirik. Eyni paralel əlaqə müsbət tərəf üçün işləyir. (3 düymə və joystick pozitiv ayağı)
Atlayıcıları lehimlədikdən sonra, tellərin arada ilişib qalmaması üçün sərt cırtdan zolaqlar taxacağıq. Nəhayət, joystick modulunu 3D çaplı bir parçaya termo-yapışdırdıq. Aşağıda. STL faylını tapa bilərsiniz.
Addım 4: Əlinizi siçan olaraq istifadə etməyə başlayın
Layihədən zövq alsanız, Assistive Tech Yarışmasında bizə səs verin.