Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

DIY Mars Perseverance Rover Replica – Projet basé sur Arduino

Dans ce tutoriel, je vais vous montrer comment j'ai construit une réplique du Mars Perseverance Rover. Bien sûr, inspiré par le vrai rover qui explore actuellement Mars, j'ai conçu ce rover de manière à ce que tous ceux qui aiment cette technologie, étudiants, makers, passionnés de mécatronique ou de robotique, etc., puissent facilement suivre les instructions de cette vidéo et construire leur propre Mars Rover.

Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.

Aperçu

Voyons ensemble les principales caractéristiques de ce rover. Il utilise une suspension à bascule qui permet au rover de rouler en douceur sur un terrain accidenté et de gravir des obstacles, tels que des rochers, qui mesurent jusqu'à deux fois le diamètre de la roue tout en gardant les six roues en contact avec le sol à tout moment. Chaque roue a un moteur à courant continu indépendant qui entraîne le rover vers l'avant ou vers l'arrière.

Les quatre roues d'angle ont des servomoteurs de direction individuels. Afin de diriger efficacement le rover et d'éviter le patinage des pneus lors de la conduite dans une courbe, nous mettons en œuvre la géométrie de direction Ackermann. Avec cette géométrie, nous pouvons calculer la vitesse et l'angle de chaque roue en fonction du rayon de braquage.

Cela signifie que, lors des virages, les roues directrices intérieures auront un angle plus important par rapport aux roues extérieures. Dans le même temps, les roues intérieures auront des vitesses plus lentes que les roues extérieures.

Pour contrôler le rover, j'utilise un émetteur RC commercial bon marché qui envoie des commandes au rover. Au rover, j'ai un récepteur RC approprié qui reçoit les commandes et les envoie à une carte Arduino. Oui, le cerveau de ce rover Mars est en fait une carte Arduino MEGA et pour connecter facilement tout ensemble, j'ai créé un PCB personnalisé qui peut être simplement fixé sur la carte Arduino MEGA.

Le rover dispose également d'une caméra FPV située dans l'unité de caméras. Il est contrôlé à l'aide d'un moteur pas à pas et d'un servomoteur et je reçois la vidéo en temps réel sur un smartphone.

Je voudrais noter ici que de nombreuses pièces ne sont en fait pas fonctionnelles, ou qu'elles sont présentes juste pour correspondre à l'apparence du vrai rover. De plus, le bras robotique est manquant, mais je prévois de fabriquer le bras et d'ajouter plus de fonctions à ce rover dans de futures vidéos.

Néanmoins, laissez-moi maintenant vous guider tout au long du processus de construction, en commençant par la conception du rover, la connexion des composants électroniques et la programmation de la carte Arduino.

Modèle 3D DIY Mars Rover

J'ai conçu ce rover martien à l'aide de 3D EXPERIENCE Solidworks qui est en fait le sponsor de cette vidéo.

3DEXPERIECE Solidworks est une version de Solidworks avec des fonctionnalités cloud que nous obtenons via la plate-forme 3DEXPERIECE. Ici, tout fonctionne via le cloud, de sorte que vous ou n'importe quel membre de votre équipe pouvez avoir accès aux données ou aux modèles à tout moment, de n'importe où dans le monde. La plate-forme 3DEXPERIECE comprend également de nombreuses applications utiles de productivité et de gestion des données.

Par exemple, l'application Project Planning est un excellent moyen d'organiser vos tâches, de fixer des délais et de suivre vos progrès. Avec l'application 3D Markup, vous pouvez visualiser, explorer et prendre des notes sur les modèles depuis n'importe quel appareil, comme un ordinateur portable, une tablette ou même un smartphone.

Il existe également un modélisateur 3D basé sur le cloud distinct appelé SOLIDWORKS xDesign, qui s'exécute dans votre navigateur. Il peut être utilisé conjointement avec Solidworks ou seul et il est idéal pour la modélisation, n'importe où, n'importe quand et sur n'importe quel appareil.

Néanmoins, la nouvelle la plus excitante pour beaucoup d'entre vous ici est probablement qu'à partir du second semestre de cette année, il y aura une version maker de 3DEXPERIECE Solidworks que vous pouvez obtenir pour seulement 99 $ par an. Un grand merci à Solidworks pour le parrainage de contenus éducatifs comme celui-ci.

Si vous souhaitez savoir si SOLIDWORKS et la plate-forme 3DEXPERIENCE peuvent fonctionner pour vous, consultez les liens suivants ci-dessous.

Essayez 3DEXPERIENCE gratuitement avec mon lien spécial : www.solidworks.com/HTMTryNow

En savoir plus sur 3DEXPERIENCE SOLIDWORKS : www.solidworks.com/HTMLearnMore

3DEXPERIENCE SOLIDWORKS for Makers :www.solidworks.com/htm

Ok, revenons au modèle et expliquons comment j'ai conçu le rover. Mon objectif était de faire en sorte que ce rover ressemble le plus possible au vrai Mars Perseverance Rover. Sur le site officiel de la NASA, il y a un modèle 3D du Mars Perseverance Rover, donc je l'ai téléchargé et ouvert dans Blender.

J'ai pris 3 photos de la vue de face, de dessus et de côté du rover et je les ai importées dans Solidworks. Je voulais que la taille des roues soit de 130 mm de diamètre, j'ai donc redimensionné les images en fonction de cette dimension.

Ensuite, à partir de là, j'ai pris toutes les dimensions clés, comme la largeur, la longueur, la hauteur, la distance entre les roues, les dimensions de la suspension à bascule et ainsi de suite.

Maintenant, en fonction de ces dimensions et des moteurs à courant continu et des servos que j'avais prévu d'utiliser, j'ai conçu les pièces du rover de manière à ce qu'elles puissent être facilement imprimées en 3D et assemblées tout en essayant de garder l'apparence aussi proche que possible de l'original.

Pour la suspension à bascule du bogie, j'utilise des profilés en aluminium ronds de 20 mm, tandis que pour le châssis de base, j'utilise des profilés en aluminium à rainure en T de 20 mm.

Vous pouvez trouver et télécharger ce modèle 3D, ainsi que l'explorer dans votre navigateur sur Thangs.

Et voici les fichiers STL nécessaires à l'impression 3D :

Impression 3D des répliques de Mars Rover

Pour l'impression 3D des pièces, j'ai utilisé mon ancienne Creality CR-10 ainsi que la nouvelle imprimante 3D CR-10 V3. Si vous souhaitez imprimer les roues avec un matériau flexible, vous aurez certainement besoin d'une imprimante avec extrudeuse directe, tout comme la CR-10 V3.

Ces deux imprimantes 3D offrent une excellente qualité d'impression tout en étant relativement abordables. Si vous êtes intéressé, voici les liens vers ceux-ci afin que vous puissiez les consulter :

  • Créalité CR-10…… Amazon / Banggood
  • Creality CR-10 V3…… Amazon / Banggood / AliExpress

Voir également : Meilleurs oscilloscopes économiques pour les débutants et les créateurs – ; Mise à jour 2021

Lors de l'impression 3D des pièces, il est important d'utiliser la fonction d'expansion horizontale de votre logiciel de tranchage. J'ai utilisé une valeur de -0,1 mm. Cette fonctionnalité compense l'expansion du filament lors de l'impression.

Si elle n'est pas utilisée, par exemple, si la pièce a un trou d'un diamètre de 20 mm, le trou de la pièce imprimée en 3D réelle sera d'environ 19,8 mm et nous ne pourrons pas l'assembler.

Néanmoins, voici toutes les pièces imprimées en 3D.

Pour être honnête, c'est un peu fou la quantité d'impressions qu'il y a, mais c'est le seul moyen d'obtenir l'apparence unique du rover. Cependant, vous pouvez réduire le temps d'impression de moitié si vous choisissez d'imprimer uniquement les parties fonctionnelles de ce rover.

Liste des pièces pour le DIY Mars Rover

Voici une liste des composants nécessaires pour assembler ce DIY Mars Rover. La liste des composants électroniques se trouve ci-dessous dans la section schéma de circuit de l'article.

  • Profilés en aluminium à rainure en T 20x20mm ………..AmazonBanggood  / AliExpress
  • Équerres d'angle profilées à rainure en T ……………..… AmazonBanggood  / AliExpress
  • Tube rond en aluminium 20 mm ………………. Amazon /  AliExpress
  • Joint d'extrémité de tige 8 mm ………………………………….. Amazon / Banggood / AliExpress
  • 8 x Roulement 608RS – 8x22x7mm ……..…… AmazonBanggood  / AliExpress
  • 8 x Roulement 626RS – 6x19x6mm ………….… AmazonBanggood  / AliExpress
  • 5 x Roulement 625RS – 5x16x5mm …………… AmazonBanggood  / AliExpress
  • Boulons M3 de différentes longueurs ………………………… AmazonBanggood  / AliExpress
  • 4 x klaxons servo …………………………………………. Amazon / Banggood / AliExpress

Nous avons également besoin de différentes longueurs de boulons M4, M5 et M6. Vous pouvez consulter la liste complète des boulons et écrous nécessaires ci-dessous.

Vous pouvez également vous procurer les boulons et les écrous auprès de votre quincaillerie locale.

Assemblage du Rover

Très bien, maintenant nous pouvons commencer à assembler le rover. Tout d'abord, nous devons préparer les profilés en aluminium. J'ai utilisé une scie à main en métal pour les couper à la bonne taille.

Nous avons besoin de 10 profilés à rainure en T pour la base et de 8 profilés ronds pour la suspension basculante-bogie avec les dimensions suivantes.

Pour assembler le cadre des profilés à rainure en T, nous utilisons des équerres d'angle à rainure en T appropriées et quelques boulons et écrous. Une fois que nous avons les cadres supérieur et inférieur prêts, nous pouvons compléter la base en insérant les pièces imprimées en 3D du joint à bascule sur les côtés et des supports imprimés en 3D à l'avant et à l'arrière. Pour les fixer en place, nous avons besoin de boulons M3 et d'écrous à rainure en T.

Pour les culbuteurs, j'ai utilisé des boulons et des écrous M5. La distance entre le profil avant et le joint à bascule doit être de 134 mm.

Assemblage de la suspension Rocker-bogie

Ensuite, nous pouvons insérer les roulements principaux pour la suspension du balancier-bogie en place. Ensuite, nous avons l'arbre du joint de culbuteur qui sera fixé à la base à l'aide d'un boulon M8.

L'arbre a une fente où nous pouvons insérer un écrou M8 qui est utilisé pour le fixer à la base. Le trou de l'arbre est de 7,5 mm afin que nous ayons une connexion étanche entre le boulon et l'arbre. De cette façon, nous renforçons en fait l'arbre imprimé en 3D car le boulon lui-même supportera une partie du poids du rover. C'est la partie la plus sollicitée de l'ensemble car tout le poids du rover est supporté par l'axe du culbuteur. La façon dont nous imprimons les pièces est très importante pour leur solidité.

J'ai d'abord imprimé cet arbre de la manière la plus simple, où aucun matériel de support n'est nécessaire, mais l'impression a échoué.

De cette façon, la force de contrainte principale agit sur les couches qui ne sont pas si fortes, mais si nous imprimons la pièce sur le côté, là où la force de contrainte agira sur les contours du mur, la pièce sera bien plus solide et n'échouera pas.

Néanmoins, nous allons maintenant continuer à assembler la suspension balancier-bogie avec les joints de roue et les supports de moteur, et plus tard nous fixerons ces sous-ensembles aux axes de balancier.

Les trous des pièces où vont les profils ronds de 20 mm sont dimensionnés pour avoir un ajustement serré, donc dans certains cas, nous devons utiliser une râpe ou un papier abrasif pour les faire s'adapter.

Maintenant, pour assembler correctement ces pièces, nous devons faire des trous dans les profils ronds à des endroits précis. Pour cela, nous allons d'abord marquer une ligne droite sur le profil.

Ensuite, nous pouvons insérer le profil dans la pièce imprimée en 3D avec la ligne de marquage passant par le trou de la pièce. Ensuite, nous pouvons marquer les emplacements où nous devons percer le profil des deux côtés de cette pièce.

De l'autre côté du profil, nous devons répéter la même procédure.

J'ai percé les trous à l'aide d'une perceuse de 2,5 mm, puis à l'aide d'un boulon M3, j'ai fait un filetage dans le profil que nous utiliserons pour serrer les pièces.

Le profil en aluminium est plus souple que le boulon, il est donc facile de faire le filetage avec le boulon lui-même. Suivre cette méthode pour percer les trous est très important pour qu'à la fin toutes les pièces soient positionnées comme elles devraient l'être les unes par rapport aux autres.

Pour l'articulation du bogie, nous utilisons également deux roulements et un boulon M8.

Une fois que nous avons terminé l'arrangement de la suspension à bascule et bogie, nous pouvons continuer avec l'assemblage des articulations du volant. La pièce de joint de volant est composée de deux parties boulonnées ensemble.

Pour le joint réel ou la connexion entre la partie de montage du servo et la partie de montage du moteur à courant continu, nous utilisons deux roulements et un boulon M6.

Sur le côté supérieur ou la tête du boulon, nous devons fixer un servo klaxon et nous le faisons à l'aide de ce coupleur imprimé en 3D et de quelques boulons M3.

Le coupleur a une fente hexagonale à travers laquelle le mouvement du servo sera transféré au boulon. En bas, nous pouvons visser l'autre partie du joint.

Nous sécurisons cette connexion avec un écrou M6. Ceci termine le joint du volant, bien que plus tard je me rendrai compte que nous devons en fait ajouter un autre écrou M6 en bas et le serrer à l'autre écrou.

Nous devons le faire car le mouvement du servo est transféré à la pièce de montage du moteur à courant continu à l'aide de l'écrou lui-même, et s'il n'est pas serré avec un autre écrou, tout le joint se dévissera.

La même procédure vaut pour l'autre joint d'angle. Nous savons que nous avons tout connecté correctement si nous plaçons cet assemblage sur une surface plane et que les trois supports de moteur reposent à plat ou qu'ils sont tous parallèles les uns aux autres.

Bien sûr, nous utilisons la même méthode pour assembler l'autre côté. Cependant, nous pouvons noter ici que bien que certaines pièces semblent identiques, ce ne sont pas les mêmes pièces mais elles sont en fait en miroir.

Ensuite, nous devons insérer ces sous-ensembles sur les axes de culbuteur sur le châssis de base ou le châssis. Avant de faire cela, nous devons insérer des inserts filetés en laiton dans l'arbre.

À l'aide d'un fer à souder, nous pouvons facilement les insérer en place, et nous obtenons ainsi des trous filetés bons et fiables pour fixer le sous-ensemble de suspension. Nous avons besoin de quatre boulons M4 à cette fin.

Une fois que nous les avons installés des deux côtés, nous pouvons remarquer que le châssis tombe ou tourne librement. Donc, il nous manque en fait quelque chose pour que la suspension à bascule du bogie fonctionne correctement, et c'est le différentiel.

Avec le différentiel, les deux culbuteurs sont reliés entre eux et au châssis du rover. Avec cette configuration, lorsqu'un côté tourne, l'autre tourne dans le sens opposé, offrant ainsi un contact de roue à peu près égal.

Le châssis aura un angle d'inclinaison moyen des deux culbuteurs.

Voici toutes les pièces nécessaires au montage du différentiel.

Comme la barre différentielle est assez longue, je l'ai composée de trois pièces boulonnées ensemble afin que nous puissions les imprimer en 3D même sur des imprimantes 3D plus petites. La barre différentielle pivotera au milieu du châssis avec une articulation composée de deux roulements et d'un boulon M8.

Pour connecter le différentiel avec le culbuteur, nous avons besoin d'une rotule d'extrémité de tige. J'utilise une rotule d'extrémité de tige M8 et nous avons également besoin d'une tige filetée M8 d'une longueur de 50 mm. La tige filetée va dans une pièce imprimée en 3D qui a un écrou M8 d'un côté, et de l'autre côté, elle va dans la rotule d'extrémité de tige.

Ici, nous devons ajuster la distance entre la liaison différentielle imprimée en 3D et l'extrémité de la tige qui doit être d'environ 20 mm pour que le châssis reste horizontal. Pour relier la biellette différentielle au culbuteur, nous utilisons deux roulements et un boulon M5.

Nous répétons également cette procédure pour l'autre côté et avec cela, notre suspension à bascule-bogie est terminée. Quand un côté monte, l'autre descend et vice-versa.

Cela permet à toutes les roues d'être en contact permanent avec le sol. Le châssis ne fait que la moitié du mouvement de la jambe, ou le châssis a un angle d'inclinaison moyen des deux culbuteurs.

Voir également : Fonctionnement automatique de la plate-forme du bras robotique Arduino et des roues Mecanum

Assemblage des moteurs pour Mars Rover

Très bien, nous pouvons ensuite passer à l'installation des moteurs à courant continu. Les moteurs que j'utilise ont un diamètre de 37 mm, fonctionnent à 12 V et ont une boîte de vitesses avec une sortie de 50 tr/min.

Bien que j'ai réalisé plus tard que 50 tr/min était un peu trop pour ce rover, je suggérerais donc de choisir des versions à 20 ou 10 tr/min.

Pour fixer les roues aux moteurs, j'ai fabriqué ces coupleurs d'arbre.

Ici, nous devons installer des inserts filetés M3 qui seront utilisés pour fixer le coupleur à l'arbre, ainsi que des écrous M4 pour fixer la roue au coupleur. Lors de l'insertion des écrous, nous devons également ajouter de la colle pour qu'ils restent bien en place, ou utiliser des inserts filetés à la place.

Ensuite, nous pouvons fixer les roues. Les roues sont composées de deux parties. L'une est la roue que j'ai imprimée avec un filament flexible, mais ce n'est pas obligatoire, et l'autre est la jante imprimée avec du PLA normal.

La jante a des fentes qui s'insèrent dans la roue et ainsi la puissance du moteur est transférée à la roue. Nous pouvons ajouter quelques gouttes de colle au niveau des fentes pour les sécuriser davantage. Enfin, nous pouvons fixer les roues aux coupleurs d'arbre ou aux moteurs à courant continu à l'aide de 4 boulons M4.

Très bien, alors nous pouvons ensuite installer des servomoteurs de direction. J'utilise des servos numériques à couple élevé avec un couple de 25 kgcm et une tension de fonctionnement de 4,8 à 6,8 V. Pour fixer les servos en place, nous utilisons quatre boulons M3 qui vont dans les inserts filetés M3 de la pièce imprimée en 3D du support de servo.

Assemblage de l'unité de caméra

Ensuite, nous pouvons assembler l'unité de caméras. Pour le panoramique de la caméra, j'ai décidé d'utiliser un moteur pas à pas NEMA 17, mais vous pouvez le modifier à tout moment en utilisant n'importe quel autre type de moteur ici.

Le mouvement du moteur est transféré à la partie supérieure à l'aide d'une tige filetée M5 qui est reliée au moteur avec un coupleur d'arbre imprimé en 3D, et de l'autre côté, nous utilisons un roulement et deux écrous pour fixer la tige filetée à l'élément mobile. Pour incliner la caméra, j'utilise un servo qui est le même que celui que nous utilisons pour les volants.

De nombreuses pièces ici sur l'unité de caméra ne sont pas fonctionnelles et elles sont présentes juste pour correspondre à l'apparence du vrai rover. Pour assembler ces pièces, nous avons besoin de divers boulons M3 et de quelques inserts filetés.

Cependant, je vais également installer une vraie caméra FPV ici. J'ai fabriqué un support personnalisé pour que je puisse le monter sur le boîtier de l'unité de caméra. La caméra est facilement accessible par le haut que nous fermons avec un couvercle encliquetable. Voici l'apparence finale de l'unité de caméra.

J'ai monté tout ce sous-ensemble de caméra dans le coin avant droit du châssis.

À ce stade, nous pouvons soit continuer à assembler le reste des pièces imprimées en 3D, qui ne sont en fait pas fonctionnelles mais uniquement pour correspondre à l'apparence du vrai rover, soit connecter les composants électroniques et faire fonctionner le rover. J'ai décidé d'assembler d'abord toutes les pièces imprimées en 3D, puis de faire l'électronique.

Assemblage du reste du rover

Comme je l'ai dit, les pièces suivantes sont juste pour correspondre à l'apparence du rover donc je n'entrerai pas dans les détails comment les assembler. Vous pouvez voir comment tout doit être connecté à partir du modèle 3D.

En fait, j'ai mis beaucoup d'efforts à concevoir ces pièces, en prêtant attention aux détails pour que tout soit beau.

Ces pièces sont également assez grandes et prennent un certain temps pour les imprimer en 3D.

Voici un aperçu rapide de la façon dont je les ai installés.

Les deux derniers panneaux supérieurs au milieu du rover sont conçus pour s'encliqueter dans le rover.

Ils agiront en fait comme un capot qui peut être facilement retiré car les composants électroniques seront situés dans cette zone.

Le support de composants électroniques est composé de deux pièces imprimées en 3D boulonnées ensemble et va au cadre inférieur du châssis.

Électronique

Très bien, alors maintenant nous pouvons continuer avec l'électronique. Tout d'abord, nous devons mesurer la quantité de fil dont nous avons besoin pour chaque moteur. J'ai soudé les fils directement sur les moteurs car je n'avais pas de connecteurs de moteur appropriés. J'ai utilisé des gaines thermorétractables pour isoler les connecteurs.

Avec l'aide de quelques colliers de serrage, nous pouvons guider et garder propres les fils.

Pour les servomoteurs, nous pouvons utiliser des fils d'extension de servo pour étendre les fils jusqu'au compartiment électronique. La partie de montage électronique a des fentes à travers lesquelles nous pouvons faire passer les fils pour obtenir le milieu du rover.

Dans l'ensemble, je pense que le câblage est sorti assez propre avec les fils passant derrière les parties visibles.

Voir aussi : Robot SCARA | Comment construire votre propre robot basé sur Arduino 

Schéma de circuit DIY Mars Rover

Jetons maintenant un coup d'œil au schéma de circuit de ce rover et voyons comment tout doit être connecté.

Vous pouvez obtenir les composants nécessaires à ce projet à partir des liens ci-dessous :

  • Moteur CC 12V 37mm …….……………….…
  • Servo numérique 25kg …………………………….
  • Driver de moteur CC DRV8871 ……………….
  • Moteur pas à pas – NEMA 17…………………
  • Pilote pas à pas A4988………………..…..…
  • Arduino MEGA…………………….…..………
  • Convertisseur abaisseur CC-CC …………………….
  • Batterie LiPo 3S ………………………..……….. 
  • Connecteur XT60 ……………………………… 
  • Émetteur RC FLYSKY …………………..
  • Caméra FPV et émetteur vidéo…. Amazon / Banggood / AliExpress
  • Récepteur FPV de votre choix

Pour piloter les six moteurs à courant continu, nous utilisons six pilotes de moteur à courant continu DRV8871 qui prennent en charge le contrôle PWM et jusqu'à 3,6 A de courant de crête. La tension de fonctionnement des moteurs à courant continu est de 12 V, avec un courant nominal de 1 A et un courant de décrochage de 3 A. Pour alimenter le rover, j'utilise une batterie LiPo 3S qui fournit environ 12 V.

Les servos, quant à eux, ont besoin de 4,8 à 6,8 V, nous avons donc besoin d'un convertisseur DC-DC qui convertira le 12 V en 6 V. Le convertisseur doit être capable de gérer environ 8A de courant, car les servos que nous utilisons sont assez puissants et ont un courant de décrochage d'environ 2A. Pour piloter le moteur pas à pas de la caméra, nous pouvons utiliser un pilote pas à pas A4988 ou DR8825. En utilisant deux résistances, nous pouvons créer un simple diviseur de tension à travers lequel nous pouvons surveiller la tension de la batterie.

Le récepteur RC est alimenté par les 6 volts provenant du convertisseur abaisseur, et la caméra FPV et son émetteur vidéo sont alimentés par les 12 V de la batterie.

PCB personnalisé

Afin de garder les composants électroniques organisés, j'ai conçu un PCB personnalisé pour ce rover DIY Mars.

Ce PCB agira en fait comme un blindage Arduino MEGA car nous pourrons le connecter directement au-dessus de la carte Arduino MEGA. En plus des pilotes de moteur, j'ai inclus un régulateur de tension de 3,3 V et une connexion NRF24L01 dédiée au cas où vous voudriez contrôler le rover à l'aide de ce module, ainsi que des connexions pour un capteur DHT22, une boussole, I2C, une communication série, 12 V, 5 V , connexions 3.3V et GND. En fait, j'ai préparé ce circuit imprimé pour l'avenir afin de mettre à niveau les fonctionnalités du rover.

J'ai commandé le PCB de PCBWay. Ici, nous pouvons simplement télécharger le fichier Gerber, choisir les propriétés de notre PCB et le commander à un prix raisonnable.

Je n'ai modifié aucune des propriétés par défaut, à l'exception de la couleur du PCB que j'ai choisie pour être bleue afin de correspondre à la carte Arduino. Vous téléchargez le fichier Gerber ci-dessous, ou depuis la communauté de partage de projets PCBWay à travers laquelle vous pouvez également commander directement le PCB.

Voici que vous pouvez télécharger le fichier Gerber pour ce PCB DIY Mars Rover :

Néanmoins, après plusieurs jours, le PCB est arrivé. La qualité du PCB est excellente et tout est exactement comme dans la conception.

L'assemblage du PCB est assez simple car tout est étiqueté. J'ai commencé par souder les en-têtes de broches au bas du PCB, pour la connexion Arduino MEGA, puis j'ai continué avec le côté supérieur. J'ai en fait utilisé des en-têtes de broches pour toutes les connexions, car cela donne la possibilité d'apporter des modifications si quelque chose ne fonctionne pas correctement. Je n'ai pas soudé le régulateur de tension 3,3 V ainsi que certaines broches Arduino libres, car je n'allais pas les utiliser maintenant de toute façon.

Une fois l'assemblage du PCB terminé, j'ai fixé la carte Arduino à la pièce de montage électronique à l'aide de deux boulons et y ai ajouté le PCB.

Ensuite, j'ai connecté chaque moteur à leurs pilotes et les ai mis en place dans le PCB. Les servos vont dans leurs broches de servo appropriées, ainsi que le pilote pas à pas pour lequel j'ai utilisé un cavalier pour sélectionner la résolution de pas de 1/8e.

Pour la communication radio, j'utilise l'émetteur et le récepteur FLYSKY RC qui sont vraiment abordables et fonctionnent très bien.

Pour connecter le récepteur à l'Arduino, nous pouvons utiliser des câbles d'extension servo car nous avons besoin de trois fils, VCC, GND et la broche Signal. Le récepteur communique avec l'Arduino via un I-BUS et le port série. Si nous voulons renvoyer des données du récepteur à l'émetteur, dans notre cas pour surveiller la tension de la batterie, nous devons également connecter le capteur I-BUS du récepteur à un autre port série Arduino.

Le convertisseur abaisseur est fixé en place à l'aide de deux boulons, et pour fixer la batterie LiPo, j'utilise deux élastiques afin de pouvoir facilement retirer la batterie pour la recharger.

L'interrupteur d'alimentation se trouve dans le panneau arrière droit du rover. J'ai utilisé des fils de calibre 20 pour ces connexions car le courant qui les traverse peut atteindre plusieurs ampères lorsque le rover est complètement engagé. Make sure you double check your connections with these wires because if you connect something wrong you might fire up things.

Lastly, we can connect the FPV camera to a 12V power supply and connect video signal wire to the video transmitter which also needs to be powered with 12V. With this we are done with the electronics.

We can put back the cover panels in place and we are done with this DIY Mars Rover. Actually, we are almost done, as we need to give life to this machine now, or program the Arduino.

Programming the DIY Mars Rover – Arduino Code

Here you can download the Arduino code for this DIY Mars Rover project:

Code overview

So, using the IBusBM library we read incoming data from the RC Transmitter.

// Reading the data comming from the RC Transmitter
  IBus.loop();
  ch0 = IBus.readChannel(0);
  ch1 = IBus.readChannel(1);
  ch2 = IBus.readChannel(2);
  ch3 = IBus.readChannel(3);
  ch6 = IBus.readChannel(6);Code language: Arduino (arduino)

Then we convert these values into a turning radius to right value, turning radius to left value and rover speed from 0 to 100%.

// Convertign the incoming data
  // Steering right
  if (ch0 > 1515) {
    r = map(ch0, 1515, 2000, 1400, 600); // turining radius from 1400mm to 600mm
  }
  // Steering left
  else if (ch0 < 1485) {
    r = map(ch0, 1485, 1000, 1400, 600); // turining radius from 600mm to 1400mm
  }
  // Rover speed in % from 0 to 100
  s = map(ch2, 1000, 2000, 0, 100); // rover speed from 0% to 100%Code language: Arduino (arduino)

We use the turning radius “r” value for calculating the steering wheels angles as well as the speed of the wheels.

void calculateMotorsSpeed() {
  // if no steering, all wheels speed is the same - straight move
  if (ch0 > 1485 && ch0 < 1515) {
    speed1 = speed2 = speed3 = s;
  }
  // when steering, wheels speed depend on the turning radius value
  else {
    // Outer wheels, furthest wheels from turning point, have max speed
    // Due to the rover geometry, all three outer wheels should rotate almost with the same speed. They differe only 1% so we asume they are the same.
    speed1 = s;
    // Inner front and back wheels are closer to the turing point and have lower speeds compared to the outer speeds
    speed2 = s * sqrt(pow(d3, 2) + pow((r - d1), 2)) / (r + d4);
    // Inner middle wheel is closest to the turning point, has the lowest speed
    speed3 = s * (r - d4) / (r + d4);
  }

  // speed value from 0 to 100% to PWM value from 0 to 255
  speed1PWM = map(round(speed1), 0, 100, 0, 255);
  speed2PWM = map(round(speed2), 0, 100, 0, 255);
  speed3PWM = map(round(speed3), 0, 100, 0, 255);
}

void calculateServoAngle() {
  // Calculate the angle for each servo for the input turning radius "r"
  thetaInnerFront = round((atan((d3 / (r + d1)))) * 180 / PI);
  thetaInnerBack = round((atan((d2 / (r + d1)))) * 180 / PI);
  thetaOuterFront = round((atan((d3 / (r - d1)))) * 180 / PI);
  thetaOuterBack = round((atan((d2 / (r - d1)))) * 180 / PI);
}Code language: Arduino (arduino)

As I mentioned earlier, we are using the Ackerman steering geometry for calculating them. These values are then used for controlling the servos using the ServoEasing library which provides smoother servo movements.

// Servo motors
    servoW1.startEaseTo(97 - thetaOuterFront);
    servoW3.startEaseTo(97 + thetaOuterBack);
    servoW4.startEaseTo(94 - thetaInnerFront);
    servoW6.startEaseTo(96 + thetaInnerBack);Code language: Arduino (arduino)

For controlling the DC motors using the analogWrite() function which actually sends PWM signal to the DC motor drivers.

// Motor Wheel 1 - Left Front
      analogWrite(motorW1_IN1, speed2PWM);   // PWM value
      digitalWrite(motorW1_IN2, LOW); // ForwardCode language: Arduino (arduino)

Overall, the code is not that complicated as the rover itself doesn’t have complicated functions. However, I do plan in future videos to add more functions to this rover, like GPS navigation, various sensors, robotic arm, soil collecting mechanism and so on.

I hope you enjoyed this project and learned something new. Feel free to ask any question in the comments section below and check my Arduino Projects Collection.


Processus de fabrication

  1. Rover
  2. Détecteur de fréquence audio
  3. Tech-TicTacToe
  4. Voltmètre DIY avec Arduino et un écran Nokia 5110
  5. compte à rebours Arduino
  6. Voiture Porsche RC (projet Arduino)
  7. Moniteur d'énergie intelligent basé sur Arduino
  8. Idée de bricolage avec RFID
  9. Détection des couleurs Arduino