FRDM-KL46Z_Pasos Es un programa que permite controlar un Motor a Pasos en sus diferntes modos de operación y tampbien permite controlar un Motor de CD en Modo ON-OFF Adelante y Atrás
Dependencies: mbed Debounced tsi_sensor TSI TextLCD MMA8451Q USBDevice
main.cpp@0:a935d23434d9, 2018-05-11 (annotated)
- Committer:
- Antulius
- Date:
- Fri May 11 02:33:01 2018 +0000
- Revision:
- 0:a935d23434d9
- Child:
- 1:e7f73d96ddde
FRDM-KL46Z_DHT22 & USBMouse
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Antulius | 0:a935d23434d9 | 1 | /******************************************************************************* |
Antulius | 0:a935d23434d9 | 2 | * |
Antulius | 0:a935d23434d9 | 3 | * ARCHIVO: main.cpp |
Antulius | 0:a935d23434d9 | 4 | * |
Antulius | 0:a935d23434d9 | 5 | * PROYECTO: FRDM-KL46Z_USBMouse |
Antulius | 0:a935d23434d9 | 6 | * |
Antulius | 0:a935d23434d9 | 7 | * PROCESADOR: MKL46Z256VLL4 |
Antulius | 0:a935d23434d9 | 8 | * |
Antulius | 0:a935d23434d9 | 9 | * HERRAMIENTA: Mbed |
Antulius | 0:a935d23434d9 | 10 | * |
Antulius | 0:a935d23434d9 | 11 | * DESCRIPCION: El programa emula a un mouse USB. Utiliza el acelerómetro para |
Antulius | 0:a935d23434d9 | 12 | * detectar el movimieto y el TSI para simular los botones. |
Antulius | 0:a935d23434d9 | 13 | * Una vez descargado el programa cambiar el Cable del SDA al USB |
Antulius | 0:a935d23434d9 | 14 | * |
Antulius | 0:a935d23434d9 | 15 | * AUTOR(ES): Antulio Morgado Valle |
Antulius | 0:a935d23434d9 | 16 | * |
Antulius | 0:a935d23434d9 | 17 | * VERSION: 1.0 |
Antulius | 0:a935d23434d9 | 18 | * |
Antulius | 0:a935d23434d9 | 19 | * REVISION: 0 |
Antulius | 0:a935d23434d9 | 20 | * |
Antulius | 0:a935d23434d9 | 21 | * RELEASE: 0 |
Antulius | 0:a935d23434d9 | 22 | * |
Antulius | 0:a935d23434d9 | 23 | * BUG & FIXES: |
Antulius | 0:a935d23434d9 | 24 | * |
Antulius | 0:a935d23434d9 | 25 | * FECHA: 10/20/2014 |
Antulius | 0:a935d23434d9 | 26 | * |
Antulius | 0:a935d23434d9 | 27 | *******************************************************************************/ |
Antulius | 0:a935d23434d9 | 28 | #include "mbed.h" |
Antulius | 0:a935d23434d9 | 29 | #include "USBMouse.h" //libreria para la Interface USB |
Antulius | 0:a935d23434d9 | 30 | #include "TSISensor.h" //libreria Touch Sensor Interface |
Antulius | 0:a935d23434d9 | 31 | #include "MMA8451Q.h" //libreria para la interface del acelerómetro |
Antulius | 0:a935d23434d9 | 32 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
Antulius | 0:a935d23434d9 | 33 | |
Antulius | 0:a935d23434d9 | 34 | USBMouse mouse; //activa la función del mouse USB |
Antulius | 0:a935d23434d9 | 35 | TSISensor tsi; //activa el Touch Sensor Interface |
Antulius | 0:a935d23434d9 | 36 | /* |
Antulius | 0:a935d23434d9 | 37 | #=============================================================================== |
Antulius | 0:a935d23434d9 | 38 | | |
Antulius | 0:a935d23434d9 | 39 | | P R O G R A M A P R I N C I P A L |
Antulius | 0:a935d23434d9 | 40 | | |
Antulius | 0:a935d23434d9 | 41 | #================================================================================ |
Antulius | 0:a935d23434d9 | 42 | */ |
Antulius | 0:a935d23434d9 | 43 | int main() |
Antulius | 0:a935d23434d9 | 44 | { |
Antulius | 0:a935d23434d9 | 45 | MMA8451Q acc(PTE25,PTE24,MMA8451_I2C_ADDRESS); //DATO,RELOJ,DIRECCION |
Antulius | 0:a935d23434d9 | 46 | int16_t x = 0; |
Antulius | 0:a935d23434d9 | 47 | int16_t y = 0; |
Antulius | 0:a935d23434d9 | 48 | int32_t desplazamiento = 5; |
Antulius | 0:a935d23434d9 | 49 | float boton = 0; |
Antulius | 0:a935d23434d9 | 50 | bool izquierda = 0; |
Antulius | 0:a935d23434d9 | 51 | bool centro = 0; |
Antulius | 0:a935d23434d9 | 52 | bool derecha = 0; |
Antulius | 0:a935d23434d9 | 53 | |
Antulius | 0:a935d23434d9 | 54 | while (1) |
Antulius | 0:a935d23434d9 | 55 | { |
Antulius | 0:a935d23434d9 | 56 | x = acc.getAccX()*(desplazamiento+5); |
Antulius | 0:a935d23434d9 | 57 | y = -acc.getAccY()*desplazamiento; |
Antulius | 0:a935d23434d9 | 58 | mouse.move(y,x); |
Antulius | 0:a935d23434d9 | 59 | boton = tsi.readPercentage(); |
Antulius | 0:a935d23434d9 | 60 | izquierda = 0; |
Antulius | 0:a935d23434d9 | 61 | derecha = 0; |
Antulius | 0:a935d23434d9 | 62 | if (boton > 0.0) |
Antulius | 0:a935d23434d9 | 63 | { |
Antulius | 0:a935d23434d9 | 64 | if (tsi.readPercentage() < 0.3) derecha = 1; // Lee el TSI para buscar el boton derecho |
Antulius | 0:a935d23434d9 | 65 | // if (tsi.readPercentage() >=0.33 <=0.66) centro = 1; // Lee el TSI para buscar el boton central |
Antulius | 0:a935d23434d9 | 66 | if (tsi.readPercentage() > 0.7) izquierda = 1; // Lee el TSI para buscar el boton izquierdo |
Antulius | 0:a935d23434d9 | 67 | } |
Antulius | 0:a935d23434d9 | 68 | if (izquierda) mouse.click(MOUSE_LEFT); // Activa el click del botón izquierdo |
Antulius | 0:a935d23434d9 | 69 | if (derecha) mouse.click(MOUSE_RIGHT); // Activa el click del botón derecho |
Antulius | 0:a935d23434d9 | 70 | wait(0.001); |
Antulius | 0:a935d23434d9 | 71 | } |
Antulius | 0:a935d23434d9 | 72 | } |
Antulius | 0:a935d23434d9 | 73 | |
Antulius | 0:a935d23434d9 | 74 | /* |
Antulius | 0:a935d23434d9 | 75 | +-------------------------------------------------------------------------------- |
Antulius | 0:a935d23434d9 | 76 | | EJERCICIO |
Antulius | 0:a935d23434d9 | 77 | | |
Antulius | 0:a935d23434d9 | 78 | | 1.- Modificar el programa para que acepte tambien las funciones: |
Antulius | 0:a935d23434d9 | 79 | mouse.doubleclick(MOUSE_LEFT); |
Antulius | 0:a935d23434d9 | 80 | | 2.- Agregar al programa la función de scroll utilizando el botón central y el eje z |
Antulius | 0:a935d23434d9 | 81 | | utilizar MOUSE_MIDDLE |
Antulius | 0:a935d23434d9 | 82 | | |
Antulius | 0:a935d23434d9 | 83 | | Sugerencia: Revisar USBMouse.cpp y USBMouse.h |
Antulius | 0:a935d23434d9 | 84 | | |
Antulius | 0:a935d23434d9 | 85 | +-------------------------------------------------------------------------------- |
Antulius | 0:a935d23434d9 | 86 | | |
Antulius | 0:a935d23434d9 | 87 | | T H E A N T U L I U S T E A M |
Antulius | 0:a935d23434d9 | 88 | | Research, Development, Systems Equipment, Support & Spare Parts I n c. |
Antulius | 0:a935d23434d9 | 89 | | (C) Copyright 1989-2014, All rigths Reserved |
Antulius | 0:a935d23434d9 | 90 | | |
Antulius | 0:a935d23434d9 | 91 | | This program is licensed under rules of |
Antulius | 0:a935d23434d9 | 92 | | THE BEANERS TECHNOLOGIES PROYECT |
Antulius | 0:a935d23434d9 | 93 | +------------------------------------------------------------------------------- |
Antulius | 0:a935d23434d9 | 94 | */ |