Innholdsfortegnelse:

Raspberry Pi Impact Force Monitor !: 16 trinn (med bilder)
Raspberry Pi Impact Force Monitor !: 16 trinn (med bilder)

Video: Raspberry Pi Impact Force Monitor !: 16 trinn (med bilder)

Video: Raspberry Pi Impact Force Monitor !: 16 trinn (med bilder)
Video: Using BTS7960 BTN8982TA PWM H Bridge motor controller module with Arduino library 2024, November
Anonim
Image
Image
Foreslått lesing
Foreslått lesing

Hvor stor påvirkning kan menneskekroppen håndtere? Enten det er fotball, fjellklatring eller en sykkelulykke, er det utrolig viktig å vite når man skal søke øyeblikkelig legehjelp etter en kollisjon, spesielt hvis det ikke er åpenbare tegn på traumer. Denne opplæringen vil lære deg hvordan du bygger din egen slagkraftmonitor!

Lesetid: ~ 15 min

Byggetid: ~ 60-90 min

Dette åpen kildekode-prosjektet bruker en Raspberry Pi Zero W og et LIS331-akselerometer for å overvåke og varsle brukeren om potensielt farlige G-krefter. Selvfølgelig, gjerne endre og tilpasse systemet for å passe dine ulike innbyggervitenskapelige behov.

Merk: Bygg morsomme ting med Impact Force Monitor! Imidlertid, ikke bruk det som en erstatning for profesjonell medisinsk råd og diagnose. Hvis du føler at du har tatt et alvorlig fall, kan du gå til en kvalifisert og lisensiert profesjonell for riktig behandling.

Trinn 1: Foreslått lesing

For å holde denne opplæringen kort og søt (er, vel, så mye som mulig), antar jeg at du starter med en funksjonell Pi Zero W. Trenger du litt hjelp? Ikke noe problem! Her er en full oppsettopplæring.

Vi vil også koble til Pi eksternt (aka trådløst). For en mer grundig oversikt over denne prosessen, sjekk ut denne opplæringen.

** Fast eller vil du lære mer? Her er noen nyttige ressurser: **

1. Utmerket "Komme i gang" guide for Pi.

2. Full tilkoblingsguide for LIS331 akselerometerutbruddstavle.

3. Mer om akselerometre!

4. Oversikt over Raspberry Pi GPIO -pinnene.

5. Bruke SPI og I2C seriebusser på Pi.

6. LIS331 Dataark

Trinn 2: Materialer

Materialer
Materialer
Materialer
Materialer
  • Raspberry Pi Zero W Basic Kit

    • Dette settet inneholder følgende: SD -kort m/ NOOBS -operativsystem; USB OTG -kabel (microUSB til USB -hunn); Mini HDMI til HDMI; MicroUSB strømforsyning (~ 5V)
    • Anbefales også: USB -hub
  • Raspberry Pi 3 Header Pins
  • LIS331 Accelerometer Breakout Board
  • Batteripakke m/ MicroUSB -kontakt
  • 5 mm rød LED
  • 1k motstand
  • 6 "varmekrympeslange eller elektrisk tape
  • Toppstifter for akselerometer (4-8) og LED (2)
  • Jumper-ledninger til kvinner (6)

Verktøy

  • Loddejern og tilbehør
  • Epoxy (eller annet permanent, ikke-ledende flytende lim)
  • Sannsynligvis også saks:)

Trinn 3: Men vent! Hva er slagkraft?

Heldigvis er begrepet "slagkraft" ganske enkelt: mengden kraft i en påvirkning. Som de fleste ting krever måling av det en mer presis definisjon. Ligningen for slagkraft er:

F = KE/d

hvor F er slagkraften, KE er den kinetiske energien (bevegelsesenergi), og d er slagavstanden, eller hvor mye objektet knaser. Det er to viktige takeaways fra denne ligningen:

1. Slagkraften er direkte proporsjonal med den kinetiske energien, noe som betyr at slagkraften øker hvis den kinetiske energien øker.

2. Slagkraften er omvendt proporsjonal med støteavstanden, noe som betyr at slagkraften avtar hvis støteavstanden øker. (Det er derfor vi har kollisjonsputer: for å øke avstanden til påvirkningen vår.)

Kraft måles vanligvis i Newton (N), men slagkraft kan diskuteres i form av en "G-Force", et tall uttrykt som et multiplum av g, eller jordens gravitasjonsakselerasjon (9,8 m/s^2). Når vi bruker G-kraftenheter, måler vi objektets akselerasjon i forhold til fritt fall mot jorden.

Teknisk sett er g en akselerasjon, ikke en kraft, men den er nyttig når vi snakker om kollisjoner fordi akselerasjon* er det som skader menneskekroppen.

For dette prosjektet bruker vi G-force-enheter for å avgjøre om en påvirkning er potensielt farlig og fortjener legehjelp. Forskning har funnet ut at g-krefter over 9G kan være dødelig for de fleste mennesker (uten spesiell opplæring), og 4-6G kan være farlig hvis de opprettholdes i mer enn noen få sekunder.

Når vi vet dette, kan vi programmere vår effektkraftmonitor for å varsle oss om akselerometeret vårt måler en G-kraft over noen av disse tersklene. Hurra, vitenskap!

For mer informasjon, les om slagkraft og g-kraft på Wikipedia!

Akselerasjon er en endring i hastighet og/eller retning

Trinn 4: Konfigurer Pi Zero W

Konfigurer Pi Zero W
Konfigurer Pi Zero W

Samle din Raspberry Pi Zero og eksterne enheter for å konfigurere Pi til å være hodeløs!

  • Koble Pi til en skjerm og tilhørende eksterne enheter (tastatur, mus), koble til strømforsyningen og logg inn.
  • Oppdater programvare for å holde Pi rask og sikker. Åpne terminalvinduet og skriv inn disse kommandoene:

    Skriv inn og skriv inn:

sudo apt-get oppdatering

Skriv inn og skriv inn:

sudo apt-get oppgradering

Nullstille:

sudo shutdown -r nå

Trinn 5: Aktiver WiFi og I2C

Aktiver WiFi og I2C
Aktiver WiFi og I2C
Aktiver WiFi og I2C
Aktiver WiFi og I2C
Aktiver WiFi og I2C
Aktiver WiFi og I2C
  • Klikk på WiFi -ikonet øverst til høyre på skrivebordet og koble til WiFi -nettverket.
  • I terminalen skriver du denne kommandoen for å hente Pi's Software Configuration Tool:

sudo raspi-config

  • Velg "Grensesnittalternativer", deretter "SSH", og velg "Ja" nederst for å aktivere.
  • Gå tilbake til "Grensesnittalternativer", deretter "I2C", og velg "Ja" for å aktivere.
  • Installer programvaren for tilkobling til eksternt skrivebord på terminalen:

sudo apt-get install xrdp

  • Skriv 'Y' (ja) på tastaturet til begge meldingene.
  • Finn Pi -IP -adressen ved å holde musepekeren over WiFi -tilkoblingen (du vil kanskje også skrive den ned).
  • Endre Pi -passordet med passwd -kommandoen.

Trinn 6: Start Pi på nytt og logg på eksternt

Start Pi på nytt og logg på eksternt
Start Pi på nytt og logg på eksternt

Vi kan nå droppe HDMI og eksterne enheter, woohoo!

  • Sett opp en ekstern skrivebordstilkobling.

    • På en PC, åpne Remote Desktop Connection (eller PuTTY hvis du er fornøyd med det).
    • For Mac/Linux kan du installere dette programmet eller bruke et VNC -program.
  • Skriv inn IP -en for Pi og klikk "Koble til" (Ignorer advarsler om ukjent enhet).
  • Logg deg på Pi ved å bruke legitimasjonen din, og vi går!

Trinn 7: Bygg det: Elektronikk

Bygg det: Elektronikk!
Bygg det: Elektronikk!
Bygg det: Elektronikk!
Bygg det: Elektronikk!

De to bildene ovenfor viser det elektriske skjemaet for dette prosjektet og Pi Zero Pinout. Vi trenger begge for å håndtere maskinvaretilkoblingene.

Merk: LIS331 breakout board i skjematikken er en eldre versjon - bruk pin -etikettene for veiledning

Trinn 8: Koble akselerometeret til Pi's GPIO

Koble akselerometeret til Pi's GPIO
Koble akselerometeret til Pi's GPIO
Koble akselerometeret til Pi's GPIO
Koble akselerometeret til Pi's GPIO
Koble akselerometeret til Pi's GPIO
Koble akselerometeret til Pi's GPIO
  • Lodd og fjern forsiktig eventuelle fluksrester på akselerometeret og Pi GPIOs toppnål.
  • Koble deretter jumperledninger mellom LIS331 breakout -kortet og Pi mellom følgende pinner:

LIS331 Breakout Board Raspberry Pi GPIO Pin

GND GPIO 9 (GND)

VCC GPIO 1 (3.3V)

SDA GPIO 3 (SDA)

SCL GPIO 5 (SCL)

For å gjøre det enklere å koble sensoren til Pi Zero, ble det laget en tilpasset adapter ved hjelp av en kvinnelig topp- og jumperledning. Varmekrymping ble tilsatt etter testing av tilkoblingene

Trinn 9: Legg til en varsel -LED

Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
Legg til en varsel -LED!
  • Lodd en strømbegrensende motstand til det negative LED -benet (kortere ben) og legg til krympevern (eller elektrisk tape) for isolasjon.
  • Bruk to startkabler eller toppnål for å koble det positive LED -beinet til GPIO26 og motstanden til GND (topplasser 37 og 39).
  • Koble batteripakken til Pi -inngangen for å fullføre oppsettet!

Trinn 10: Programmer det

Programmer det!
Programmer det!

Python-koden for dette prosjektet er åpen kildekode! Her er en lenke til GitHub -depotet.

For folk som er nye i programmering:

Les gjennom programkoden og kommentarer. Ting som er enkle å endre er i delen "Brukerparametere" øverst

For folk som er mer komfortable med de tekniske "deets:

Dette programmet initialiserer LIS331 -akselerometeret med standardinnstillinger, inkludert normal strømmodus og 50Hz datahastighet. Les gjennom LIS331 -databladet og endre initialiseringsinnstillingene etter ønske

Alle

  • Den maksimale akselerasjonsskalaen som brukes i dette prosjektet er 24G, fordi slagkraften blir stor raskt!
  • Det anbefales å kommentere akselerasjonsutskriftsuttalelsene i hovedfunksjonen når du er klar for full distribusjon.

Før du kjører programmet, må du dobbeltsjekke at akselerometerets adresse er 0x19. Åpne terminalvinduet og installer noen nyttige verktøy med denne kommandoen:

sudo apt-get install -y i2c-tools

Kjør deretter i2cdetect -programmet:

i2cdetect -y 1

Du vil se en tabell med I2C -adresser som vist på bildet ovenfor. Forutsatt at dette er den eneste I2C -enheten som er tilkoblet, er nummeret du ser (i dette tilfellet: 19) akselerometeradressen! Hvis du ser et annet nummer, må du notere og endre i programmet (variabel addr).

Trinn 11: Rask oversikt over programmet

Rask oversikt over programmet
Rask oversikt over programmet

Programmet leser x-, y- og z-akselerasjonen, beregner en g-kraft og lagrer deretter dataene i to filer (i samme mappe som programkoden) etter behov:

  • AllSensorData.txt-gir et tidsstempel etterfulgt av g-kraften i x-, y- og z-aksene.
  • AlertData.txt - samme som ovenfor, men bare for avlesninger som er over våre sikkerhetsterskler (absolutt terskel på 9G eller 4G i mer enn 3 sekunder).

G-krefter over våre sikkerhetsterskler vil også slå på varsellampen og holde den på til vi starter programmet på nytt. Stopp programmet ved å skrive "CTRL+c" (tastaturavbrudd) i kommandoterminalen.

Bildet ovenfor viser begge datafiler som ble opprettet under testing.

Trinn 12: Test systemet

Test systemet!
Test systemet!
Test systemet!
Test systemet!

Åpne terminalvinduet, naviger til mappen der du lagret programkoden ved hjelp av cd -kommandoen.

cd -bane/til/mappe

Kjør programmet ved hjelp av rotrettigheter:

sudo python NameOfFile.py

Kontroller at akselerasjonsverdiene i x-, y- og z-retningen skrives ut til terminalvinduet, er rimelige, og slå på LED-lyset hvis g-kraften er over tersklene våre.

  • For å teste, roter akselerometeret slik at hver av aksene peker mot jorden og kontroller at måleverdiene enten er 1 eller -1 (tilsvarer akselerasjon på grunn av tyngdekraften).
  • Rist akselerometeret for å sikre at avlesningene øker (tegn indikerer aksens retning, vi er mest interessert i størrelsen på avlesningen).

Trinn 13: Sikre elektriske tilkoblinger og installer den

Sikre elektriske tilkoblinger og installer det!
Sikre elektriske tilkoblinger og installer det!

Når alt fungerer som det skal, må vi sørge for at slagkraftmonitoren faktisk tåler støt!

  • Bruk varmekrympeslange og/eller beleg de elektriske tilkoblingene for akselerometeret og LED -en i epoxy.
  • For super holdbare, permanente installasjoner, bør du vurdere å belegge hele shebangen i epoxy: Pi Zero, LED og akselerometer (men IKKE Pi -kabelkontaktene eller SD -kortet).

    Advarsel! Du kan fortsatt få tilgang til Pi og gjøre alle datamaskinene, men et fullt lag epoxy forhindrer bruk av GPIO -pinnene for fremtidige prosjekter. Alternativt kan du lage eller kjøpe et tilpasset etui til Pi Zero, men sjekk om det er holdbart

Fest til en hjelm, din person eller en transportform som skateboard, sykkel eller katt*!

Test fullt ut at Pi er godt festet eller GPIO -pinnene kan løsne og forårsake at programmet krasjer.

*Merk: Jeg mente opprinnelig å skrive "bil", men tenkte at en kollisjonskontroll for en katt også kunne gi noen interessante data (med kattens samtykke, selvfølgelig).

Trinn 14: Legge inn kretsen i en hjelm

Legge inn kretsen i en hjelm
Legge inn kretsen i en hjelm
Legge inn kretsen i en hjelm
Legge inn kretsen i en hjelm
Legge inn kretsen i en hjelm
Legge inn kretsen i en hjelm

Det er noen metoder for å bygge kretsen inn i en hjelm. Her er min tilnærming til en hjelminstallasjon:

  • Hvis du ikke allerede har det, kobler du batteriet til Pi (med batteriet av). Fest akselerometeret på baksiden av Pi med ikke -ledende isolasjon mellom (som bobleplast eller tynt pakkeskum).
  • Mål dimensjonene til kombinasjonen Pi Zero, akselerometer, LED og batterikontakt. Legg til 10% på hver side.
  • Tegn et utsnitt for prosjektet på den ene siden av hjelmen, med batterikontakten vendt mot toppen av hjelmen. Klipp ut polstringen i hjelmen og la det ligge noen få millimeter (~ 1/8 tommer).
  • Plasser sensoren, Pi og LED i utsnittet. Klipp biter av overflødig hjelmpolstring eller bruk emballasjeskum for å isolere, beskytte og holde elektronikken på plass.
  • Mål batteriets dimensjoner, legg til 10%, og følg den samme utkoblingen for batteriet. Sett batteriet inn i lommen.
  • Gjenta isolasjonsteknikken for batteriet på den andre siden av hjelmen.
  • Hold hjelmen på plass med tape (hodet ditt holder dem på plass når du bruker den).

Trinn 15: Distribuer

Utplassere!
Utplassere!
Utplassere!
Utplassere!

Slå på batteripakken!

Nå kan du eksternt logge på Pi via SSH eller eksternt skrivebord og kjøre programmet via terminalen. Når programmet er i gang, begynner det å registrere data.

Når du kobler fra WiFi -hjemmet ditt, vil SSH -tilkoblingen brytes, men programmet bør fortsatt logge data. Vurder å koble Pi til smarttelefonens hotspot WiFi, eller bare logg inn igjen og ta tak i dataene når du kommer hjem.

For å få tilgang til dataene, logg eksternt på Pi og les tekstfilene. Det gjeldende programmet vil alltid legge til data i de eksisterende filene - hvis du vil slette data (som fra testing), slett tekstfilen (via skrivebordet eller bruk rm -kommandoen i terminalen) eller opprett et nytt filnavn i programmet kode (i brukerparametere).

Hvis LED -lampen lyser, slås det av på nytt ved å starte programmet på nytt.

Gå videre, ha det gøy i livet, og sjekk dataene så ofte hvis du støter på noe. Forhåpentligvis er det en liten bump, men du vet i det minste!

Trinn 16: Legge til flere funksjoner

Legger til flere funksjoner
Legger til flere funksjoner

Leter du etter forbedringer av effektkraftmonitoren? Det er utenfor omfanget av opplæringen, men prøv å se på listen nedenfor for ideer!

Gjør noen analyse av g-force-dataene dine i Python!

Pi Zero har Bluetooth- og WiFi -funksjoner - skriv en app for å sende akselerometerdataene til smarttelefonen din! For å komme i gang, her er en opplæring for en Pi Twitter Monitor.

Legg til andre sensorer, for eksempel en temperatursensor eller en mikrofon*!

Lykke til med bygningen

*Merk: For å høre de hylende lydene som er forbundet med akselerasjonen din!: D

Anbefalt: