Differences between revisions 31 and 32
Revision 31 as of 2011-10-07 22:27:16
Size: 4265
Editor: CarlNobile
Comment:
Revision 32 as of 2011-10-08 23:16:11
Size: 4501
Editor: CarlNobile
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
|| 6.25 || 68.33333333333333333333 || ||
|| 18.25 || 70.15068493150684931507 || (./) ||
|| 6.25 || 68.3333 || ||
|| 18.25 || 70.1638 || (./) ||
|| 36.25 || 71.6152 || ||
|| 54.25 || 72.3182 || ||
|| 72.25 || 72.5384 || ||
|| 90.25 || 72.6277 || ||
|| 108.25 || 72.9473 || ||
Line 27: Line 32:
|| 15.875 || 26.90288713910761154856 || ||
|| 46.355 || 27.61837989429403516341 || (./) ||
|| 15.875 || 26.9029 || ||
|| 46.355 || 27.6233 || (./) ||
|| 92.075 || 28.1949 || ||
|| 137.795 || 28.4717 || ||
|| 183.515 || 28.5584 || ||
|| 229.235 || 28.5936 || ||
|| 274.955 || 28.7194 || ||

HC-SR04 Ultrasonic Sensor Library

This library can be used to read data from the HC-SR04 ultrasonic sensor.

Features

There are five methods in the Ultrasonic class.

  1. Ultrasonic::CM and Ultrasonic::IN are static const class member objects on the Ultrasonic class.

  2. long timing() This method reads data from the sensor. The return value is used for the microsec argument to the next method described below.

  3. long convert(long microsec, int metric) This method converts the microsecond output of timing() passed to microsec to either centimeters or inches. The metric argument can be either of the two member object discribed in number one above.

  4. void setDivisor(float value, int metric) This method permits the changing of the cm and in divisor so the accuracy of the sensor can be adjusted for distance. The value argument is taken from the table below and the metric argument is either of the two member objects from number one above.

  5. bool sampleCreate(size_t size, ...) This method sets up the buffer(s) needed to derive the standard deviation. The size argument is the number of buffers that you will need. For each buffer, you need to pass an additional argument indicating the length of that buffer. ex. bool success = sampleCreate(3, 10, 15, 8) This indicates that there will be three buffers each with lengths of 10, 15, 8 respectively. You should check the return value for true before proceeding with calling the two following methods.

  6. void sampleClear() This method resets all the buffers to zero.

  7. float unbiasedStdDev(long value, size_t bufNum) This method generates the standard deviation. The value argument can be the return value of either timing() or convert(). The bufNum argument is the ordinal number of the buffer meaning 0 - n. If you have defined three buffers the numbers would be 0, 1, 2.

Divisor Chart

Inches

Distance

Divisor

Default

6.25

68.3333

18.25

70.1638

(./)

36.25

71.6152

54.25

72.3182

72.25

72.5384

90.25

72.6277

108.25

72.9473

Centimeters

Distance

Divisor

Default

15.875

26.9029

46.355

27.6233

(./)

92.075

28.1949

137.795

28.4717

183.515

28.5584

229.235

28.5936

274.955

28.7194

TO-DO Add more values to the chart.

Python Serial Terminal

Also available is a serial terminal specifically written for gathering data for this project. It is a read only terminal and can create CSV files of the incoming data. It could be used with the standard deviation example sketch.

Usage: readSerial.py [h] -d <device> -c <CSV File> -s <Raw data dump file>

Options:
  -h, --help            show this help message and exit
  -d DEVICE, --device=DEVICE
                        Serial device
  -c CSVFILE, --csv=CSVFILE
                        CSV output filename
  -s STREAM, --stream=STREAM
                        Raw stream filename

The script can be found below:

Python Serial Terminal

Download

NOTE: The latest version supports the changing the cm and in divisor. Changing these divisors will make the distance more accurate between different distances from the sensor. The standard divisor 29 for cm and 74 for in seem to work well only at the maximum range of the sensors, 15 feet. Where the current default of 27.61837989429403516341 for cm and 70.15068493150684931507 for in work better at the 46/18 cm/in distances.

SVN Repository This is off site.

Download Tarball

Download ZIP

WARNING: If you downloaded any of these packages before 1:00 PM EST on Sep 17, 2011 there was a very big bug in the UltrasonicDemo.pde. Please download the latest package.

HCSR04Ultrasonic (last edited 2013-03-23 22:17:06 by CarlNobile)