Table des matières:

Moniteur de force d'impact Raspberry Pi ! : 16 étapes (avec photos)
Moniteur de force d'impact Raspberry Pi ! : 16 étapes (avec photos)

Vidéo: Moniteur de force d'impact Raspberry Pi ! : 16 étapes (avec photos)

Vidéo: Moniteur de force d'impact Raspberry Pi ! : 16 étapes (avec photos)
Vidéo: doubling the drop every time the PC survives #shorts 2024, Novembre
Anonim
Image
Image
Lecture suggérée
Lecture suggérée

Quel impact le corps humain peut-il supporter ? Qu'il s'agisse de football, d'escalade ou d'un accident de vélo, il est extrêmement important de savoir quand consulter immédiatement un médecin après une collision, surtout s'il n'y a aucun signe évident de traumatisme. Ce tutoriel va vous apprendre à construire votre propre moniteur de force d'impact !

Temps de lecture: ~15 minutes

Temps de construction: ~60-90 minutes

Ce projet open source utilise un Raspberry Pi Zero W et un accéléromètre LIS331 pour surveiller et alerter l'utilisateur des forces G potentiellement dangereuses. Bien sûr, n'hésitez pas à modifier et adapter le système pour répondre à vos divers besoins en science citoyenne.

Remarque: Créez des objets amusants avec Impact Force Monitor ! Cependant, veuillez ne pas l'utiliser comme un substitut à un avis médical professionnel et à un diagnostic. Si vous pensez avoir fait une chute grave, veuillez consulter un professionnel qualifié et agréé pour un traitement approprié.

Étape 1: Suggestion de lecture

Pour garder ce tutoriel court et doux (euh, eh bien, autant que possible), je suppose que vous commencez avec un Pi Zero W fonctionnel. Besoin d'aide? Aucun problème! Voici un tutoriel d'installation complet.

Nous nous connecterons également au Pi à distance (c'est-à-dire sans fil). Pour un aperçu plus complet de ce processus, consultez ce didacticiel.

** Coincé ou envie d'en savoir plus ? Voici quelques ressources pratiques:**

1. Excellent guide de démarrage pour le Pi.

2. Guide de connexion complet pour la carte de dérivation de l'accéléromètre LIS331.

3. En savoir plus sur les accéléromètres !

4. Présentation des broches GPIO du Raspberry Pi.

5. Utilisation des bus série SPI et I2C sur le Pi.

6. Fiche technique LIS331

Étape 2: Matériaux

Matériaux
Matériaux
Matériaux
Matériaux
  • Kit de base Raspberry Pi Zero W

    • Ce kit comprend les éléments suivants: Carte SD avec système d'exploitation NOOBS; Câble USB OTG (microUSB vers USB femelle); Mini HDMI vers HDMI; Alimentation microUSB (~ 5V)
    • Également recommandé: concentrateur USB
  • Raspberry Pi 3 broches d'en-tête

  • Carte de dérivation d'accéléromètre LIS331
  • Batterie avec connecteur MicroUSB
  • LED rouge 5 mm
  • Résistance 1k
  • Tube thermorétractable de 6" ou ruban électrique
  • Broches d'en-tête pour accéléromètre (4 - 8) et LED (2)
  • Cavaliers femelle-femelle(6)

Outils

  • Fer à souder et accessoires
  • Époxy (ou autre adhésif liquide permanent non conducteur)
  • Probablement aussi des ciseaux:)

Étape 3: Mais attendez ! Qu'est-ce que la force d'impact ?

Heureusement, le terme « force d'impact » est assez simple: la quantité de force dans un impact. Comme la plupart des choses cependant, la mesurer nécessite une définition plus précise. L'équation de la force d'impact est:

F = KE/d

où F est la force d'impact, KE est l'énergie cinétique (énergie de mouvement) et d est la distance d'impact, ou combien l'objet craque. Il y a deux points clés à retenir de cette équation:

1. La force d'impact est directement proportionnelle à l'énergie cinétique, ce qui signifie que la force d'impact augmente si l'énergie cinétique augmente.

2. La force d'impact est inversement proportionnelle à la distance d'impact, ce qui signifie que la force d'impact diminue si la distance d'impact augmente. (C'est pourquoi nous avons des airbags: pour augmenter la distance de notre impact.)

La force est généralement mesurée en Newtons (N), mais la force d'impact peut être discutée en termes de "G-Force", un nombre exprimé en multiple de g, ou l'accélération gravitationnelle de la Terre (9,8 m/s^2). Lorsque nous utilisons des unités de force G, nous mesurons l'accélération d'un objet par rapport à la chute libre vers la terre.

Techniquement parlant, g est une accélération, pas une force, mais c'est utile quand on parle de collisions car l'accélération* est ce qui endommage le corps humain.

Pour ce projet, nous utiliserons des unités de force G pour déterminer si un impact est potentiellement dangereux et mérite une attention médicale. Des recherches ont montré que les forces g supérieures à 9G peuvent être mortelles pour la plupart des humains (sans formation spéciale) et que 4-6G peuvent être dangereux s'ils sont maintenus pendant plus de quelques secondes.

Sachant cela, nous pouvons programmer notre moniteur de force d'impact pour nous alerter si notre accéléromètre mesure une force G supérieure à l'un de ces seuils. Hourra, science!

Pour plus d'informations, lisez sur la force d'impact et la force g sur Wikipedia !

L'accélération est un changement de vitesse et/ou de direction

Étape 4: Configurer le Pi Zero W

Configurer le Pi Zero W
Configurer le Pi Zero W

Rassemblez votre Raspberry Pi Zero et vos périphériques pour configurer le Pi sans tête !

  • Connectez le Pi à un moniteur et aux périphériques associés (clavier, souris), branchez l'alimentation et connectez-vous.
  • Mettez à jour le logiciel pour garder votre Pi rapide et sécurisé. Ouvrez la fenêtre du terminal et tapez ces commandes:

    Tapez et entrez:

sudo apt-get mise à jour

Tapez et entrez:

sudo apt-get mise à niveau

Réinitialiser:

sudo shutdown -r maintenant

Étape 5: Activer le WiFi et I2C

Activer le WiFi et I2C
Activer le WiFi et I2C
Activer le Wi-Fi et I2C
Activer le Wi-Fi et I2C
Activer le WiFi et I2C
Activer le WiFi et I2C
  • Cliquez sur l'icône WiFi dans le coin supérieur droit du bureau et connectez-vous à votre réseau WiFi.
  • Dans le terminal, tapez cette commande pour afficher l'outil de configuration logicielle du Pi:

sudo raspi-config

  • Sélectionnez "Options d'interfaçage", puis "SSH", et choisissez "Oui" en bas pour activer.
  • Retournez dans "Options d'interfaçage", puis "I2C", et sélectionnez "Oui" pour l'activer.
  • Dans le terminal, installez le logiciel de connexion au bureau à distance:

sudo apt-get install xrdp

  • Tapez « Y » (oui) sur votre clavier aux deux invites.
  • Trouvez l'adresse IP du Pi en survolant la connexion WiFi (vous pouvez également l'écrire).
  • Changez le mot de passe du Pi avec la commande passwd.

Étape 6: Redémarrez le Pi et connectez-vous à distance

Redémarrez le Pi et connectez-vous à distance
Redémarrez le Pi et connectez-vous à distance

Nous pouvons maintenant abandonner le HDMI et les périphériques, woohoo !

  • Configurez une connexion de bureau à distance.

    • Sur un PC, ouvrez Remote Desktop Connection (ou PuTTY si cela vous convient).
    • Pour Mac/Linux, vous pouvez installer ce programme ou utiliser un programme VNC.
  • Entrez l'adresse IP du Pi et cliquez sur « Connecter » (ignorez les avertissements concernant un périphérique inconnu).
  • Connectez-vous au Pi en utilisant vos informations d'identification et c'est parti !

Étape 7: Construisez-le: l'électronique

Construisez-le: Électronique !
Construisez-le: Électronique !
Construisez-le: électronique !
Construisez-le: électronique !

Les deux photos ci-dessus montrent le schéma électrique de ce projet et le Pi Zero Pinout. Nous aurons besoin des deux pour nous attaquer aux connexions matérielles.

Remarque: la carte de dérivation LIS331 dans le schéma est une version plus ancienne -- utilisez les étiquettes des broches pour vous guider

Étape 8: connectez l'accéléromètre au GPIO du Pi

Connectez l'accéléromètre au GPIO du Pi
Connectez l'accéléromètre au GPIO du Pi
Connectez l'accéléromètre au GPIO du Pi
Connectez l'accéléromètre au GPIO du Pi
Connectez l'accéléromètre au GPIO du Pi
Connectez l'accéléromètre au GPIO du Pi
  • Soudez et retirez soigneusement tout résidu de flux sur l'accéléromètre et les broches d'en-tête du Pi GPIO.
  • Connectez ensuite les cavaliers entre la carte de dérivation LIS331 et Pi entre les broches suivantes:

Broche GPIO Raspberry Pi pour carte de dérivation LIS331

GND GPIO 9 (GND)

VCC GPIO 1 (3,3 V)

SDA GPIO 3 (SDA)

SCL GPIO 5 (SCL)

Pour faciliter la connexion du capteur au Pi Zero, un adaptateur personnalisé a été fabriqué à l'aide d'un connecteur femelle et de câbles de raccordement. Un thermorétractable a été ajouté après avoir testé les connexions

Étape 9: Ajoutez une LED d'alerte

Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
Ajoutez une LED d'alerte !
  • Soudez une résistance de limitation de courant à la patte négative de la LED (jambe plus courte) et ajoutez une pellicule rétractable (ou du ruban électrique) pour l'isolation.
  • Utilisez deux câbles de démarrage ou des broches d'en-tête pour connecter la branche LED positive à GPIO26 et la résistance à GND (positions d'en-tête 37 et 39, respectivement).
  • Connectez la batterie à l'alimentation d'entrée du Pi pour terminer la configuration !

Étape 10: Programmez-le

Programmez-le !
Programmez-le !

Le code Python de ce projet est open-source ! Voici un lien vers le référentiel GitHub.

Pour les débutants en programmation:

Lisez le code du programme et les commentaires. Les éléments faciles à modifier se trouvent dans la section « Paramètres utilisateur » en haut

Pour les personnes plus à l'aise avec les détails techniques:

Ce programme initialise l'accéléromètre LIS331 avec les paramètres par défaut, y compris le mode d'alimentation normal et le débit de données de 50 Hz. Lisez la fiche technique LIS331 et modifiez les paramètres d'initialisation comme vous le souhaitez

Tous

  • L'échelle d'accélération maximale utilisée dans ce projet est de 24G, car la force d'impact devient très rapide !
  • Il est recommandé de commenter les instructions d'impression d'accélération dans la fonction principale lorsque vous êtes prêt pour un déploiement complet.

Avant d'exécuter le programme, vérifiez que l'adresse de l'accéléromètre est 0x19. Ouvrez la fenêtre du terminal et installez des outils utiles avec cette commande:

sudo apt-get install -y i2c-tools

Exécutez ensuite le programme i2cdetect:

i2cdetect -y 1

Vous verrez un tableau des adresses I2C affiché comme indiqué dans l'image ci-dessus. En supposant qu'il s'agisse du seul périphérique I2C connecté, le nombre que vous voyez (dans ce cas: 19) est l'adresse de l'accéléromètre ! Si vous voyez un numéro différent, notez-le et modifiez-le dans le programme (adr variable).

Étape 11: Présentation rapide du programme

Aperçu rapide du programme
Aperçu rapide du programme

Le programme lit les accélérations x, y et z, calcule une force g, puis enregistre les données dans deux fichiers (dans le même dossier que le code du programme) selon le cas:

  • AllSensorData.txt - donne un horodatage suivi de la force g dans les axes x, y et z.
  • AlertData.txt – comme ci-dessus mais uniquement pour les lectures supérieures à nos seuils de sécurité (seuil absolu de 9G ou 4G pendant plus de 3 secondes).

Les forces G au-dessus de nos seuils de sécurité allumeront également notre LED d'alerte et la maintiendront allumée jusqu'à ce que nous redémarrions le programme. Arrêtez le programme en tapant "CTRL+c" (interruption clavier) dans le terminal de commande.

La photo ci-dessus montre les deux fichiers de données créés pendant les tests.

Étape 12: Testez le système

Testez le système !
Testez le système !
Testez le système !
Testez le système !

Ouvrez la fenêtre du terminal, accédez au dossier dans lequel vous avez enregistré le code du programme à l'aide de la commande cd.

chemin/vers/dossier du cd

Exécutez le programme en utilisant les privilèges root:

sudo python NameOfFile.py

Vérifiez que les valeurs d'accélération dans les directions x, y et z s'impriment dans la fenêtre du terminal, sont raisonnables et allumez la lumière LED si la force g est supérieure à nos seuils.

  • Pour tester, faites tourner l'accéléromètre de façon à ce que chaque axe pointe vers la terre et vérifiez que les valeurs mesurées sont soit 1 soit -1 (correspond à l'accélération due à la pesanteur).
  • Secouez l'accéléromètre pour vous assurer que les lectures augmentent (le signe indique la direction de l'axe, nous sommes plus intéressés par l'amplitude de la lecture).

Étape 13: Sécurisez les connexions électriques et installez-les

Sécurisez les connexions électriques et installez-le !
Sécurisez les connexions électriques et installez-le !

Une fois que tout fonctionne correctement, assurons-nous que le moniteur de force d'impact peut réellement résister à l'impact !

  • Utilisez un tube thermorétractable et/ou enduisez les connexions électriques de l'accéléromètre et de la LED d'époxy.
  • Pour des installations super durables et permanentes, envisagez de recouvrir l'ensemble du shebang d'époxy: le Pi Zero, la LED et l'accéléromètre (mais PAS les connecteurs de câble Pi ou la carte SD).

    Avertissement! Vous pouvez toujours accéder au Pi et faire toutes les tâches informatiques, mais une couche complète d'époxy empêchera l'utilisation des broches GPIO pour les projets futurs. Alternativement, vous pouvez fabriquer ou acheter un étui personnalisé pour le Pi Zero, bien que vérifier la durabilité

Fixez-le à un casque, à votre personne ou à un mode de transport comme votre planche à roulettes, votre vélo ou votre chat* !

Testez complètement que le Pi est solidement fixé ou que les broches GPIO peuvent se desserrer et provoquer le plantage du programme.

*Remarque: à l'origine, je voulais taper "voiture", mais j'ai pensé qu'un moniteur de force d'impact pour un chat pourrait également fournir des données intéressantes (avec le consentement de Kitty, bien sûr).

Étape 14: Intégrer le circuit dans un casque

Intégrer le circuit dans un casque
Intégrer le circuit dans un casque
Intégrer le circuit dans un casque
Intégrer le circuit dans un casque
Intégrer le circuit dans un casque
Intégrer le circuit dans un casque

Il existe plusieurs méthodes pour intégrer le circuit dans un casque. Voici mon approche pour l'installation d'un casque:

  • Si vous ne l'avez pas déjà fait, connectez la batterie au Pi (avec la batterie éteinte). Fixez l'accéléromètre à l'arrière du Pi avec une isolation non conductrice entre les deux (comme du papier bulle ou de la mousse d'emballage mince).
  • Mesurez les dimensions de la combinaison Pi Zero, accéléromètre, LED et connecteur de batterie. Ajouter 10% de chaque côté.
  • Dessinez une découpe pour le projet sur un côté du casque, avec le connecteur de la batterie orienté vers le haut du casque. Découpez le rembourrage dans le casque en laissant quelques millimètres (~ 1/8 po).
  • Placez le capteur, le Pi et la LED dans la découpe. Coupez des morceaux de l'excès de rembourrage du casque ou utilisez de la mousse d'emballage pour isoler, protéger et maintenir l'électronique en place.
  • Mesurez les dimensions de la batterie, ajoutez 10 % et suivez la même découpe pour la batterie. Insérez la batterie dans la poche.
  • Répétez la technique d'isolation de la batterie de l'autre côté du casque.
  • Maintenez le rembourrage du casque en place avec du ruban adhésif (votre tête le maintiendra en place lorsque vous le porterez).

Étape 15: Déployez

Déployer!
Déployer!
Déployer!
Déployer!

Mettez la batterie sous tension !

Vous pouvez maintenant vous connecter à distance au Pi via SSH ou un bureau à distance et exécuter le programme via le terminal. Une fois que le programme est en cours d'exécution, il commence à enregistrer les données.

Lorsque vous vous déconnectez de votre réseau Wi-Fi domestique, la connexion SSH est interrompue, mais le programme doit toujours enregistrer les données. Pensez à connecter le Pi au point d'accès Wi-Fi de votre smartphone, ou reconnectez-vous simplement et récupérez les données lorsque vous rentrez chez vous.

Pour accéder aux données, connectez-vous à distance au Pi et lisez les fichiers texte. Le programme actuel ajoutera toujours des données aux fichiers existants - si vous souhaitez supprimer des données (comme des tests), supprimez le fichier texte (via le bureau ou utilisez la commande rm dans le terminal) ou créez un nouveau nom de fichier dans le programme code (dans les paramètres utilisateur).

Si la LED est allumée, le redémarrage du programme l'éteindra.

Maintenant, allez-y, amusez-vous dans la vie et vérifiez les données de temps en temps si vous tombez sur quelque chose. J'espère que c'est une petite bosse mais au moins vous le saurez !

Étape 16: ajouter plus de fonctionnalités

Ajout de fonctionnalités supplémentaires
Ajout de fonctionnalités supplémentaires

Vous cherchez des améliorations au moniteur de force d'impact ? Cela dépasse le cadre du didacticiel, mais essayez de consulter la liste ci-dessous pour trouver des idées !

Faites des analyses sur vos données g-force en Python !

Le Pi Zero a des capacités Bluetooth et WiFi - écrivez une application pour envoyer les données de l'accéléromètre à votre smartphone ! Pour vous aider à démarrer, voici un tutoriel pour un Pi Twitter Monitor.

Ajoutez d'autres capteurs, comme un capteur de température ou un microphone* !

Bonne construction

*Remarque: Pour entendre les sifflements associés à votre accélération !:RÉ

Conseillé: