Orodha ya maudhui:

Panya ya Kompyuta ya Cyborg: Hatua 4 (na Picha)
Panya ya Kompyuta ya Cyborg: Hatua 4 (na Picha)

Video: Panya ya Kompyuta ya Cyborg: Hatua 4 (na Picha)

Video: Panya ya Kompyuta ya Cyborg: Hatua 4 (na Picha)
Video: 15 Способов Пронести СЛАДОСТИ в КИНОТЕАТР ! **4 Часть** 2024, Novemba
Anonim
Panya ya Kompyuta ya Cyborg
Panya ya Kompyuta ya Cyborg

Tafiti nyingi zinaonyesha kwamba mkao wa kutumia panya wa kawaida wa kompyuta unaweza kuwa hatari. Panya ni kipande cha kawaida cha vifaa vya kompyuta. Watumiaji wa kompyuta hutumia panya karibu mara tatu zaidi ya kibodi. Kwa kuwa viwango vya mfiduo ni vya juu, kuboresha mkao wa mwisho wa juu wakati wa kutumia panya ya kompyuta ni muhimu sana.

Kwa mradi huu wa kufikiria tutakuwa tukivaa ambayo inaruhusu watu kusonga kupitia skrini ya kompyuta bila ulazima wa teknolojia ya nje. Kwa njia hiyo tunaweza kutumia mikono harakati za asili badala ya kubofya kifaa kwenye uso usawa. Hii pia inaruhusu kutumia skrini ukiwa umesimama, na kufanya maonyesho ya mdomo kuwa ya kupendeza zaidi.

Kwa mfano, mfano huo utatumia faharisi kama fimbo ya kulia, kidole cha kati kwa kubonyeza kushoto, kidole cha kulia kwa kubonyeza kulia na pinki ya kuwasha na kuzima kifaa. Kidole gumba kitatumika kama uso ambapo vitufe hukandamizwa. Yote ambayo itaongezwa kwenye kinga.

Vifaa

  • (x1) Arduino Leonardo
  • (x1) Kitabu cha ulinzi
  • (x1) Moduli ya Joystick
  • (x3) Kitufe
  • (x20 ±) Vipande vya waya
  • (x3) Wapinzani wa 1KΩ
  • (x1) Vifaa vya kushona kinga
  • Silicone ya moto ya Velcro
  • Kitanda cha Soldering
  • Sehemu iliyochapishwa ya 3D

Hatua ya 1: Sanidi vifaa

Sanidi vifaa
Sanidi vifaa

Tumejumuisha mchoro wa Fritzing kwa uelewa mzuri wa muundo. Tunapendekeza kuweka vifaa kwenye protoboard kwanza. Kwa njia hiyo unaweza kuangalia kwamba kila kitu kinafanya kazi kabla ya kuuza.

Hatua ya 2: Pakia Nambari na Jaribio

Mara tu viunganisho vimefanywa unganisha USB A (M) kwa USB ndogo B (M) kutoka kwa kompyuta hadi kwa Arduino Leonardo na upakie mchoro. Jisikie huru kunakili, kurekebisha na kuboresha kwenye mchoro.

ONYO: Unapotumia amri ya Mouse.move (), Arduino inachukua panya yako! Hakikisha una udhibiti kabla ya kutumia amri. Inafanya kazi tu kwa Arduino Leonardo, Micro au Ngenxa

Hapa kuna nambari yetu ya mradi huu:

// Fafanua Pini # ni pamoja na; panya int mouseMiddleButton = 2; // pini ya kuingiza kwa kitufe cha katikati cha panya const int startEmulation = 3; // kubadili kuwasha na kuzima wigo wa kuiga panya int int mouseLeftButton = 4; // pini ya kuingiza kwa kipanya Button const int mouseRightButton = 5; // pini ya kuingiza kwa kifungo cha kulia cha panya const int joystickX = A1; // shabaha ya shaba ya X mhimili wa furaha = A0; // mhimili wa shaba Y

// vigezo vya kusoma fimbo ya furaha:

mshale wa kasi = 10; // kasi ya pato la mwendo wa X au Y mwendo intDelay = 5; // kuchelewa kwa majibu ya panya, katika ms int kizingiti = cursorSpeed / 4; // kupumzika kizingiti int center = cursorSpeed / 2; // thamani ya nafasi ya kupumzika int mouseMiddleState = 0;

panya ya booleanIsActive = uwongo; // iwe kudhibiti panya au la

int lastSwitchState = CHINI; // hali iliyopita ya kubadili

usanidi batili () {

pinMode (kuanza Kusisimua, INPUT); // pini ya kubadili pinMode (mouseMiddleButton, INPUT); // kifungo cha kati cha pini cha piniMode (mouseLeftButton, INPUT); // kifungo cha kushoto cha pini cha piniMode (mouseRightButton, INPUT); // pini ya kifungo cha kulia cha panya

Panya kuanza (); // kuchukua udhibiti wa panya

}

kitanzi batili () {

// soma kubadili: int switchState = digitalRead (startEmulation);

// ikiwa imebadilishwa na iko juu, toa hali ya panya:

ikiwa (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}

// kuokoa hali ya kubadili kwa kitanzi kinachofuata:

lastSwitchState = switchState;

// kusoma na kupima shoka mbili:

int xReading = kusomaAxis (A1); int yReading = kusomaAxis (A0);

// ikiwa hali ya kudhibiti panya inafanya kazi, songa panya:

ikiwa (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, songa gurudumu la panya)}

// KUSHOTO

// soma kitufe cha panya na bonyeza au usibofye: // ikiwa kitufe cha panya kimeshinikizwa: ikiwa (digitalRead (mouseLeftButton) == HIGH) {// ikiwa panya haikushinikizwa, bonyeza hiyo: ikiwa (! Mouse.is Bonyeza (MOUSE_LEFT)) {Panya.press (MOUSE_LEFT); kuchelewesha (100); // kuchelewesha kuwezesha panya moja na bonyeza mara mbili. tafadhali (MOUSE_LEFT); }}

// kingine kitufe cha panya hakijashinikizwa:

vinginevyo {// ikiwa panya imeshinikizwa, itoe: ikiwa (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//HAKI

// soma kitufe cha panya na bonyeza au usibofye: // ikiwa kitufe cha panya kimeshinikizwa: ikiwa (digitalRead (mouseRightButton) == HIGH) {// ikiwa panya haikushinikizwa, bonyeza hiyo: ikiwa (! Mouse.is Bonyeza (MOUSE_RIGHT)) {Panya.press (MOUSE_RIGHT); kuchelewesha (100); // kuchelewesha kuwezesha panya moja na bonyeza mara mbili. tafadhali (MOUSE_RIGHT); }}

// kingine kitufe cha panya hakijashinikizwa:

vinginevyo {// ikiwa panya imeshinikizwa, itoe: ikiwa (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// KATI

// soma kitufe cha panya na bonyeza au usibofye: // ikiwa kitufe cha panya kimeshinikizwa: ikiwa (digitalRead (mouseMiddleButton) == HIGH) {// ikiwa panya haikushinikizwa, bonyeza hiyo: ikiwa (! Mouse.is Bonyeza (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del boton}}

// kingine kitufe cha panya hakijashinikizwa:

vinginevyo {// ikiwa panya imeshinikizwa, itoe: ikiwa (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

kuchelewesha (majibuDelay);

}

/*

inasoma mhimili (0 au 1 kwa x au y) na mizani anuwai ya pembejeo ya analogi hadi anuwai kutoka 0 hadi * /

int readAxis (int thisAxis) {

// soma pembejeo ya analog: int reading = analogRead (thisAxis);

// ramani usomaji kutoka kwa anuwai ya pembejeo ya analojia hadi anuwai ya pato:

kusoma = ramani (kusoma, 0, 1023, 0, kasi ya mshale);

// ikiwa usomaji wa pato uko nje kutoka kwa

// kizingiti cha nafasi ya kupumzika, tumia: int umbali = kusoma - kituo;

ikiwa (abs (umbali) <kizingiti) {umbali = 0; }

// kurudisha umbali wa mhimili huu:

umbali wa kurudi; }

Hatua ya 3: Kuweka mfano

Kuweka Mfano
Kuweka Mfano
Kuweka Mfano
Kuweka Mfano
Kuweka Mfano
Kuweka Mfano

Hatua ya kwanza ni kushona velcro kwenye glavu, lazima ushone vipande vinne vya velcro moja kwa kila kidole. Tulishona sehemu laini ya velcro.

Kila kifungo cha kushinikiza kina waya mbili, moja ambayo huanza kwenye pini husika na inaunganisha kwenye mguu mzuri wa kitufe na mwingine kwenye mguu hasi. Katika mwisho mwingine wa waya hasi tuliunganisha upinzani wa kila kitufe pamoja na waya hasi wa kifurushi hadi waya mmoja wa mwisho, ambao unaunganisha na GND ya bodi ya Arduino. Uunganisho sawa sawa hufanya kazi kwa upande mzuri. (Vifungo 3 na mguu mzuri wa furaha)

Baada ya kuziunganisha warukaji tutaweka vifuniko vikali vya waya, ili waya zikwama katikati. Mwishowe tuliunganisha moduli ya starehe kwa kipande cha 3D kilichochapishwa. Chini unaweza kupata faili ya. STL.

Hatua ya 4: Anza Kutumia Mkono Wako Kama Panya

Image
Image
Anza Kutumia Mkono Wako Kama Panya!
Anza Kutumia Mkono Wako Kama Panya!
Anza Kutumia Mkono Wako Kama Panya!
Anza Kutumia Mkono Wako Kama Panya!

Tupigie kura katika Mashindano ya Teknolojia ya Kusaidia ikiwa ulifurahiya mradi huo.

Ilipendekeza: