Spisu treści:
- Krok 1: Podstawowy sprzęt, którego potrzebujemy
- Krok 2: Podłączanie sprzętu
- Krok 3: Kodowanie Pythona dla Raspberry Pi
- Krok 4: Praktyczność Kodeksu
- Krok 5: Aplikacje i funkcje
- Krok 6: Wniosek
Wideo: Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
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
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
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
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:
Jak stworzyć swoje pierwsze proste oprogramowanie przy użyciu Pythona: 6 kroków
Jak zrobić swoje pierwsze proste oprogramowanie przy użyciu Pythona: Cześć, witaj w tej instrukcji. Tutaj opowiem jak stworzyć własne oprogramowanie. Tak, jeśli masz pomysł… ale wiesz, jak wdrożyć lub jesteś zainteresowany tworzeniem nowych rzeczy, to jest dla Ciebie… Wymagania wstępne: Powinieneś mieć podstawową wiedzę z
Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): 16 kroków
Pulpit nawigacyjny COVID19 na mapie świata (przy użyciu Pythona): Wiem, że prawie każdy z nas zna większość informacji o COVID19. A ta instrukcja dotyczy tworzenia mapy bąbelkowej, aby wykreślić dane w czasie rzeczywistym (przypadków) na mapie świata. Dla większej wygody , dodałem program do repozytorium Github: https://github.co
Eksperymenty z zaawansowanym rejestrowaniem danych (przy użyciu Pythona): 11 kroków
Eksperymenty w zaawansowanym rejestrowaniu danych (przy użyciu Pythona): Istnieje wiele instrukcji dotyczących rejestrowania danych, więc kiedy chciałem zbudować własny projekt rejestrowania, rozejrzałem się po kilku. Niektóre były dobre, inne nie, więc postanowiłem wziąć kilka lepszych pomysłów i stworzyć własną aplikację. Ten wynik
Nauka orientacji za pomocą Raspberry Pi i MXC6226XU przy użyciu Pythona: 6 kroków
Badanie orientacji za pomocą Raspberry Pi i MXC6226XU przy użyciu Pythona: Hałas to po prostu część pracy pojazdu. Szum bardzo dokładnie dostrojonego silnika pojazdu to wspaniały dźwięk. Bieżniki opon szepczą na drodze, wiatr wyje, gdy krąży wokół lusterek, plastikowych kawałków i kawałków deski rozdzielczej
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim