HOME   SYSTEM OVERVIEW
hx7tr ultrasonic positioning devices are shipped in an active mode. When powered on, the devices will send an ultrasonic pulse every 2 seconds. Any other device in range will report the distance to the emitting unit. If there are many active units, this can become a bit messy, and if there is a conflict (devices emitting similtanously) there is an error in distance. Controlled interaction should be estblished in all cases. The PYTHON access console can be used to display the response from the units. In this example two units are used, one is accessed through a wifi connection, and the other through a USB TTL com connection. Both units are powered up and emitting.
The access program below has established a connection to device R21 found at IP address 192.168.1.5 (see system.txt). R21 and R24 are both on a table with a narrow beam transducer facing the ceiling. Echo from R21 to X21 (own signal) indicates the ceiling is 3846 mm away, and the distance from R24 to the ceiling to R21 is 3640 mm. R24 is closer to the ceiling than R21. 
hx7 python console
Now we can look at, what the TTL USB console is reporting about R24
ultrasonic device to device distance
For interest sake lets change the name of R24 and give it the coordinate nomenclature (0,4,0)
hx7 command panel
coordinate system and ultrasonic distance data
Note that the hash # means acknowledge. The above is all done through the USB connection. Now we go to the IoT or internet of things the world wide web and through the wifi connection we rename device 21 as follows:
hx7 command window
coordinates and distance hx7 output
There is no acknowledge here because the addressing of the unit was generic.

The unit .Me is 3640mm from the coordinate point (0,4,0). and the distance to the ceiling from .me to .me is 3848mm. Devices can be labeled as different coordinate points, and form a mesh from which actual 3d coordinates within some frame of reference can be computed.
Creating the coordinates for each device is not necessarily difficult, and there is no need to pick up the old measuring tape, rather each device can be asked for the distance to the next. For example we can let the device labeled .Me get the distance to (0,4,0) by a direct call using the "ca:(0,4,0)" command

 

The IMU
In the example below the IMU is enabled. Every ultrasonic positioning data comes with the acceleration and the angular velocity of the device on 3 axis. The output from the LSM6DS0 is directed to the access console with no calibration. Device 21 is at rest, and the values are 16 bits with 12bit resolution, hence the lowest 4 bits are meaningless. Provisions are made for the user to directly communicate with the LSM6DS0, where the sampling rate can be controlled and etc. Please view the LSM6DS0 manual for details
hx7 command panel
distance and orientation output data ultrasonic
Please note that unit 21 is at rest, and there is a rotational offset around the Z axis that should be calibrated to zero. See LSM6DS0 for details. The IMU values are collected while the ultrasonic wave is in flight.
  Copyright © 2015 [Hexamite]. All rights reserved. Revised: November 03, 2015 .