How it works...

The script is based on the XLoBorg library available for the XLoBorg module, except that we use WiringPi2, which is Python 3-friendly, to perform the I2C actions. Just like our motor/servo drivers, we also define it as a class, so that we can drop it into our code and easily replace it with alternative devices if required.

We import wiringpi2, time, and a library called struct (which allows us to quickly unpack a block of data read from the device into separate items).

We create the compass class, which will include the __init__(), initCompass(), and readCompassRaw() functions. The readCompassRaw() function is the equivalent of the standard XLoBorg ReadCompassRaw() function provided by their library.

The __init__() function ...

Get Raspberry Pi 3 Cookbook for Python Programmers - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.