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:53]
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é
     ​     ​
 +     if (slajd < 0.01) {  
 +            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;       //​nastaví slideru na true (zapnutí) 
 +                    tlacitko = 2;           // uložení dvojky do proměné tlačítka 
 +                } 
 +        } 
 +        else if (slajd < 0.5) {  
 +            if (nastaveni == false)  
 +                { 
 +                    nastaveni = true; 
 +                    tlacitko = 3; 
 +                } 
 +        }  
 +        else { 
 +            if (nastaveni == false)  
 +                { 
 +                    nastaveni = true; 
 +                    tlacitko = 1; 
 +                } 
 +        } 
 +       
 +      if ((xhod == 0) & (yhod == 0 ))       // pokud jsou hodnoty os akcelerometru na nule  
 +            { 
 +                gled = 0;                   // zanutí zelené LED diondy 
 +            } 
 +    else {gled = 1;}                        // vynutí zelené LED diody 
 +     
 +     
 +                
 +      mouse.move(yhod,​ xhod); ​             // Funkce pro pohyb kurzoru  
 +      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.1419591215.txt.gz · Poslední úprava: 2014/12/26 11:53 autor: David Bronec