Outstanding Raspberry Pi Projects - How to use a Raspberry Pi with an ultrasonic sensor to read it's serial data.
For those who love Raspberry Pi Projects, Maxbotix has put together a tutorial that teaches you how to use a Raspberry Pi with a MaxBotix ultrasonic sensor to read its serial data. You may also check out our tutorials on Interfacing a Raspberry Pi with an ultrasonic sensor and how to use USB ultrasonic sensors with a Raspberry Pi.
You will need to install an operating system if this is the first time using your Raspberry Pi. This article was created for the Raspberry Pi 2 using the Raspbian Jessie operating system (downloaded on 2/23/2016). Here’s more information for Installing Raspbian Jessie on Your Raspberry Pi.
This article will also work for the original Raspberry Pi and Raspberry Pi Zero. Depending on the Raspberry Pi model that you own, you may only have pins 1 - 26 rather than the 40 pin output shown in this tutorial. If you only have 26 pins, the layout of these pins is identical to the layout of pins 1 - 26 of the 40 pin layout. This article will be periodically updated as the operating systems, files, and settings are updated and moved. We hope you enjoy this tutorial, after you’re done reading don’t forget to come back for more Raspberry Pi Projects exclusively provided by MaxBotix.
- The status of the serial data pins must be reset to connect an ultrasonic sensor to a Raspberry Pi.
- The required steps may vary depending on the revisions of your operating system.
- The Raspberry Pi is a convenient and affordable way to read ultrasonic sensor range data. For more information about the Raspberry Pi read the following article: Raspberry Pi - The Perfect Home Server.
TIP For the safety of the electronics on the Raspberry Pi and MaxBotix ultrasonic sensors, please use an ESD strap when working around components. Static discharge could damage components of the Raspberry Pi as well as the ultrasonic sensors.
Directly Compatible Ultrasonic Sensors
Ultrasonic Sensors that Require an Inverter
|The ultrasonic Sensors listed below provide TTL serial data and directly interface with the Raspberry Pi.||The ultrasonic Sensors listed below require an inverter to operate with the Raspberry Pi.|
Using Raspberry Pi with Ultrasonic Sensors
Step One: Disable Bootup Information on TX/RX Pins
The serial pins are set to send bootup data to any attached devices, but we want to allow them to receive asynchronous serial data. To allow this we must disable the bootup data. This step removes the code for the bootup data to be sent on these pins. Open the file /boot/cmdline.txt by using the following command:
sudo nano /boot/cmdline.txtRemove:
console=ttyAMA0,115200 & kgdboc=ttyAMA0,115200(The file may be blank or kgdboc=ttyAMA0,115200 may not be present on all models. Only remove the matching text that you can find.)
Save and close the file by simultaneously pressing Ctrl and X to exit the screen and then pressing Y to save it.
Step Two: Disable Serial Port Login
Depending on the version of your operating system, the TX and RX pins may be set up to allow a serial port login. This prevents you from using the serial ports in any programs. This step comments out the code that allows serial port login.
Open the file /etc/inittab by using the following command:
sudo nano /etc/inittabFind:
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100Add a # symbol to the second line as follows.
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100(Depending on the version of your Raspbian Jessie operating system, this file may be blank. No changes need to be made if the file is blank.) Save and close the file by simultaneously pressing Ctrl and X to exit the screen and then pressing Y to save it.
Optional Step: Download a Python Script
This is optional, but you may wish to write or download a Python Script to log and store the data you collect with your sensor.
Here is sample python code provided by one of our users to automate the reading of distance values.
Supplying Power to the Ultrasonic Sensor
When using an XL-MaxSonar or WR sensor with a Raspberry Pi, it is highly recommended to use an external power supply. The Raspberry Pi is not intended to supply a high enough current draw to power these Ultrasonic Sensors.
Sensors from the LV-MaxSonar, LV-ProxSonar, HRLV-MaxSonar, and ParkSonar lines can be directly powered by the Raspberry Pi.
TIP You may want to place a capacitor between the power and ground lines immediately before the sensor's pinout. During the ultrasonic sensor transmit, the sensor draws a higher current for a fraction of a second. The higher current draw may cause the Raspberry Pi's microcontroller to begin to shut down. To prevent any issue with long term use, we recommend that you use a capacitor with at least a one microfarad rating to ease the current draw from the Raspberry Pi.
Connect the female end of a jumper to pin 10 of the Raspberry Pi GPIO. This is the RX pin for serial data.
Connect a Mini-Grabber or solder a wire into pin 5 of the sensor, and connect this to the jumper.
Connect your sensor to an appropriate power supply.
Installing Terminal Software
The recommended software for accessing the range data output is Minicom. Please use the following steps to install Minicom.
sudo apt‑get install minicomThis will install the Minicom software that is used for reading the serial port.
Accessing Ultrasonic Sensor Range Data Output
Minicom is the recommended terminal software for Raspbian Jessie operating system. Please use the steps below to access Minicom and read the range data.
minicom -b 9600 -o -D /dev/ttyAMA0This clears the LXTerminal window and you will see a window that looks similar to the image below.
The number following the ASCII character is the range reading that is output by the Ultrasonic Sensor. If the readout says R0764, like the image above, the range to the target is 764mm. As the target gets further away from the Ultrasonic Sensor, the reported range will increase. If no target is detectable, the target will report maximum range.
Final Notes & Outcome
Now that the Raspberry Pi is configured to not look at the RX and TX pins, devices such as the HRLV‑MaxSonar‑EZ1 MB1013 can be connected directly to the Raspberry Pi before it is powered up. If a sensor or component was connected to the Raspberry Pi before this configuration took place, the Raspberry Pi may not have booted properly.
Using an ultrasonic sensor with a Raspberry Pi allows for inexpensive monitoring of tank levels, height measurement, as well as countless other applications that require distance measurement. If you have any applications or code that can be added to this article, or if you would like to share pictures of your setup with us so we can share with others please email email@example.com.
NOTE: This article was created for the Raspberry Pi 2 using the Raspbian Jessie operating system (downloaded on 2/23/2016).
This article was not written for Raspberry Pi 3. Click here to read the Raspberry Pi 3 article.