Inhoudsopgave:
- Benodigdheden
- Stap 1: Installeer de benodigde IDE's en bibliotheken
- Stap 2: Sluit de versnellingsmeters aan op de veer
- Stap 3: Bevestig versnellingsmeters aan het shirt
- Stap 4: Code uitvoeren op Arduino
- Stap 5: Code uitvoeren op Android
- Stap 6: Bluetooth-signaalverbinding testen
- Stap 7: Uw eigen gegevens verzamelen
- Stap 8: Uw gegevens trainen op Jupyter Notebook
- Stap 9: Android-applicatie wijzigen met nieuw model
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
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
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 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
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
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
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
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
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
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!