Inhoudsopgave:

Raspberry Pi Impact Force Monitor! - Ajarnpa
Raspberry Pi Impact Force Monitor! - Ajarnpa

Video: Raspberry Pi Impact Force Monitor! - Ajarnpa

Video: Raspberry Pi Impact Force Monitor! - Ajarnpa
Video: Make an Impact Force Monitor! 2024, November
Anonim
Image
Image
Voorgestelde lectuur
Voorgestelde lectuur

Hoeveel impact kan het menselijk lichaam aan? Of het nu gaat om voetbal, rotsklimmen of een fietsongeval, weten wanneer u onmiddellijk medische hulp moet inroepen na een aanrijding is ongelooflijk belangrijk, vooral als er geen duidelijke tekenen van trauma zijn. In deze zelfstudie leert u hoe u uw eigen impactkrachtmonitor kunt bouwen!

Leestijd: ~15 min

Bouwtijd: ~60-90 min

Dit open-sourceproject maakt gebruik van een Raspberry Pi Zero W en een LIS331 accelerometer om de gebruiker te monitoren en te waarschuwen voor potentieel gevaarlijke G-krachten. Voel je natuurlijk vrij om het systeem aan te passen en aan te passen aan je verschillende behoeften op het gebied van burgerwetenschap.

Let op: Bouw leuke dingen met de Impact Force Monitor! Gebruik het echter niet als vervanging voor professioneel medisch advies en diagnose. Als je denkt dat je een ernstige val hebt gemaakt, ga dan naar een gekwalificeerde en gediplomeerde professional voor een juiste behandeling.

Stap 1: Voorgestelde lectuur

Om deze tutorial kort en krachtig te houden (eh, nou ja, zoveel mogelijk), neem ik aan dat je begint met een functionele Pi Zero W. Heb je hulp nodig? Geen probleem! Hier is een volledige installatiehandleiding.

We zullen ook op afstand verbinding maken met de Pi (ook wel draadloos genoemd). Bekijk deze tutorial voor een grondiger overzicht van dit proces.

** Vastgelopen of meer willen weten? Hier zijn enkele handige bronnen:**

1. Uitstekende "Aan de slag"-gids voor de Pi.

2. Volledige aansluitingsgids voor de LIS331 versnellingsmeter breakout board.

3. Meer over versnellingsmeters!

4. Overzicht van de Raspberry Pi GPIO-pinnen.

5. Gebruik van de SPI- en I2C-seriële bussen op de Pi.

6. LIS331-gegevensblad

Stap 2: Materialen

Materialen
Materialen
Materialen
Materialen
  • Raspberry Pi Zero W Basiskit

    • Deze kit bevat het volgende: SD-kaart met NOOBS-besturingssysteem; USB OTG-kabel (microUSB naar USB vrouwelijk); Mini-HDMI naar HDMI; MicroUSB-voeding (~ 5V)
    • Ook aanbevolen: USB-hub
  • Raspberry Pi 3 koppennen
  • LIS331 Accelerometer Breakout Board
  • Batterijpakket met MicroUSB-connector
  • 5 mm rode LED
  • 1k Weerstand
  • 6 "krimpkous of elektrische tape
  • Header-pinnen voor versnellingsmeter (4 - 8) en LED (2)
  • Overbruggingsdraden van vrouw naar vrouw (6)

Gereedschap

  • Soldeerbout & toebehoren
  • Epoxy (of andere permanente, niet-geleidende vloeibare lijm)
  • Waarschijnlijk ook een schaar:)

Stap 3: Maar wacht! Wat is slagkracht?

Gelukkig is de term 'botskracht' vrij eenvoudig: de hoeveelheid kracht bij een impact. Zoals de meeste dingen vereist het meten ervan echter een nauwkeurigere definitie. De vergelijking voor slagkracht is:

F = KE/d

waarbij F de impactkracht is, KE de kinetische energie (bewegingsenergie) en d de impactafstand, of hoeveel het object kraakt. Er zijn twee belangrijke afhaalrestaurants uit deze vergelijking:

1. De impactkracht is recht evenredig met de kinetische energie, wat betekent dat de impactkracht toeneemt als de kinetische energie toeneemt.

2. De impactkracht is omgekeerd evenredig met de impactafstand, wat betekent dat de impactkracht afneemt als de impactafstand groter wordt. (Dit is waarom we airbags hebben: om de afstand van onze impact te vergroten.)

Kracht wordt meestal gemeten in Newton (N), maar slagkracht kan worden besproken in termen van een "G-kracht", een getal uitgedrukt als een veelvoud van g, of de zwaartekrachtversnelling van de aarde (9,8 m/s^2). Wanneer we eenheden van G-kracht gebruiken, meten we de versnelling van een object ten opzichte van de vrije val naar de aarde.

Technisch gezien is g een versnelling, geen kracht, maar het is handig als we het over botsingen hebben, omdat versnelling* het menselijk lichaam beschadigt.

Voor dit project zullen we G-force-eenheden gebruiken om te bepalen of een impact potentieel gevaarlijk is en medische aandacht verdient. Onderzoek heeft uitgewezen dat g-krachten boven 9G fataal kunnen zijn voor de meeste mensen (zonder speciale training), en 4-6G kan gevaarlijk zijn als ze langer dan een paar seconden worden aangehouden.

Als we dit weten, kunnen we onze impactkrachtmonitor programmeren om ons te waarschuwen als onze versnellingsmeter een G-kracht meet boven een van deze drempels. Hoera, wetenschap!

Lees voor meer informatie over slagkracht en g-kracht op Wikipedia!

Versnelling is een verandering in snelheid en/of richting

Stap 4: Configureer de Pi Zero W

Configureer de Pi Zero W
Configureer de Pi Zero W

Verzamel je Raspberry Pi Zero en randapparatuur om de Pi te configureren als headless!

  • Sluit de Pi aan op een monitor en bijbehorende randapparatuur (toetsenbord, muis), sluit de voeding aan en log in.
  • Update de software om uw Pi snel en veilig te houden. Open het terminalvenster en typ deze opdrachten:

    Typ en voer in:

sudo apt-get update

Typ en voer in:

sudo apt-get upgrade

Resetten:

sudo shutdown -r nu

Stap 5: Schakel wifi & I2C in

Wifi & I2C inschakelen
Wifi & I2C inschakelen
Wifi & I2C inschakelen
Wifi & I2C inschakelen
Wifi & I2C inschakelen
Wifi & I2C inschakelen
  • Klik op het wifi-pictogram in de rechterbovenhoek van het bureaublad en maak verbinding met je wifi-netwerk.
  • Typ deze opdracht in de terminal om de Pi's Software Configuration Tool te openen:

sudo raspi-config

  • Selecteer "Interfacing-opties", vervolgens "SSH" en kies onderaan "Ja" om in te schakelen.
  • Ga terug naar "Interfacing-opties", vervolgens "I2C" en selecteer "Ja" om in te schakelen.
  • Installeer in de terminal remote desktop-verbindingssoftware:

sudo apt-get install xrdp

  • Typ 'Y' (ja) op uw toetsenbord bij beide prompts.
  • Zoek het IP-adres van de Pi door met de muis over de wifi-verbinding te gaan (u kunt het ook opschrijven).
  • Wijzig het wachtwoord van de Pi met de opdracht passwd.

Stap 6: Start de Pi opnieuw op en log op afstand in

Start de Pi opnieuw op en log op afstand in
Start de Pi opnieuw op en log op afstand in

We kunnen nu de HDMI en randapparatuur dumpen, woohoo!

  • Stel een externe desktopverbinding in.

    • Open op een pc Remote Desktop Connection (of PuTTY als je dat prettig vindt).
    • Voor Mac/Linux kunt u dit programma installeren of een VNC-programma gebruiken.
  • Voer het IP-adres voor de Pi in en klik op "Verbinden" (Negeer waarschuwingen over onbekend apparaat).
  • Log in op de Pi met uw inloggegevens en daar gaan we!

Stap 7: Bouw het: elektronica

Bouw het: elektronica!
Bouw het: elektronica!
Bouw het: elektronica!
Bouw het: elektronica!

De twee foto's hierboven tonen het elektrische schema voor dit project en de Pi Zero Pinout. We hebben beide nodig om de hardwareverbindingen aan te pakken.

Opmerking: het LIS331 breakout-bord in het schema is een oudere versie - gebruik de pinlabels als richtlijn

Stap 8: Sluit de versnellingsmeter aan op de GPIO van de Pi

Sluit de versnellingsmeter aan op de GPIO van de Pi
Sluit de versnellingsmeter aan op de GPIO van de Pi
Sluit de versnellingsmeter aan op de GPIO van de Pi
Sluit de versnellingsmeter aan op de GPIO van de Pi
Sluit de versnellingsmeter aan op de GPIO van de Pi
Sluit de versnellingsmeter aan op de GPIO van de Pi
  • Soldeer en verwijder voorzichtig alle fluxresten op de accelerometer en Pi GPIO's header-pinnen.
  • Verbind vervolgens de jumperdraden tussen de LIS331 breakout-kaart en Pi tussen de volgende pinnen:

LIS331 Breakout Board Raspberry Pi GPIO-pin

GND GPIO 9 (GND)

VCC GPIO 1 (3,3 V)

SDA GPIO 3 (SDA)

SCL GPIO 5 (SCL)

Om het gemakkelijker te maken om de sensor op de Pi Zero aan te sluiten, is een aangepaste adapter gemaakt met behulp van een vrouwelijke header en jumperdraden. Na het testen van de verbindingen is er krimpkous toegevoegd

Stap 9: Voeg een waarschuwings-LED toe

Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
Voeg een waarschuwings-LED toe!
  • Soldeer een stroombegrenzende weerstand aan de negatieve LED-poot (kortere poot) en voeg krimpfolie (of isolatietape) toe voor isolatie.
  • Gebruik twee startkabels of header-pinnen om de positieve led-poot aan te sluiten op GPIO26 en de weerstand op GND (respectievelijk header-posities 37 en 39).
  • Sluit het batterijpakket aan op de ingangsstroom van de Pi om de installatie te voltooien!

Stap 10: Programmeer het

Programmeer het!
Programmeer het!

De Python-code voor dit project is open-source! Hier is een link naar de GitHub-repository.

Voor mensen die nieuw zijn in programmeren:

Lees de programmacode en opmerkingen door. Dingen die gemakkelijk te wijzigen zijn, staan in het gedeelte "Gebruikersparameters" bovenaan

Voor mensen comfortabeler met de technische 'Deets:

Dit programma initialiseert de LIS331 accelerometer met standaardinstellingen, inclusief normale energiemodus en 50Hz datasnelheid. Lees het LIS331-gegevensblad door en pas de initialisatie-instellingen naar wens aan

Alle

  • De maximale versnellingsschaal die in dit project wordt gebruikt, is 24G, omdat de impactkracht heel snel groot wordt!
  • Het wordt aanbevolen om de acceleratie-afdrukinstructies in de hoofdfunctie uit te commentaaren wanneer u klaar bent voor volledige implementatie.

Controleer voordat u het programma uitvoert of het adres van de versnellingsmeter 0x19 is. Open het terminalvenster en installeer enkele handige tools met deze opdracht:

sudo apt-get install -y i2c-tools

Voer vervolgens het i2cdetect-programma uit:

i2cdetect -y 1

U ziet een tabel met I2C-adressen zoals weergegeven in de afbeelding hierboven. Ervan uitgaande dat dit het enige I2C-apparaat is dat is aangesloten, is het nummer dat u ziet (in dit geval: 19) het adres van de versnellingsmeter! Als je een ander nummer ziet, noteer het dan en wijzig het in het programma (variabel adres).

Stap 11: Snel overzicht van programma

Snel overzicht van programma
Snel overzicht van programma

Het programma leest de x-, y- en z-versnelling, berekent een g-kracht en slaat de gegevens vervolgens op in twee bestanden (in dezelfde map als de programmacode) zoals van toepassing:

  • AllSensorData.txt – geeft een tijdstempel gevolgd door de g-kracht in de x-, y- en z-assen.
  • AlertData.txt – hetzelfde als hierboven, maar alleen voor metingen die boven onze veiligheidsdrempels liggen (absolute drempel van 9G of 4G gedurende meer dan 3 seconden).

G-krachten boven onze veiligheidsdrempels schakelen ook onze waarschuwings-LED in en houden deze aan totdat we het programma opnieuw starten. Stop het programma door "CTRL+c" (toetsenbordonderbreking) in de opdrachtterminal te typen.

De bovenstaande foto toont beide gegevensbestanden die tijdens het testen zijn gemaakt.

Stap 12: Test het systeem

Test het systeem!
Test het systeem!
Test het systeem!
Test het systeem!

Open het terminalvenster, navigeer met het cd-commando naar de map waar u de programmacode hebt opgeslagen.

cd pad/naar/map

Voer het programma uit met rootrechten:

sudo python NameOfFile.py

Controleer of de versnellingswaarden in de x-, y- en z-richting naar het terminalvenster worden afgedrukt, redelijk zijn en schakel het LED-lampje in als de g-kracht boven onze drempels ligt.

  • Om te testen, draait u de versnellingsmeter zo dat beide assen naar de aarde wijzen en controleert u of de gemeten waarden 1 of -1 zijn (komt overeen met versnelling als gevolg van de zwaartekracht).
  • Schud de versnellingsmeter om ervoor te zorgen dat de meetwaarden toenemen (teken geeft de richting van de as aan, we zijn het meest geïnteresseerd in de grootte van de meetwaarde).

Stap 13: Beveilig elektrische verbindingen en installeer het

Beveilig elektrische verbindingen en installeer het!
Beveilig elektrische verbindingen en installeer het!

Zodra alles correct werkt, gaan we ervoor zorgen dat de impactkrachtmonitor de impact daadwerkelijk kan weerstaan!

  • Gebruik een krimpkous en/of smeer de elektrische aansluitingen voor de accelerometer en LED in met epoxy.
  • Voor super duurzame, permanente installaties, overweeg dan om de hele klootzak in epoxy te coaten: de Pi Zero, de LED en de versnellingsmeter (maar NIET de Pi-kabelconnectoren of de SD-kaart).

    Waarschuwing! Je kunt nog steeds toegang krijgen tot de Pi en alle computerdingen doen, maar een volledige laag epoxy zal het gebruik van de GPIO-pinnen voor toekomstige projecten voorkomen. Als alternatief kunt u een aangepaste hoes voor de Pi Zero maken of kopen, hoewel u de duurzaamheid controleert

Zet vast aan een helm, je persoon of een vervoermiddel zoals je skateboard, fiets of kat*!

Test volledig of de Pi stevig vastzit, anders kunnen de GPIO-pinnen losraken waardoor het programma vastloopt.

*Opmerking: ik wilde oorspronkelijk "auto" typen, maar dacht dat een impactkrachtmonitor voor een kat ook interessante gegevens zou kunnen opleveren (uiteraard met toestemming van de kat).

Stap 14: Het circuit insluiten in een helm

Het circuit insluiten in een helm
Het circuit insluiten in een helm
Het circuit insluiten in een helm
Het circuit insluiten in een helm
Het circuit insluiten in een helm
Het circuit insluiten in een helm

Er zijn een paar methoden om het circuit in een helm in te bedden. Dit is mijn benadering van een helminstallatie:

  • Als je dat nog niet hebt gedaan, sluit je de batterij aan op Pi (met de batterij uit). Bevestig de versnellingsmeter aan de achterkant van de Pi met niet-geleidende isolatie ertussen (zoals noppenfolie of dun verpakkingsschuim).
  • Meet de afmetingen van de combinatie van Pi Zero, versnellingsmeter, LED en batterijconnector. Voeg aan beide kanten 10% toe.
  • Teken een uitsparing voor het project aan één kant van de helm, met de batterijconnector naar de bovenkant van de helm gericht. Knip de vulling in de helm uit en laat een paar millimeter over (~ 1/8 in.).
  • Plaats de sensor, Pi en LED in de uitsparing. Knip stukjes van de overtollige helmvulling af of gebruik verpakkingsschuim om de elektronica te isoleren, te beschermen en op zijn plaats te houden.
  • Meet de afmetingen van de batterij, voeg 10% toe en volg dezelfde uitsparing voor de batterij. Plaats de batterij in de zak.
  • Herhaal de isolatietechniek voor de batterij aan de andere kant van de helm.
  • Houd de helmvulling op zijn plaats met tape (je hoofd houdt ze op hun plaats als je hem draagt).

Stap 15: implementeren

Aanwenden!
Aanwenden!
Aanwenden!
Aanwenden!

Zet het batterijpakket aan!

Nu kunt u op afstand inloggen op de Pi via SSH of extern bureaublad en het programma uitvoeren via de terminal. Zodra het programma draait, begint het met het opnemen van gegevens.

Wanneer u de verbinding met uw wifi thuis verbreekt, wordt de SSH-verbinding verbroken, maar het programma moet nog steeds gegevens loggen. Overweeg om de Pi te verbinden met de wifi-hotspot van je smartphone, of log gewoon weer in en pak de gegevens wanneer je thuiskomt.

Om toegang te krijgen tot de gegevens, logt u op afstand in op de Pi en leest u de tekstbestanden. Het huidige programma voegt altijd gegevens toe aan de bestaande bestanden - als u gegevens wilt verwijderen (zoals van testen), het tekstbestand wilt verwijderen (via het bureaublad of het rm-commando in de terminal) of een nieuwe bestandsnaam in het programma wilt maken code (in gebruikersparameters).

Als de LED brandt, zal het opnieuw opstarten van het programma het uitschakelen.

Ga nu verder, heb plezier in het leven en controleer de gegevens zo nu en dan als je ergens tegenaan loopt. Hopelijk is het een kleine hobbel, maar je weet het tenminste!

Stap 16: Meer functies toevoegen

Meer functies toevoegen
Meer functies toevoegen

Op zoek naar verbeteringen aan de impact force monitor? Het valt buiten het bestek van de tutorial, maar kijk eens naar de onderstaande lijst voor ideeën!

Doe wat analyse van uw g-force-gegevens in Python!

De Pi Zero heeft Bluetooth- en WiFi-mogelijkheden - schrijf een app om de versnellingsmetergegevens naar uw smartphone te verzenden! Om u op weg te helpen, volgt hier een tutorial voor een Pi Twitter Monitor.

Voeg andere sensoren toe, zoals een temperatuursensor of een microfoon*!

Gelukkig gebouw

*Opmerking: om de suizende geluiden te horen die horen bij uw acceleratie!:NS

Aanbevolen: