Мазмуну:

ADXL345 жана Raspberry Pi менен ылдамданууну өлчөө: 4 кадам
ADXL345 жана Raspberry Pi менен ылдамданууну өлчөө: 4 кадам

Video: ADXL345 жана Raspberry Pi менен ылдамданууну өлчөө: 4 кадам

Video: ADXL345 жана Raspberry Pi менен ылдамданууну өлчөө: 4 кадам
Video: BTT - Manta E3EZ - TFT32 SPI 2024, Ноябрь
Anonim
Image
Image

ADXL345-кичине, ичке, ультра кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечилиште (13-бит) өлчөө. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Бул эңкейүүнү сезүүчү колдонмолордо тартылуу күчүнүн статикалык ылдамдатуусун, ошондой эле кыймылдан же шоктон келип чыккан динамикалык ылдамданууну өлчөйт. Анын жогорку токтому (3,9 мг/LSB) жантайыштын өзгөрүүсүн 1,0 ° дан аз өлчөөгө мүмкүндүк берет.

Бул окуу куралында ADXL345 сенсор модулунун малина пи менен интерфейси көрсөтүлгөн жана анын питон тили менен программаланышы да көрсөтүлгөн. Бардык 3-огунда ылдамдануунун маанилерин окуу үчүн I2C adapter. This I2C адаптери менен малина пи колдонгонбуз, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. ADXL345

2. Raspberry Pi

3. I2C кабели

4. Малина pi үчүн I2C Shield

5. Ethernet кабели

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

ADXL345 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз.

Сизге болгону төрт зым керек! Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Ылдамданууну өлчөө коду:

Ылдамданууну өлчөө коду
Ылдамданууну өлчөө коду

Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгынан пайдаланып, биз бул жерде анын питондогу программалоосун көрсөтүп жатабыз. ADXL345 үчүн питон кодун биздин гитуб коомчулугунан жүктөп алсаңыз болот, бул - Бардыгын көзөмөлдөө жамааты.

Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:

Коддоонун биринчи кадамы катары сиз питон үчүн smbus китепканасын жүктөп алышыңыз керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:

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

Бул сенсордун жумушчу питон кодун бул жерден көчүрүп алсаңыз болот:

smbus импорттоо

импорттоо убактысы

# Get I2C busbus = 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 зымдуу интерфейс

# Толук чечим, диапазон = +/- 2г

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 = ((data1 & 0x03) * 256) + data0

эгер 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 = ((data1 & 0x03) * 256) + data0

эгер 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 = ((data1 & 0x03) * 256) + data0

эгер zAccl> 511:

zAccl -= 1024

# Экранга маалыматтарды чыгаруу

басып чыгаруу "Акселерде ылдамдануу: %d" %xAccl

басып чыгаруу "Y огунда ылдамдануу: %d" %yAccl

басып чыгаруу "Z-огунда ылдамдануу: %d" %zAccl

Төмөндө айтылган коддун бөлүгү python коддорунун туура аткарылышы үчүн керектүү китепканаларды камтыйт.

smbusimport убактысын импорттоо

Код төмөнкү буйрукту буйрук сабына терүү менен аткарылышы мүмкүн.

$> python ADXL345.py

Сенсордун чыгышы да колдонуучунун маалымдамасы үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

ADXL345-бул кичинекей, ичке, ультра кубаттуу, 3-октук акселерометр, аны телефондордо, медициналык приборлордо ж.

Сунушталууда: