(( μ°κ²° ν μΆκ° μμ± νμ ))
sudo apt-get update
sudo apt-get upgrade
λΌμ¦λ² 리νμ΄μμ Preferences β Raspberry Pi Configuration β Interfaces
βI2Cβλ₯Ό Enable
μ€μ νκ³ sudo reboot
sudo apt-get install python3-dev python3-pip python3-smbus i2c-tools -y
i2cdetect -y 0
β I2C λ²μ€μ μ°κ²°λ μ₯μΉμ μ£Όμ νμΈ
import smbus
import time
bus = smbus.SMBus(1) # I2C λ²μ€ λ²νΈ (λΌμ¦λ² 리νμ΄ 2 μ΄μμΌ λλ 1, λΌμ¦λ² 리νμ΄ 1μΌ λλ 0)
address = 0x53 # ADXL345 μΌμμ I2C μ£Όμ (i2cdetect -y 0λ‘ νμΈν μ£Όμ)
# ADXL345 μ΄κΈ°ν ν¨μ
def init_ADXL345():
bus.write_byte_data(address, 0x2D, 0x08)
# κ°μλ κ°μ μΈ‘μ νλ ν¨μ
def measure_acc(adr):
acc0 = bus.read_byte_data(address, adr)
acc1 = bus.read_byte_data(address, adr + 1)
acc = (acc1 << 8) + acc0
# 2μ 보μ λ³ν
if acc > 0x1FF:
acc = (65536 - acc) * -1
return acc
try:
init_ADXL345()
while True:
# x, y, z μΆμ κ°μλ κ°μ μ½μ΄μ΄
x_acc = measure_acc(0x32) # X μΆ λ μ§μ€ν° μ£Όμ
y_acc = measure_acc(0x34) # Y μΆ λ μ§μ€ν° μ£Όμ
z_acc = measure_acc(0x36) # Z μΆ λ μ§μ€ν° μ£Όμ
# μ½μ΄μ¨ κ°μλ κ°μ μΆλ ₯
print(f"X-Axis: {x_acc}, Y-Axis: {y_acc}, Z-Axis: {z_acc}")
time.sleep(0.5) # 0.5μ΄ κ°κ²©μΌλ‘ μΈ‘μ
except KeyboardInterrupt:
pass