ZHAW specific RangeFinder class for ultra sonic range sensor (added offset in class to measure relative from top of board)

Dependencies:   Pulse

Dependents:   Grove-UltrasonicRanger_Example PM2_Libary PM2_Libary PM2_Libary

Committer:
pmic
Date:
Fri Jun 21 08:57:37 2019 +0000
Revision:
2:89d7dd44ecfd
Parent:
0:05c9036328ee
Child:
3:cbb20cd7905d
Child:
4:fe63b514d4ef
extended RangeFinder class with offset, rewritten main file for static and dynamical measurements, added comments and notes on class and sensor analysis

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NickRyder 0:05c9036328ee 1 /* Copyright (c) 2012 Nick Ryder, University of Oxford
NickRyder 0:05c9036328ee 2 * nick.ryder@physics.ox.ac.uk
NickRyder 0:05c9036328ee 3 *
NickRyder 0:05c9036328ee 4 * MIT License
NickRyder 0:05c9036328ee 5 *
NickRyder 0:05c9036328ee 6 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
NickRyder 0:05c9036328ee 7 * and associated documentation files (the "Software"), to deal in the Software without restriction,
NickRyder 0:05c9036328ee 8 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
NickRyder 0:05c9036328ee 9 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
NickRyder 0:05c9036328ee 10 * furnished to do so, subject to the following conditions:
NickRyder 0:05c9036328ee 11 *
NickRyder 0:05c9036328ee 12 * The above copyright notice and this permission notice shall be included in all copies or
NickRyder 0:05c9036328ee 13 * substantial portions of the Software.
NickRyder 0:05c9036328ee 14 *
NickRyder 0:05c9036328ee 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
NickRyder 0:05c9036328ee 16 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NickRyder 0:05c9036328ee 17 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
NickRyder 0:05c9036328ee 18 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
NickRyder 0:05c9036328ee 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
NickRyder 0:05c9036328ee 20 */
NickRyder 0:05c9036328ee 21
NickRyder 0:05c9036328ee 22 #ifndef MBED_RANGEFINDER_H
NickRyder 0:05c9036328ee 23 #define MBED_RANGEFINDER_H
NickRyder 0:05c9036328ee 24
NickRyder 0:05c9036328ee 25 #include "Pulse.h"
NickRyder 0:05c9036328ee 26
NickRyder 0:05c9036328ee 27 /** Range Finder class
NickRyder 0:05c9036328ee 28 */
NickRyder 0:05c9036328ee 29
NickRyder 0:05c9036328ee 30 class RangeFinder {
NickRyder 0:05c9036328ee 31 public:
NickRyder 0:05c9036328ee 32 /** Create a RangeFinder object
NickRyder 0:05c9036328ee 33 * @param pin Digital I/O pin the range finder is connected to.
NickRyder 0:05c9036328ee 34 * @param pulsetime Time of pulse to send to the rangefinder to trigger a measurement, in microseconds.
pmic 2:89d7dd44ecfd 35 * @param scale Scaling of the range finder's output pulse from microseconds to meters.
pmic 2:89d7dd44ecfd 36 * @param offset Offset of the range finder's output pulse to adjust absolut reference.
NickRyder 0:05c9036328ee 37 * @param timeout Time to wait for a pulse from the range finder before giving up.
pmic 2:89d7dd44ecfd 38 * y = x/scale + offset
NickRyder 0:05c9036328ee 39 */
pmic 2:89d7dd44ecfd 40 RangeFinder(PinName pin, int pulsetime, float scale, float offset, int time);
NickRyder 0:05c9036328ee 41 ~RangeFinder();
NickRyder 0:05c9036328ee 42 /** Return the distance to the nearest object, or -1.0 if reading the pulse timed out.
NickRyder 0:05c9036328ee 43 */
NickRyder 0:05c9036328ee 44 float read_m();
NickRyder 0:05c9036328ee 45 private:
NickRyder 0:05c9036328ee 46 PulseInOut pio;
pmic 2:89d7dd44ecfd 47 float scale, offset;
NickRyder 0:05c9036328ee 48 int pulsetime, timeout;
NickRyder 0:05c9036328ee 49 };
NickRyder 0:05c9036328ee 50
NickRyder 0:05c9036328ee 51 #endif