Spisu treści:

Raspberry Pi Impact Force Monitor!: 16 kroków (ze zdjęciami)
Raspberry Pi Impact Force Monitor!: 16 kroków (ze zdjęciami)

Wideo: Raspberry Pi Impact Force Monitor!: 16 kroków (ze zdjęciami)

Wideo: Raspberry Pi Impact Force Monitor!: 16 kroków (ze zdjęciami)
Wideo: Syn mówi, że z komputerem coś nie tak 🤔 2024, Lipiec
Anonim
Image
Image
Sugerowane czytanie
Sugerowane czytanie

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

Materiały
Materiały
Materiały
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

Skonfiguruj Pi Zero W
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

Włącz Wi-Fi i I2C
Włącz Wi-Fi i I2C
Włącz Wi-Fi i I2C
Włącz Wi-Fi i I2C
Włącz Wi-Fi i I2C
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

Uruchom ponownie Pi i zaloguj się zdalnie
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

Zbuduj to: elektronika!
Zbuduj to: elektronika!
Zbuduj to: elektronika!
Zbuduj to: 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

Podłącz akcelerometr do GPIO Pi
Podłącz akcelerometr do GPIO Pi
Podłącz akcelerometr do GPIO Pi
Podłącz akcelerometr do GPIO Pi
Podłącz akcelerometr do GPIO Pi
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

Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
Dodaj alarmową diodę LED!
  • 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

Zaprogramuj to!
Zaprogramuj to!

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

Szybki przegląd programu
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

Przetestuj system!
Przetestuj system!
Przetestuj system!
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

Bezpieczne połączenia elektryczne i instalacja!
Bezpieczne połączenia elektryczne i instalacja!

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

Umieszczanie obwodu w kasku
Umieszczanie obwodu w kasku
Umieszczanie obwodu w kasku
Umieszczanie obwodu w kasku
Umieszczanie obwodu w kasku
Umieszczanie 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óż

Wdrożyć!
Wdrożyć!
Wdrożyć!
Wdrożyć!

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

Dodawanie kolejnych funkcji
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: