Inhoudsopgave:

Postshirt: realtime draagbare houdingsdetectie - Ajarnpa
Postshirt: realtime draagbare houdingsdetectie - Ajarnpa

Video: Postshirt: realtime draagbare houdingsdetectie - Ajarnpa

Video: Postshirt: realtime draagbare houdingsdetectie - Ajarnpa
Video: Postshirt Device Demo 2024, Juli-
Anonim
Image
Image
Postshirt: realtime draagbare houdingsdetectie
Postshirt: realtime draagbare houdingsdetectie

Postshirt is een realtime draadloos houdingsdetectiesysteem dat versnellingsmetergegevens verzendt en classificeert van een Adafruit Feather naar een Android-applicatie via Bluetooth. Het complete systeem kan realtime detecteren of de gebruiker een slechte houding heeft en maakt een pushmelding wanneer de gebruiker begint te slungelen, de detectie werkt ook tijdens het lopen.

Benodigdheden

Elektronica

1 x Android-smartphone

1 x Adafruit-veer

1 x lithium-ion-polymeerbatterij - 3.7v 100mAh (optioneel voor draadloos gebruik)

2 x ADXL335 drie-assige versnellingsmeter

Materialen

Aansluitdraad

Een rol tape

Stap 1: Installeer de benodigde IDE's en bibliotheken

Adafruit Veer

Installeer eerst de Arduino IDE en volg daarna de stappen om Adafruit nRF51 BLE Library te installeren

Jupyter-notitieboekje

Installeer eerst Jupyter Notebook en daarna de volgende vereiste bibliotheken:

  • https://scikit-learn.org/stable/
  • https://github.com/nok/sklearn-porter

Android

Android Studio installeren

Projectcode

Download alle projectcode van GitHub

Stap 2: Sluit de versnellingsmeters aan op de veer

Sluit de versnellingsmeters aan op de veer
Sluit de versnellingsmeters aan op de veer
Sluit de versnellingsmeters aan op de veer
Sluit de versnellingsmeters aan op de veer

Om gegevens van de ADXL335's te lezen, sluit u de aansluitdraad aan op de Vin-, grond-, Xout-, Yout- en Zout-pinnen. Sluit voor beide versnellingsmeters de andere uiteinden van de Vin-draden aan op de 3V-pin op de Feather en de andere uiteinden van de grondpinnen op de grondpin op de Feather. Verbind de Xout-, Yout- en Zout-draden van de eerste versnellingsmeter met de A0-, A1- en A2-pinnen op de Feather. Sluit de Xout-, Yout- en Zout-draden van de tweede versnellingsmeter aan op de A3-, A4- en A5-pinnen op de Feather.

De versnellingsmeters kunnen op elke manier worden aangesloten, maar het solderen van de draden en het krimpen of wikkelen van elektrische tape rond de verbindingspunten wordt aanbevolen om te voorkomen dat blootgestelde secties met elkaar in contact komen.

Stap 3: Bevestig versnellingsmeters aan het shirt

Bevestig versnellingsmeters aan shirt
Bevestig versnellingsmeters aan shirt

Bevestig de versnellingsmeters met tape aan de achterkant van het shirt. De versnellingsmeter die is aangesloten op pinnen A0-2, moet horizontaal in het midden van de onderrug worden geplaatst. De versnellingsmeter aangesloten op pinnen A3-5 moet horizontaal in het midden van de nek worden geplaatst. Beide versnellingsmeters moeten zo worden uitgelijnd dat de pinnen zich langs de onderkant bevinden en de sensoren moeten plat en stevig tegen het shirt worden geplakt.

Opmerking: voor een meer permanente draagbaarheid kunnen de sensoren op de kleding worden genaaid, maar ze moeten eerst worden vastgeplakt en getest om ervoor te zorgen dat de plaatsing van de sensoren effectief wordt gepositioneerd.

Stap 4: Code uitvoeren op Arduino

Code uitvoeren op Arduino
Code uitvoeren op Arduino

Om te beginnen met het verzamelen van gegevens op de Feather, start u de Arduino IDE en opent u het bestand GestureDataSender onder het Arduino-gedeelte van de projectcode. Open dit bestand en stel het bord en de poort in die wordt gebruikt en selecteer vervolgens "Verifiëren" en "Uploaden" om de code naar de Feather te uploaden.

Stap 5: Code uitvoeren op Android

Code uitvoeren op Android
Code uitvoeren op Android

Om de applicatie op Android uit te voeren, start u eerst Android Studio en selecteert u vervolgens de optie om een bestaand Android-project te openen. Navigeer naar de projectcode en selecteer de map "Android". Android Studio zal enige tijd nodig hebben om de projectbestanden te synchroniseren en kan vragen om enkele vereiste bibliotheken te installeren, accepteer deze opties. Zodra het project klaar is, sluit u het Android-apparaat aan op de computer en selecteert u de optie Uitvoeren bovenaan het venster. Selecteer het apparaat uit de prompt die wordt weergegeven en laat de toepassing vervolgens bouwen naar het apparaat.

Stap 6: Bluetooth-signaalverbinding testen

Bluetooth-signaalverbinding testen
Bluetooth-signaalverbinding testen
Bluetooth-signaalverbinding testen
Bluetooth-signaalverbinding testen
Bluetooth-signaalverbinding testen
Bluetooth-signaalverbinding testen

Als de app eenmaal is geopend, zorg er dan voor dat de Feather is ingeschakeld en selecteer vervolgens de Adafruit Bluefruit LE in de lijst met apparaten die op de telefoon verschijnt. Wacht tot het apparaat verbinding heeft gemaakt, als de verbinding de eerste keer mislukt, probeer dan opnieuw verbinding te maken voordat u andere foutopsporingsstappen uitvoert. Nadat het apparaat is aangesloten, selecteert u de module "Houdingsdetector" die, indien goed werkt, een live-updategrafiek zal weergeven, evenals de huidige voorspellingen van houding en beweging. Om te testen of de Arduino sensorgegevens correct communiceert, verplaatst u de twee versnellingsmeters in willekeurige richtingen en controleert u of alle lijnen op de grafiek veranderen. Als sommige lijnen constant vlak blijven, zorg er dan voor dat de versnellingsmeters goed zijn aangesloten op de Feather. Als alles werkt, trekt u het shirt aan en test u of de houdingsdetectie uw houding correct voorspelt. Gefeliciteerd! Je hebt met succes een wearable voor houdingsdetectie ingesteld. Ga door met deze instructable om te leren hoe u uw eigen dataset kunt maken en uw eigen houdingsdetectie kunt aanpassen.

Stap 7: Uw eigen gegevens verzamelen

Uw eigen gegevens verzamelen
Uw eigen gegevens verzamelen
Uw eigen gegevens verzamelen
Uw eigen gegevens verzamelen

Om uw eigen gegevens te verzamelen, keert u terug naar het moduleselectiescherm en opent u de Data Recorder-module. Nadat dit scherm is geopend, vult u het label in voor de gegevens die u gaat verzamelen; om gemakkelijk op uw gegevens te kunnen trainen, moet u het woord "goed" opnemen in de naam van alle opnames met een goede houding en "slecht" in alle opnames met een houding. Om te beginnen met verzamelen, tikt u op de knop "Gegevens verzamelen" en voert u de beoogde actie uit. Als u klaar bent, tikt u nogmaals op de knop om de gegevens te voltooien en op te slaan. Alle opgenomen gegevens worden opgeslagen in een map met de naam "GestureData" onder de documentenmap van uw bestandssysteem. Wanneer u klaar bent met het opnemen van al uw gegevens, kopieert u de bestanden naar uw computer voor modeltraining.

Stap 8: Uw gegevens trainen op Jupyter Notebook

Uw gegevens trainen op Jupyter Notebook
Uw gegevens trainen op Jupyter Notebook
Uw gegevens trainen op Jupyter Notebook
Uw gegevens trainen op Jupyter Notebook

De initiële projectcode bevat de originele gegevens die voor training worden gebruikt in de map "data" onder het Jupyter Notebook-gedeelte, voor het trainen van uw eigen gegevens verwijdert u alle bestanden in deze map en kopieert u vervolgens uw eigen gegevens naar de map. Voer vervolgens Jupyter Notebook uit en open "PostureDetectorTrainer.ipynb". Deze notebook is ontworpen om automatisch alle bestanden in de gegevensmap te scheiden op goede en slechte houding en vervolgens een lineaire SVM te trainen voor classificatie om het model te trainen. Het kan even duren voordat de notebook is uitgevoerd, maar als deze eenmaal is voltooid, bladert u naar het punt dat de nauwkeurigheid van de houdingsvoorspelling voor het model biedt. Als de nauwkeurigheid laag is, wilt u er misschien voor zorgen dat uw eerdere opnamen nauwkeurige en consistente grondwaarheden zijn. Als de resultaten er goed uitzien, scrolt u naar de volgende cel waar een Java-klasse is gegenereerd. Scrol naar de onderkant van deze cel totdat je een gedeelte ziet dat als parameters is becommentarieerd. Kopieer deze waarden, want je hebt ze in de volgende stap nodig.

Stap 9: Android-applicatie wijzigen met nieuw model

Android-applicatie wijzigen met nieuw model
Android-applicatie wijzigen met nieuw model

Om het model in de Android-applicatie te wijzigen, gebruikt u Android Studio om naar het bestand "PostureDetectorFragment.java" onder de java-sectie van de projectstructuur te navigeren. Scroll in dit bestand naar beneden naar de sectie met commentaar als "Posture classifier", die dezelfde 4 overeenkomstige variabelen zal hebben als de 4 die zijn gegenereerd in Jupyter Notebook. Vervang de waarden van deze 4 variabelen door de waarden die zijn gekopieerd uit de Jupyter Notebook, en zorg ervoor dat de namen van de variabelen niet worden gewijzigd van p_vectors, p_coefficients, enz. Zodra dit is gebeurd, slaat u het bestand op en selecteert u de optie Uitvoeren opnieuw om de toepassing naar uw apparaat. Volg nu dezelfde stappen als voorheen om de Posture Detector-module te openen en u zou de classifier nu moeten zien werken met uw nieuw getrainde model. Als het nog steeds niet goed lijkt te werken, kunt u overwegen meer gegevens vast te leggen en het model opnieuw te maken. Anders gefeliciteerd! Je hebt nu je eigen persoonlijk getrainde classifier geïmporteerd in het Postshirt!

Aanbevolen: