make: allows to build in source tree by filtering subdirs
[contrib/upm.git] / README.md
1 UPM - Sensor/Actuator repository for Mraa
2 ==============
3
4 UPM is a high level repository for sensors that use mraa. Each sensor links to
5 libmraa and are not meant to be interlinked although some groups of sensors may
6 be. Each sensor contains a header which allows to interface with it. Typically
7 a sensor is represented as a class and instanciated.
8
9 The constructor is expected to initialise the sensor and paramters may be used
10 to provide identification/pin location on the board.
11
12 Typically an update() function will be called in order to get new data from the
13 sensor in order to reduce load when doing multiple reads to sensor data.
14
15 ### Example
16
17 A sensor/acturo is expected to work as such (here is the servo ES08A api):
18 @snippet es08a.cxx Interesting
19
20 However implementation and API design is compeltely up to the developer, some
21 enumerable sensors for example may provide much clever instanciation. Displays
22 may also create more complex structures in order to interface with them.
23
24 ### Supported Sensors
25
26 Temperature Sensors:
27   * upm::MAX31723
28   * upm::MAX31855
29   * upm::TH02
30   * upm::GroveTemp
31
32 Compass/Gyro/Magnometer Sensors:
33   * upm::Hmc5883l
34   * upm::MPU9150
35
36 Atmospheric Pressure Sensors:
37   * upm::GY65
38
39 Light/Proximity Sensors:
40   * upm::MAXDS3231M
41   * upm::MAX44000
42   * upm::HCSR04
43   * upm::GroveLight
44
45 Gas Sensors:
46   * upm::MQ2
47   * upm::MQ3
48   * upm::MQ5
49   * upm::MQ9
50
51 Displays:
52   * upm::Jhd1313m1
53   * upm::Lcm1602
54   * upm::ST7735
55   * upm::SSD1308
56   * upm::SSD1327
57
58 LED controllers/segment displays:
59   * upm::TM1637
60   * upm::MY9221
61
62 RFID:
63   * upm::SM130
64
65 Wireless Communication:
66   * upm::NRF24l01
67
68 Servo/motors:
69   * upm::ES08A
70   * upm::StepMotor
71
72 Digital potentiometer
73   * upm::MAX5487
74
75 ### Building UPM
76
77 See @ref building
78
79 ### Making your own UPM module
80
81 @ref porting has more information on making new UPM modules
82