Étape 3: Code Python pour la mesure d’accélération :
avantage de HE d’utiliser pi framboise est, c’est vous offre la flexibilité du langage de programmation dans lequel vous souhaitez programmer le Conseil afin de l’interface du capteur avec elle. Tirer parti de cet avantage de cette carte, nous démontrons ici sa programmation en python. Python est l’un des langages de programmation plus simple avec une syntaxe plus simple. Le code python pour H3LIS331DL peut être téléchargé de notre communauté de github c’est la Communauté de contrôle tout.
Ainsi que pour faciliter la tâche des utilisateurs, nous sommes expliquant le code ici aussi :
La première étape de codage vous devez télécharger la bibliothèque SMBus dans le cas de python, car cette bibliothèque prend en charge les fonctions utilisées dans le code. Donc, pour télécharger la bibliothèque, vous pouvez visiter le lien suivant :
https://Pypi.Python.org/Pypi/SMBus-cffi/0.5.1
Vous pouvez également copier le code du travail d’ici :
import smbusimport time# Get I2C busbus = smbus.SMBus(1)# H3LIS331DL address, 0x18(24)# Select control register 1, 0x20(32)# 0x27(39) Power ON mode, Data output rate = 50 Hz# X, Y, Z-Axis enabledbus.write_byte_data(0x18, 0x20, 0x27)# H3LIS331DL address, 0x18(24)# Select control register 4, 0x23(35)# 0x00(00) Continuous update, Full scale selection = +/-100gbus.write_byte_data(0x18, 0x23, 0x00)time.sleep(0.5) # H3LIS331DL address, 0x18(24)# Read data back from 0x28(40), 2 bytes# X-Axis LSB, X-Axis MSBdata0 = bus.read_byte_data(0x18, 0x28)data1 = bus.read_byte_data(0x18, 0x29)# Convert the dataxAccl = data1 * 256 + data0if xAccl > 32767 : xAccl -= 65536 # H3LIS331DL address, 0x18(24)# Read data back from 0x2A(42), 2 bytes# Y-Axis LSB, Y-Axis MSBdata0 = bus.read_byte_data(0x18, 0x2A)data1 = bus.read_byte_data(0x18, 0x2B)# Convert the datayAccl = data1 * 256 + data0if yAccl > 32767 : yAccl -= 65536 # H3LIS331DL address, 0x18(24)# Read data back from 0x2C(44), 2 bytes# Z-Axis LSB, Z-Axis MSBdata0 = bus.read_byte_data(0x18, 0x2C)data1 = bus.read_byte_data(0x18, 0x2D)# Convert the datazAccl = data1 * 256 + data0if zAccl > 32767 : zAccl -= 65536 # Output data to screenprint "Acceleration in X-Axis : %d" %xAcclprint "Acceleration in Y-Axis : %d" %yAcclprint "Acceleration in Z-Axis : %d" %zAccl
Le code est exécuté à l’aide de la commande suivante :
$> python H3LIS331DL.py
La sortie du capteur est montrée dans l’image ci-dessus pour la référence de l’utilisateur.