Table des matières:

Raspberry Pi Cam Tank V1.0 : 8 étapes (avec photos)
Raspberry Pi Cam Tank V1.0 : 8 étapes (avec photos)

Vidéo: Raspberry Pi Cam Tank V1.0 : 8 étapes (avec photos)

Vidéo: Raspberry Pi Cam Tank V1.0 : 8 étapes (avec photos)
Vidéo: Raspberry Pi High Quality Camera Getting Started Guide - First Pictures and Videos 2024, Juillet
Anonim
Image
Image
Réservoir Raspberry Pi Cam V1.0
Réservoir Raspberry Pi Cam V1.0

J'adore les chars depuis tout petit. Construire mon propre jouet de réservoir est toujours l'un de mes rêves. Mais en raison du manque de connaissances et de compétences. Le rêve n'est qu'un rêve.

Après des années d'études en ingénierie et design industriel. J'ai acquis des compétences et des connaissances. Et grâce aux imprimantes 3D hobby moins chères. Je peux enfin faire mon pas.

Quelles caractéristiques je veux que ce réservoir ait ?

  • Télécommandé
  • Roues folles suspendues (comme le vrai réservoir !)
  • Dispose d'une tourelle rotative et d'un canon BB inclinable pouvant tirer des balles de 6 mm
  • Peut diffuser de la vidéo vers le contrôleur afin que vous puissiez le contrôler à distance

Au début, j'avais prévu d'utiliser arduino comme contrôleur, mais après quelques recherches, j'ai découvert qu'il n'y avait aucun moyen pratique de diffuser de la vidéo par lui-même. Cependant, Raspberry Pi semble être un bon candidat pour le streaming vidéo. Et vous pouvez le contrôler via votre femme depuis votre téléphone !

Commençons.

Étape 1: Pièces nécessaires

Pour contrôler

Raspberry Pi version B

Hub USB alimenté (Belkin F4u040)

Caméra Web USB (Logitech C270)

Clé Wifi (Edimax)

Câble de démarrage femelle vers mâle

Pour conduire

Deux servo ou moteur à couple élevé (pour deux roues motrices)

Une tige en acier de 1/8 pour les arbres de roue (achetée au dépôt à domicile et peu coûteuse)

Dix paliers lisses (commandés sur Mcmaster)

Quelques ressorts pour suspension (achat d'un assortiment de ressorts chez Harbour Freight, pas cher)

Pour tourelle

Un jouet pistolet BB automatique

Un mini moteur à courant continu à couple élevé

Un micro servo pour l'inclinaison de haut en bas

Certains 1/4 en acier sont montés comme axe de pistolet

D'autres choses

J'ai imprimé en 3D la plupart des pièces de ce réservoir, si vous avez un accès facile à un découpeur laser, cela fonctionnerait aussi.

J'ai utilisé du filament PLA pour l'impression car il est plus facile à traiter (pas de problème d'emballage sur ABS). Mais, vraiment difficile à poncer, couper, percer plus tard.

Vous pourriez penser que l'impression 3D est bonne pour les pièces personnalisées et vous pouvez imprimer une pièce très compliquée en une seule pièce. C'est vrai. Cependant, je pense que cette façon n'est pas pratique et économique pour un amateur. Les raisons sont:

Votre imprimante de loisir ne sera pas aussi précise.

Vous ferez des erreurs de mesure et de calcul (tolérance, alignement, etc.).

Quoi qu'il en soit, il y a de fortes chances que vos impressions ne fonctionnent pas ou ne tiennent pas sur votre premier cliché. C'est bien pour une petite partie, vous pouvez simplement changer le modèle puis réimprimer. Mais pour une partie plus grande et plus compliquée, il est frustrant de savoir que quelque chose ne va pas après des heures d'impression. C'est une perte de temps et de matériel. Alors voici ma démarche:

Car tout est symétrique, imprimez-en seulement la moitié, essayez-le, si tout fonctionne bien, imprimez le tout.

Modéliser la pièce en pensant à l'impression 3D. Pourrait-il y avoir une surface plane pour fixer le lit de l'imprimante ? Pourrait-il être divisé en plus petits morceaux pour éviter beaucoup de structure de support ?

Pour les pièces ayant de nombreuses fonctionnalités (interagissant avec de nombreuses autres pièces), divisez le modèle en modules. Donc, si une fonctionnalité échoue, vous n'avez pas à réimprimer toute la partie. Ajustez simplement le module et réimprimez-le. J'utilise des vis et des écrous pour les connecter.

Soyez un bon ami avec des outils à main, une scie à main, un X-acto, une perceuse électrique, un pistolet à colle chaude. Si vous pouvez corriger une erreur d'impression, corrigez-la.

Cela explique pourquoi mon réservoir a autant de pièces. Je suis toujours en train de peaufiner ces pièces et une fois que j'ai trouvé une bonne combinaison, je peux les imprimer ensemble en une seule pièce. Alors ce serait mon Cam Tank v2.0.

Étape 2: Le système de conduite

Image
Image
Le système de conduite
Le système de conduite
Le système de conduite
Le système de conduite

Suspension

Au début, j'ai fait un prototype sans aucune suspension, juste des essieux traversant la coque inférieure avec des roulements et des roues. Mais en pensant au confort de l'opérateur (je vais le conduire en regardant la vidéo en streaming !), j'ai décidé d'ajouter une suspension pour le rendre plus frais.

Tout ce que j'ai, ce sont des ressorts hélicoïdaux, pas d'hydraulique, pas de ressort à lames. J'ai d'abord expérimenté un mécanisme de barre de torsion avec du PLA. (La suspension à barre de torsion est courante sur certains chars). Il s'avère qu'après quelques torsion, la barre PLA imprimée deviendrait molle et finirait par se casser. L'ABS est peut-être mieux à cet effet, mais je n'ai jamais essayé. Donc, après de plus amples recherches, j'ai trouvé Christie suspension design, voici une courte vidéo qui montre comment cela fonctionne.

Cependant, la suspension Christie a tellement de petites pièces, et je n'ai alors aucune confiance en mon imprimante. J'ai donc fait une suspension comme celle-ci.

(image)

Cette configuration occupe trop d'espace intérieur. Je fais donc pivoter le bras intérieur de 90 degrés. Notez que la première et la dernière roue sont plus courtes

Tendeur arrière

J'ai pensé que lorsque le char franchissait des obstacles, les roues folles pourraient se déplacer et la piste perdrait de la tension. J'ai donc ajouté un mécanisme de tendeur sur la roue arrière. Fondamentalement, ce sont deux ressorts qui poussent le vrai essieu tout le temps, exerçant une certaine force sur celui-ci pour resserrer les chenilles.

Roues motrices et chenilles

J'ai conçu ces chenilles et roues motrices en solidworks. Je ne connais pas grand-chose en génie mécanique, je ne peux donc pas faire le calcul des engrenages. J'ai donc simulé des pièces dans solidworks pour voir si cela fonctionnait avant d'appuyer sur le bouton Imprimer. Chaque piste est connectée avec un filament de rechange de 3 mm. Cela fonctionne plutôt bien avec un peu de ponçage. Mais la conception de la piste a un défaut, la surface touchant le sol est trop lisse pour qu'elle soit difficile à saisir. Si je l'imprime à l'envers, je pourrais ajouter un peu de bande de roulement, mais cela coûtera beaucoup de matériel de support à cause de la dent. Solutions futures: 1: imprimer la dent séparément puis les coller ensemble. 2. Appliquez de la peinture en aérosol pour revêtement en caoutchouc.

Ensuite, j'ai imprimé le boîtier des servos et je m'assure que la roue motrice peut être fixée au bras du servo avec des vis.

Étape 3: Système d'arme

Image
Image
Système d'arme
Système d'arme
Système d'arme
Système d'arme

Cette partie est la plus excitante pour moi. Vous pouvez acheter un jouet de réservoir d'appareil photo. Mais je n'ai pas trouvé un appareil photo combiné et une arme.

J'ai acheté ce jouet pistolet airsoft automatique pour 9,99 $ en solde. (C'est environ 20 dollars maintenant et je pourrais essayer quelque chose de moins cher plus tard) Et démontez-le pour comprendre le mécanisme. Je peux totalement couper le corps et le coller sur mon réservoir. Mais je n'aime pas la moitié du corps qui a l'air laide. J'ai donc pris quelques mesures et remodelé la partie mécanique. De ces pièces j'ai tiré une leçon d'impression 3D: vous vous tromperez toujours. Il faut 5 impressions pour que chaque pièce s'adapte, et beaucoup de découpe, de ponçage et de collage à chaud pour que cela fonctionne parfaitement.

Après que chaque partie du pistolet jouet se soit déplacée correctement dans mon corps répliqué, j'ai imprimé quatre autres parties pour serrer le corps. Et ajouté l'engrenage inclinable, l'entonnoir à balles BB et le support de la caméra. Ces pièces sont toutes vissées sur le corps du pistolet. Finalement, ils peuvent être combinés en au moins deux parties. Mais je pense que je ne suis pas encore prêt.

Sur la base de la tourelle, j'ai ajouté un micro servo, pour l'inclinaison, et un micro moteur à courant continu pour la rotation.

Ensuite j'ai commencé à tester le pistolet, brancher 4 piles AA et ça tire bien. J'étais vraiment content que cela fonctionne bien. Mais le lendemain, j'ai trouvé un problème.

Voici la vidéo de mon test d'arme. la tourelle était connectée à un adaptateur 3v.

Étape 4: Configurer le Pi

C'est la partie la plus importante, le cœur de notre réservoir--Raspberry Pi !

Si vous n'avez pas encore joué à Raspberry Pi. Je recommande de commencer par ce livre: Getting started with raspberry pi by MAKE. Vous pouvez obtenir les bases et une compréhension globale de Pi.

Obtenez le dernier système d'exploitation raspbian.

Le prochain outil que je recommande beaucoup est le Bureau à distance. Voici le tutoriel d'Adam Riley. Après la configuration, vous pouvez afficher le bureau Pi sur votre PC (non testé sur Mac). Ainsi, faire fonctionner le Pi "nu" signifie qu'il n'est pas nécessaire d'avoir un écran, une souris et un clavier. Certains de mes amis utilisent la ligne de commande ssh. Mais je préfère le bureau.

Sur la base de recherches antérieures, je savais que Raspberry Pi est capable de diffuser des vidéos. J'ai donc commencé à jouer avec différentes applications sur le Pi. La plupart des applications ont un long décalage (secondes) ou une faible fréquence d'images. Après quelques semaines d'errance sur des vidéos et des tutoriels en ligne, heureusement, j'ai trouvé la solution. Une vidéo sur youtube sur webiopi m'a donné beaucoup d'espoir. Plus de recherche m'a fait croire que c'est la bonne voie à suivre.

Webiopi est un framework qui a rendu la connexion entre Pi et d'autres appareils Internet vraiment facile. Il contrôle tous les Pi GPIOS puis démarre un serveur contenant du html personnalisé. Vous pouvez accéder à ce html depuis d'autres appareils (ordinateur, smartphone, etc.), et cliquer sur un bouton du navigateur à distance wifi, un GPIO se déclenche.

La vidéo m'a rendu plein d'espoir, est basée sur un tutoriel webiopi--projet cambot. Il est présenté sur le magzine MagPi #9[html][pdf] et #10[html][pdf]. Merci Eric PTAK !

En suivant pas à pas le tuto, vous pouvez faire du cambot à deux roues ! Voici comment cela fonctionne: connectez deux moteurs avec un pont en H, puis contrôlez le pont en H avec 6 broches GPIO pour contrôler la direction et la vitesse. Webiopi est utilisé pour contrôler les GPIO. Et MJPG-streamer est utilisé pour le streaming vidéo.

Si vous êtes nouveau sur le Pi ou Linux comme je l'étais il y a des mois, vous pouvez avoir un petit problème après avoir suivi toutes les étapes. Vous pouvez exécuter le code python pour webiopi et la vidéo en streaming séparément, mais vous ne savez pas comment les exécuter ensemble ? Il m'a fallu un certain temps pour savoir que vous pouvez ajouter un & après une commande (& est vraiment difficile à rechercher sur google, BTW), cela signifie que vous voulez que cette commande s'exécute en arrière-plan. Donc je ferai ça à chaque fois:

sudo python cambot.py&

sudo./stream.sh

Je pense que vous créez un fichier bash contenant la commande ci-dessus dans un fichier et que vous l'exécutez une fois. Je n'ai pas encore essayé.

J'ai donc essayé cette configuration de base avec deux moteurs à courant continu, cela fonctionne, mais le moteur que j'ai n'est pas assez puissant. M'amène à une autre option: les servos continus.

Une nouvelle question se pose alors: est-ce que webiopi prend en charge les servos contrôlés par PWM ?

La réponse est oui, mais pas tout seul: RPIO est nécessaire pour générer le logiciel PWM

Installation RPIO (je n'ai pas de chance sur la première méthode d'installation apt-get. La méthode github fonctionne très bien pour moi)

Exemple de code et autres discussions

Maintenant, votre bot est mis à niveau avec deux servos ! Pensez à ce que vous pouvez faire avec les bras supplémentaires !

J'ai modifié l'exemple de code ci-dessus pour l'adapter à mon réservoir. Vous n'avez pas besoin d'un diplôme en informatique pour le faire. Vous êtes bon tant que vous pouvez comprendre l'exemple de code et savoir quoi copier et où changer.

Étape 5: connexion électronique

Connexion électronique
Connexion électronique
Connexion électronique
Connexion électronique
Connexion électronique
Connexion électronique

La banque d'alimentation que j'ai achetée, Anker Astro Pro, possède deux ports USB et un port 9v (principale raison pour laquelle j'ai acheté celui-ci). J'ai essayé d'alimenter le Pi, le dongle wifi et la webcam avec un port USB. Ne démarre pas. J'ai donc utilisé l'autre port USB pour un hub USB alimenté.

Ensuite, j'ai pensé que je pourrais peut-être alimenter les servos avec le port hub USB. Cela fonctionne, mais la connexion wifi est très très instable.

Pour résoudre ce problème, j'ai apporté 4 piles AA pour alimenter les besoins du servo 6V. J'ai rayé le câble USB pour exposer le fil de terre (noir) et le connecter à la terre du bloc-piles AA.

3 servos, rouge à 6V, noir à la terre et broche de signal connectée aux broches GPIO.

Comme prévu, le moteur de rotation de la tourelle et le moteur du canon devraient également être alimentés en 6V avec un contrôle en pont en H. Mais quand j'ai tout connecté, le pistolet ne tire pas ! Il semble que le moteur essaie de tourner, mais ne peut pas entraîner les engrenages. La tension de sortie est correcte, mais il semble qu'il n'y ait pas assez de courant pour conduire. J'ai aussi essayé MOSFET sans succès.

Je dois abandonner cette partie pour des raisons de temps. Et c'est pourquoi, lors du test du pistolet, je dois connecter manuellement le moteur du pistolet à l'adaptateur. Encore beaucoup à apprendre en électronique. Dans le pire des cas, je pouvais toujours contrôler le pistolet avec une gâchette à servocommande.

Étape 6: Interfacer

Image
Image
Interface
Interface
Interface
Interface

J'ai également modifié les interfaces des exemples de codes cambot et rasprover. Comme j'avais prévu d'utiliser un smartphone comme contrôleur, j'ai optimisé la mise en page de mon téléphone (galaxy note3).

La plupart des mises en page et des styles peuvent être modifiés dans le fichier index.html. Cependant, le style du bouton par défaut (gris foncé avec bordure noire) est défini dans le fichier webiopi.css situé dans /usr/share/webiopi/htdocs. J'ai utilisé un terminal pour exécuter sudo nano afin de le modifier.

Le flux vidéo est situé au centre de l'écran, le contrôle de conduite sur le côté gauche et le contrôle des armes sur la droite. J'ai conçu le contrôle de conduite comme deux ensembles de haut (avant), arrêt, bas (arrière) en voulant un contrôle plus fin, mais dans la vidéo, vous pouvez dire que c'est parfois gênant.

Étape 7: Plan futur

Comme vous pouvez le constater, ce projet n'est pas encore terminé. Grâce au concours Raspberry Pi, j'ai beaucoup augmenté la semaine dernière, essayant juste de le terminer avant la date limite. Ça tourne plutôt bien jusqu'à ce que je découvre que l'arme ne tire pas…

Il a beaucoup plus à améliorer, mais j'espère que vous pourrez apprendre quelque chose de mon expérience.

Plan à court terme:

Faites fonctionner l'arme !!!

Plus grand conteneur pour plus de BB

Le tank a besoin d'explorer le monde - sortez du wifi de la maison !

Configurez un nœud ad-hoc sur Pi, afin que le téléphone puisse s'y connecter n'importe où

Exécutez la commande tank au démarrage

Ajoutez un bouton d'arrêt pour éteindre Pi en toute sécurité.

Plan à long terme:

Meilleur système de conduite pour la stabilité et l'adhérence

Concevoir mon propre circuit imprimé au lieu d'une maquette maintenant

Enregistrement vidéo à la première personne

Une autre arme ? Faisons-en un navire de combat !

Ajouter des capteurs pour l'auto-patrouille ?

Vision par ordinateur pour le ciblage automatique !

Contrôlez le char de très loin: je verrai tout à la maison !

Étape 8: Merci d'avoir lu

Merci d'avoir lu mon mauvais anglais (ce n'est pas ma langue maternelle). J'espère que vous vous êtes amusé ou avez appris quelque chose ici. Ce sera un projet en cours, donc si vous avez une expertise dans n'importe quel domaine, j'apprécie vos conseils.

Si vous avez des questions, n'hésitez pas à laisser un commentaire, je ferai de mon mieux pour y répondre.

Permettez-moi de faire une mise à jour - The Cam Tank2.0 - dans un proche avenir.

Enfin, voici une vidéo montrant le scénario de bataille. C'est assez amusant.

Profitez-en et à la prochaine !

Conseillé: