Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
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. |