Generic communication interface between the wireless board (mote) and the sensor board. Any kind of sensor board can be connected to the mote using this specification given it provides a SPI peripheral, one input pin with interrupt capability and one digital output. The sensor board must implement a special register set from which all required information can be retrieved. Protocol: http://is.gd/wuQorh Github: http://is.gd/ySj1L9

Dependencies:   mbed-src

Committer:
marcelobarrosalmeida
Date:
Tue Apr 08 16:34:20 2014 +0000
Revision:
1:acdf490d94a7
Adding accel to sensor list

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcelobarrosalmeida 1:acdf490d94a7 1 /* Freescale Semiconductor Inc.
marcelobarrosalmeida 1:acdf490d94a7 2 * (c) Copyright 2004-2005 Freescale Semiconductor, Inc.
marcelobarrosalmeida 1:acdf490d94a7 3 * (c) Copyright 2001-2004 Motorola, Inc.
marcelobarrosalmeida 1:acdf490d94a7 4 *
marcelobarrosalmeida 1:acdf490d94a7 5 * mbed Microcontroller Library
marcelobarrosalmeida 1:acdf490d94a7 6 * (c) Copyright 2009-2012 ARM Limited.
marcelobarrosalmeida 1:acdf490d94a7 7 *
marcelobarrosalmeida 1:acdf490d94a7 8 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
marcelobarrosalmeida 1:acdf490d94a7 9 * and associated documentation files (the "Software"), to deal in the Software without
marcelobarrosalmeida 1:acdf490d94a7 10 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
marcelobarrosalmeida 1:acdf490d94a7 11 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
marcelobarrosalmeida 1:acdf490d94a7 12 * Software is furnished to do so, subject to the following conditions:
marcelobarrosalmeida 1:acdf490d94a7 13 *
marcelobarrosalmeida 1:acdf490d94a7 14 * The above copyright notice and this permission notice shall be included in all copies or
marcelobarrosalmeida 1:acdf490d94a7 15 * substantial portions of the Software.
marcelobarrosalmeida 1:acdf490d94a7 16 *
marcelobarrosalmeida 1:acdf490d94a7 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
marcelobarrosalmeida 1:acdf490d94a7 18 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
marcelobarrosalmeida 1:acdf490d94a7 19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
marcelobarrosalmeida 1:acdf490d94a7 20 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
marcelobarrosalmeida 1:acdf490d94a7 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
marcelobarrosalmeida 1:acdf490d94a7 22 */
marcelobarrosalmeida 1:acdf490d94a7 23
marcelobarrosalmeida 1:acdf490d94a7 24 #ifndef TSISENSOR_H
marcelobarrosalmeida 1:acdf490d94a7 25 #define TSISENSOR_H
marcelobarrosalmeida 1:acdf490d94a7 26
marcelobarrosalmeida 1:acdf490d94a7 27 /**
marcelobarrosalmeida 1:acdf490d94a7 28 * TSISensor example
marcelobarrosalmeida 1:acdf490d94a7 29 *
marcelobarrosalmeida 1:acdf490d94a7 30 * @code
marcelobarrosalmeida 1:acdf490d94a7 31 * #include "mbed.h"
marcelobarrosalmeida 1:acdf490d94a7 32 * #include "TSISensor.h"
marcelobarrosalmeida 1:acdf490d94a7 33 *
marcelobarrosalmeida 1:acdf490d94a7 34 * int main(void) {
marcelobarrosalmeida 1:acdf490d94a7 35 * PwmOut led(LED_GREEN);
marcelobarrosalmeida 1:acdf490d94a7 36 * TSISensor tsi;
marcelobarrosalmeida 1:acdf490d94a7 37 *
marcelobarrosalmeida 1:acdf490d94a7 38 * while (true) {
marcelobarrosalmeida 1:acdf490d94a7 39 * led = 1.0 - tsi.readPercentage();
marcelobarrosalmeida 1:acdf490d94a7 40 * wait(0.1);
marcelobarrosalmeida 1:acdf490d94a7 41 * }
marcelobarrosalmeida 1:acdf490d94a7 42 * }
marcelobarrosalmeida 1:acdf490d94a7 43 * @endcode
marcelobarrosalmeida 1:acdf490d94a7 44 */
marcelobarrosalmeida 1:acdf490d94a7 45 class TSISensor {
marcelobarrosalmeida 1:acdf490d94a7 46 public:
marcelobarrosalmeida 1:acdf490d94a7 47 /**
marcelobarrosalmeida 1:acdf490d94a7 48 * Initialize the TSI Touch Sensor
marcelobarrosalmeida 1:acdf490d94a7 49 */
marcelobarrosalmeida 1:acdf490d94a7 50 TSISensor();
marcelobarrosalmeida 1:acdf490d94a7 51
marcelobarrosalmeida 1:acdf490d94a7 52 /**
marcelobarrosalmeida 1:acdf490d94a7 53 * Read Touch Sensor percentage value
marcelobarrosalmeida 1:acdf490d94a7 54 *
marcelobarrosalmeida 1:acdf490d94a7 55 * @returns percentage value between [0 ... 1]
marcelobarrosalmeida 1:acdf490d94a7 56 */
marcelobarrosalmeida 1:acdf490d94a7 57 float readPercentage();
marcelobarrosalmeida 1:acdf490d94a7 58
marcelobarrosalmeida 1:acdf490d94a7 59 /**
marcelobarrosalmeida 1:acdf490d94a7 60 * Read Touch Sensor distance
marcelobarrosalmeida 1:acdf490d94a7 61 *
marcelobarrosalmeida 1:acdf490d94a7 62 * @returns distance in mm. The value is between [0 ... 40]
marcelobarrosalmeida 1:acdf490d94a7 63 */
marcelobarrosalmeida 1:acdf490d94a7 64 uint8_t readDistance();
marcelobarrosalmeida 1:acdf490d94a7 65 uint16_t readValue(uint8_t);
marcelobarrosalmeida 1:acdf490d94a7 66 void TSISensor_reset(void);
marcelobarrosalmeida 1:acdf490d94a7 67
marcelobarrosalmeida 1:acdf490d94a7 68 private:
marcelobarrosalmeida 1:acdf490d94a7 69 void sliderRead(void);
marcelobarrosalmeida 1:acdf490d94a7 70 void selfCalibration(void);
marcelobarrosalmeida 1:acdf490d94a7 71 };
marcelobarrosalmeida 1:acdf490d94a7 72
marcelobarrosalmeida 1:acdf490d94a7 73 #endif