Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:acc-touch-mouse

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2014:acc-touch-mouse [2014/12/26 11:50]
David Bronec
2014:acc-touch-mouse [2014/12/27 10:33] (aktuální)
David Bronec
Řádek 3: Řádek 3:
  
 autor: David Bronec autor: David Bronec
 +----
 ===== Zadání ===== ===== Zadání =====
  
Řádek 16: Řádek 16:
  
 ===== Program ===== ===== Program =====
 +<code cpp>
 #include "​mbed.h"​ #include "​mbed.h"​
-#include "​TSISensor.h"​ +#include "​TSISensor.h" ​             //​knihovna pro Slider 
-#include "​MMA8451Q.h"​ +#include "​MMA8451Q.h" ​              //knihovna pro akcelerometr 
-#include "​USBMouse.h"​+#include "​USBMouse.h" ​              //knihovna pro HID
  
 #define MMA8451_I2C_ADDRESS (0x1d<<​1) #define MMA8451_I2C_ADDRESS (0x1d<<​1)
Řádek 28: Řádek 28:
  
 int main() { int main() {
-    MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);​ +    MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); ​ 
-    DigitalOut gled(LED_GREEN);​+            
 +    DigitalOut gled(LED_GREEN); ​    // nastavení zelené LED diody
    
-    bool nastaveni = false; +    bool nastaveni = false; ​        // proměná pro zanutí a vypnutí Slideru 
-    int tlacitko = 0; +    int tlacitko = 0;               // proměná pro určení tlačítka 1 = Levé tlačítko,  
 +                                    // 2 = Pravé tlačítko, 3 = Prostřední tlačítko
                
-    while(true) { +    while(true) {                   // nekonečná smyčka 
-    int xhod = (acc.getAccX()*10);​ +    int xhod = (acc.getAccX()*10); ​     // načtení hodnot z akcelerometru osy X do proměnné 
-    int yhod = (acc.getAccY()*-10);​+    int yhod = (acc.getAccY()*-10); ​    // načtení hodnot z akcelerometru osy Y do proměnné 
 +    float slajd = tsi.readPercentage(); ​    // načtení hodnot ze Slideru a uložení do proměné
     ​     ​
-          ​else if (tsi.readPercentage() < 0.20) {  +     if (slajd < 0.01) {  
-            if (nastaveni == false) ​+            if (nastaveni == true) {            // pokud je Slider true vykonají se tyto operace 
 +                    if (tlacitko == 1)          //když je proměná talčítko nastavená na 1 vykoná  
 +                                                //se tato operace 
 +                        { 
 +                            mouse.click(MOUSE_LEFT); ​       // volání funkce levého tlačítka 
 +                        } 
 +                    ​else if (tlacitko == 2)     //​když je proměná talčítko nastavená na 2 vykoná  
 +                                                //se tato operace 
 +                        { 
 +                            mouse.click(MOUSE_RIGHT);       // volání funkce pravého tlačítka 
 +                        } 
 +                    else if (tlacitko == 3)     //​když je proměná talčítko nastavená na 3 vykoná  
 +                                               //se tato operace 
 +                        { 
 +                            mouse.click(MOUSE_MIDDLE); ​     // volání funkce prostřeního tlačítka 
 +                        } 
 +                 
 +                nastaveni = false; ​         // vypnutí slideru 
 +                 
 +            } 
 +        } 
 +     
 +          else if (slajd ​< 0.20) {          // pokud je hodnota slideru menší jak 20  
 +            if (nastaveni == false) ​        //pokud je slider roven false 
                 {                    {   
-                    nastaveni = true; +                    nastaveni = true;       //nastaví slideru na true (zapnutí) 
-                    tlacitko = 2;+                    tlacitko = 2;           // uložení dvojky do proměné tlačítka
                 }                 }
-            ​+        ​
-        else if (tsi.readPercentage() ​< 0.5) { +        else if (slajd < 0.5) { 
             if (nastaveni == false) ​             if (nastaveni == false) ​
                 {                 {
Řádek 51: Řádek 77:
                     tlacitko = 3;                     tlacitko = 3;
                 }                 }
-            ​+        ​
         else {         else {
             if (nastaveni == false) ​             if (nastaveni == false) ​
Řádek 58: Řádek 84:
                     tlacitko = 1;                     tlacitko = 1;
                 }                 }
-            ​}+        ​}
       ​       ​
-      if ((xhod == 0) & (yhod == 0 ))+      if ((xhod == 0) & (yhod == 0 ))       // pokud jsou hodnoty os akcelerometru na nule 
             {             {
-                gled = 0;        +                gled = 0;                   // zanutí zelené LED diondy
             }             }
-    else {gled = 1;}+    else {gled = 1;}                        // vynutí zelené LED diody 
 +    ​
     ​     ​
-     if (tsi.readPercentage() < 0.01) {  
-            if (nastaveni == true) { 
-                    if (tlacitko == 1) 
-                        { 
-                            mouse.click(MOUSE_LEFT);​ 
-                        } 
-                    else if (tlacitko == 2) 
-                        { 
-                            mouse.click(MOUSE_RIGHT);​ 
-                        } 
-                    else if (tlacitko == 3)  
-                        { 
-                            mouse.click(MOUSE_MIDDLE);​ 
-                        } 
-                ​ 
-                nastaveni = false; 
-                ​ 
-            } 
-        } 
                                
-      mouse.move(yhod,​ xhod); +      mouse.move(yhod,​ xhod); ​             // Funkce pro pohyb kurzoru ​ 
-      wait(0.001); ​ +      wait(0.001); ​                         // čekání pro plynulejší pohyb kurzoru
     }     }
 } }
 +     
 +</​code>​ 
 +----
 ===== Zavěr ===== ===== Zavěr =====
  
-[[http://​www.google.com|Tento odkaz ukazuje na google]]+Program funguje tak jak je dáno v zadáníPohyb kurzoru je dán naklonem desky a talčítka jsou řešeny kapacitním slidrem. Povedlo se přidat aji jedno tlačítko navíc a to prostřední které plní funkci zmáčknutého kolečka
2014/acc-touch-mouse.1419591023.txt.gz · Poslední úprava: 2014/12/26 11:50 autor: David Bronec