Table des matières:

Walking Strandbeest, Java/Python et App Controled : 4 étapes (avec photos)
Walking Strandbeest, Java/Python et App Controled : 4 étapes (avec photos)

Vidéo: Walking Strandbeest, Java/Python et App Controled : 4 étapes (avec photos)

Vidéo: Walking Strandbeest, Java/Python et App Controled : 4 étapes (avec photos)
Vidéo: Blender bpy & arduino robotic arm with inverse kinematic/2-way communication 2024, Novembre
Anonim

Par arrowlikeFollow More par l'auteur:

Étude expérimentale du mouvement harmonique simple
Étude expérimentale du mouvement harmonique simple
Étude expérimentale du mouvement harmonique simple
Étude expérimentale du mouvement harmonique simple

Ce kit Strandbeest est un travail DIY basé sur le Strandbeest inventé par Theo Jansen. Émerveillé par la conception mécanique géniale, je veux l'équiper d'une maniabilité totale et, ensuite, d'une intelligence informatique. Dans ce instructable, nous travaillons sur la première partie, la maniabilité. Nous couvrons également la structure mécanique de l'ordinateur de la taille d'une carte de crédit, afin que nous puissions jouer avec la vision par ordinateur et le traitement de l'IA. Afin de simplifier les travaux de construction et l'efficacité, je n'ai pas utilisé d'arduino ou d'ordinateur programmable similaire, j'ai plutôt construit un contrôleur matériel Bluetooth. Ce contrôleur, fonctionnant comme un terminal interagissant avec le matériel robotique, est contrôlé par un système plus puissant, tel qu'une application de téléphone Android ou RaspberryPi, etc. Le contrôle peut être soit un contrôle d'interface utilisateur de téléphone portable, soit un contrôle programmable en langage python ou Java. Un SDK pour chaque langage de programmation est open-source fourni dans

Étant donné que le manuel d'utilisation du mini-Strandbeest est assez clair pour expliquer les étapes de construction, dans cette instructable, nous nous concentrerons sur les informations qui ne sont généralement pas couvertes dans le manuel d'utilisation et les pièces électriques/électroniques.

Si nous avons besoin d'une idée plus intuitive sur le montage mécanique de ce kit, quelques bonnes vidéos sur le sujet du montage sont disponibles, telles que

Fournitures

Pour construire la partie mécanique et effectuer toutes les connexions électriques de ce Strandbeest, cela devrait prendre moins d'une heure si le temps d'attente pour l'impression 3D n'est pas compté. Il nécessite les pièces suivantes:

(1) 1x kit Strandbeest standard (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x moteur à courant continu avec boîte de vitesses (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x contrôleur Bluetooth (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x batterie LiPo (3.7V, votre choix de capacité en mAh)

(5) 12x vis à bois M2x5.6mm

(6) tige en carbone ou bambou de 2 mm de diamètre

Imprimez en 3D les pièces suivantes:

(1) 1x corps principal de robotique

(fichier de conception d'impression 3D avec contrôleur Bluetooth uniquement à télécharger)

(fichier de conception d'impression 3D avec téléchargement supplémentaire OrangePi Nano)

(2) 2x bride d'arbre d'entraînement (téléchargement de fichier de conception d'impression 3D)

(3) 2x système d'alimentation (téléchargement du fichier de conception d'impression 3D)

Autres:

Téléphone portable Android. Allez sur Google Playstore, recherchez M2ROBOTS et installez l'application de contrôle.

S'il est difficile d'accéder à Google Playstore, visitez ma page d'accueil personnelle pour une méthode alternative de téléchargement d'applications

Étape 1: Organisation des pièces

Organisation des pièces
Organisation des pièces
Organisation des pièces
Organisation des pièces
Organisation des pièces
Organisation des pièces
Organisation des pièces
Organisation des pièces

Dans cette étape, nous organiserons toutes les pièces à assembler. Fig. 1. montre toutes les pièces en plastique prêtes à l'emploi que nous utilisons pour construire le modèle Strandbeest. Ils sont fabriqués par moulage par injection, ce qui est très efficace par rapport à d'autres méthodes de fabrication par usinage telles que l'impression 3D ou le fraisage. C'est pourquoi nous voulons tirer le meilleur parti du produit fabriqué en série et ne personnaliser que le moins de pièces possible.

Comme le montre la Fig.2, chaque morceau de panneau en plastique a un alphabet étiqueté, la partie individuelle n'a pas d'étiquetage. Une fois démontés, il n'y a plus d'étiquetage. Pour résoudre ce problème, nous pouvons mettre des pièces du même type dans différentes boîtes, ou simplement marquer plusieurs zones sur un morceau de papier et mettre un type de pièces dans une zone, voir Fig.3.

Pour couper la partie en plastique de la plus grande planche en plastique d'assemblage, les ciseaux et le couteau peuvent ne pas être aussi efficaces et aussi sûrs que la pince illustrée aux Fig.4 et 5.

Tout ici est en plastique, sauf que le matériau des orteils est en caoutchouc, voir Fig.6. Nous pouvons couper selon les coupes pré-faites. La nature douce du matériau en caoutchouc offre une meilleure performance de préhension du strandbeest. C'est particulièrement vrai lors de l'ascension d'une pente. Dans les sujets suivants, nous pouvons tester sa capacité à grimper à différents angles de pente, avec et sans les orteils en caoutchouc. Lorsqu'il n'y a pas de glissement, on parle de frottement statique. Une fois qu'il perd l'adhérence, cela devient un frottement cinétique. Le coefficient de friction dépend des matériaux utilisés, c'est pourquoi nous avons les orteils en caoutchouc. Comment concevoir une expérience, levez la main et parlez.

La dernière figure contient le "ECU", le "Power train" et le châssis de ce modèle Strandbeest.

Étape 2: Points dignes d'attention lors de l'assemblage mécanique

Points dignes d'attention lors de l'assemblage mécanique
Points dignes d'attention lors de l'assemblage mécanique
Points dignes d'attention lors de l'assemblage mécanique
Points dignes d'attention lors de l'assemblage mécanique
Points dignes d'attention lors de l'assemblage mécanique
Points dignes d'attention lors de l'assemblage mécanique

Le mini-Strandbeest a un assez bon manuel d'utilisation. Il devrait être facile de suivre le manuel et de terminer l'assemblage. Je vais sauter ce contenu et souligner quelques points intéressants dignes de notre attention.

Sur la figure 1, un côté de la fente contenant les orteils en caoutchouc est un coin à 90 degrés, tandis que l'autre côté a une pente à 45 degrés, qui est officiellement appelé chanfrein. Une telle pente guide la pointe en caoutchouc pour qu'elle s'insère dans le pied en plastique. Essayez d'installer les orteils du côté avec chanfrein, voir Fig.2, puis essayez l'autre côté. La différence est très sensible. Le côté droit de la Fig.3 est la manivelle de notre Stranbeest. C'est très similaire à la manivelle dans un moteur, un moteur de voiture, un moteur de moto, tous partagent la même structure. Chez un Strandbeest, lorsque la manivelle tourne, elle entraîne les pieds à se déplacer. Pour un moteur, c'est le mouvement du piston entraînant la manivelle à tourner. Une telle séparation de 120 degrés dans un cercle conduit également à un moteur ou générateur triphasé, la puissance électrique est séparée de 120 degrés, illustrée à la Fig.4. Une fois que nous avons assemblé les pièces mécaniques des carrosseries gauche et droite, nous commençons maintenant à travailler sur les pièces que nous ajoutons au Strandbeest, voir Fig.5. La Fig.6 est l'étape où nous utilisons la pince de moteur imprimée en 3D pour fixer le moteur au châssis imprimé en 3D. Dans cette étape, l'astuce est qu'aucune des vis ne doit être serrée avant que la position du moteur ne soit ajustée de sorte que la surface latérale du châssis soit la même que la surface du moteur. Une fois que nous sommes satisfaits de l'alignement, nous pouvons serrer toutes les vis. Passons à la Fig.7, nous travaillons sur l'installation de l'accouplement à bride, reliant la sortie du moteur à la manivelle. Le côté moteur est plus difficile à installer que le raccordement côté manivelle, voir Fig.8. Par conséquent, nous connectons d'abord la bride côté moteur. Une fois que l'accouplement à bride pour les deux moteurs est installé, comme le montre la Fig.9, nous utilisons deux morceaux de tiges de carbone de 2 mm de diamètre pour connecter le châssis et la structure de marche gauche/droite. C'est ce qui se passe sur la figure 10. Au total, nous utilisons 3 morceaux de tiges de carbone pour relier ces entités. Mais dans cette étape, nous n'en connectons que deux, car nous devons tourner la manivelle et installer la connexion entre la bride et la manivelle. Si 3 morceaux de tiges de carbone ont été en place, il sera plus difficile d'ajuster la position relative et de les connecter. Enfin, nous avons le système mécanique assemblé final, sur la Fig.11. Prochaine étape, travaillons sur l'électronique.

Étape 3: Connexion électrique

Connexion électrique
Connexion électrique
Connexion électrique
Connexion électrique
Connexion électrique
Connexion électrique

Tous les systèmes électroniques nécessitent une alimentation électrique. Nous pouvons placer une batterie à 1 cellule dans un endroit pratique, par exemple, sous le circuit imprimé de la Fig.1. La polarité de l'alimentation est si critique qu'elle mérite un chiffre dédié à discuter. La Fig.2 met en évidence la connexion de la batterie. Dans la carte contrôleur, la polarité est marquée par "+" et "GND", voir Fig.3. Lorsque la batterie est épuisée, un câble USB est utilisé pour recharger la batterie, voir Fig.4. La LED indiquant "recharge en cours" s'éteindra automatiquement lorsque la batterie sera à nouveau pleine. La dernière étape consiste à connecter les sorties du moteur aux connecteurs du moteur dans la carte contrôleur. Il existe 3 connecteurs moteur, repérés par le numéro 16 sur la Fig.3. Dans la Fig.5, le moteur gauche est connecté au connecteur le plus à gauche étiqueté PWM12, et le moteur droit est connecté au connecteur du milieu. Actuellement, tourner un réservoir (véhicule à conduite différentielle) vers la gauche est codé en dur comme une diminution de la puissance d'entrée du moteur connecté au port moteur PWM12. Par conséquent, le moteur connecté au port PWM12 doit entraîner les pieds gauches. Je convertirai plus tard toutes les fonctions de mixage pour qu'elles soient configurables par l'utilisateur. En échangeant le choix du connecteur du moteur ou en inversant le sens du connecteur du moteur, nous pouvons résoudre le problème tel que le Strandbeest recule lorsqu'il est commandé d'avancer, tournant dans le mauvais sens, rappelez-vous que le moteur à courant continu change de sens de rotation si le fil d'entrée est connecté à l'alimentation de commande dans l'ordre inverse.

Étape 4: Paramètres et fonctionnement de l'application

Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application
Paramètres et fonctionnement de l'application

Nous téléchargeons d'abord une application Android depuis Google Play Store, voir Fig.1. Cette application a beaucoup d'autres fonctionnalités que nous ne pouvons pas couvrir dans cette instructable, nous nous concentrerons uniquement sur les sujets directement liés à Strandbeest.

Allumez le contrôleur Bluetooth matériel, il apparaîtra dans la liste des appareils de découverte. Un clic long nous amènera à la fonction de téléchargement en direct pour être "instructable" plus tard. Avant de cliquer et de commencer le contrôle, commençons par effectuer quelques configurations en cliquant sur le coin supérieur droit "Paramètres". Dans la Fig.2, il est caché sous l'icône …. La Fig.3 montre plusieurs catégories de paramètres. Ces paramètres, configurés dans l'application, sont mis en œuvre de trois manières: 1) certains paramètres n'affectent que le fonctionnement de l'application, comme l'arithmétique pour obtenir la commande de contrôle de puissance de chaque moteur à partir de votre commande de direction et d'accélérateur. Ils vivent dans l'application. Dans certains instructables ultérieurs, nous montrerons comment nous les remplaçons par nos programmes Python/Java. 2) certains paramètres sont envoyés au matériel dans le cadre du protocole de contrôle dans les airs, tels que le commutateur entre le contrôle direct (le servo tourne exactement l'angle commandé) et le contrôle de vol par fil (le module de fonction de contrôleur autonome intégré actionne le servo canal en fonction de la commande de l'utilisateur et de l'attitude actuelle) 3) certains paramètres seront envoyés à la mémoire non volatile du contrôleur matériel. Par conséquent, le matériel suivra ces paramètres à chaque fois qu'il est allumé sans être configuré. Un exemple sera le nom de diffusion Bluetooth de l'appareil. Ce type de paramètres nécessite un cycle d'alimentation pour prendre effet. La première catégorie dans laquelle nous plongeons est celle des "Paramètres généraux" de la Fig.4. La « fonction de contrôle de l'application » dans la Fig.5 définit le rôle joué par cette application, un contrôleur pour le périphérique matériel via une connexion Bluetooth directe; un pont sur intranet/internet pour le contrôle de la téléprésence; et etc. Ensuite, la page « Type HW » de la Fig.6 indique à l'application que vous travaillez avec un véhicule à conduite différentielle, le mode « réservoir » doit donc être sélectionné. Nous avons 6 sorties PWM disponibles au total. Pour le Strandbeest, nous devons configurer les canaux 1 à 4 selon la Fig.7. Chaque canal PWM fonctionne dans l'un des modes suivants: 1) servo normal: servo RC contrôlé par un signal PWM de 1 à 2 ms 2) servo inverse: le contrôleur inversera la commande utilisateur pour sa sortie 3) cycle d'utilisation du moteur CC: a CC moteur ou un appareil électrique de puissance, peut être utilisé en mode cycle de service, 0% est éteint, 100% est toujours allumé. 4) Inversion du cycle d'utilisation du moteur à courant continu: encore une fois, le contrôleur inversera le contrôle de l'utilisateur pour sa sortie. Étant donné que nous utilisons un moteur à courant continu et que nous prenons en charge le sens de rotation du moteur par ordre de câblage matériel, nous choisirons « cycle d'utilisation du moteur à courant continu » pour le canal 1 à 4, voir Fig.8. Nous devons également fusionner 2 canaux PWM à 1 pont en H, afin de permettre un contrôle bidirectionnel. Cette étape est illustrée à la Fig.9. En mode « 2 canaux PWM vers 1 pont en H », les canaux 1, 3 et 5 sont utilisés pour contrôler les deux canaux associés. Il introduit un besoin de remapper la commande des gaz, le contrôle haut-bas du joystick de son canal par défaut 2 au canal 3. Ceci est réalisé dans les paramètres de la Fig.10. Comme le montre la Fig.11, chaque canal est configuré pour prendre une source d'entrée arbitraire.

Bingo, nous avons maintenant terminé la configuration minimale requise et nous pouvons revenir à la page affichant le périphérique Bluetooth visible et le connecter. Dans Fig.12, essayez de jouer au joystick, et nous pouvons nous amuser avec ce Strandbeest. Essayez de grimper une pente, souvenez-vous de l'analyse du frottement entre les types de matériaux et lisez l'attitude estimée du contrôleur de vol, qui est indiquée dans la rangée intitulée «RPY(deg)», les quatre entrées de cette rangée sont le roulis, le tangage, l'angle de lacet estimée par le gyroscope et l'accéléromètre embarqués; la dernière entrée est la sortie de boussole compensée en inclinaison.

Travail futur: dans les instructables suivantes, nous couvrirons progressivement son interface de programmation, choisirons votre langage préféré Java ou Python pour interagir avec le Strandbeest, et ne lirons plus le statut de Strandbeest à partir de l'écran du téléphone mobile. Nous commencerons également à programmer dans l'ordinateur Linux de type RaspberryPi pour des sujets de programmation plus avancés, voir la dernière figure. Consultez https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ pour les pièces mécaniques d'impression 3D et https://github.com/xiapeiqing/m2robots.git pour le SDK et un exemple de code si vous souhaitez commencer immédiatement. Faites-moi savoir quel est votre langage de programmation souhaité sinon Java ou Python, je peux ajouter une nouvelle version du SDK.

Amusez-vous avec le piratage et restez à l'écoute pour les instructables suivantes.

Conseillé: