Ich habe zwei MaxBotix I2CXL MaxSonar EZ Ultraschall Sensoren für meinen Roboter gekauft. Ich habe mich wieder bewusst für Sensoren entschieden die über den I2C Bus ausgelesen werden können. Ein Großteil meiner verbauten Elektronik verfügt über den I2C Bus und so fällt es mir einfach eine Vielzahl von Sensoren und Boards anzusteuern. Die Anzahl der verfügbaren GPIO Pins am Raspberry Pi würden nicht ausreichen für die Vielzahl an Sensoren und elektornischen Komponenten.

Das folgende Bild zeigt die beiden Ultraschall Sensoren so wie ich diese ab Werk erhalten habe.

MaxBotix I2CXL MaxSonar EZ

MaxBotix I2CXL MaxSonar EZ

 

Ultraschall Sensor – Verkabelung

Die Verkabelung des Ultraschall Sensors ist recht einfach. Denn der Sensor kann mit einer Versorgungsspannung von 3,0V bis 5,0V betrieben werden. So kann er an einem Raspberry Pi (3,3V) oder auch an einem Arduino (5,0V) angeschlossen werden. Meine Anleitung geht aber davon aus, dass Du einen Raspberry Pi verwendest.

Die folgenden Pins müssen zwischen Raspberry Pi und MaxBotix I2CXL Sensor angeschlossen werden.

Ultraschall Sensor Raspberry Pi
3,3V – 5,0V 3,3V (Pin 6)
SDA SDA (Pin 4)
SCL SCL (Pin 5)
GND GND (Pin7)

Auf dem folgenden Bild siehst Du den Ultraschall Sensor mit einer von mir aufgelöteten Steckerleiste. So kann ich komfortabel die Female-to-Female Jumper Kabel anschließen.

MaxBotix I2CXL MaxSonar EZ pins

MaxBotix I2CXL MaxSonar EZ pins

Als nächstes braucht Ihr vier Female-to-Female jumper Kabel mit denen ihr den Sensor am I2C Bus des Raspberry Pi anschließt. Das folgende Bild veranschaulicht welches Kabel auf welchen Pin an den Sensor gesteckt werden muss.

MaxBotix I2CXL MaxSonar EZ pin ID

MaxBotix I2CXL MaxSonar EZ pin ID

Wenn Ihr die Verkabelung soweit fertig habt, dann geht es jetzt weiter mit Software Teil der Beschreibung.

Ultraschall Sensor – Python Programm

Der MaxBotix I2CXL Sensor ist jetzt am I2C Bus des Raspberry Pi angeschlossen und wir können ihn ansteuern. Wenn Du unsicher bist bzw. mit dem I2C Bus noch nie am Raspberry Pi gearbeitet hast dann lese Dir bitte den folgenden Beitrag durch. Dieser beschreibt wie der I2C Bus am Raspberry Pi aktiviert wird und welche Software Du benötigst.

I2C Anleitung: Raspberry Pi – I2C Bus Anleitung

Der Sensor hat ab Werk die Adresse 0x70. Wenn Du jetzt den folgenden Befehl ausführst solltest Du den Sensor sehen.

Befehl: sudo i2cdetect -y 1

i2c detect

i2c detect

I2C Adresse ändern

Für den Fall, dass Du mehrere Ultraschall Sensoren gleichzeitig verwendest musst du jedem eine eindeutige I2C Adresse zuteilen. Die neue eindeutige Adresse wird dann in einem EEPROM des Sensors gespeichert. Bedenke bitte, dass ein EEPROM nicht beliebig oft beschreiben werden kann. Daher ändere die I2C Adresse des Sensor nicht zu oft. Typischer weise müssen an den Sensor mit der initialen I2C Adresse „0x70“ erste eimal eine bestimmte Bytefolge gesendet werden um das EEPROM ändern zu können. So werden die beiden Bytes „0xAA“ and „0xA5“ gefolgt von der neuen Adresse z. B. „0x24“ an den Sensor gesendet. Diese wrid dann im Register „0xe0“ gespeichert.

Wenn Du die Adresse ändern möchtest, kannst du das mit dem folgenden Programm machen.

Download: MaxBotix change I2C sensor address

Entfernungen auslesen

Wenn Du die Entfernung auslesen möchtest musst Du dem Sensor dies als Befehl mitteilen. Er nimmt dann automatisch die Entfernungsmessung vor. Um die Entfernungsmessung anzustoßen muss der folgende Befehl ausgeführt werden und das Byte „0x51“ für den Start der Entfernungsmessung an den Sensor gesendet werden. Daszu wird der I2C Befehl i2cbus.write() verwendet. Der Sensor benötigt dann etwsa Zeit um die Messung durchführen zu können. Die Messwerte sind nach ca. 0,12 Sekungen verfügbar und können ausgelesen werden aus dem Register „0xe1“. Die gemessene Entfernung kann mit dem I2C Befehl i2cbus.read_word_data() ausgelesen werden. Wie ich es schon von dem SRF08 Ultraschall Sensor kenne, müssen die Emfpangenen Daten wieder gedreht werden. Denn Sie kommen in der falschen Reihenfolge zurück.

Um die Entfernung auslesen zu können kannst du das folgende Test-Programm verwenden.

Download: MaxBotix test program

Beide Programme habe ich auch auf GitHub hochgeladen.

GitHub: https://github.com/custom-build-robots

Komponenten Liste

Ich habe für den Versuchsaufbau einen Raspberry Pi 3 Model B verwendet und zwei der MaxBotix I2CXL MaxSonar EZ Ultraschall Sensoren. Nachfolgend die Produktlinks auf den Amazon Shop über den Ihr die Komponenten kaufen könnt.

Vilros Raspberry Pi 3 Ultimate Starter Kit
Preis: EUR 79,99
1 neu von EUR 79,990 gebraucht
Get Your First Taste Of raspberry Pi with this Ultimate Starter Kit from Vilors.

This Is the Raspberry Pi 3 Model B Ultimate Starter Kit From Vilros
It includes the new Raspberry Pi 3 Model B (Latest Version Released on 02/29/2016)

Raspberry Pi 3 Model B Technical Specifications:
• Broadcom BCM2837 64bit ARMv8 Quad Core Processor powered SingleBoard Computer running at 1.2GHz
• 1GB RAM
• BCM43143 WiFi on board
• Bluetooth Low Energy (BLE) on board
• 40pin extended GPIO
• 4 x USB2 ports
• 4 pole Stereo output and Composite video port
• Full size HDMI
• CSI camera port for connecting the Raspberry Pi camera
• DSI display port for connecting the Raspberry Pi touch screen display
• MicroSD port for loading your operating system and storing data
• Upgraded switched Micro USB power source (now supports up to 2.4 Amps)

Kit Content
Raspberry Pi 3- Model B 1GB
Raspberry Pi Enclosure Case (Clear)
32GB Micro SD Card pre-loaded with NOOB
SD Card Adapter
5-Foot EU Micro USB Power Supply 2500 mA
High Quality HDMI Cable
400-Tie-point breadboard (white)
65 Jumper Wires -- 45 pcs--100mm, 10 pcs--150mm, 5 pcs--200mm, 5 pcs--250mm
GPIO Ribbon Cable with Breakout board
45 X 330 Resistors
45X 10K Resistors
2X Big 12mm Buttons
Heatsink for Raspberry Pi - Set of 2 Heat Sinks
10X Yellow LED
10X Red LED

NOTE: The SD Card may appear to be a smaller capacity when you test it on your computer due to partitions placed on the card once the software is installed.

WEEE-Reg.-Nr. DE 29056374

Ich habe selber diesen Max Botix I2C Ultraschall Sensor bei mir verbaut. Achte bitte darauf, dass du nur 3,3V als Spannung am I2C Bus auf der Seite des Raspberry Pi anlegst.

Ultraschall Entfernungsmesser I2CXL - MaxSonar - EZ0
Preis: EUR 49,19
1 neu von EUR 49,190 gebraucht
Hinweis: die Maxbotix Ultraschall Sensoren sind jetzt voll CE zertifiziert. (Konformitätsbewertung Zertifikat) der I2CXL - MaxSonar-EZ Sensoren jetzt haben ein I2C Bus. Dies ermöglicht einfaches I2C integration und mit nur einer Bus multisensor Bedienung. Die I2CXL & #8209;MaxSonar & #8209;EZ0 bietet die größtmögliche und anderen empfindlichen Leuchtwinkel des I2CXl-MaxSonar-EZ Sensoren sind die Produkte. Dadurch wird die I2CXL - MaxSonar - EZ0 eine ausgezeichnete Wahl wo auch immer weiter Strahl Erkennung, zuverlässige Erkennung von Menschen, zuverlässig und Hinderniserkennung benötigt klein. Der sensor wird in den Größen klein, aber die Akustik mit hoher Ausgangsleistung gemeinsam mit stufenlos regelbarer festgestellt, echte-Zeit Hintergrund Autokalibrierung, echte-Zeit Analyse Signatur Wellenform, mit echten-Zeit Störgeräuschunterdrückung Algorithmus Ergebnisse in nahezu Ableseringen Abstand mit Abdeckung für fast alle Anwender. Er hält auch in den wahren

Um zwischen 3,3V und 5,0V den Pegel auf dem I2C Bus angleichen zu können empfehle ich diesen Level-Shifter.

ADAFRUIT INDUSTRIES 757 LOGIC LEVEL CONVERTER, 4CH, ARM DEVELOPMENT BOARD (1 piece)
Price: $8.76
10 new from $4.610 used
ADAFRUIT INDUSTRIES 757 LOGIC LEVEL CONVERTER, 4CH, ARM DEVELOPMENT BOARD

Diese Femalte to Female Jumper Kabel brauchst Du um alles miteinander anschließen zu können.

2x 40pcs Female to Female 2.54mm 0.1 in Jumper Wires F/F (2x40pcs)
Price: $6.55
8 new from $3.270 used
Description: 40pcs chromatic color female to female dupont lines 100% brand new . High quality and in good working condition .
Durable and reusable Easy to install and use A popular choice for construction or repair Be used for electronic project and Genuine Arduino product.
Specification: Length 20cm 1p-1p pin female to female header Compatible with 2.54mm spacing pin headers
Package includes: 2 x A row of 40pcs female to female dupont line

Zusammenfassung

Die beiden Sensoren funktionieren ohne Probleme am Raspberry Pi. Mit den beiden vorgestellten Python Programmen ist es recht einfach möglich die Entfernung auszulesen und z. B. die I2C Adresse neu zu setzen. Ich finde die kompakte Bauform auch sehr gut und kann die Sensoren so einfach in meinem Roboter integrieren. Das auflöten der Steckerleiste hat auch sehr gut funktioniert.

(Visited 118 times, 1 visits today)