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. |