Sadržaj:
- Supplies
- Korak 1: Postavite hardver
- Korak 2: Otpremite kôd i testirajte
- Korak 3: Montiranje prototipa
- Korak 4: Počnite koristiti ruku kao miš
Video: Računalni miš Cyborg: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Mnoge studije ukazuju na to da položaj upotrebe konvencionalnog računarskog miša može biti opasan. Miš je standardni dio računarske opreme. Korisnici računara koriste miš gotovo tri puta više od tastature. Kako su stope izloženosti velike, poboljšanje držanja gornjih ekstremiteta tijekom korištenja računalnog miša vrlo je važno.
Za ovaj apstraktni projekt napravit ćemo nosivi uređaj koji omogućava ljudima da se kreću kroz ekran računara bez potrebe za vanjskom tehnologijom. Na taj način bismo mogli koristiti ruke prirodnim pokretima umjesto klikanja uređaja na vodoravnoj površini. Ovo takođe omogućava korišćenje ekrana dok stojite, čineći usmene prezentacije prijatnijima.
Što se tiče prototipa, indeks će se koristiti kao joystick, srednji prst za lijevi klik, prstenjak za desni klik i pinky za uključivanje i isključivanje uređaja. Palac će djelovati kao površina na kojoj se pritisnu tipke. Sve će se to dodati u rukavicu.
Supplies
- (x1) Arduino Leonardo
- (x1) Protoboard
- (x1) Modul džojstika
- (x3) Taster
- (x20 ±) Žičani kratkospojnici
- (x3) Otpornici od 1KΩ
- (x1) Komplet za šivanje rukavica
- Čičak Vrući silikon
- Komplet za lemljenje žice
- 3D štampani deo
Korak 1: Postavite hardver
Uključili smo Fritzing skicu za bolje razumijevanje dizajna. Preporučujemo da komponente prvo montirate na protoboard. Na taj način možete provjeriti radi li sve prije lemljenja.
Korak 2: Otpremite kôd i testirajte
Nakon povezivanja spojite USB A (M) na mikro USB B (M) s računala na Arduino Leonardo i prenesite skicu. Slobodno kopirajte, izmijenite i poboljšajte skicu.
UPOZORENJE: Kada koristite naredbu Mouse.move (), Arduino preuzima vaš miš! Prije upotrebe naredbe provjerite imate li kontrolu. Radi samo za Arduino Leonardo, Micro ili Due
Evo našeg koda za ovaj projekt:
// Definiranje pinova#include; const int mouseMiddleButton = 2; // ulazni pin za sredinu miša Button const int startEmulation = 3; // prebacivanje za uključivanje i isključivanje emulacije miša const int mouseLeftButton = 4; // ulazni pin za miša lijevo Button const int mouseRightButton = 5; // ulazni pin za miša desno Button const int joystickX = A1; // joystick X os const int joystickY = A0; // joystick Y os
// parametri za čitanje upravljačke palice:
int cursorSpeed = 10; // izlazna brzina kretanja X ili Y int responseDelay = 5; // kašnjenje odgovora miša, u ms int prag = cursorSpeed / 4; // prag mirovanja int center = cursorSpeed / 2; // vrijednost položaja u mirovanju int mouseMiddleState = 0;
boolean mouseIsActive = false; // da li da kontrolišemo miša ili ne
int lastSwitchState = LOW; // prethodno stanje prekidača
void setup () {
pinMode (startEmulation, INPUT); // prekidač pin pinMode (mouseMiddleButton, INPUT); // srednja tipka miša pin pinMode (mouseLeftButton, INPUT); // lijeva tipka miša pin pinMode (mouseRightButton, INPUT); // pin desne tipke miša
Mouse.begin (); // preuzimamo kontrolu nad mišem
}
void loop () {{100} {101}
// čita prekidač: int switchState = digitalRead (startEmulation);
// ako je promijenjen i visok, promijenite stanje miša:
if (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}
// spremanje stanja prekidača za sljedeću petlju:
lastSwitchState = switchState;
// očitavanje i mjerenje dviju osi:
int xReading = readAxis (A1); int yReading = readAxis (A0);
// ako je stanje kontrole miša aktivno, pomaknite miš:
if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, pomičite kotačić miša)}
// LIJEVO
// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseLeftButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); kašnjenje (100); // odgoda za omogućavanje jednog i dvostrukog klika na Mouse.release (MOUSE_LEFT); }}
// inače dugme miša nije pritisnuto:
else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}
// DESNO
// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseRightButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); kašnjenje (100); // odgoda za omogućavanje jednog i dvostrukog klika na Mouse.release (MOUSE_RIGHT); }}
// inače dugme miša nije pritisnuto:
else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}
// SREDNJI
// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseMiddleButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // aktualiziranje el estado del botón}}
// inače dugme miša nije pritisnuto:
else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}
kašnjenje (responseDelay);
}
/*
čita os (0 ili 1 za x ili y) i skalira raspon analognog ulaza u raspon od 0 do */
int readAxis (int thisAxis) {{100} {101}
// čita analogni ulaz: int reading = analogRead (thisAxis);
// preslikavanje očitanja iz raspona analognog ulaza u izlazni raspon:
čitanje = karta (čitanje, 0, 1023, 0, cursorSpeed);
// ako je očitavanje izlaza izvan
// prag položaja mirovanja, upotrijebite ga: int distance = očitanje - centar;
if (abs (udaljenost) <prag) {distance = 0; }
// vraća udaljenost za ovu os:
povratna udaljenost; }
Korak 3: Montiranje prototipa
Prvi korak je šivanje čičak trake na rukavicu, morate prišiti četiri trake čičak po jednu na svaki prst. Sašili smo mekani dio čička.
Svako dugme ima dvije žice, jedna koja počinje na odgovarajućim pinovima i povezuje se s pozitivnom nogom dugmeta, a druga na negativnoj. Na drugom kraju negativne žice lemimo otpore svakog dugmeta plus negativnu žicu džojstika na posljednju žicu, koja se spaja na GND Arduino ploče. Ista paralelna veza radi i s pozitivne strane. (3 dugmeta i pozitivna noga džojstika)
Nakon lemljenja kratkospojnika stavit ćemo tvrde čičak trake, tako da se žice zaglave između njih. Na kraju smo termo-lijepili modul joystick-a na 3D štampani komad. Ispod možete pronaći. STL datoteku.
Korak 4: Počnite koristiti ruku kao miš
Glasajte za nas na takmičenju Assistive Tech Contest ako ste uživali u projektu.
Preporučuje se:
Zapisnik podataka - Računalni modul za bilježenje: 5 koraka
Zapisnik podataka - Računalni modul za bilježenje: Ethernet zapisnik podataka za prikupljanje podataka zasnovanih na HTTP -u sa senzorskih mostova koji pretvaraju I2C interfejs senzor u Ethernet senzor
Računalni miš sa pametnim rukavicama: 4 koraka (sa slikama)
Računalni miš sa pametnim rukavicama: Ovo je " Pametna rukavica " računarski miš koji se može koristiti sa bilo kojim PC, Mac ili Linux računarom. Napravljen je pomoću USB host adaptera za više protokola Binho Nova, koji vam omogućava da povežete senzore i druge komponente sa računarom, a zatim kontrolišete
Sipeed MaiX Bit OpenMV Demos - Računalni vid: 3 koraka
Sipeed MaiX Bit OpenMV Demos - Computer Vision: Ovo je drugi članak u nizu o Sipeed AI na platformi Edge mikrokontrolera. Ovaj put ću pisati o MaiX Bit -u (veza do Seeed Studio Shop -a), manjoj razvojnoj ploči spremnoj za izradu matične ploče. Njegove specifikacije su vrlo slične
Kako koristiti Wiimote kao računalni miš koristeći svijeće kao senzor !!: 3 koraka
Kako koristiti Wiimote kao računalni miš koristeći svijeće kao senzor !!: Ovaj vodič će vam pokazati kako povezati Wii daljinski upravljač (Wiimote) sa računarom i koristiti ga kao miš
Cyborg Zombie Evolution: 9 koraka (sa slikama)
Cyborg Zombie Evolution: Poznato je od doba pare do doba steampunka … da li je cool, jezivo, slatko ili sve tri u isto vrijeme, za oživljavanje stvorenja potrebna je električna energija. U slučaju ovog kiborga zombija kao jedne galvanske ćelije, poznatog kao & q