Spisu treści:

Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków
Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków

Wideo: Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków

Wideo: Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków
Wideo: ADXL345 Accelerometer and Arduino + Tap & Free Fall 2024, Listopad
Anonim
Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona
Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona

Pomyśl o gadżecie, który może sprawdzić punkt, w którym twój Offroader jest przechylony w kierunku, aby się zatrzymał. Czy nie byłoby przyjemnie w przypadku, gdy ktoś jest dopasowany, gdy istnieje możliwość przewrócenia się? Oczywiście tak. Przydałby się osobom, które uwielbiają jeździć w góry i wyjazdy służbowe.

Bez wątpienia, IoT nadchodzi prawdziwy, genialny okres zaawansowanej oceny obliczeń, IoT. Jako miłośnicy gadżetów i programowania wierzymy, że Raspberry Pi, komputer z mikro Linuxem, potraktował ogólnie kreatywne zdolności ludzi, niosąc ze sobą podmuch innowacyjnych metodologii. Więc jakie są możliwe wyniki, co możemy zrobić w przypadku, gdy mamy w pobliżu Raspberry Pi i 3-osiowy akcelerometr? Powinniśmy odkryć! W tym zadaniu wyczujemy przyspieszenie na 3 osiach, X, Y i Z za pomocą Raspberry Pi i ADXL345, 3-osiowego akcelerometru. Powinniśmy więc obserwować podczas tej wycieczki, aby stworzyć szkielet do pomiaru trójwymiarowego przyspieszenia lub siły grawitacji.

Krok 1: Podstawowy sprzęt, którego potrzebujemy

Podstawowy sprzęt, którego potrzebujemy
Podstawowy sprzęt, którego potrzebujemy
Podstawowy sprzęt, którego potrzebujemy
Podstawowy sprzęt, którego potrzebujemy
Podstawowy sprzęt, którego potrzebujemy
Podstawowy sprzęt, którego potrzebujemy

Problemy były dla nas mniej, ponieważ mamy mnóstwo rzeczy do pracy. Niemniej jednak wiemy, jak kłopotliwe jest dla innych złożenie odpowiedniej części w idealnym czasie z dogodnego miejsca i jest to uzasadnione niezależnie od każdego grosza. Pomożemy ci więc we wszystkich regionach. Przeczytaj poniższe, aby uzyskać pełną listę części.

1. Raspberry Pi

Pierwszym krokiem było nabycie płyty Raspberry Pi. Ten mały komputer o niskim poborze mocy stanowi tanią i ogólnie prostą bazę dla przedsięwzięć elektronicznych, Internetu rzeczy (IoT), inteligentnych miast i edukacji szkolnej.

2. Osłona I2C dla Raspberry Pi

Najważniejszą rzeczą, której naprawdę brakuje Raspberry Pi, jest port I²C. W tym celu złącze TOUTPI2 I²C daje poczucie wykorzystania Rasp Pi z WIELOMA urządzeniami I²C. Jest dostępny w sklepie DCUBE

3. Akcelerometr 3-osiowy, ADXL345

Wyprodukowany przez Analog Devices ADXL345 to 3-osiowy akcelerometr o małej mocy z 13-bitowym pomiarem o wysokiej rozdzielczości do ±16g. Kupiliśmy ten czujnik ze sklepu DCUBE

4. Kabel połączeniowy

Mieliśmy kabel połączeniowy I2C dostępny w sklepie DCUBE

5. Kabel Micro USB

Najmniej zagmatwany, ale najbardziej rygorystyczny, jeśli chodzi o zapotrzebowanie na energię, jest Raspberry Pi! Najłatwiejszym podejściem do zasilania Raspberry Pi jest użycie kabla Micro USB.

6. Dostęp do sieci jest koniecznością

Dostęp do sieci można wzmocnić za pomocą kabla Ethernet (LAN) związanego z siecią lokalną i siecią. Z drugiej strony możesz skojarzyć się z siecią bezprzewodową za pomocą bezprzewodowego klucza USB, co będzie wymagało konfiguracji.

7. Kabel HDMI/zdalny dostęp

Dzięki wbudowanemu kablowi HDMI możesz podłączyć go do cyfrowego telewizora lub monitora. Potrzebujesz oszczędzić gotówkę! Raspberry Pi można zdalnie wykorzystać do wykorzystania charakterystycznych strategii, takich jak SSH i Access przez Internet. Możesz użyć oprogramowania źródłowego PuTTYopen.

Krok 2: Podłączanie sprzętu

Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu

Zrób obwód zgodnie ze schematem. Narysuj zarys i celowo weź po konfiguracji.

Połączenie Raspberry Pi i I2C Shield

Przede wszystkim weź Raspberry Pi i zobacz na nim I2C Shield. Delikatnie naciśnij Shield na piny GPIO Pi i skończymy z tą progresją tak prostą jak bułka z masłem (patrz przystawka).

Połączenie czujnika i Raspberry Pi

Weź czujnik i połącz z nim kabel I2C. Aby zapewnić prawidłowe działanie tego kabla, pamiętaj, że wyjście I2C ZAWSZE jest powiązane z wejściem I2C. To samo należy wykonać dla Raspberry Pi z zamontowaną na nim osłoną I2C na pinach GPIO.

Zalecamy wykorzystanie kabla I2C, ponieważ obala on wymóg przeglądania pinów, lutowania i złego samopoczucia spowodowanego nawet najmniejszą błędem. Za pomocą tego podstawowego kabla typu „plug and play” możesz łatwo wprowadzać, wymieniać urządzenia lub dodawać więcej urządzeń do aplikacji. To sprawia, że wszystko jest nieskomplikowane.

Uwaga: Brązowy przewód powinien być zgodny z uziemieniem (GND) pomiędzy wyjściem jednego urządzenia a wejściem innego urządzenia

Sieć internetowa jest kluczem

Aby nasze przedsięwzięcie odniosło sukces, potrzebujemy połączenia internetowego dla naszego Raspberry Pi. W tym celu masz alternatywy, takie jak połączenie kabla Ethernet (LAN) z systemem domowym. Dodatkowo, opcjonalnie, jednak pomocną drogą jest wykorzystanie złącza WiFi. Czasami do tego potrzebny jest sterownik, aby to działało. Więc pochyl się w stronę tego z Linuksem na zdjęciu.

Zasilacz

Podłącz kabel Micro USB do gniazda zasilania Raspberry Pi. Zapal to i możemy iść.

Połączenie z ekranem

Możemy mieć kabel HDMI powiązany z innym ekranem. W niektórych przypadkach musisz dostać się do Raspberry Pi bez łączenia go z ekranem lub możesz potrzebować wyświetlić z niego niektóre dane z innego miejsca. Niewykluczone, że istnieją innowacyjne i oszczędne podejścia do robienia tego jako takiego. Jednym z nich jest użycie - SSH (zdalne logowanie z wiersza poleceń). Możesz również wykorzystać do tego oprogramowanie PuTTY.

Krok 3: Kodowanie Pythona dla Raspberry Pi

Kodowanie Pythona dla Raspberry Pi
Kodowanie Pythona dla Raspberry Pi

Kod Pythona dla Raspberry Pi i ADXL345 Sensor jest dostępny w naszym repozytorium Github.

Zanim przejdziesz do kodu, zapoznaj się z wytycznymi podanymi w dokumencie Readme i skonfiguruj Raspberry Pi zgodnie z nim. Po prostu zatrzyma się na minutę, aby to zrobić.

Akcelerometr to urządzenie, które mierzy prawidłowe przyspieszenie; właściwe przyspieszenie to nie to samo co przyspieszenie współrzędnych (tempo zmiany prędkości). Jedno- i wieloosiowe modele akcelerometru są dostępne do identyfikacji wielkości i kierunku właściwego przyspieszenia, jako wielkości wektorowej i mogą być wykorzystywane do wykrywania orientacji, współrzędnych przyspieszenia, wibracji, wstrząsów i upadku w ośrodku rezystancyjnym.

Kod jest przed tobą prosty i ma najprostszą strukturę, jaką możesz sobie wyobrazić, i nie powinieneś mieć żadnych problemów.

# Rozprowadzany z wolną licencją.# Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł. # ADXL345 # Ten kod jest przeznaczony do współpracy z modułem ADXL345_I2CS I2C Mini dostępnym na stronie dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -moduł/

importuj smbus

czas importu

# Uzyskaj magistralę I2C

autobus = smbus. SMBus(1)

# Adres ADXL345, 0x53(83)

# Wybierz rejestr szybkości pasma, 0x2C(44) # 0x0A(10) Tryb normalny, Szybkość transmisji danych wyjściowych = 100 Hz bus.write_byte_data(0x53, 0x2C, 0x0A) # Adres ADXL345, 0x53(83) # Wybierz rejestr sterowania mocą, 0x2D(45) # 0x08(08) Wyłączenie automatycznego uśpienia bus.write_byte_data(0x53, 0x2D, 0x08) # Adres ADXL345, 0x53(83) # Wybór rejestru formatu danych, 0x31(49) # 0x08(08) Autotest wyłączony, 4-przewodowy interfejs # Pełna rozdzielczość, Zakres = +/-2g bus.write_byte_data(0x53, 0x31, 0x08)

czas.sen(0.5)

# Adres ADXL345, 0x53(83)

# Odczytaj dane z powrotem z 0x32(50), 2 bajty # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data(0x53, 0x32) data1 = bus.read_byte_data(0x53, 0x33)

# Konwertuj dane na 10 bitów

xAccl = ((data1 & 0x03) * 256) + data0 jeśli xAccl > 511: xAccl -= 1024

# Adres ADXL345, 0x53(83)

# Odczyt danych z powrotem z 0x34(52), 2 bajty # Oś Y LSB, Oś Y MSB data0 = bus.read_byte_data(0x53, 0x34) data1 = bus.read_byte_data(0x53, 0x35)

# Konwertuj dane na 10 bitów

yAccl = ((data1 & 0x03) * 256) + data0 jeśli yAccl > 511: yAccl -= 1024

# Adres ADXL345, 0x53(83)

# Odczytaj dane z powrotem z 0x36(54), 2 bajty # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data(0x53, 0x36) data1 = bus.read_byte_data(0x53, 0x37)

# Konwertuj dane na 10 bitów

zAccl = ((data1 & 0x03) * 256) + data0 jeśli zAccl > 511: zAccl -= 1024

# Dane wyjściowe na ekran

print "Przyspieszenie w osi X: %d" %xAccl print "Przyspieszenie w osi Y: %d" %yAccl print "Przyspieszenie w osi Z: %d" %zAccl

Krok 4: Praktyczność Kodeksu

Praktyczność Kodeksu
Praktyczność Kodeksu

Pobierz (lub git pull) kod z Github i otwórz go w Raspberry Pi.

Uruchom polecenia skompiluj i prześlij kod w terminalu i zobacz dane wyjściowe w Monitorze. Po kilku chwilach pokaże każdy z parametrów. Po upewnieniu się, że wszystko działa łatwo, możesz podjąć to przedsięwzięcie w większym zadaniu.

Krok 5: Aplikacje i funkcje

ADXL345 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. ADXL345 jest odpowiedni do zastosowań w telefonach komórkowych. Określa ilościowo statyczne przyspieszenie grawitacji w aplikacjach wykrywających przechyły, a ponadto dynamiczne przyspieszenie nadchodzące z powodu ruchu lub wstrząsu. Inne zastosowania obejmują telefony, oprzyrządowanie medyczne, urządzenia do gier i urządzenia wskazujące, oprzyrządowanie przemysłowe, osobiste urządzenia nawigacyjne i ochronę dysku twardego (HDD).

Krok 6: Wniosek

Mam nadzieję, że to zadanie zmotywuje do dalszych eksperymentów. Ten czujnik I2C jest niezwykle elastyczny, tani i dostępny. Ponieważ jest to w dużej mierze nietrwały system, istnieją ciekawe sposoby na poszerzenie tego zadania, a nawet jego ulepszenie.

Na przykład możesz zacząć od pomysłu inklinometru przy użyciu ADXL345 i Raspberry Pi. W powyższym projekcie zastosowaliśmy podstawowe obliczenia. Możesz improwizować kod dla wartości G, kątów nachylenia (lub pochylenia), elewacji lub obniżenia obiektu w odniesieniu do grawitacji. Następnie możesz sprawdzić zaawansowane opcje, takie jak kąty obrotu dla rolki (oś przód-tył, X), skok (oś z boku na bok, Y) i odchylenie (oś pionowa, Z). Ten akcelerometr wyświetla trójwymiarowe siły grawitacyjne. Możesz więc wykorzystać ten czujnik na różne sposoby, które możesz rozważyć.

Dla Twojej wygody przygotowaliśmy na YouTube fascynujące ćwiczenie z filmami instruktażowymi, które mogą pomóc w przeprowadzeniu dochodzenia. Zaufanie to przedsięwzięcie motywuje do dalszych poszukiwań. Kontempluj dalej! Pamiętaj, aby szukać, ponieważ ciągle pojawia się więcej.

Zalecana: