Réservoir entièrement imprimé en 3D :construisez une plate-forme de robot à chenilles polyvalente
Dans le didacticiel, je vais vous montrer comment j'ai construit un véhicule à chenilles radiocommandé super cool, ou une plate-forme robotisée ou un char, à vous de choisir. J'ai conçu cette chose à partir de zéro pour qu'elle soit entièrement imprimable en 3D afin que vous puissiez facilement tout imprimer et en construire un vous-même.
Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.
Vue d'ensemble
Mon objectif pour ce projet était de créer une plate-forme polyvalente capable de traverser de nombreux types de terrains et pouvant être utilisée pour diverses applications. La meilleure solution pour cela était d’utiliser un système de pistes continues. Les chenilles répartissent le poids du véhicule sur une plus grande surface, ce qui offre une excellente adhérence et réduit les risques de rester coincé dans un sol meuble, dans la boue ou dans la neige.
La plateforme robotique roule plutôt bien dans la boue et c’est dommage que je n’aie pas eu l’occasion de la tester sur la neige. J'espère que je le ferai dans certaines de mes futures vidéos où je prévois d'installer un bras robotique ou une tourelle. Avec un bras robotique au-dessus de la plate-forme, nous pouvons effectuer diverses tâches comme saisir et déplacer quelque chose, ou nous pouvons y installer une caméra et l'utiliser pour une inspection visuelle, etc. Ou, par exemple, nous pouvons fabriquer une tourelle capable de tirer des fléchettes NERF et, en combinaison avec l'éclairage LED simple mais sympa que j'ai déjà installé sur cette plate-forme, nous pouvons nous amuser beaucoup en jouant avec.
En ce qui concerne la suspension, j’ai utilisé un système de suspension Christie utilisé dans les chars depuis de nombreuses années. Avec cette configuration, chaque roue a une suspension individuelle ou un ressort et un amortisseur.
Cela permet au véhicule de rouler en douceur sur un terrain accidenté et de franchir des obstacles tout en conservant une bonne surface de contact entre les chenilles et le terrain.
Pour contrôler le char imprimé en 3D, j'utilise un émetteur RC commercial bon marché qui envoie des commandes à la plate-forme.
Sur la plateforme j'ai un récepteur RC adapté qui reçoit les commandes et les envoie à un microcontrôleur. Le cerveau de cette plate-forme est une carte basée sur un microcontrôleur Atmega2560 et pour tout connecter facilement, j'ai créé un PCB personnalisé qui peut être simplement fixé sur le dessus de la carte.
Néanmoins, attachez-vous maintenant et je vais vous guider tout au long du processus de construction de cette plate-forme robotique, en commençant par la conception, l'impression 3D, l'assemblage, la connexion des composants électroniques et la programmation du microcontrôleur.
Concevoir la plateforme du robot
J'ai conçu cette plateforme robotique à l'aide de SOLIDWORKS, qui est également le sponsor de cette vidéo.
— Section sponsorisée —
"Il convient de noter ici que ces outils de conception de pointe et de qualité professionnelle sont désormais disponibles pour tous les créateurs à un prix remarquablement bas de seulement 99 $ par an ou 9,99 $ par mois. C'est vrai, 3D DÉCOUVREZ SOLIDWORKS for Makers est idéal pour tous ceux qui apprennent le métier, réalisent des projets de bricolage et bien plus encore.
Cette offre inclut la 3D DÉCOUVREZ SOLIDWORKS Professional, l'outil de CAO le plus demandé de l'offre et s'exécute localement sur votre PC. Vous pouvez stocker des fichiers localement ou dans le cloud avec 3D Plateforme EXPÉRIENCE.
« xDesign », CAO basée sur un navigateur, vous pouvez l'utiliser avec 3D DÉCOUVREZ SOLIDWORKS, ou seul. C’est idéal pour modéliser n’importe où, à tout moment et sur n’importe quel appareil.
« xShape », CAO de forme libre basée sur un navigateur, facile à utiliser pour la modélisation de surfaces sur n'importe quel appareil.
« Visualisez connecté », créez facilement des images de qualité photo, des animations, du contenu Web interactif et bien plus encore pour impressionner votre public.
« NC Shop Floor Programmer », CAM pour des stratégies d'usinage intelligentes pour le fraisage 3 axes et l'électroérosion à fil dans un package facile à utiliser.
Cliquez sur le lien ci-dessous et vous bénéficierez d'une réduction spéciale de 20 % – afin que vous puissiez commencer à créer avec les meilleurs dès aujourd'hui ! Un grand merci à SOLIDWORKS pour avoir sponsorisé et soutenu un contenu éducatif comme celui-ci. "
Acheter maintenant : http://www.solidworks.com/makers20
En savoir plus : https://discover.solidworks.com/3dexperience-solidworks-makers
— Retour au sujet —
Laissez-moi vous expliquer comment j'ai imaginé la conception d'une plate-forme robotique. Les premiers paramètres d'entrée pour la conception étaient ces amortisseurs RC que j'avais et leurs dimensions.
J'en avais 8, ce qui signifiait qu'il y aurait 4 galets de chaque côté, et ils mesuraient 41 mm de long lorsqu'ils étaient étendus avec un débattement de 11 mm. En fonction de ces dimensions, je voulais obtenir une course verticale un peu plus grande pour les roues, j'ai donc imaginé ce mécanisme qui m'a permis d'obtenir une course verticale de 16 mm pour les roues.
Je veux dire, je peux obtenir une distance de déplacement encore plus grande si je rapproche le joint de l'amortisseur et de la liaison de roue du point de pivotement de la liaison de roue, mais je perdrais alors la force du ressort, ou j'aurais besoin d'un ressort plus fort pour maintenir correctement la plate-forme.
J'ai fait quelques simulations simples avec SOLIDWORKS pour vérifier les forces de réaction des ressorts avec différents mécanismes et j'ai donc choisi ce mécanisme qui offre également une bonne compacité globale.
Si nous regardons de plus près la roue avant, nous pouvons voir comment elle est reliée à la roue folle qui assure la tension dynamique de la chenille. Lorsque la roue monte, les circonférences de la voie diminuent et ainsi la tension se relâche.
Avec cette connexion ici, lorsque cela se produit, la roue folle est poussée vers l'avant pour tendre la chenille. Avec cette connexion, nous pouvons également tendre le rail de manière statique, en ajustant ce boulon et cet écrou d'écartement.
A l'arrière, nous avons le pignon qui est composé de trois parties. Il comporte le coupleur d'arbre et les sections gauche et droite du pignon reliés ensemble par trois boulons M3.
La dimension clé ici sur le pignon est le pas car il doit correspondre au pas de la piste. Le pas est ici de 11 mm et j'ai choisi le pignon à 12 dents ce qui m'a donné un diamètre primitif du pignon d'environ 42 mm.
Le pas de 11 mm a en fait été défini par la conception du maillon de chenille. Mon objectif pour le maillon de piste était d'être aussi compact que possible et de pouvoir être connecté au maillon suivant avec une seule pièce ou une broche supplémentaire, tout en étant suffisamment solide pour être réalisé avec une imprimante 3D.
De plus, lors de l'impression 3D, je voulais éviter toute utilisation de matériau de support pour la pièce, ce que j'ai effectivement réussi à réaliser avec cette conception.
Pour connecter les maillons de chenille les uns aux autres, j'ai prévu d'utiliser des broches de 2 mm de diamètre, j'ai donc dimensionné un côté à 2 mm, pour obtenir un ajustement serré, et l'autre côté à 2,3 mm, pour obtenir un ajustement lâche afin que les maillons de chenille puissent tourner librement.
Les dents du pignon entrent dans cette ouverture ici où les axes du maillon de chenille sont formés avec un diamètre de 8,8 mm, alors que le diamètre du pignon est de 9,1 mm afin d'avoir un ajustement lâche pour fonctionner correctement.
Une fois toutes ces pièces définies, j'ai dessiné une esquisse dans l'environnement d'assemblage, un contour fermé autour du pignon, de la roue folle et des galets.
Ensuite, j'ai utilisé cette esquisse avec la fonction de motif de composant de chaîne SOLIDWORKS pour générer tous les liens de piste le long de ce contour.
J'ai conçu le reste de la plate-forme du robot, la base où tout est connecté, les côtés qui accueillent certaines LED et les capots supérieurs, dans ce que je pensais être un style moderne et cool. Comme la dimension globale de la plateforme est plus grande que celle de la plupart des imprimantes 3D, environ 400 mm sur 300 mm, j'ai divisé toutes les pièces en deux sections afin que nous puissions les imprimer sur presque n'importe quelle imprimante 3D. Ils sont reliés entre eux avec des supports et des boulons M3.
Pour assembler l'ensemble de la plate-forme du robot, nous avons besoin de divers boulons et écrous M3 et M4, ainsi que de quelques inserts filetés et roulements. Vous pouvez trouver une liste complète de tous les composants nécessaires à ce projet ci-dessous dans la section assemblage.
Modèle 3D et fichiers de téléchargement STL
Vous pouvez obtenir le modèle 3D de cette plateforme de char/robot RC, ainsi que les fichiers STL pour l'impression 3D auprès de Cults3D.
Impression 3D
Lors de l'impression 3D, afin d'obtenir des pièces imprimées en 3D dimensionnellement précises, nous devons utiliser les paramètres d'expansion horizontale et d'expansion horizontale du trou dans notre logiciel de découpage. Si nous laissons ces paramètres par défaut, les dimensions extérieures des impressions ainsi que les trous sont généralement plus petits que le modèle original.
J'ai réglé l'expansion horizontale sur 0,02 mm et l'expansion horizontale du trou sur 0,04 mm. Bien sûr, vous devriez faire quelques tests d'impression pour voir quelles valeurs vous donneront les meilleurs résultats sur votre imprimante 3D. Nous avons besoin de dimensions précises des pièces pour les assembler facilement entre elles et avec les autres composants comme les roulements et les boulons.
Lors de l'impression 3D des maillons de chenille, j'ai utilisé un radeau comme adhérence de la plaque de construction, car leur surface de contact avec la plaque du lit est un peu petite et pourrait ne pas bien adhérer si l'adhérence du lit sur votre imprimante n'est pas très bonne. Surtout lors de l'impression de lots plus importants, il est plus sûr d'utiliser un radeau.
Assemblage du réservoir imprimé en 3D – Plateforme de robot à chenilles
Ok, j'ai donc ici toutes les pièces imprimées en 3D pour la plateforme du robot. Pour être honnête, il a fallu un certain temps pour tout imprimer.
Par exemple, l'impression de chacune des sections de base a pris environ 22 heures, et l'impression des 156 liens de piste a pris environ 96 heures. Il nous faut environ 200 heures pour tout imprimer. Heureusement, j'avais deux imprimantes 3D, donc cela m'a pris environ 100 heures.
Liste des pièces
Voici une liste des composants nécessaires à l’assemblage de ce projet de réservoir imprimé en 3D – plate-forme robotisée. La liste des composants électroniques se trouve ci-dessous dans la section schéma de circuit de l'article.
- 8x Amortisseurs RC …………………………………….. Amazon /AliExpress
- 8x ressorts ……………………………………………………………. Amazon / AliExpress
- 40x Roulements à billes 624 – 4x13x5mm ………………… Amazon /AliExpress
- Inserts filetés M3 ………………………………………….. Amazon / AliExpress
- Boulons et écrous M3 et M4 ……………………………. Amazon / AliExpress
Boulons :
M4x40mm – 8 pièces ; M4x35mm – 2 pièces ; M4x30mm – 8 pièces ; M4x25mm – 2 pièces ; M3x25mm – 16 pièces ; M3x20mm – 8 pièces ; M3x16mm – 10 pièces ; M3x12/14 mm – 32 pièces ; M3x10mm – 8 pièces ; M3x8mm – 14 pièces
Noix :
M4 – 25 pièces ; M3 – 30 pièces
Rondelles :
M4 – 30 pièces
Divulgation :ce sont des liens d'affiliation. En tant qu'associé Amazon, je gagne des revenus grâce aux achats éligibles.
J'ai commencé par assembler la base. Comme je l'ai dit, il est composé de deux sections qui se connecteront l'une à l'autre à l'aide de supports et de boulons et écrous M3.
Pour fixer les supports latéraux, j'utilise des inserts filetés M3 de 5 mm de long qui pénètrent dans la paroi latérale de la base. De cette façon, l'extérieur du mur sera propre, sans boulons ni écrous, afin que les rails puissent passer à proximité.
Ensuite, j'ai fixé les supports de fixation des amortisseurs à l'aide de boulons M3.
Ensuite, j’installe les roulements là où le bras des roues pivotera. Les roulements ont un diamètre extérieur de 13 mm et un diamètre intérieur de 4 mm et nous en avons besoin de deux pour chaque roue.
Comme goupille, j'utilise un boulon M4 d'une longueur de 30 mm. Nous devons placer une rondelle entre le roulement et le bras et les fixer de l'intérieur avec un écrou autobloquant. Nous devons faire attention à la façon dont nous resserrons ce joint, ni trop fort, ni trop lâchement non plus.
Ensuite, nous pouvons installer l'amortisseur. Nous le sécurisons en place à l'aide du boulon M1.4 fourni avec son emballage.
Je n'avais pas ce petit tournevis, j'ai donc utilisé une pince pour fixer le boulon. Jusqu'à présent, il semble que le mécanisme fonctionne parfaitement.
Ensuite, nous pouvons installer la roue à l’extrémité inférieure du bras. La roue est composée de deux sections afin d'éviter l'impression avec du matériel de support. Peut-être qu'il pourrait être imprimé en une seule pièce, mais je n'ai pas essayé comment cela allait sortir.
De cette façon, nous devons relier les deux sections, et j'ai décidé d'utiliser à cet effet les tiges d'acier de 2 mm, la même que celle que j'utiliserai pour relier les maillons de voie entre eux. Il s'agit en fait d'une tige de laiton utilisée pour le soudage, qui est un peu molle et peut être facilement coupée à la bonne taille avec juste une pince.
J'ai inséré trois tiges d'environ 23 mm de longueur pour chaque roue, puis j'ai également installé deux roulements identiques à ceux que j'utilisais auparavant des deux côtés de la roue. Encore une fois, comme précédemment, à l'aide d'un boulon M4, d'une rondelle et d'un écrou autobloquant, j'ai fixé la roue en place.
La roue doit pouvoir tourner librement sans avoir de jeu dans l'arbre.
Il ne reste plus qu'à répéter ce processus pour les autres roues. Quant à la roue avant, nous avons un bras légèrement différent qui possède un levier qui fournira une tension dynamique à la chenille, mais l'installation est la même.
Ensuite, nous pouvons assembler le mécanisme de la roue folle. Il est composé de trois pièces imprimées en 3D, de quelques boulons et d'un écrou d'écartement.
Avant de fixer le premier maillon en place, nous devons ajouter un écrou autobloquant M4 sur la face arrière, sur lequel nous fixerons plus tard la roue folle.
J'utilise les mêmes tiges de cuivre de 2 mm comme broches pour ces joints. Maintenant, au niveau du deuxième maillon côté roue libre, nous pouvons fixer un écrou d'écartement M3 de 15 mm de long à l'aide d'un boulon M3.
De l'autre côté, nous mettons un boulon M3 de 20 mm de long et un écrou qui entrera dans l'écrou d'écartement. Avec cette configuration, nous pouvons désormais ajuster la distance entre la roue folle et le bras de la roue et ainsi tendre la chenille de manière statique et dynamique. Ensuite, nous pouvons simplement fixer la roue folle en place avec un boulon M4, et ainsi nous faisons ce système de tension ainsi que l'ensemble du système de suspension.
Très bien, nous pouvons ensuite assembler le pignon et pour cela, nous devons d'abord installer le moteur. J'ai conçu la plate-forme de base pour accepter des moteurs de 37 mm de diamètre avec un axe central ou décalé.
Nous pouvons installer n'importe quel moteur 12 V DC avec un régime allant de 20 à 1 000 tr/min, en fonction de l'application de la plateforme robotique bien sûr, mais nous en reparlerons un peu plus tard dans la vidéo. Le moteur est fixé en place avec six boulons M3.
Afin de fixer le pignon à l'arbre du moteur, nous devons d'abord préparer le coupleur d'arbre ou y installer des inserts filetés.
Ensuite, nous pouvons insérer le coupleur en place et le fixer avec une vis sans tête M3.
Les deux sections du pignon sont ensuite insérées et fixées à l'aide de trois boulons M3.
Nous voilà donc avec la transmission de la plate-forme terminée et il est maintenant temps de s'amuser à assembler la chenille. C'est vrai, j'ai trouvé ça assez amusant d'assembler la piste.
Voici un aperçu plus approfondi des liens de piste d'où nous pouvons voir à quel point ils sont simples et propres.
Ils sont livrés prêts à l'emploi dès la sortie de l'imprimante 3D car nous n'utilisons aucun support lors de leur impression 3D. Nous avons juste besoin de broches de 2 mm pour les connecter. Comme je l'ai déjà dit, nous pouvons facilement les obtenir à partir de baguettes de soudage en laiton de 2 mm.
Les trous extérieurs des maillons sont bien ajustés, nous devons donc utiliser une certaine force pour les insérer, mais cela garantira qu'ils ne se détacheront pas. Les trous intérieurs sur les maillons sont amples, ce qui garantit une rotation libre entre les maillons de chenille.
Il ne nous reste plus qu'à préparer une tasse de thé ou de café et à profiter de leur assemblage pendant quelques heures. Vous réalisez le plaisir une fois que vous en connectez plusieurs et voyez à quel point le morceau est cool. Nous avons besoin d'un total de 78 maillons de voie pour assembler une seule voie. En termes de longueur de tige, nous avons besoin d'environ 3,5 m pour chaque piste, car chaque broche doit mesurer environ 43 mm de long.
Une fois la piste prête, nous pouvons simplement l'enrouler autour du pignon, des galets et de la roue folle, et fermer la boucle avec une autre goupille de 2 mm sur le site. On peut noter ici qu'avec 78 maillons de voie, la tension de la voie est parfaite, même si la dernière roue monte un peu.
C’est en fait parce que le ressort n’est pas assez solide. Nous pouvons ajuster un peu la tension du ressort en ajustant cet écrou sur l’amortisseur, mais cela n’a pas encore suffi. J'ai donc décidé de remplacer le ressort d'origine fourni avec l'amortisseur par un ressort plus solide.
Le changement du ressort est assez simple, puisqu'il suffit de dévisser une extrémité de l'amortisseur, d'insérer le ressort le plus fort et de revisser la tige. Le ressort que j'avais était un peu plus large que celui d'origine, j'ai donc dû utiliser une rondelle M4 sur le côté inférieur. Désormais, ce ressort avait suffisamment de force pour maintenir la roue en place lors de l'installation des chenilles à 78 maillons.
J’ai fini par changer les ressorts de tous les amortisseurs, car je me suis rendu compte qu’ils ne seraient pas assez solides pour supporter le poids de toute la plateforme. Cela complète l'ensemble du système d'entraînement de la plate-forme qui, je pense, s'est avéré plutôt bon.
Si nécessaire, nous pouvons maintenant régler la tension de la chenille avec l'écrou d'écartement sur la roue folle. Bien sûr, il est normal que la piste soit un peu lâche pour qu'elle fonctionne correctement. La partie supérieure desserrée des chenilles repose sur les supports d'amortisseur.
J'ai connecté le moteur à une alimentation pour vérifier son fonctionnement. Cela me parait parfait. C’est vraiment une sensation formidable de voir en action quelque chose que vous avez créé avec autant de pièces imprimées en 3D.
Évidemment, il faudra répéter la même procédure pour assembler l’autre côté. Une fois cela fait, la plate-forme robotique est terminée à 80 %. Ensuite, je vais installer les panneaux latéraux qui sont principalement là pour l'apparence visuelle.
Nous les fixons en place à l'aide de supports et de boulons M3. En haut, allez aux couvertures qui entoureront la plate-forme. Pour cette vidéo, je l'ai conçu de cette façon juste pour l'apparence visuelle.
Comme je l'ai mentionné plus tôt, dans certaines de mes futures vidéos, je prévois d'ajouter un bras robotique ou une tourelle au-dessus de cette plate-forme, ce qui signifie que je devrai ensuite concevoir les sommets de manière appropriée.
Électronique – Schéma de circuit de la plate-forme de robot
Nous pouvons maintenant passer à l'électronique de ce projet. Comme je l'ai dit, j'utiliserai une carte basée sur un microcontrôleur ATmega2560.
Vous pouvez obtenir les composants nécessaires à ce projet à partir des liens ci-dessous :
- 2 moteurs 12 V CC – 50 à 500 tr/min ………. Amazon / AliExpress
- Pilote de moteur à courant continu DRV8871 ……………….…. Amazon / AliExpress
- Arduino MEGA…………………………….….…..… Amazon / AliExpress
- Batterie LiPo 3S ………………………..………….. Amazon / AliExpress
- Connecteur XT60 …………………………..……… Amazon / AliExpress
- Émetteur FLYSKY RC …………………………. Amazon / AliExpress
Divulgation :ce sont des liens d'affiliation. En tant qu'associé Amazon, je gagne des revenus grâce aux achats éligibles.
Pour piloter les deux moteurs, j'utiliserai deux pilotes de moteur à courant continu DRV8871, qui prennent en charge le contrôle PWM et un courant de crête jusqu'à 3,6 A. La tension de fonctionnement des moteurs à courant continu est de 12 V, et nous alimenterons le tout avec une batterie LiPo 3S offrant environ 12 V. J'ai également inclus un régulateur de tension 5V, le LM350 IC, afin de disposer d'une alimentation 5V dédiée pour d'autres utilisations futures, par exemple pour y connecter des servomoteurs. Dans cette vidéo, nous utiliserons ce 5V pour alimenter le récepteur RC et certaines LED.
Les LED que j'utilise pour ce projet sont de simples LED de 5 mm de couleur blanche et rouge. Je les ai disposés comme suit :
À l'arrière, nous avons deux LED rouges de chaque côté comme feux arrière, et à l'avant trois LED blanches de chaque côté comme phares. De plus, il y a six LED sur le capot supérieur comme feux de route. Pour que ces LED s'allument correctement, nous avons besoin d'un circuit approprié comprenant des résistances pour limiter le courant. J'ai combiné leurs connexions à la fois en parallèle et en série.
Par exemple, pour les phares avant, j'utilise deux lignes parallèles en 12V pour alimenter les 6 LED, 3 de chaque côté gauche et droit, qui sont connectées en série. En fonction de la tension et du courant directs des LED, j'ai calculé la valeur de résistance requise pour chaque ligne, et c'était 150 Ohms pour ce cas. Pour activer les LED, j'utilise des transistors NPN à usage général évalués à 200 mA.
Enfin, j'ai réalisé un simple diviseur de tension que j'utiliserai pour surveiller la tension de la batterie. Simplement, les 12 V de la batterie tombent en dessous de 5 V afin de pouvoir entrer dans une entrée analogique du microcontrôleur. Dans le programme, nous pouvons traduire la valeur en valeur de tension réelle et l'envoyer du récepteur RC à l'émetteur RC où nous pouvons voir la valeur sur l'écran.
Conception de PCB personnalisée
En fait, je me suis retrouvé avec pas mal de connexions, donc afin d'éviter tout gâchis, j'ai dû concevoir un PCB personnalisé pour ce projet.
Le PCB sera compatible avec la carte basée sur le microcontrôleur ATmega2560 pour être directement monté dessus.
J'ai inclus un régulateur de tension de 3,3 V et une connexion pour un module émetteur-récepteur NRF24L01 au cas où nous souhaiterions contrôler la plate-forme avec ce module. De plus, j'ai inclus un rail 12 V et des rails 5 V et 6 V avec des connexions à broches numériques disposées pour y connecter des servomoteurs. Le rail 6V peut être alimenté avec un convertisseur abaisseur externe.
J'ai commandé le PCB chez 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 choisi d'être blanche. Vous pouvez trouver et télécharger le Gerber depuis la communauté de partage de projets PCBWay à travers laquelle vous pouvez également commander directement le PCB.
Vous pouvez également télécharger le fichier Gerber ici :
Néanmoins, après plusieurs jours, le PCB est arrivé. La qualité du PCB est excellente et tout est exactement le même que dans la conception.
L'assemblage du PCB est assez simple car tout est étiqueté. J'ai commencé par souder les connecteurs à broches au bas du PCB, pour la connexion ATmega2560, puis j'ai continué avec le côté supérieur. Pour plus de commodité, nous devons d'abord souder les composants les plus petits, comme les résistances et les transistors, puis les plus gros comme les LED et les connecteurs d'alimentation.
J'ai utilisé des connecteurs à 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é les connecteurs du convertisseur abaisseur externe et de ses rails, ainsi que du régulateur de tension 3,3 V, car de toute façon, je n'allais pas les utiliser maintenant. J'aime vraiment à quel point ce PCB est beau et propre avec cette couleur blanche.
Finition de l'assemblage du réservoir imprimé en 3D
Ok, donc d'abord, nous fixons la carte du microcontrôleur en place avec des boulons M3, puis par-dessus se trouve le PCB personnalisé.
Il est maintenant temps d'installer les LED. Ils seront installés dans le panneau latéral à l'aide de ces supports qui accueillent les LED de 5 mm. Comme décrit dans les schémas, nous devons souder chaque ligne de LED en série.
A la cathode passe le fil noir et à l'anode passe le fil rouge. Nous faisons passer ces fils à travers une petite ouverture dans les panneaux latéraux qui mènent au PCB.
La partie support de LED est conçue pour s'adapter parfaitement au panneau latéral afin qu'une fois insérée en place, nous obtenions un aspect agréable et propre.
Les LED des feux de route sont placées directement sur le capot avant supérieur.
Pour connecter les LED, j'ai soudé des connecteurs mâles dupont XH2,54 mm sur le PCB, j'ai donc dû installer un connecteur femelle dupont approprié sur les fils. Nous avons besoin d'une pince à sertir pour ce sac à main, mais au moment de réaliser ce projet, je n'en avais pas avec moi.
J'ai utilisé de petites pinces ordinaires pour faire ce travail, et les connexions se sont très bien déroulées. Chaque ligne LED doit aller dans le connecteur approprié qui est étiqueté sur le PCB.
Quant aux moteurs, je n’avais pas de connecteurs adaptés donc j’ai soudé les fils directement dessus. La connexion du moteur va à la carte pilote DRV8871 puis au PCB.
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 au microcontrôleur, nous pouvons utiliser des câbles de saut. Le récepteur communique avec le microcontrôleur via un I-BUS et le port série, nous n'avons donc besoin que de trois fils, VCC, GND et la broche Signal.
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.
Enfin, nous pouvons connecter la batterie LiPo. En fonction de la batterie, nous avons besoin d'un connecteur adapté. Celui-ci va dans le connecteur 12V et juste à côté nous avons un connecteur ON/OFF auquel se connectera un interrupteur pour allumer et éteindre l'alimentation de la plateforme.
Veuillez noter ici qu'avant d'alimenter la carte, nous devons d'abord retirer le récepteur RC de l'alimentation et ajuster la tension variable du circuit intégré LM350 à 5 V à l'aide du trimmer.
Il ne nous reste plus qu'à remettre le capot arrière supérieur en place, et nous en avons terminé avec ce projet.
Programmation de la plateforme du robot
Il nous reste maintenant à programmer la plateforme réservoir/robot imprimée en 3D. Voici le code Arduino pour cette plateforme robotique.
/*
3D Printed Tracked Robot Platform - Arduino Code
by Dejan, www.HowToMechatronics.com
Libraries:
IBusBM: https://github.com/bmellink/IBusBM
*/
#include <IBusBM.h>
#define motorLeft_IN1 4
#define motorLeft_IN2 5
#define motorRight_IN1 6
#define motorRight_IN2 7
IBusBM IBus;
IBusBM IBusSensor;
int ch0, ch1, ch6, ch8 = 0;
int motorSpeed, steeringValue, leftMotorSpeed, rightMotorSpeed = 0;
int ledBlinkPeriod = 50;
int isOn = LOW;
unsigned long time_now = 0;
void setup() {
Serial.begin(115200);
IBus.begin(Serial1, IBUSBM_NOTIMER); // Servo iBUS
IBusSensor.begin(Serial2, IBUSBM_NOTIMER); // Sensor iBUS
IBusSensor.addSensor(IBUSS_INTV); // add voltage sensor
// DC motors control - set them stationary
// Left track
digitalWrite(motorLeft_IN1, LOW); // PWM value
digitalWrite(motorLeft_IN2, LOW); // Forward
// Right track
digitalWrite(motorRight_IN1, LOW); // PWM value
digitalWrite(motorRight_IN2, LOW); // Forward
digitalWrite(46, LOW);
digitalWrite(47, LOW);
digitalWrite(48, LOW);
}
void loop() {
// Reading the data comming from the RC Transmitter
IBus.loop();
// ch0 - left and right; ch1 - forward and backward;
ch0 = IBus.readChannel(0); // ch0 - left and right;
ch1 = IBus.readChannel(1); // ch1 - forward and backward;
ch6 = IBus.readChannel(6); // ch6 - Headlights
ch8 = IBus.readChannel(8); // ch8 - High beam
// convert the incoming date into suitable PWM value
steeringValue = map(ch0, 1000, 2000, -185, 185); // 0 to 185 range because then I add +70 in order to avoid low PWM values as to motors won't start if so
motorSpeed = map(ch1, 1000, 2000, -185, 185);
motorSpeed = abs(motorSpeed);
leftMotorSpeed = 70 + motorSpeed + steeringValue; // 70 + (0-185) + (0 - 185 ) = 70 - 255 so this range from 70 to 255 is used as PWM value
rightMotorSpeed = 70 + motorSpeed - steeringValue;
leftMotorSpeed = constrain(leftMotorSpeed, 0, 255); // constrain the PWM value from 0 to 255
rightMotorSpeed = constrain(rightMotorSpeed, 0, 255);
// if PWM is lower than 72, set PWM value to 0
if (leftMotorSpeed < 72) {
leftMotorSpeed = 0;
}
if (rightMotorSpeed < 72) {
rightMotorSpeed = 0;
}
// if right joystick goes up > move forward
if (ch1 > 1510 && ch1 < 2000) {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}
// if right joystick goes down > move backward
if (ch1 > 1000 && ch1 < 1420) {
digitalWrite(motorLeft_IN1, LOW); // Direction - Backward
analogWrite(motorLeft_IN2, leftMotorSpeed); // PWM input
digitalWrite(motorRight_IN1, LOW); // Direction - Backward
analogWrite(motorRight_IN2, rightMotorSpeed); // PWM input
}
// if right joystick is in the middle, don't move
if (ch1 > 1420 && ch1 < 1520) {
if (leftMotorSpeed < 75 && rightMotorSpeed < 75) {
digitalWrite(motorLeft_IN1, LOW);
digitalWrite(motorLeft_IN2, LOW);
digitalWrite(motorRight_IN1, LOW);
digitalWrite(motorRight_IN2, LOW);
}
// if right joystick move just left or right, without going up or down, move the tank left or right (only 1 motor move)
else {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}
}
// LEDs control
// Headlights and Taillights LEDs control
if (ch6 > 1500) {
digitalWrite(47, HIGH);
digitalWrite(48, HIGH);
}
else {
digitalWrite(47, LOW);
digitalWrite(48, LOW);
}
// High beam LEDs control
if (ch8 == 1500) {
digitalWrite(46, HIGH);
}
// If rocker switch in position 3 (2ooo value) - flasing with the high beam LEDs
else if (ch8 == 2000) {
if (millis() >= time_now + ledBlinkPeriod) {
time_now += ledBlinkPeriod;
if (isOn == HIGH) {
isOn = LOW;
}
else {
isOn = HIGH;
}
digitalWrite(46, isOn);
}
}
else {
digitalWrite(46, LOW);
}
// Monitor the battery voltage
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.00 / 1023.00) * 3.02; // Convert the reading values from 5v to suitable 12V
// Send battery voltage value to transmitter
IBusSensor.loop();
IBusSensor.setSensorMeasurement(1, voltage * 100);
}Code language: PHP (php) Présentation du code
Ainsi, en utilisant la bibliothèque IBusBM, nous lisons les données entrantes de l'émetteur RC.
// Reading the data comming from the RC Transmitter
IBus.loop();
// ch0 - left and right; ch1 - forward and backward;
ch0 = IBus.readChannel(0); // ch0 - left and right;
ch1 = IBus.readChannel(1); // ch1 - forward and backward;
ch6 = IBus.readChannel(6); // ch6 - Headlights
ch8 = IBus.readChannel(8); // ch8 - High beamCode language: JavaScript (javascript) Le joystick droit, les canaux 0 et 1 sont utilisés pour contrôler le mouvement de la plateforme, les deux interrupteurs à bascule, les canaux 6 et 8 pour contrôler les LED.
Nous convertissons les données entrantes en valeurs adaptées au contrôle PWM des moteurs à courant continu, comprises entre 0 et 255.
// convert the incoming date into suitable PWM value
steeringValue = map(ch0, 1000, 2000, -185, 185); // 0 to 185 range because then I add +70 in order to avoid low PWM values as to motors won't start if so
motorSpeed = map(ch1, 1000, 2000, -185, 185);
motorSpeed = abs(motorSpeed);
leftMotorSpeed = 70 + motorSpeed + steeringValue; // 70 + (0-185) + (0 - 185 ) = 70 - 255 so this range from 70 to 255 is used as PWM value
rightMotorSpeed = 70 + motorSpeed - steeringValue;
leftMotorSpeed = constrain(leftMotorSpeed, 0, 255); // constrain the PWM value from 0 to 255
rightMotorSpeed = constrain(rightMotorSpeed, 0, 255);Code language: JavaScript (javascript) Nous envoyons les valeurs PWM aux pilotes et aux moteurs en utilisant la fonction analogWrite() de manière appropriée.
// if right joystick goes up > move forward
if (ch1 > 1510 && ch1 < 2000) {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}Code language: JavaScript (javascript) Dans l'ensemble, le code n'est pas si compliqué puisque la plateforme robot elle-même n'a pas de fonctions compliquées.
Test du robot imprimé en 3D – Plateforme de robot à chenilles
Une fois le code téléchargé, nous pouvons mettre sous tension la plate-forme robotique et l'émetteur RC pour le tester. Sur l'écran de l'émetteur, nous pouvons remarquer la tension de la batterie LiPo, ainsi que la tension du récepteur et de l'émetteur.
Et voilà, nous l'avons. En utilisant le joystick droit, nous pouvons contrôler le mouvement de la plateforme. Avec l'interrupteur à bascule gauche, nous contrôlons les LED des phares et des feux arrière, et avec l'interrupteur à bascule à 3 positions droit, les LED des feux de route. Les LED des feux de route ont deux modes, toujours allumés et un mode clignotant.
On peut noter ici que les moteurs que j'ai installés sont effectivement un peu sous-alimentés pour cette plateforme.
On voit qu'il faut que le joystick soit presque en haut pour que les chenilles se mettent à bouger. De plus, je peux arrêter la piste très facilement avec ma main. Le système de suspension et les chenilles elles-mêmes provoquent beaucoup de tension et de résistance sur les moteurs. Ces moteurs tournent à 888 tr/min, ce qui est bien en termes de vitesse, mais ce sont les plus petits moteurs, avec une puissance nominale d'un peu moins de 500 mA.
Je les ai donc remplacés par mes autres moteurs plus gros que j'avais mais j'ai en fait obtenu presque les mêmes résultats. Bien qu’il s’agisse de moteurs plus puissants, leur réduction de vitesse était plus faible, ou ils avaient un régime plus élevé de 1 280, et j’ai donc obtenu les mêmes résultats.
En fait, ils ne sont pas si mauvais. La plateforme robotique fonctionne plutôt bien avec eux.
Pour être honnête, c'est vraiment amusant de conduire cette chose, surtout avec les LED qui clignotent et font des burnouts ou des beignets.
Cependant, le plaisir n’a pas duré aussi longtemps car une fois que je l’ai sorti dehors, il a cessé de fonctionner très rapidement. Le problème, c’est la sous-puissance des moteurs, c’est vrai, mais aussi la conception des liaisons. La saleté s'y accumule facilement là où vont les dents du pignon.
Je les ai donc redessinés pour avoir une ouverture de l’autre côté afin que la saleté puisse passer à travers. J'ai également rendu le pignon un peu plus petit, en le décalant de 0,2 mm, afin d'avoir un ajustement plus lâche entre celui-ci et la chenille.
J'ai tout remonté avec ces mises à jour et la plateforme était désormais capable de rouler en extérieur. Même si les moteurs sous-alimentés constituaient encore une fois un problème. La plate-forme était empilée de temps en temps et ne pouvait pas monter. Donc, ma suggestion serait de ne pas avoir de moteur à plus de 500 tr/min et d'être plus puissant avec au moins 1A ou 2A de courant nominal.
En fait, j'ai essayé la plateforme avec des moteurs plus puissants. Ils ne tournaient qu'à 20 tours, ce qui était évidemment trop lent pour s'amuser et faire des beignets, mais la plate-forme ressemblait désormais à un véritable tank. Cela pourrait littéralement aller n'importe où.
Les moteurs de 20 tr/min étaient suffisamment puissants pour franchir n’importe quel obstacle. Ils étaient vraiment lents, mais ils conviennent peut-être à certaines applications spécifiques. Ma suggestion serait que si nous avons besoin de vitesses plus lentes pour les moteurs d'environ 50 tr/min, et pour des vitesses plus rapides, d'environ 500 tr/min.
J'espère que vous avez apprécié cette vidéo et appris quelque chose de nouveau. N'hésitez pas à poser vos questions dans la section commentaires ci-dessous et n'oubliez pas de vous abonner aux futures mises à jour et de consulter ma collection de projets Arduino.
Processus de fabrication
- Système d'arrosage automatique
- 5 façons efficaces de prolonger la durée de vie de l'outil de poinçonnage
- Minuteur de machine à laver
- Beurre et margarine
- Thermostat NEST Virtual Alike DIY avec Node-RED
- Pneu
- Qu'est-ce que le soudage robotisé ? - Processus et application
- Barres sinusoïdales :outils de précision pour mesurer la déviation angulaire
- Système d'alarme Arduino :SERENA