Агуулгын хүснэгт:

ADXL345 ба Raspberry Pi ашиглан хурдатгалын хэмжилт: 4 алхам
ADXL345 ба Raspberry Pi ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: ADXL345 ба Raspberry Pi ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: ADXL345 ба Raspberry Pi ашиглан хурдатгалын хэмжилт: 4 алхам
Видео: Электроникийн сургалт 2024, Долдугаар сарын
Anonim
Image
Image

ADXL345 нь жижиг, нимгэн, хэт өндөр хүч чадалтай, 3 тэнхлэг бүхий хурдасгуур нь өндөр нарийвчлалтай (13 бит) хэмжигдэхүүнтэй бөгөөд ± 16 г хүртэл байдаг. Дижитал гаралтын өгөгдлийг 16 битийн хоёр нэмэлт хэлбэрээр форматласан бөгөөд I2 C дижитал интерфэйсээр дамжуулан авах боломжтой. Энэ нь хазайлтыг мэдэрч буй таталцлын статик хурдатгал, түүнчлэн хөдөлгөөн эсвэл цочролын үр дүнд бий болсон динамик хурдатгалыг хэмждэг. Түүний өндөр нарийвчлал (3.9 мг/LSB) нь хазайлтын өөрчлөлтийг 1.0 хэмээс бага хэмжих боломжийг олгодог.

Энэхүү гарын авлагад бөөрөлзгөнө pi бүхий ADXL345 мэдрэгчийн модулийн интерфейсийг харуулсан бөгөөд питон хэл ашиглан програмчлалыг мөн үзүүлэв. Гурван тэнхлэг дээрх хурдатгалын утгыг уншихын тулд бид I2C адаптертай бөөрөлзгөнө pi ашигласан бөгөөд энэхүү I2C адаптер нь мэдрэгчийн модульд холбогдоход хялбар, илүү найдвартай болгодог.

Алхам 1: Шаардлагатай тоног төхөөрөмж:

Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж

Зорилгодоо хүрэхийн тулд бидэнд шаардлагатай материалууд нь дараахь тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.

1. ADXL345

2. Raspberry Pi

3. I2C кабель

4. Бөөрөлзгөнө pi -д зориулсан I2C бамбай

5. Ethernet кабель

Алхам 2: Тоног төхөөрөмжийн холболт:

Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт

Тоног төхөөрөмжийн холболтын хэсэг нь үндсэндээ мэдрэгч ба бөөрөлзгөнө pi хооронд шаардлагатай утас холболтыг тайлбарладаг. Аливаа систем дээр ажиллахад шаардлагатай гаралтын хувьд зөв холболтыг хангах нь хамгийн чухал зүйл юм. Тиймээс шаардлагатай холболтууд дараах байдалтай байна.

ADXL345 нь I2C дээр ажиллах болно. Мэдрэгчийн интерфэйс бүрийг хэрхэн яаж холбохыг харуулсан утасны диаграмын жишээ энд байна.

Хайрцагнаас гадуурх самбар нь I2C интерфэйс дээр тохируулагдсан байдаг тул хэрэв та өөр ойлголтгүй бол энэ холболтыг ашиглахыг зөвлөж байна.

Танд ердөө дөрвөн утас л хангалттай! Vcc, Gnd, SCL, SDA зүүг зөвхөн дөрвөн холболт шаарддаг бөгөөд эдгээр нь I2C кабелийн тусламжтайгаар холбогддог.

Эдгээр холболтыг дээрх зурган дээр харуулав.

Алхам 3: Хурдатгалыг хэмжих код:

Хурдатгалыг хэмжих код
Хурдатгалыг хэмжих код

Бөөрөлзгөнө pi ашиглах давуу тал нь мэдрэгчийг интерфэйстэй холбохын тулд самбарыг програмчлах хэлний уян хатан байдлыг өгдөг. Энэхүү самбарын давуу талыг ашиглан бид питон дахь програмчлалыг энд харуулав. ADXL345 -ийн питон кодыг манай github бүлгээс татаж авах боломжтой, Бүх зүйлийг хянах нийгэмлэг.

Хэрэглэгчдэд хялбар байхын тулд бид кодыг энд тайлбарлаж байна.

Кодлох эхний алхам бол python тохиолдолд smbus номын санг татаж авах хэрэгтэй, учир нь энэ номын сан нь кодонд ашиглагддаг функцийг дэмждэг. Тиймээс номын санг татаж авахын тулд та дараах линкээр орж үзэх боломжтой.

pypi.python.org/pypi/smbus-cffi/0.5.1

Та энэ мэдрэгчийн ажлын питон кодыг эндээс хуулж болно.

smbus импортлох

импортлох хугацаа

# I2C автобус авах = smbus. SMBus (1)

# ADXL345 хаяг, 0x53 (83)

# Зурвасын өргөний хурдыг бүртгэгчийг сонгоно уу, 0x2C (44)

# 0x0A (10) Ердийн горим, Гаралтын өгөгдлийн хурд = 100 Гц

bus.write_byte_data (0x53, 0x2C, 0x0A)

# ADXL345 хаяг, 0x53 (83)

# Цахилгаан хяналтын бүртгэлийг сонгоно уу, 0x2D (45)

# 0x08 (08) Автомат унтахыг идэвхгүй болгох

bus.write_byte_data (0x53, 0x2D, 0x08)

# ADXL345 хаяг, 0x53 (83)

# Өгөгдлийн форматын бүртгэлийг сонгох, 0x31 (49)

# 0x08 (08) Өөрийгөө шалгах тестийг идэвхгүй болгосон, 4 утастай интерфэйс

# Бүрэн нарийвчлал, хүрээ = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

цаг унтах (0.5)

# ADXL345 хаяг, 0x53 (83)

# Өгөгдлийг 0x32 (50), 2 байтаас буцааж уншина уу

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Өгөгдлийг 10 бит болгон хөрвүүлэх

xAccl = ((өгөгдөл1 & 0x03) * 256) + өгөгдөл0

Хэрэв xAccl> 511:

xAccl -= 1024

# ADXL345 хаяг, 0x53 (83)

# Өгөгдлийг 0x34 (52), 2 байтаас буцааж уншина уу

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Өгөгдлийг 10 бит болгон хөрвүүлэх

yAccl = ((өгөгдөл1 & 0x03) * 256) + өгөгдөл0

yAccl> 511 бол:

yAccl -= 1024

# ADXL345 хаяг, 0x53 (83)

# Өгөгдлийг 0x36 (54), 2 байтаас буцааж уншина уу

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Өгөгдлийг 10 бит болгон хөрвүүлэх

zAccl = ((өгөгдөл1 & 0x03) * 256) + өгөгдөл0

Хэрэв zAccl> 511:

zAccl -= 1024

# Дэлгэц рүү өгөгдөл гаргана

хэвлэх "X-Axis дахь хурдатгал: %d" %xAccl

хэвлэх "Y тэнхлэг дэх хурдатгал: %d" %yAccl

хэвлэх "Z-Axis дахь хурдатгал: %d" %zAccl

Доор дурдсан кодын хэсэг нь питон кодыг зөв гүйцэтгэхэд шаардлагатай номын сангуудыг агуулдаг.

smbusimport цаг импортлох

Кодыг тушаалын мөрөнд доор дурдсан командыг бичиж гүйцэтгэж болно.

$> python ADXL345.py

Мэдрэгчийн гаралтыг мөн хэрэглэгчийн лавлагаанд зориулан дээрх зурагт үзүүлэв.

Алхам 4: Өргөдөл:

Хэрэглээ
Хэрэглээ

ADXL345 нь гар утас, эмнэлгийн багаж хэрэгсэл гэх мэт жижиг, нимгэн, хэт давтамжтай, 3 тэнхлэгтэй хурдатгал хэмжигч бөгөөд түүний хэрэглээ нь тоглоом, заагч төхөөрөмж, үйлдвэрлэлийн багаж хэрэгсэл, хувийн навигацийн төхөөрөмж, хатуу дискний хамгаалалтыг агуулдаг.

Зөвлөмж болгож буй: