Table des matières:

Expérience numérique DIY hors du corps : 6 étapes
Expérience numérique DIY hors du corps : 6 étapes

Vidéo: Expérience numérique DIY hors du corps : 6 étapes

Vidéo: Expérience numérique DIY hors du corps : 6 étapes
Vidéo: Expériences à réaliser en famille 2024, Juillet
Anonim
Expérience numérique de bricolage hors du corps
Expérience numérique de bricolage hors du corps

Dans ce tutoriel, vous apprendrez à construire un système qui vous permet de voir comme si vous étiez ailleurs. J'ai appelé cette expérience numérique hors du corps parce que la première fois que j'ai pensé à ce système, c'était lorsque je pratiquais le yoga et je pensais que ce serait très intéressant de pratiquer tout en me voyant avec une vue 3D, comme dans certains jeux vidéo. Finalement, j'ai aussi pensé que cela pouvait être un appareil intéressant pour méditer sur le non-soi, en me regardant de l'extérieur, comme un outil pour m'aider à prendre de la distance et simplement observer mes pensées, émotions et sentiments. Mais le yogi débutant et le méditant en moi n'étaient pas les bonnes personnes pour me laisser emporter par ce projet. Finalement, c'est le joueur/joueur que je suis qui a pensé que ce projet serait une belle étape incrémentielle vers la construction d'un robot mobile contrôlé par la vue à la première personne pour faire une sorte de course à la première vue de robot mobile !

Étape 1: choses dont vous aurez besoin

Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
  1. 2xRaspberry Pi 3 modèle B équipés chacun d'une caméra et d'un câble mesurant (15cm et 30cm)
  2. Un blindage de batterie, 2 batteries et un câble usb vers 2xmini-USB pour se connecter au Raspberry (j'ai utilisé un double blindage de batterie 10650 avec sortie USB, 2xLiitoKala Lii-35A 18650 batteries, et ce câble)
  3. Pièce de 240x140x5mm en bois MDF (ou tout autre bois compatible avec la découpe laser)
  4. Accès à une découpeuse laser
  5. Vis et boulons M2
  6. Un ordinateur avec python
  7. Un smartphone avec chrome
  8. Un carton google ou tout autre système vous permettant d'obtenir une expérience VR depuis votre téléphone (j'ai obtenu le ednet Virtual Reality Brille qui est compatible avec les téléphones de dimension jusqu'à 159,2 mm x 75,2 mm d'après ce que j'ai lu)

Étape 2: Obtenez le Rapsberry Pi pour capturer une vidéo en direct et la partager

Tout d'abord, assurons-nous que notre caméra Pi est branchée sur le Raspberry Pi. Terminé ? C'était la partie matérielle pour cette étape. Continuons avec la partie logicielle.

Concernant le soft, si vous êtes dans mon cas et que vous n'avez pas d'OS installé sur votre PI et que vous n'avez pas de clavier, souris et écran de rechange, alors téléchargeons raspbian lite ici et suivons les étapes simples décrites ici: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Si tout s'est bien passé, votre Pi est maintenant connecté à votre WIFI, vous connaissez son adresse ip et vous y êtes connecté via ssh.

En utilisant ssh, faisons en sorte que le Pi partage ce qu'il voit. Pour cela, nous utiliserons UV4L. Pour cela, suivez les étapes sur la page Web suivante: https://raspberry-valley.azurewebsites.net/UV4L/. Si vous avez terminé la configuration UV4L comme décrit dans le lien, vous devriez maintenant pouvoir visualiser la vidéo en direct de votre framboise sur votre ordinateur. Pour cela rendez-vous simplement dans votre navigateur sur l'adresse https://raspberryip:8080/stream, en remplaçant "raspberryip" par l'ip du raspberry pi que vous avez trouvé via lanScan.

Voilà pour l'un de nos deux "yeux". Et l'autre ? Soit on répète le même processus, soit on clone ce qui se trouve sur notre raspberry pi sur une autre carte SD. Pour en savoir plus sur la deuxième option, vous pouvez consulter ce github:

Et voilà, vous devriez maintenant avoir vos deux raspberry pi qui partagent leur flux vidéo en direct sur le réseau local ! On s'en est sorti les yeux, résolvons maintenant ce petit problème de strabisme et rendons notre petit système portable !

Étape 3: Rendez-le portable: découpe et montage au laser

Rendez-le portable: découpe et montage au laser
Rendez-le portable: découpe et montage au laser
Rendez-le portable: découpe et montage au laser
Rendez-le portable: découpe et montage au laser
Rendez-le portable: découpe et montage au laser
Rendez-le portable: découpe et montage au laser

Pour rendre le système de caméra portable, j'ai conçu une structure en bois sur laquelle je peux visser le Raspberry Pis les caméras et le cache batterie. Le design est joint ici sous forme de fichier svg. Vous devrez peut-être modifier les positions des vis du blindage de la batterie en fonction de votre blindage et/ou du design en fonction de l'épaisseur de votre bois.

Une fois que vous avez tout coupé:

  1. Montez les caméras sur la partie gauche du design (8 vis M2 de 5 mm, 8 vis M2 de 8 mm et 8 boulons de 8 mm)
  2. Montez le blindage de la batterie (4 vis M2 de 5 mm, 4 vis M2 de 8 mm et 4 boulons de 8 mm)
  3. Montez le "cluster" raspberry pi comme indiqué sur l'image ci-dessus (4 vis M2 de 5 mm, 4 vis M2 de 8 mm, 4 boulons mâle-femelle de 5 mm ou plus, 4 boulons de 21 mm). Remarque: je n'avais pas de boulons de 21 mm alors j'ai fait le mien avec 16 boulons et 5 boulons femelle-mâle.

Attention: les longueurs de boulons définies ici peuvent être modifiées, il suffit de s'assurer que la distance entre le Raspberry Pis est suffisamment grande pour ne pas provoquer de court-circuit…

Chargez vos batteries au lithium à l'aide du connecteur mini-usb du blindage de la batterie et montez la pièce en bois comme indiqué sur l'image ci-dessus. Vous êtes prêt à connecter votre blindage de batterie aux framboises ! Et plus besoin de ssh-ing, dès que nous mettons le raspberry pi sous tension, il partage désormais le flux vidéo en ligne dès qu'il démarre grâce à UV4L. Transmission terminée !

Étape 4: Visualisez l'image stéréo

Visualisez l'image stéréo
Visualisez l'image stéréo

Maintenant que nous avons deux flux d'images accessibles via le réseau local, nous avons vu que nous pouvions les visualiser individuellement en utilisant l'adresse https://raspberryip{1, 2}/stream/ sur un navigateur. Pouvons-nous donc essayer d'ouvrir deux pages sur notre navigateur ? Non, nous ne le ferons pas ! 1. Ce serait trop moche, allez 2. cela ne fonctionnerait pas car l'écran se mettrait en veille après un certain temps ! Cette étape vous montrera comment résoudre ces problèmes.

Voyons d'abord ce qui se cache derrière l'adresse utilisée auparavant. Si vous vérifiez le code html de la page qui s'ouvre, vous verrez que le flux qui s'affiche sur la page consiste en un

tag avec la source définie comme https://raspberryip/stream/video.mjpeg. En conséquence, la dernière étape peut être assez simple. Une façon pourrait être de programmer une application Android avec deux vues Web pour afficher le flux d'images, une méthode beaucoup plus simple consiste à exécuter un serveur local sur notre ordinateur qui servira une page html similaire à "https://raspberryip/stream/" sauf qu'il vous permettra de voir les deux flux au lieu d'un, et de garder l'appareil éveillé.

Comment mettre en place un tel serveur ? Rien de plus simple avec python. Créez un dossier dans lequel vous mettez les fichiers index.txt et NoSleep.txt que vous renommerez en index.html et NoSleep.js. Dans index.html, recherchez les deux

tags et remplacez les ips framboise par les vôtres. Ce sera la page html qui montrera nos deux flux d'images avec le javascript lui permettant de rester éveillé. Maintenant, vous voulez rendre cette page accessible à votre téléphone portable, là où python devient pratique: placez le fichier server.py dans le même dossier et lancez le script en utilisant la commande python server.py (notez que ce script est compatible avec python 3, si vous utilisez python 2, vous devrez éditer server.py et remplacer socketserver par SocketServer).

Ça y est, vous pouvez accéder au flux stéréo depuis n'importe quel appareil avec un navigateur connecté à votre réseau local. Essayez-le, obtenez l'adresse IP de votre ordinateur et ouvrez https://computerip:8080. Vous pouvez probablement remarquer trois choses:

  • C'est super on y est presque !
  • Ce n'est pas en plein écran,
  • Il finit par s'endormir.

Comment venir ? Comme vous pouvez le lire ici, la fonction d'activation du mode sans veille nécessite une action factice pour être appelée. Pour respecter cette nécessité j'ai lié un clic sur la première image à cette fonction. En conséquence, il vous suffit de cliquer sur la première image et vous devriez voir une alerte vous indiquant que le mode veille est activé et que la page devrait également être désormais en plein écran.

C'est ça! Vous devriez maintenant pouvoir mettre votre téléphone dans votre casque VR et voir ce qui se passe devant vos Pi's ! Ou c'est ça ?

Étape 5: Lisser les choses

En fait, si vos Pi et votre réseau sont similaires aux miens, ce que vous voyez dans votre casque peut être un peu gênant car il peut y avoir de forts retards. Donc, pour vraiment en finir avec un système fluide, résolvons ce dernier problème. Comment résoudre le retard ? J'ai simplement deviné que le problème pouvait venir soit de la compression en temps réel par les Pi qui est trop gourmande en calcul, soit de la connexion sans fil dont je douterais. Quoi qu'il en soit, pour le résoudre, vous pouvez faire quelque chose de très simple qui consiste à réduire la résolution et le débit avec lesquels vos images sont acquises et encodées sur les Pi.

Pour modifier ces paramètres, revenez sur votre terminal et connectez-vous à votre Raspberry Pi. UV4L utilise un fichier de configuration. Ce fichier est /etc/uv4l/uv4l-raspicam.conf. Pour le modifier tapez la commande sudo nano /etc/uv4l/uv4l-raspicam.conf. Vous pourrez maintenant régler la largeur, la hauteur et la quantification à votre guise. J'ai utilisé les valeurs width = 320, height = 240 et quantification = 40 et j'ai obtenu une transmission fluide avec celles-ci.

Étape 6: Profitez

Il ne vous reste plus qu'à installer le système là où vous le souhaitez, mettre votre téléphone dans votre carton, et faire votre séance de yoga, méditation, beer pong avec vos amis, ou autre ! Vous aurez peut-être besoin d'un peu de temps (1 ou 2 minutes) pour vous habituer à l'orientation de la caméra, ce qui vous donnera d'abord l'impression d'avoir soudainement un problème de strabisme. Une façon pour moi de m'y habituer rapidement est de me concentrer d'abord sur les objets proches, puis de passer à d'autres.

J'ai pensé à quelques extensions qui pourraient être intéressantes:

  • permettre de voir à l'extérieur de votre domicile, c'est-à-dire rendre le flux accessible depuis l'extérieur de votre réseau local.
  • placez-le sur une plateforme robotique mobile pour faire des courses de drones !

En tant qu'enseignant, je pense que ce projet peut être intéressant pour en savoir plus sur:

  • Le Raspberry Pi, quels sont les composants de base d'un ordinateur, qu'est-ce qu'un système d'exploitation,
  • Concepts généraux de réseau, avec IP locale et externe, le protocole
  • HTML et javascript.

J'espère que ce instructable qui était mon premier est assez clair sans être trop lourd à lire.

Conseillé: