Table des matières:

Voiture RC contrôlée par réalité virtuelle : 9 étapes
Voiture RC contrôlée par réalité virtuelle : 9 étapes

Vidéo: Voiture RC contrôlée par réalité virtuelle : 9 étapes

Vidéo: Voiture RC contrôlée par réalité virtuelle : 9 étapes
Vidéo: Ce Garçon Casse La Vitre De La Voiture Mais A Une Surprise À La Fin 2024, Juillet
Anonim
Image
Image

Avez-vous déjà voulu être réduit et piloter un vaisseau comme Innerspace ou Fantastic Voyage ? Eh bien, je pense que c'est aussi proche que vous allez l'être à court préavis !

Voici le pitch:

Une voiture télécommandée Real-Life pilotée depuis une console de commande de Réalité Virtuelle. Cela signifie que vous attachez un casque VR, actionnez un interrupteur sur une voiture RC, puis pouvez piloter à partir de la VR avec un flux vidéo en direct directement sur votre visage.

Il y a des choses que j'ai implémentées que vous pouvez contrôler sur la voiture VR.

  1. roues
  2. Corne
  3. Lumières

Tous ces éléments ont une sorte de bouton ou de levier en VR que vous pouvez basculer ou basculer pour conduire la voiture.

Pour le repo complet et plus d'informations, consultez mon Github et mon site Web !

Étape 1: Matériaux et outils

Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils

Mécanique:

Kit châssis 4 roues motrices

Électrique:

  • Encodeur de roue
  • Batterie 3S 1300mAh
  • Arduino Uno
  • Bouclier de moteur Arduino
  • Avertisseur piézo-électrique
  • Petite LED
  • Connecteurs XT60
  • Convertisseur Boost / Buck

Ordinateur:

  • Tout système informatique embarqué: Raspberry Pi, Jetson Nano, etc.
  • Caméra USB (de préférence - caméra à 180 degrés)

Outils / Supplément:

  • Fer à souder
  • Quelques configurations VR - J'ai l'Oculus Rift
  • Multimètre

Étape 2: Construire une voiture

Construire une voiture
Construire une voiture
Construire une voiture
Construire une voiture
Construire une voiture
Construire une voiture

Le châssis de la voiture est super facile à construire. Il vous suffit d'attacher les moteurs à la carte principale via les onglets qu'ils vous donnent. Après avoir fixé les roues et les moteurs, vous aurez également besoin de quelque chose pour fixer la caméra à l'avant de la voiture.

J'ai utilisé la boîte en carton dans laquelle l'appareil photo est venu pour le monter. J'ai découpé une grande forme en L et j'ai fait un trou pour que la caméra puisse bien pousser. Après cela, vous pouvez simplement insérer la caméra à travers et mettre du ruban adhésif à l'arrière pour la maintenir en place. Si vous le souhaitez, vous pouvez également percer des trous pour vos phares maintenant, ou le faire plus tard lorsque vous mesurez la longueur du fil.

Vous devrez également attacher l'encodeur de roue à l'une des roues. Peu importe lequel, je l'ai mis sur la roue arrière gauche. Vous devez placer le disque magnétique sur l'arbre réel de la roue et l'encodeur doit être fixé à la voiture à côté. C'est assez réceptif, donc il n'a pas besoin d'être juste là-dessus, mais aussi près que possible. J'ai sécurisé mon encodeur avec du ruban adhésif et une attache zippée. L'encodeur est ce que nous allons utiliser pour mesurer la vitesse de notre voiture.

Étape 3: Circuits de soudure

Circuits de soudure
Circuits de soudure
Circuits de soudure
Circuits de soudure

Cette partie est assez fastidieuse, mais pas compliquée. Si vous suivez l'image et mesurez tout avant de couper votre fil, ce n'est pas trop mal.

Pendant que vous faites cela, vous devez également calibrer votre convertisseur abaisseur pour produire la tension correcte. Le Raspberry Pi et le Jetson Nano prennent tous les deux 5v, mais notre batterie est à 11,1v. Nous devons donc nous assurer de ne pas faire frire nos appareils électroniques. Pour ce faire, branchez votre batterie sur le côté entrée du convertisseur buck. Pendant que la batterie est branchée, utilisez votre multimètre pour mesurer le côté sortie du convertisseur abaisseur. Utilisez un petit tournevis à tête plate pour tourner le potentiomètre sur le convertisseur abaisseur jusqu'à ce que la tension de sortie soit de 5v. Une fois la sortie correcte, vous n'aurez plus à tourner le potentiomètre.

Étape 4: Installer les dépendances sur le système embarqué

Installer les dépendances sur le système embarqué
Installer les dépendances sur le système embarqué

Pas trop à faire ici, mais toujours incroyablement important.

Tout d'abord, assurez-vous de vous connecter au routeur que vous utiliserez afin qu'il puisse se connecter automatiquement à partir de maintenant.

Ensuite, ouvrez un terminal et tapez ce qui suit:

mise à jour sudo apt

sudo apt installer openssh-server

sudo apt installer python-pip pip installer numpy pip installer opencv-python pip installer pyzmq

Une fois ces éléments installés, nous devons nous assurer que, quel que soit le port sur lequel l'arduino est branché, il est toujours reconnu. Ainsi, nous écrivons ce qu'on appelle des règles UDEV. Ce sont des règles pour votre système d'exploitation qui régissent ce qui se passe lorsque vous branchez des choses. Nous voulons identifier l'arduino lorsqu'il est branché et lui donner un nom pour y accéder. Ce nom sera "arduino_0". Pour ce faire, nous utiliserons le numéro de série interne de l'arduino pour l'identifier.

udevadm info -a -n /dev/ttyUSB1 | grep '{série}' | tête -n1

Cela va cracher une valeur pour le numéro de série, allez-y et copiez cette valeur.

Il faut alors éditer (ou créer s'il n'existe pas) un fichier nommé "99-usb-serial.rules". Ce fichier réside dans le chemin de fichier suivant "/etc/udev/rules.d/99-usb-serial.rules". Comme je l'ai mentionné, si ce fichier n'existe pas, créez-le et collez-le dans la ligne suivante en remplaçant VALUE_FROM_ABOVE par votre valeur précédente.

SUBSYSTEM=="tty", ATTRS{serial}=="VALUE_FROM_ABOVE", SYMLINK+="arduino_0"

Cela indique au système d'exploitation que chaque fois qu'il voit ce numéro de série spécifique, il doit l'appeler arduino_0.

La dernière chose à faire ici est de télécharger le pushArucoVideoPullCommands.py et de le placer dans un endroit facilement accessible. Je recommanderais le répertoire personnel de votre utilisateur, car c'est là que nous nous retrouverons lorsque nous nous connecterons ultérieurement au système intégré SSH.

Étape 5: Configurer l'adresse IP statique

Configurer l'adresse IP statique
Configurer l'adresse IP statique

C'est maintenant la partie que tout le monde aime, l'adressage IP. Pour que ce projet fonctionne, le code doit savoir où envoyer les images et les commandes de contrôle, ce qui signifie que nos appareils ont besoin d'une adresse IP statique.

Il existe de nombreuses façons d'attribuer une adresse IP statique à votre appareil, mais, comme nous avons un routeur reliant notre station au sol et notre système embarqué, nous pouvons l'utiliser pour nous donner des adresses IP spécifiques très facilement.

Accédez à la section admin de votre routeur, généralement (pour la plupart des routeurs), cela se fait en ouvrant un navigateur Web et en allant à "192.168.1.1". Il vous demandera de vous connecter, et le nom d'utilisateur et le mot de passe standard typiques pour la plupart des routeurs sont "admin".

Une fois là-bas, accédez à quelque chose qui mentionne « serveur DHCP ». Il s'agit d'un processus qui s'exécute sur votre routeur et garde une trace des périphériques qui y sont connectés par leur adresse MAC, qui est toujours constante. Nous voulons sélectionner les périphériques qui nous intéressent. environ, l'ordinateur de la station au sol et le système embarqué, et ajoutez-les à la section client réservée. Cela leur donnera une adresse IP statique chaque fois qu'ils seront connectés à ce routeur.

Assurez-vous de définir l'IP du système embarqué sur 192.168.1.122. L'IP de la station au sol peut être définie sur n'importe quoi.

Étape 6: Téléchargez le code sur Arduino

Télécharger le code sur Arduino
Télécharger le code sur Arduino

Pour télécharger le code arduino, nous devons d'abord installer une bibliothèque pour travailler avec le bouclier moteur.

Sur votre IDE Arduino, allez dans Sketch->Include Library->Manage Libraries… Ensuite, recherchez Adafruit Motor Shield Library. Installez cette bibliothèque, puis téléchargez le code sur votre arduino, rien d'autre ne devrait être requis.

Étape 7: Fixez les circuits et l'ordinateur à la voiture

Fixez les circuits et l'ordinateur à la voiture
Fixez les circuits et l'ordinateur à la voiture

Maintenant que le circuit est construit, il est temps de tout mettre sur la voiture. Je ne vais pas mentir, beaucoup de ces trucs sont juste maintenus avec du ruban adhésif parce que c'est ce qui était le plus facile pour moi de gifler très rapidement. Cela étant dit, le a des trous de montage comme on le voit dans l'image ci-dessus.

La plupart des choses sont assez faciles à laisser s'asseoir quelque part sur le dessus de la voiture, alors ne vous inquiétez pas s'il n'y a pas beaucoup d'espace.

Étape 8: Configurer l'environnement VR

Configurer l'environnement VR
Configurer l'environnement VR

Cette section sera un peu différente selon le type de configuration VR que vous avez en cours. Quoi qu'il en soit, j'ai utilisé SteamVR pour développer ce logiciel, vous devrez donc peut-être l'installer.

Tant que vous utilisez SteamVR, les commandes doivent s'adapter aux différents contrôleurs. J'ai mappé les contrôles sur "Actions" pas nécessairement sur des boutons, donc, en théorie, cela s'adaptera à tout le monde.

Il vous suffit de télécharger et de décompresser le fichier avec le build Unity world et d'être prêt à exécuter le VR_Bot.exe.

Étape 9: Exécutez tout ensemble

Exécutez tout ensemble
Exécutez tout ensemble
Exécutez tout ensemble
Exécutez tout ensemble

Alors, maintenant que nous avons la configuration de la voiture et que la station au sol est branchée et prête à partir, comment pouvons-nous réellement diriger ce mauvais garçon? Eh bien, du point de vue de la station au sol, tout ce que vous avez à faire est d'exécuter le fichier VR_Bot.exe que nous avons vu plus tôt.

Dans le même temps, vous devrez brancher la batterie sur le système intégré, et la faire démarrer automatiquement et se connecter à votre routeur. Une fois qu'il est démarré, connectez-vous en SSH. Pour y accéder, vous aurez besoin d'une sorte de terminal sur la station au sol, je recommande GitBash.

SSH signifie Secure Shell et c'est un protocole permettant d'accéder en toute sécurité aux systèmes distants. Dans notre cas, cela nous donnera accès au système embarqué depuis la station au sol. Cliquez ici pour en savoir plus.

Vous devez connaître le nom d'utilisateur avec lequel vous avez configuré votre système embarqué. Pour raspberry pi, le nom d'utilisateur par défaut est « pi » et le mot de passe « raspberry ».

Une fois installé, ouvrez un terminal et tapez ce qui suit:

ssh {nom d'utilisateur du système intégré}@192.168.1.122

Cela ouvrira un terminal dans le système embarqué.

Une fois là-bas, il vous suffit d'exécuter le script python que nous avons copié précédemment.

python /chemin/vers/pushArucoVideoPullCommands.py

Après cela, le système embarqué commencera à pomper des images et à recevoir des commandes vers et depuis la station au sol.

Vous êtes alors prêt à commencer à conduire et à vous amuser !

Conseillé: