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

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?

UserRevisionLine numberNew 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 */