Table des matières:
- Étape 1: Quelques informations sur App.remoteme.org
- Étape 2: Ce qui est nécessaire:
- Étape 3: Connexions
- Étape 4: PCB
- Étape 5: sorties PCB
- Étape 6: Comment ça va fonctionner
- Étape 7: Assemblage de la voiture - Roues
- Étape 8: Alimentation (piles de recharge AA) Option 1/2
- Étape 9: Alimentation (batteries Li-Po 7,2 V) Option 2/2
- Étape 10: Souder
- Étape 11: Appareil photo
- Étape 12: Assembler les pièces des voitures
- Étape 13: Configuration de App.remoteme.org
- Étape 14: Configuration de RasbperryPi
- Étape 15: Vérification des connexions
- Étape 16: Ajout d'un script Python
- Étape 17: Vérifier si le script Python a été ajouté avec succès
- Étape 18: Ajout d'une page Web à Control Car
- Étape 19: Configurez le périphérique de page Web pour contrôler la voiture 1/2
- Étape 20: Configurer le périphérique de page Web pour contrôler la voiture 2/2
- Étape 21: Ouvrez le centre de contrôle de voiture
- Étape 22: Configuration de la caméra 1/2
- Étape 23: Configuration de la caméra 2/2
- Étape 24: Conduite 1/2
- Étape 25: Conduite 2/2
- Étape 26: Comment ça marche
- Étape 27: Tablette, direction mobile
- Étape 28: Ouvrir la page sur le téléphone portable
- Étape 29: Ajout du serveur Turn
- Étape 30: Pilotage mobile
- Étape 31: Résumé
Vidéo: Voiture RasbperryPi avec caméra FPV. Contrôle par navigateur Web : 31 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Nous allons construire une voiture 4x4 - la direction sera similaire à celle d'un tank - pour tourner un côté des roues tournera à une vitesse différente de l'autre. À la voiture sera placé la caméra sur un support spécial où nous pouvons changer la position de la caméra. Le robot sera contrôlé par un navigateur Web (chrome ou firefox sur le bureau, ou firefox sur un téléphone portable), au niveau du navigateur, nous obtiendrons la vidéo de la caméra (avec seulement 200 ms de latence), et à partir du navigateur, nous pourrons contrôler les mouvements de la voiture et position de la caméra. Pour rendre la communication plus facile, j'ai utilisé le système app.remoteme.org, il existe également un contrôle prêt à l'emploi de ce type de voiture. nouvelles possibilités etc.
Avant de connecter l'alimentation à votre PCB, veuillez vérifier toutes les connexions
Étape 1: Quelques informations sur App.remoteme.org
Le système comporte trois parties
- application Web - lorsque vous hébergez vos pages Web de contrôle et qu'elle relie toutes les communications
- programme rasbperryPi - programme qui envoie de la vidéo, gère vos scripts python
- bibliothèques où vous trouvez la classe, les définitions de fonctions
Remoteme.org est un système rapide Vous reliez tous vos appareils entre eux, Vous pouvez y héberger vos pages Web, voir vos appareils connectés. Le système Remoteme.org a été conçu pour vous aider à commencer à créer vos projets, sans vous soucier des communications de protocole, l'idée principale est d'envoyer des messages binaires entre divers appareils tels que des pages Web, RasbeprryPI, arduino et des scripts.
D'autre part, Remoteme.org vous donne un contrôle total sur vos fichiers, vous pouvez facilement le modifier en écrivant votre propre fonctionnalité
Dans ce tutoriel, je vais vous montrer comment créer un projet génial presque sans écrire de code.
A la fin de ce tutoriel, j'ai mis des liens utiles qui vous aideront à comprendre le système remoteme.org.
Étape 2: Ce qui est nécessaire:
- Framboise PI Zero W
- Caméra dédiée
- Pilote PWM/Servo Adafruit 16 canaux 12 bits - Interface I2C - PCA9685 ou son clone
- Deux servomécanismes compatibles avec le support de caméra
- Support de caméra
- Batteries - En tutoriel deux possibilités de branchement
- Pont en H TB6612FNG, pour contrôler la vitesse de la roue
- Fichiers PCB eagle Il est facile de le faire méthode de transfert thermiqueDC-DC
- Module de convertisseur abaisseur CC
- Cas de robot
Étape 3: Connexions
Mécanisme d'asservissement de contrôle Raspberry Pi via le module PWM et la vitesse du moteur par le pont H qui est connecté aux broches RasbperryPi, l'entrée PWM au pont H est générée par le même module que j'ai utilisé pour les servos (les parties que je mentionne ci-dessus ne nécessitent aucun convertisseur logique)
Étape 4: PCB
Vous pouvez télécharger les fichiers PCB eagle à partir d'ici. Les chemins sont gros, il est donc facile de le faire par la méthode de transfert thermique
Étape 5: sorties PCB
- Entrée PWM pour les moteurs d'entraînement Doit être connectée aux 15e et 16e broches du module PWM (vérifier le rectangle vert sur l'image du module PWM)
- Entrée de puissance pour les moteurs d'entraînement (vérifiez avec quelle tension maximale vos moteurs peuvent fonctionner)
- Alimentation pour RasbperryPi et module PWM - doit être exactement
- Sorties du moteur d'entraînement (il y a deux sorties car nous allons coupler les moteurs d'entraînement)
- Alimentation des servomécanismes - Vous devez également vérifier quelle tension est bonne pour eux
- Jumper sa puissance actuelle de la 5ème entrée alimentera également les moteurs d'entraînement, donc pas besoin de connecter quoi que ce soit à l'entrée 2
- Cavalier si présent RasbperryPi sera alimenté par la 3ème entrée - avant de mettre le cavalier ici, vérifiez si les connexions sont correctes - Vous ne voulez pas graver votre RPi
- Permet de souder ici les câbles car nous n'avons pas besoin de convertisseurs logiques
Étape 6: Comment ça va fonctionner
Chez RasbperryPi, il existe un script python qui utilise deux bibliothèques
- importer RPi. GPIO en tant que GPIO - pour les broches 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notation BCM) qui sont connectées au pont en H
- importer Adafruit_PCA9685 pour le module PWM
Les broches Rpi sont connectées comme suit 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) et le mode de contrôle du pont en H (avant, arrière, arrêt, courte pause). Le pont H a également besoin de deux signaux PWM afin que nous puissions contrôler la vitesse ou la rotation du moteur. Parce qu'au projet, nous avons déjà un contrôleur PWM (utilisé pour le servo), nous l'utiliserons également pour générer PWM pour le pont en H.
Le module PWM utilise le protocole de communication I2C. J'ai utilisé le travail hors de la boîte Adafruit_PCA9685. une bibliothèque
Étape 7: Assemblage de la voiture - Roues
Nous allons commencer par connecter les moteurs d'entraînement au boîtier de la voiture. Les moteurs du côté gauche/côté se connectent ensemble, et les deux paires, se connectent à un câble d'alimentation qui sera plus tard connecté au PCB. Remarque importante lors de la connexion des moteurs, les roues de chaque côté doivent tourner dans le même sens.
Étape 8: Alimentation (piles de recharge AA) Option 1/2
J'écrirai deux possibilités d'alimentation. La première est à partir de piles de recharge 10xAA. Enfin l'image que j'ai dessinée par des cavaliers de couleurs rouges qu'il faut mettre.
Étape 9: Alimentation (batteries Li-Po 7,2 V) Option 2/2
Et la deuxième option est la batterie 7.2 LI-PO. Dans ce cas, nous avons obtenu 3 tensions - 5v pour le Rpi et le module, 6V pour les servos et directement à partir des batteries 7,2 volts pour les moteurs d'entraînement. J'ai dû utiliser deux modules abaisseurs
L'option 2 avec LI-PO est meilleure:
- Les batteries ont une plus grande capacité – la voiture roulera plus longtemps
- Tension plus élevée pour les moteurs d'entraînement - la voiture roulera plus vite
- Il est moins probable qu'une fois que les moteurs d'entraînement commencent à se localiser, nous puissions avoir une chute de tension énorme et des redémarrages RPI.
Étape 10: Souder
J'ai mis au PCB des entretoises pour module PWM. Il n'y a rien à écrire, il suffit de vérifier les images comment tout souder ensemble
Étape 11: Appareil photo
nous connectons la caméra, ici est écrit comment centrer les mécanismes d'asservissement avant de les monter dans le support de caméra, mais le moyen le plus court est de vérifier doucement manuellement la position de rotation maximale et de régler les servos en position centrale. Ces mécanismes d'asservissement centrés que nous mettons dans le support de l'appareil photo en position centrale (l'appareil photo pointe tout droit comme sur la photo)
Étape 12: Assembler les pièces des voitures
Pour PCB, j'ai fait une petite table en plexiglas
Étape 13: Configuration de App.remoteme.org
J'ai utilisé le système gratuit app.remoteme.org, il vous aide à établir des connexions, et il contient déjà des scripts dont nous avons besoin
À ce instructable, je vais juste montrer étape par étape ce qui doit être fait pour rendre la conduite automobile (ici vous trouverez plus de détails)
- Inscrivez-vous sur https://app.remoteme.org après votre inscription Vous serez automatiquement connecté
- ouvrez l'onglet Jeton à gauche, puis cliquez sur "nouveau jeton", fournissez un nom et cliquez sur OK, nous venons de créer un nouveau jeton (image à l'écran)
- dans cet exemple, la valeur du jeton est: ~1_&p@+BNnZ@A+x8 (le vôtre sera différent;))
Étape 14: Configuration de RasbperryPi
à la console putty (ici comment configurer notre RPi activer la communication I2c de la caméra)
git clone git://github.com/remoteme/remoteme.git
cd à distance
python3.5 install.py
- L'installateur nous posera quelques questions pour toutes nos réponses [Oui] et confirmera par [enter]
- lorsque l'installation demandera un jeton, nous collons (maj + insérer) le jeton copié à partir de l'application et entrez
- le nom par exemple Rpi
- DeviceId 1 Entrer
- après l'installation - exécuter le programme
./runme.sh
Étape 15: Vérification des connexions
Revenons à
Dans l'onglet Appareils, nous verrons notre RPi connecté (l'icône de lien vert signifie que RPi est connecté en ce moment)
Étape 16: Ajout d'un script Python
Maintenant, nous allons ajouter un script python, il est déjà dans les modèles, nous n'avons donc rien à programmer.
Dans l'onglet Appareils, ouvrez le menu RasbperryPi et choisissez "Ajouter un script externe".
Lorsqu'une nouvelle fenêtre apparaît, fournissez les informations comme sur l'image ci-dessus
N'oubliez pas de choisir le modèle "car4wd". Après ces étapes, remoteme.org ajoutera le script python à notre RasbperryPi et le redémarrera
Étape 17: Vérifier si le script Python a été ajouté avec succès
Dans l'onglet Périphériques, un nouveau périphérique de script python doit être ajouté et son ID d'appareil est 2. Dans cette page Web d'ID d'appareil enverra des messages à la voiture de contrôle
Étape 18: Ajout d'une page Web à Control Car
dans l'onglet Périphériques, cliquez sur "Nouveau" puis sur "Page Web". Nous ajoutons simplement un autre appareil - la page Web nous l'utiliserons pour contrôler notre voiture. Et parce que nous avons utilisé le modèle "car4wdDesktop" sur la page Web, les fichiers sont déjà presque prêts à être utilisés
Étape 19: Configurez le périphérique de page Web pour contrôler la voiture 1/2
Développez la page Web dans l'onglet de l'appareil et cliquez sur index.html puis sur Ouvrir
Étape 20: Configurer le périphérique de page Web pour contrôler la voiture 2/2
La fenêtre apparaît alors nous devons fournir le deviceId de notre script python dans notre cas, deviceId est 2. Modifions l'endroit indiqué dans l'image
Étape 21: Ouvrez le centre de contrôle de voiture
Il est maintenant temps d'ouvrir notre page et de voir comment cela fonctionne. Dans l'onglet de l'appareil, cliquez sur index.html, puis sur "Ouvrir dans un nouvel onglet" Pour obtenir un aperçu vidéo, vous devez utiliser le navigateur Chrome ou Firefox. Les autres navigateurs ne prennent pas entièrement en charge webRTC
Étape 22: Configuration de la caméra 1/2
Lorsque nous déplaçons la souris sur la zone vidéo, la caméra doit changer de position et fonctionner exactement comme dans les jeux FPS. Il ne bougera probablement pas correctement
Étape 23: Configuration de la caméra 2/2
Ouvrez script.js (onglet Périphériques développez la page Web puis cliquez sur script.js puis ouvrez) et trouvez l'endroit que j'ai montré à l'écran
à mon cas, la position centrale est de 560 et 430 et la plage de mouvements est pour les deux axes 200
Vous devez expérimenter avec ces nombres afin d'obtenir le centre de la position de la caméra et des mouvements fluides. Si vous avez utilisé ce didacticiel, copiez simplement les valeurs données.
Étape 24: Conduite 1/2
Si vous appuyez sur la flèche vers le haut du clavier, les jauges doivent changer de position et la voiture doit rouler. Si vous appuyez sur la flèche « haut » et que la voiture tourne, vous devez ajouter/supprimer des moins à certains endroits de l'écran.
Après cette opération, après avoir appuyé sur la flèche « haut », la voiture doit avancer et la voiture à flèche vers le bas doit reculer.
Étape 25: Conduite 2/2
Maintenant, tournez - appuyez sur la flèche gauche si la voiture tourne à droite Vous devez retourner les câbles (vérifiez l'image ci-dessus)
Si vous soudez ces câbles, vous pouvez le modifier sur script.jsjustez l'ordre d'envoi de la vitesse des moteurs, avant:
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed())); pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
après:
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
et maintenant, vous devez jouer avec les inconvénients comme une étape avant de le faire fonctionner correctement;). et appuyez et maintenez à nouveau
Étape 26: Comment ça marche
La page Web envoie des messages de 9e octet au script python au format:
- 1 octet un octet valeur entière 1
- 2 octets entier X position de la caméra
- 2 octets entier Y position de la caméra
- 1 octet entier gauche mode moteur (3= arrière, 1= avant, 2=arrêt)
- 1 octet entier vitesse moteur gauche
- 1 octet entier mode moteur droit (3= arrière, 1= avant, 2=arrêt)
- 1 octet entier droit vitesse du moteur
l'envoi du message est effectué dans le fichier script.js à la fonction "sendNow()"
à RasbperryPi python.py reçoit ce message dans la fonction "onUserMessage"
Vous pouvez le vérifier et jouer un peu pour que vous sachiez ce qui se passe.
Description des fonctions de classe ici
Étape 27: Tablette, direction mobile
Nous ajoutons une nouvelle page Web exactement comme nous l'avons fait la fois précédente, mais maintenant nous choisissons le modèle "car4wdMobile"
Ensuite, nous configurons tout dans script.js comme nous l'avons fait pour la page Web de contrôle du bureau. Le format du message est exactement le même, nous n'avons donc pas à modifier le script python.py.
Étape 28: Ouvrir la page sur le téléphone portable
Au lieu de vous connecter à votre compte à partir d'un mobile, scannez simplement l'URL QR Anymous.
détails du QR ici
Si votre contrôle mobile fonctionne lorsque RPi et mobile sont sur le même wifi mais ne le fait pas si vous utilisez Internet mobile, vous devez ajouter un serveur tournant, comment faire cela, j'ai écrit ici
Étape 29: Ajout du serveur Turn
Parfois (lorsque vous êtes derrière NAT ou certains paramètres de pare-feu), vous ne pouvez pas connecter votre robot à partir d'un autre réseau, alors votre robot est connecté. Ce n'est pas un gros problème et vous devez ensuite ajouter un serveur de tour.
J'ai testé le serveur de la société XIRSYS (c'est gratuit pour les développeurs) et je vais montrer comment configurer le serveur tournant à l'aide du système XIRSYS
S'inscrire:
global.xirsys.net/dashboard/signup
puis cliquez sur "plus" pour ajouter une application
à droite sous « crédits de virage statiques » Vous avez toutes les données dont vous avez besoin. Copiez-le dans le fichier webrtc_streamer.conf pour ce faire, allez sur
étendre les appareils RaspberryPi
cliquez sur le fichier webrtc_streamer.conf
cliquez sur ouvrir
et ajouter des informations
turn_server=turn_username=
turn_credential=
après avoir terminé l'édition, vous devriez avoir quelque chose comme à l'écran.
puis cliquez sur Enregistrer et redémarrez You Rpi, en cliquant sur le menu sur l'appareil RasbperryPi et choisissez redémarrer
Une fois le programme RPi redémarré, vous pouvez voir un aperçu vidéo sur votre téléphone mobile même si vous utilisez Internet mobile.
Étape 30: Pilotage mobile
au cercle 1, nous plaçons le pouce gauche, à 2 droite - pas besoin d'être exactement à ce point - la page Web définira la position zéro juste après que vous ayez touché l'écran, et en déplaçant vos pouces (conduite à gauche, position de la caméra à droite) Vous pouvez contrôler ta voiture
Étape 31: Résumé
J'espère que vous avez aimé ce didacticiel, comme je l'ai écrit auparavant dans ce didacticiel, vous trouverez plus de détails sur son fonctionnement sous le capot.
quelques liens:
remoteme.org - page d'accueil de remoteme.org Vous y trouvez des documentations et des tutoriels
FB fanpage - Facebook fanpage informations les plus récentes sur remoteme.org
Youtube - quelques vidéos de projet, tutoriels
À votre santé, Maciek
Conseillé:
Télécommande basée sur le navigateur Arduino (linux): 9 étapes (avec images)
Télécommande basée sur un navigateur Arduino (linux) : nous avons des enfants. Je les adore mais ils cachent toujours la télécommande du satellite et de la télévision lorsqu'ils mettent les chaînes pour enfants. Après que cela se soit produit au quotidien pendant plusieurs années, et après que ma femme chérie m'ait permis d'avoir un
Transformer n'importe quelle voiture télécommandée en voiture télécommandée avec contrôle d'application Bluetooth : 9 étapes
Transformer n'importe quelle voiture télécommandée en une voiture télécommandée Bluetooth App Control: Ce projet montre les étapes pour changer une voiture télécommandée ordinaire en une voiture télécommandée Bluetooth (BLE) avec la carte robotique Wombatics SAM01, l'application Blynk et l'application MIT Inventor. sont de nombreuses voitures RC à bas prix avec de nombreuses fonctionnalités telles que les phares à LED et
Gesture Hawk : Robot contrôlé par gestes manuels utilisant une interface basée sur le traitement d'images : 13 étapes (avec images)
Gesture Hawk : Robot contrôlé par les gestes de la main utilisant une interface basée sur le traitement d'images : Gesture Hawk a été présenté dans TechEvince 4.0 comme une simple interface homme-machine basée sur le traitement d'images. Son utilité réside dans le fait qu'aucun capteur supplémentaire ou portable, à l'exception d'un gant, n'est requis pour contrôler la voiture robotique qui fonctionne sur différents
Robot Roomba contrôlé par navigateur avec le Raspberry Pi modèle 3 A+ : 6 étapes (avec photos)
Robot Roomba contrôlé par navigateur avec le Raspberry Pi Model 3 A+ : Aperçu Il existe de nombreux hacks Roomba qui permettent le contrôle via l'interface série. Je n'ai pas
Cadre LED Pixel Art avec art d'arcade rétro, contrôlé par l'application : 7 étapes (avec images)
Cadre d'art de pixel LED avec art d'arcade rétro, contrôlé par l'application : créez un cadre d'art à LED contrôlé par une application avec 1024 LED qui affiche des pièces d'art de jeu d'arcade rétro des années 80. pouce d'épaisseur - Transparent Light Smoke from Tap Plastics