Spisu treści:
- Krok 1: Sugerowana lektura
- Krok 2: Materiały
- Krok 3: Ale czekaj! Co to jest siła uderzenia?
- Krok 4: Skonfiguruj Pi Zero W
- Krok 5: Włącz Wi-Fi i I2C
- Krok 6: Uruchom ponownie Pi i zaloguj się zdalnie
- Krok 7: Zbuduj: Elektronika
- Krok 8: Podłącz akcelerometr do GPIO Pi
- Krok 9: Dodaj diodę LED alertu
- Krok 10: Zaprogramuj
- Krok 11: Szybki przegląd programu
- Krok 12: Przetestuj system
- Krok 13: Zabezpiecz połączenia elektryczne i zainstaluj
- Krok 14: Osadzenie obwodu w kasku
- Krok 15: Wdróż
- Krok 16: Dodawanie kolejnych funkcji
Wideo: Raspberry Pi Impact Force Monitor!: 16 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Jak duży wpływ może znieść ludzkie ciało? Niezależnie od tego, czy jest to piłka nożna, wspinaczka skałkowa, czy wypadek rowerowy, wiedza o tym, kiedy szukać natychmiastowej pomocy medycznej po kolizji, jest niezwykle ważna, zwłaszcza jeśli nie ma widocznych oznak urazu. Ten samouczek nauczy Cię, jak zbudować swój własny monitor siły uderzenia!
Czas czytania: ~15 min
Czas budowy: ~60-90 min
Ten projekt typu open source wykorzystuje Raspberry Pi Zero W i akcelerometr LIS331 do monitorowania i ostrzegania użytkownika o potencjalnie niebezpiecznych siłach przeciążenia. Oczywiście możesz swobodnie modyfikować i dostosowywać system do różnych potrzeb w zakresie nauki obywatelskiej.
Uwaga: buduj zabawne rzeczy za pomocą monitora siły uderzenia! Prosimy jednak nie używać go jako substytutu profesjonalnej porady lekarskiej i diagnozy. Jeśli uważasz, że upadłeś na poważnie, odwiedź wykwalifikowanego i licencjonowanego specjalistę w celu odpowiedniego leczenia.
Krok 1: Sugerowana lektura
Aby ten samouczek był krótki i słodki (ehm, tak bardzo, jak to możliwe), zakładam, że zaczynasz od funkcjonalnego Pi Zero W. Potrzebujesz pomocy? Nie ma problemu! Oto pełny samouczek konfiguracji.
Będziemy również łączyć się z Pi zdalnie (czyli bezprzewodowo). Aby uzyskać dokładniejszy przegląd tego procesu, zapoznaj się z tym samouczkiem.
** Utknąłeś lub chcesz dowiedzieć się więcej? Oto kilka przydatnych zasobów:**
1. Doskonały przewodnik „Pierwsze kroki” dla Pi.
2. Pełna instrukcja podłączania płytki zaciskowej akcelerometru LIS331.
3. Więcej o akcelerometrach!
4. Przegląd pinów GPIO Raspberry Pi.
5. Korzystanie z magistrali szeregowych SPI i I2C w Pi.
6. Arkusz danych LIS331
Krok 2: Materiały
-
Zestaw podstawowy Raspberry Pi Zero W
- Ten zestaw zawiera następujące elementy: Karta SD z systemem operacyjnym NOOBS; Kabel USB OTG (microUSB na USB żeńskie); Mini HDMI na HDMI; Zasilanie microUSB (~5V)
- Zalecane również: koncentrator USB
- Raspberry Pi 3 piny nagłówka
- Płytka zaciskowa akcelerometru LIS331
- Akumulator ze złączem MicroUSB
- 5mm czerwona dioda LED
- Rezystor 1k
- Rurka termokurczliwa 6" lub taśma elektryczna
- Kołki nagłówka akcelerometru (4 - 8) i LED (2)
- Przewody połączeniowe żeńsko-żeńskie(6)
Narzędzia
- Lutownica i akcesoria
- Epoksyd (lub inny trwały, nieprzewodzący płynny klej)
- Pewnie też nożyczki:)
Krok 3: Ale czekaj! Co to jest siła uderzenia?
Na szczęście termin „siła uderzenia” jest dość prosty: siła uderzenia. Jednak jak większość rzeczy, mierzenie go wymaga dokładniejszej definicji. Równanie siły uderzenia to:
F = KE/d
gdzie F jest siłą uderzenia, KE jest energią kinetyczną (energią ruchu), a d jest odległością uderzenia, czyli tym, jak mocno obiekt chrupie. Z tego równania wynikają dwa kluczowe wnioski:
1. Siła uderzenia jest wprost proporcjonalna do energii kinetycznej, co oznacza, że siła uderzenia wzrasta wraz ze wzrostem energii kinetycznej.
2. Siła uderzenia jest odwrotnie proporcjonalna do odległości uderzenia, co oznacza, że siła uderzenia maleje wraz ze wzrostem odległości uderzenia. (Dlatego mamy poduszki powietrzne: aby zwiększyć odległość naszego uderzenia.)
Siła jest zazwyczaj mierzona w Newtonach (N), ale siłę uderzenia można omówić jako „siłę przeciążenia”, liczbę wyrażoną jako wielokrotność g lub przyspieszenie grawitacyjne Ziemi (9,8 m/s^2). Kiedy używamy jednostek przeciążenia, mierzymy przyspieszenie obiektu w stosunku do swobodnego spadania w kierunku ziemi.
Technicznie rzecz biorąc, g jest przyspieszeniem, a nie siłą, ale jest przydatne, gdy mówimy o zderzeniach, ponieważ przyspieszenie* uszkadza ludzkie ciało.
W tym projekcie użyjemy sił przeciążeniowych, aby określić, czy uderzenie jest potencjalnie niebezpieczne i zasługuje na pomoc medyczną. Badania wykazały, że siły g powyżej 9G mogą być śmiertelne dla większości ludzi (bez specjalnego przeszkolenia), a 4-6G mogą być niebezpieczne, jeśli są utrzymywane dłużej niż kilka sekund.
Wiedząc o tym, możemy zaprogramować nasz monitor siły uderzenia, aby ostrzegał nas, jeśli nasz akcelerometr zmierzy przeciążenie powyżej któregokolwiek z tych progów. Hurra, nauka!
Aby uzyskać więcej informacji, przeczytaj o sile uderzenia i przeciążeniu na Wikipedii!
Przyspieszenie to zmiana prędkości i/lub kierunku
Krok 4: Skonfiguruj Pi Zero W
Zbierz Raspberry Pi Zero i urządzenia peryferyjne, aby skonfigurować Pi tak, aby był bezgłowy!
- Podłącz Pi do monitora i powiązanych urządzeń peryferyjnych (klawiatura, mysz), podłącz zasilanie i zaloguj się.
-
Zaktualizuj oprogramowanie, aby Twoje Pi było szybkie i bezpieczne. Otwórz okno terminala i wpisz te polecenia:
Wpisz i wprowadź:
aktualizacja sudo apt-get
Wpisz i wprowadź:
sudo apt-get upgrade
Resetowanie:
sudo wyłączenie -r teraz
Krok 5: Włącz Wi-Fi i I2C
- Kliknij ikonę Wi-Fi w prawym górnym rogu pulpitu i połącz się z siecią Wi-Fi.
- W terminalu wpisz to polecenie, aby wywołać narzędzie konfiguracji oprogramowania Pi:
sudo raspi-config
- Wybierz „Opcje interfejsu”, a następnie „SSH” i wybierz „Tak” u dołu, aby włączyć.
- Wróć do „Opcji interfejsu”, a następnie „I2C” i wybierz „Tak”, aby włączyć.
- W terminalu zainstaluj oprogramowanie do połączenia z pulpitem zdalnym:
sudo apt-get zainstaluj xrdp
- Wpisz „Y” (tak) na klawiaturze w obu monitach.
- Znajdź adres IP Pi, najeżdżając kursorem na połączenie Wi-Fi (możesz również chcieć go zapisać).
- Zmień hasło Pi za pomocą polecenia passwd.
Krok 6: Uruchom ponownie Pi i zaloguj się zdalnie
Możemy teraz porzucić HDMI i urządzenia peryferyjne, woohoo!
-
Skonfiguruj połączenie pulpitu zdalnego.
- Na komputerze otwórz Podłączanie pulpitu zdalnego (lub PuTTY, jeśli Ci to odpowiada).
- W systemie Mac/Linux możesz zainstalować ten program lub użyć programu VNC.
- Wprowadź adres IP dla Pi i kliknij „Połącz” (Ignoruj ostrzeżenia o nieznanym urządzeniu).
- Zaloguj się do Pi, używając swoich danych logowania i zaczynamy!
Krok 7: Zbuduj: Elektronika
Dwa powyższe zdjęcia pokazują schemat elektryczny dla tego projektu i pinout Pi Zero. Będziemy potrzebować obu, aby poradzić sobie z połączeniami sprzętowymi.
Uwaga: tabliczka zaciskowa LIS331 na schemacie jest starszą wersją - użyj etykiet pinów jako wskazówek
Krok 8: Podłącz akcelerometr do GPIO Pi
- Przylutuj i ostrożnie usuń wszelkie pozostałości topnika z akcelerometru i pinów nagłówka Pi GPIO.
- Następnie podłącz przewody połączeniowe między płytką zaciskową LIS331 a Pi między następującymi pinami:
LIS331 Płytka zaciskowa Raspberry Pi GPIO Pin
GND GPIO 9 (GND)
VCC GPIO 1 (3,3 V)
SDA GPIO 3 (SDA)
SCL GPIO 5 (SCL)
Aby ułatwić podłączenie czujnika do Pi Zero, wykonano niestandardową przejściówkę za pomocą żeńskiego złącza i przewodów połączeniowych. Termokurczliwy został dodany po przetestowaniu połączeń
Krok 9: Dodaj diodę LED alertu
- Przylutuj rezystor ograniczający prąd do ujemnej nogi LED (krótszej nogi) i dodaj folię termokurczliwą (lub taśmę elektryczną) w celu izolacji.
- Użyj dwóch kabli połączeniowych lub pinów nagłówka, aby podłączyć dodatnią nogę LED do GPIO26, a rezystor do GND (odpowiednio pozycje nagłówka 37 i 39).
- Podłącz akumulator do zasilania wejściowego Pi, aby zakończyć konfigurację!
Krok 10: Zaprogramuj
Kod Pythona dla tego projektu jest open-source! Oto link do repozytorium GitHub.
Dla osób początkujących w programowaniu:
Przeczytaj kod programu i komentarze. Rzeczy, które można łatwo modyfikować, znajdują się w sekcji „Parametry użytkownika” u góry
Dla ludzi wygodniejszych z technicznymi „Deetsami”:
Ten program inicjalizuje akcelerometr LIS331 z ustawieniami domyślnymi, w tym z normalnym trybem zasilania i szybkością transmisji danych 50 Hz. Przeczytaj arkusz danych LIS331 i zmodyfikuj odpowiednio ustawienia inicjalizacji
Wszystko
- Maksymalna skala przyspieszenia zastosowana w tym projekcie to 24G, ponieważ siła uderzenia staje się naprawdę duża!
- Zaleca się zakomentowanie instrukcji drukowania akceleracji w funkcji main, gdy jesteś gotowy do pełnego wdrożenia.
Przed uruchomieniem programu dokładnie sprawdź, czy adres akcelerometru to 0x19. Otwórz okno terminala i zainstaluj kilka pomocnych narzędzi za pomocą tego polecenia:
sudo apt-get install -y i2c-tools
Następnie uruchom program i2cdetect:
i2cdetect -y 1
Zobaczysz tabelę adresów I2C, jak pokazano na powyższym obrazku. Zakładając, że jest to jedyne podłączone urządzenie I2C, liczba, którą widzisz (w tym przypadku: 19) to adres akcelerometru! Jeśli widzisz inny numer, zanotuj i zmień w programie (zmienny adres).
Krok 11: Szybki przegląd programu
Program odczytuje przyspieszenie x, y i z, oblicza siłę g, a następnie zapisuje dane odpowiednio w dwóch plikach (w tym samym folderze co kod programu):
- AllSensorData.txt – podaje znacznik czasu, po którym następuje siła g na osiach x, y i z.
- AlertData.txt – tak samo jak powyżej, ale tylko dla odczytów, które są powyżej naszych progów bezpieczeństwa (bezwzględny próg 9G lub 4G przez ponad 3 sekundy).
Przeciążenia przekraczające nasze progi bezpieczeństwa również włączą naszą diodę ostrzegawczą i utrzymają ją do momentu ponownego uruchomienia programu. Zatrzymaj program, wpisując „CTRL+c” (przerwanie klawiatury) w terminalu poleceń.
Powyższe zdjęcie pokazuje oba pliki danych utworzone podczas testów.
Krok 12: Przetestuj system
Otwórz okno terminala, przejdź do folderu, w którym zapisałeś kod programu za pomocą polecenia cd.
cd ścieżka/do/folder
Uruchom program z uprawnieniami roota:
sudo python NazwaPliku.py
Sprawdź, czy wartości przyspieszenia w kierunku x, y i z są wyświetlane w oknie terminala, są rozsądne i włącz diodę LED, jeśli siła g przekracza nasze progi.
- Aby przeprowadzić test, obróć akcelerometr tak, aby każda oś była skierowana w stronę ziemi i sprawdź, czy zmierzone wartości wynoszą 1 lub -1 (odpowiada przyspieszeniu grawitacyjnemu).
- Potrząsnąć akcelerometrem, aby upewnić się, że odczyty rosną (znak wskazuje kierunek osi, najbardziej interesuje nas wielkość odczytu).
Krok 13: Zabezpiecz połączenia elektryczne i zainstaluj
Gdy wszystko działa poprawnie, upewnijmy się, że monitor siły uderzenia rzeczywiście wytrzyma uderzenie!
- Użyj rurki termokurczliwej i/lub pokryj połączenia elektryczne akcelerometru i diody epoksydowej.
-
W przypadku bardzo trwałych, trwałych instalacji rozważ pokrycie całej powłoki żywicą epoksydową: Pi Zero, diodę LED i akcelerometr (ale NIE złącza kabla Pi ani kartę SD).
Ostrzeżenie! Nadal możesz uzyskać dostęp do Pi i wykonywać wszystkie czynności związane z komputerem, ale pełna warstwa żywicy epoksydowej uniemożliwi użycie pinów GPIO w przyszłych projektach. Alternatywnie możesz wykonać lub kupić niestandardową obudowę dla Pi Zero, ale sprawdź jej trwałość
Przymocuj do kasku, swojej osoby lub środka transportu, takiego jak deskorolka, rower lub kot*!
W pełni sprawdź, czy Pi jest bezpiecznie zamocowane lub piny GPIO mogą się poluzować, powodując awarię programu.
*Uwaga: pierwotnie chciałem wpisać „samochód”, ale pomyślałem, że monitor siły uderzenia dla kota może również dostarczyć interesujących danych (oczywiście za zgodą kotka).
Krok 14: Osadzenie obwodu w kasku
Istnieje kilka metod osadzenia obwodu w kasku. Oto moje podejście do montażu kasku:
- Jeśli jeszcze tego nie zrobiłeś, podłącz baterię do Pi (przy wyłączonej baterii). Przymocuj akcelerometr do tylnej części Pi za pomocą nieprzewodzącej izolacji (takiej jak folia bąbelkowa lub cienka pianka do pakowania).
- Zmierz wymiary kombinacji Pi Zero, akcelerometru, diody LED i złącza akumulatora. Dodaj 10% z każdej strony.
- Narysuj wycięcie na projekt po jednej stronie kasku, ze złączem baterii skierowanym w stronę górnej części kasku. Wytnij wyściółkę w kasku, pozostawiając kilka milimetrów (~ 1/8 cala).
- Umieść czujnik, Pi i diodę LED w wycięciu. Wytnij kawałki nadmiaru wyściółki kasku lub użyj pianki opakowaniowej, aby izolować, chronić i utrzymywać elektronikę na miejscu.
- Zmierz wymiary baterii, dodaj 10% i postępuj zgodnie z tym samym wycięciem dla baterii. Włóż baterię do kieszeni.
- Powtórz technikę izolacji dla baterii po drugiej stronie kasku.
- Przytrzymaj wyściółkę kasku na miejscu taśmą (twoja głowa utrzyma je na miejscu, gdy ją nosisz).
Krok 15: Wdróż
Zasil akumulator!
Teraz możesz zdalnie zalogować się do Pi przez SSH lub zdalny pulpit i uruchomić program za pośrednictwem terminala. Gdy program jest uruchomiony, zaczyna rejestrować dane.
Gdy odłączysz się od domowej sieci Wi-Fi, połączenie SSH zostanie przerwane, ale program nadal powinien rejestrować dane. Rozważ podłączenie Pi do hotspotu Wi-Fi smartfona lub po prostu zaloguj się ponownie i pobierz dane, gdy wrócisz do domu.
Aby uzyskać dostęp do danych, zaloguj się zdalnie do Pi i przeczytaj pliki tekstowe. Aktualny program zawsze doda dane do istniejących plików – jeśli chcesz usunąć dane (jak z testowania), skasuj plik tekstowy (za pomocą pulpitu lub użyj polecenia rm w terminalu) lub utwórz nową nazwę pliku w programie kod (w parametrach użytkownika).
Jeśli dioda się świeci, ponowne uruchomienie programu spowoduje jej wyłączenie.
Teraz idź naprzód, baw się życiem i sprawdzaj dane co jakiś czas, jeśli zdarzy ci się na coś wpaść. Miejmy nadzieję, że to mały guz, ale przynajmniej będziesz wiedział!
Krok 16: Dodawanie kolejnych funkcji
Szukasz ulepszeń w monitorze siły uderzenia? To wykracza poza zakres samouczka, ale spróbuj spojrzeć na poniższą listę pomysłów!
Przeprowadź analizę danych dotyczących siły g w Pythonie!
Pi Zero ma funkcje Bluetooth i Wi-Fi – napisz aplikację do wysyłania danych akcelerometru do smartfona! Aby rozpocząć, oto samouczek dotyczący monitora Pi Twitter.
Dodaj inne czujniki, takie jak czujnik temperatury lub mikrofon*!
Szczęśliwego budynku
*Uwaga: aby usłyszeć świszczące dźwięki związane z przyspieszeniem!:D
Zalecana:
Monitor temperatury basenu MQTT: 7 kroków (ze zdjęciami)
Monitor temperatury basenu MQTT: Ten projekt jest towarzyszem moich innych projektów automatyki domowej Smart Data-Logging Geyser Controller oraz Multi-purpose-Room-Lighting and Appliance Controller. Jest to monitor montowany przy basenie, który mierzy temperaturę wody w basenie, otaczające powietrze
Monitor zbiornika oleju WiFi: 6 kroków (ze zdjęciami)
Monitor zbiornika oleju WiFi: Istnieje kilka sposobów sprawdzenia, ile paliwa pozostało w zbiorniku oleju opałowego. Najprostszym sposobem jest użycie miarki, bardzo dokładnej, ale niezbyt zabawnej w mroźny zimowy dzień. Niektóre zbiorniki są wyposażone w rurkę wziernikową, która ponownie daje bezpośrednie wskazanie
Gra „Space Impact” z czujnikiem żyroskopowym i wyświetlaczem Nokia 5110 LCD: 3 kroki
Gra „Space Impact” z czujnikiem żyroskopowym i wyświetlaczem Nokia 5110 LCD: Po śmierci mojego Tamagotchi (ostatni projekt) zacząłem szukać nowego sposobu na marnowanie czasu. Postanowiłem zaprogramować na Arduino klasyczną grę „Space Impact”. Aby gra była nieco ciekawsza i przyjemniejsza, użyłem czujnika żyroskopowego, który miałem k
Jedi Force: 7 kroków (ze zdjęciami)
Jedi Force: Yoda jest moim mentorem, jest mądry. Nie staram się go naśladować, przynajmniej świadomie (patrz zdjęcia), ale ktoś mnie kiedyś do niego porównał. Ten Lazy Old Geek (L.O.G.) interesuje się falami mózgowymi, ale nawet komercyjne EEG (elektroencefalogram) są ładne
Dowiedz się, jak zrobić przenośny monitor zasilany bateryjnie, który może również zasilać Raspberry Pi: 8 kroków (ze zdjęciami)
Dowiedz się, jak zrobić przenośny monitor zasilany bateryjnie, który może również zasilać Raspberry Pi: Czy kiedykolwiek chciałeś kodować pythona lub mieć wyjście wyświetlacza dla robota Raspberry Pi, w podróży lub potrzebujesz przenośnego dodatkowego wyświetlacza do laptopa czy aparat? W tym projekcie będziemy konstruować przenośny monitor zasilany bateryjnie i