Table des matières:

Jasper l'hexapode Arduino : 8 étapes (avec photos)
Jasper l'hexapode Arduino : 8 étapes (avec photos)

Vidéo: Jasper l'hexapode Arduino : 8 étapes (avec photos)

Vidéo: Jasper l'hexapode Arduino : 8 étapes (avec photos)
Vidéo: DIY Self Balancing Robot #scienceproject #science #engineering #diy #circuit #electronics #arduino 2024, Juillet
Anonim
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino
Jasper l'hexapode Arduino

Date du projet: novembre 2018

APERÇU (JASPER)

Six jambes, trois servos par jambe, système de mouvement à 18 servos contrôlé par un Arduino Mega. Servos connectés via Arduino Mega Sensor shield V2. Communication avec Hexapod via le module Bluetooth BT12 parlant à une application Android sur mesure. Système alimenté par 2 batteries 18650, 3400mAh et 2 x 2400mA maintenues chacune par du Velcro sous le corps de l'hexapode. Un interrupteur à bascule pour les systèmes servo et de contrôle est fourni, ainsi qu'un voyant d'alimentation à LED verte sur la tête de l'hexapode. Les commandes sont répétées sur un écran LCD 16x2. L'alimentation vidéo, l'anneau lumineux et l'évitement d'obstacles par ultrasons sont situés dans la tête.

REMARQUE: pour des raisons de santé mentale, je recommande fortement l'utilisation de servos de bonne qualité, j'ai commencé avec des servos MG995, 20 d'entre eux, dont 11 ont brûlé, perdu la capacité de se centrer ou ont simplement cessé de fonctionner.

www.youtube.com/embed/ejzGMVskKec

Étape 1: ÉQUIPEMENT

ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT
ÉQUIPEMENT

1. 20 servos DS3218

2. 1x kit de base hexapode

3. 1x Arduino Mega R3

4. 1x bouclier de capteur Arduino Mega v2

5. Support de batterie 1 x 2 baies 18650

6. 2 x interrupteur d'alimentation bipolaire

7. Lumière LED verte et résistance 220kohm

8. 2 batteries 6v 2800mAh avec fixation Velcro

9. 2 piles 18650 x 3400mAh

10. 1x module sondeur HC-SR04

11. 1x module Bluetooth BT12

12. 1 x carte de développement Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT

13. 1 x Arducam Mini Module Camera Shield avec objectif OV2640 2 mégapixels

14. 1 x anneau lumineux LCD Pixie Neon 16

15. 1 écran LCD 16x2 lignes avec adaptateur IIC attaché.

16. 1 prise d'alimentation 5v pour Arduino Mega

17. 1 prise micro USB 5v pour module NodeMcu.

18. 1 x module convertisseur DC à DC Buck

19. 1 boîte en plastique noire carrée de 70 mm x 120 mm x 39 mm (corps)

20. 1 boîte en plastique noire de 70 mm x 50 mm x 70 mm (tête)

21. 4 x 40 mm de supports en laiton M3 plus 4 supports de repos en caoutchouc

22. Divers câbles de démarrage mâle à mâle, soudure, vis et boulons m3 et colle chaude

Mouvement des jambes utilisant une logique sur mesure. Mouvement de la caméra via deux servos indépendants abandonnant les mouvements vers le haut, le bas, la gauche, la droite et le centre. Caméra contrôlée par connexion WIFI, affichée sur la vue WebView dans l'application Android.

Étape 2: SERVOS

SERVOS
SERVOS
SERVOS
SERVOS
SERVOS
SERVOS

Chacun a un maximum de 180 degrés à

mouvement d'au moins 0 degré.

Chaque servo identifié par une combinaison de trois chiffres, LegCFT; où C est le corps (COXA), F est la cuisse (FEMUR) et T est le coude (TIBIA), donc 410 ferait référence à la quatrième jambe et au servo Tibia, de même 411 ferait référence à la quatrième jambe et au servo Tibia. La séquence de numérotation serait de 100 à 611. Chaque jambe de servo doit avoir un pied à base de caoutchouc pour amortir l'impact et offrir une meilleure adhérence.

Jambe 1: 100, 110, 111 Avant

Étape 2: 200, 210, 211 étape2-étape1

Étape 3: 300, 310, 311 étape4-étape3

Étape 4: 400, 410, 411 étape 6-étape 5

Étape 5: 500, 510, 511 Retour

Étape 6: 600, 610, 611

La position par défaut de tous les servos coaxiaux est de 90 degrés.

La position par défaut des servos fémurs est de 90 degrés, 45 degrés est la position de repos.

La position par défaut des servos Tibia pour toutes les jambes est de 90 degrés, les jambes 1, 3 et 5 utilisent 175 degrés comme position de repos et les jambes 2, 4 et 6 utilisent 5 degrés.

Cou 1: 700 Limité à 75 à 105 degrés pour les mouvements de haut en bas

Cou 2: 800 Limité à 45 à 135 degrés pour les mouvements à gauche et à droite

Mouvement du servo limité à trois « écritures » avant qu'un délai de 10 millisecondes ne soit inclus, avant que d'autres commandes « d'écriture » soient émises. Cela permet de réduire la charge sur les batteries.

Étape 3: COMMANDES

COMMANDES
COMMANDES
COMMANDES
COMMANDES
COMMANDES
COMMANDES

A=Stop – Tenez-vous dans la position par défaut.

B=avant - marche_avant

C=reverse - walk_backward

D=droite - tourner_droite

E=gauche - tourner_gauche

F=mouvement latéral gauche - crab_left

G=mouvement latéral droit - crab_right

H=Rear_crouch (jambes 1 et 2 au maximum, 3 et 4 pattes en position neutre, pattes 5 et 6 en position minimum)

I= Front_crouch (jambes 1 et 2 en position minimum, 3 et 4 jambes en position neutre, jambes 5 et 6 en position maximum)

J= caméra au galop – centre (Neck 1 et Neck 2 en position médiane, position par défaut)

K=caméra gauche - pan_left (Neck 1, position médiane, position minimum du servo du cou 2)

L=caméra droite - pan_right (Neck 1, position médiane, position maximale du servo du cou 2)

M = caméra vers le haut - pan_up (position maximale du manche 1, position médiane du servo du manche 2)

N=caméra vers le bas - pan_down (position minimale du manche 1, position médiane du servo du manche 2)

O=Repos (Hexapode) est assis sur des supports.

P = Debout - L'hexapode se lève jusqu'à la position par défaut.

Q=Lumières éteintes

R = Feu vert sur l'anneau lumineux Pixie Neon.

S = Lumière rouge sur l'anneau lumineux Pixie Neon.

T = Lumière bleue sur l'anneau lumineux Pixie Neon.

U = Lumière blanche sur l'anneau lumineux Pixie Neon.

V = Ondulation des pattes avant.

W = Klaxon sonore.

X=Balayer la tête de gauche à droite.

Y=Lire la mélodie.

Étape 4: MOUVEMENT

MOUVEMENT
MOUVEMENT
MOUVEMENT
MOUVEMENT
MOUVEMENT
MOUVEMENT

La position du servo coaxial est longitudinale par rapport à l'axe du corps, donc droit devant est de 0 degré et directement derrière est de 180 degrés. Cependant, ce câble coaxial et tous les autres servos seraient limités à 45 à 135 degrés.

Le mouvement des jambes vers l'avant, l'arrière, la gauche et la droite commencerait par le levage de la jambe à l'aide des servos du fémur et du tibia, puis suivi du mouvement des servos du corps, et enfin de l'abaissement de la même jambe à nouveau à l'aide des servos du fémur et du tibia..

Avant et arrière

Pour avancer ou reculer les jambes travaillez par paires, 1 et 2, 3 et 4, 5 et 6. Un mouvement simple vers l'avant consiste à déplacer les jambes 1 et 2 de leur position actuelle vers le plus en avant possible, puis les jambes 3 et 4, et enfin 5 et 6 pattes répètent la même action. Ensuite, les six servos coaxiaux passent de cette position avant étendue à leur position de départ d'origine. L'inverse de ce processus est utilisé pour reculer. Dans le cadre du processus de mouvement vers l'avant, l'unité à ultrasons HC_SR04 vérifiera les obstacles devant et s'il en trouve un, tournera l'hexapode à gauche ou à droite au hasard.

Gauche et droite

Pour se déplacer, les paires de jambes gauches ou droites travaillent ensemble mais dans des directions opposées. Ainsi, par exemple, pour tourner à droite, la jambe 1 revient de la position actuelle à la position de 135 degrés tandis que la jambe 2 se déplace vers l'avant jusqu'à la position de 45 degrés. Ceci est répété pour les paires de jambes 3 et 4, et 5 et 6 jambes. À ce moment-là, les servos Coax ramènent leur position d'origine à leur nouvelle position, ce qui fait tourner le corps dans le sens du mouvement, c'est-à-dire droit. Ce processus se poursuit jusqu'à ce que la rotation requise vers la gauche soit terminée. L'inverse de ce processus est utilisé pour tourner à gauche, de sorte que la jambe 1 se déplace de sa position actuelle vers l'avant à la position de 45 degrés, tandis que la jambe 2 se déplace vers l'arrière jusqu'à la position de 135 degrés.

Levez-vous et reposez-vous

Ces deux processus n'utilisent le servo coaxial d'aucune des jambes, donc pour se lever le servo Tibia, pour toutes les jambes, se déplace de sa position actuelle à son maximum de 45 degrés, tandis que pour se reposer ces mêmes servos fémur se déplacent vers leur plus bas position, 175 ou 5 degrés. Le même mouvement s'applique aux servos Tibia qui se déplacent à leur maximum de 45 degrés, en position debout, et à leur minimum, c'est-à-dire. 175 ou 5 degrés pour le repos.

Accroupissez-vous en avant et accroupissez-vous en arrière

Ici encore, les processus sont des images miroir les uns des autres. Pour s'accroupir en avant, les jambes 1 et 2 sont à leur position la plus basse, tandis que les jambes 5 et 6 sont à leur position la plus haute. Dans les deux cas, les jambes 4 et 5 prennent une position neutre qui est alignée avec les jambes 1 et 2 et 5 et 6. Pour s'accroupir en arrière, les jambes 1 et 2 sont à leur position la plus haute tandis que les jambes 5 et 6 sont à leur position la plus basse.

Étape 5: CAMÉRA TÊTE/SONAR

CAMÉRA TÊTE/SONAR
CAMÉRA TÊTE/SONAR
CAMÉRA TÊTE/SONAR
CAMÉRA TÊTE/SONAR
CAMÉRA TÊTE/SONAR
CAMÉRA TÊTE/SONAR

La tête se composera d'une boîte en plastique carrée de 38 mm x 38 mm x 38 mm avec un couvercle amovible. La boîte/tête aura un mouvement vertical et horizontal limité. Le mouvement sera réalisé à l'aide de deux servos, l'un attaché au corps du robot et un second attaché au premier corps de servos et son bras attaché à la tête. 7.4v fourni par deux batteries 18650 alimentera la carte de développement Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT DEVKIT, attachée à un Arducam Mini Module Camera Shield avec objectif OV2640 2 mégapixels. Cette disposition permettra au robot de détecter les obstacles et de diffuser des vidéos en direct via le Wi-Fi embarqué. Un sonar utilisant un HC-SR04 et d'éventuelles informations de gestion de la lumière reviendraient à l'Arduino Mega.

Mes remerciements à Dmainmun pour son article sur Arducam Instructables, qui m'a beaucoup aidé dans ma compréhension initiale de la façon dont l'Arducam pouvait être utilisé pour diffuser des vidéos.

Batterie

Il a été décidé d'utiliser deux packs de batteries, un pour les composants de la tête et la carte Arduino Mega, et un second pack pour alimenter tous les servos. Le premier pack était composé de 2 batteries 18650 3400mAh fournissant 7.4v. Le deuxième pack se composait de 2 batteries 6V 2800mAh connectées en parallèle donnant ainsi une alimentation de 6,4V mais une capacité accrue de 5600mAh attachée à la face inférieure de l'Hexapod à l'aide de bandes Velcro.

Étape 6: MOUVEMENT DES JAMBES

MOUVEMENT DES JAMBES
MOUVEMENT DES JAMBES
MOUVEMENT DES JAMBES
MOUVEMENT DES JAMBES
MOUVEMENT DES JAMBES
MOUVEMENT DES JAMBES

Les bras peuvent fonctionner par paires ou seuls. Chaque bras se compose d'une articulation du corps appelée Coax avec un mouvement de 45 à 135 degrés, d'une articulation de la cuisse appelée Fémur, avec un mouvement de 45 à 135 degrés, et enfin d'une articulation du coude appelée Tibia, ou effecteur final, avec un mouvement de 45 à 135 degrés.. Un logiciel sur mesure a été écrit pour fournir le mouvement des jambes.

Types de mouvement des jambes:

Pour le Coax, 45 degrés sont orientés vers l'arrière de la tête, 90 degrés sont la position neutre et 135 degrés sont orientés vers l'avant.

Pour le fémur, 45 degrés est la position la plus élevée par rapport au sol, 90 degrés est la position neutre et 135 degrés est la position la plus basse par rapport au sol.

Pour le tibia, 45 degrés est la position la plus éloignée du corps, 90 degrés est la position neutre et 135 degrés est la position la plus proche du corps.

Supposons que tous les servos soient en position neutre, à 90 degrés.

Avant: Jambes 1 et 2, le fémur se soulève à 135 degrés, le coaxial se déplace à 45 degrés, le tibia se déplace à 45 degrés le plus éloigné du corps, le fémur s'abaisse à 45 degrés. Ceci est répété pour les paires de jambes 3 et 4 et les paires de jambes 5 et 6. Les 6 servos Coax se déplacent de 45 degrés vers l'arrière à 90 degrés, position neutre, les 6 servos fémurs se déplacent de 45 degrés à 90 degrés, position neutre. Enfin, tous les servos Tibia passent de 45 degrés à 90 degrés, position neutre.

Inverse: En commençant par les jambes 5 et 6, puis 3 et 4, et enfin les jambes 1 et 2, sinon le mouvement est le même pour le Coax, le Fémur et le Tibia.

Gauche: les jambes 1, 3 et 5 se déplacent en sens inverse, tandis que les jambes 2, 4 et 6 se déplacent en avant. Les mouvements avant et arrière sont conformes au mouvement avant et arrière standard. Pour terminer le virage des six servos Coax, déplacez-vous de 45 degrés, ce qui fait tourner le corps.

À droite: les jambes 2, 4 et 6 se déplacent en sens inverse, tandis que les jambes 1, 3 et 5 se déplacent en avant. Les mouvements avant et arrière sont conformes au mouvement avant et arrière standard. Le mouvement coaxial est similaire à ci-dessus mais dans le sens inverse.

Repos: Tous les servos Coax et Femur en position neutre, tous les servos Tibia en position la plus basse à 45 degrés, accroupissant efficacement les jambes avant, médianes et arrière.

Accroupi à l'arrière, debout devant: les jambes 1 et 2 à la position la plus haute, les jambes 3 et 4 au neutre et les jambes 5 et 6 à la position la plus basse.

Debout en arrière, accroupi devant: Jambes 1 et en position la plus basse, jambes 3 et 4 au neutre, et jambes 5 et 6 en position la plus haute.

Crabe à gauche: Les pattes 1 et 5 se soulèvent et s'étendent vers l'extérieur vers la gauche, en même temps les pattes 2 et 6 se soulèvent et se contractent sous le corps. Avec ces quatre pattes au sol, tous les tibias reviennent à leur position neutre. Enfin, les jambes 3 et 4 répètent le même processus.

Crabe à droite: les pattes 2 et 6 se soulèvent et s'étendent vers l'extérieur vers la droite, en même temps les pattes 1 et 5 se soulèvent et se contractent sous le corps. Avec ces quatre pattes au sol, tous les tibias reviennent à leur position neutre. Enfin, les jambes 3 et 4 répètent le même processus.

Mouvement de la tête gauche: manche 1 servo 45 degrés. Les deux servos reviennent à 90 position neutre.

Mouvement de la tête droite: cou 1 servo 135 degrés

Mouvement de la tête vers le haut: cou 2 servo à 45 degrés

Mouvement de la tête vers le bas: cou 2 servo 135 degrés

Mouvement de la tête panoramique: le cou 2 se déplace de 45 à 135 degrés

SERVOS

Après les premiers tests, les servos MG995 et MG996 ont tous été remplacés. Les 20 servos ont été remplacés par des servos DS32228 de 20 kg qui ont permis un centrage bien amélioré et une capacité de charge accrue.

Il est important de tester minutieusement chaque servo à l'aide d'un programme de test approprié. J'ai modifié le simple programme d'exemple de "balayage" pour tester spécifiquement les positions 0, 90 et 180, cette routine de test a été exécutée pendant au moins 5 minutes pour chaque servo, puis répétée un jour plus tard.

REMARQUE: l'utilisation d'une carte Arduino Uno standard alimentée par un câble USB peut ne pas fournir une tension suffisante pour faire fonctionner certains servos. J'ai trouvé que les 4,85 V reçus par le servo de l'Uno provoquaient un comportement erratique avec les servos DS3218, l'augmentation de cette tension à 5,05 V a résolu ce problème. J'ai donc décidé de faire fonctionner les servos à 6v. Au final, j'ai trouvé qu'une tension de 6,4v était nécessaire car le 6v provoquait un comportement erratique des servos.

Étape 7: CONSTRUCTION

CONSTRUCTION
CONSTRUCTION
CONSTRUCTION
CONSTRUCTION
CONSTRUCTION
CONSTRUCTION

JAMBES

Commencé par la disposition des pièces du kit Hexapode. Tous les klaxons circulaires d'asservissement nécessitaient l'élargissement du trou de natte aux deux extrémités du fémur et de tous les trous coaxiaux. Chaque palonnier était attaché à son câble coaxial et à son fémur correspondants avec quatre vis et une cinquième vis à travers le centre de la tête du servo. Tous les corps de servos étaient fixés à l'aide de quatre boulons et écrous. Le support de servomoteur coaxial, pour chacune des six pattes, avait un roulement fixé au bas du support à l'aide d'un seul boulon et écrou. Chaque support de servomoteur coaxial a été fixé, à l'aide de quatre boulons et écrous, à son support de servomoteur fémur, ce support étant tourné de 90 degrés. La tête du servo du fémur était attachée à une extrémité du bras du fémur avec l'autre extrémité du fémur attachée à la tête du servo du tibia. Les six servos Tibia étaient fixés au sommet des six pattes avec quatre boulons et écrous. Chaque effecteur d'extrémité de jambe était recouvert d'une botte en caoutchouc souple pour offrir une adhérence supplémentaire. Il a été constaté que le palonnier fourni était trop grand pour être fixé dans les connexions coaxiales, fémur et tibia, de sorte que tous les trous centraux ont été agrandis à 9 mm. Mes remerciements à « Toglefritz » pour son instructable Capers II concernant les éléments de construction du kit Hexapode. J'ai cependant dévié de la construction dans un domaine, à savoir la fixation des palonniers aux deux extrémités du fémur. J'ai décidé d'agrandir le trou central du fémur pour permettre au centre du palonnier de le traverser, donnant ainsi une force supplémentaire au palonnier car il était plus proche du servo et ces deux articulations ont subi le couple maximal. Chaque palonnier était fixé au fémur à l'aide de deux vis autotaraudeuses M2.2, les extrémités de ces vis étant retirées et limées à plat. Tous les boulons M3 avaient un verrouillage serré appliqué.

CORPS

Le corps se compose de deux plaques avec chacune six trous, chaque trou étant utilisé pour fixer le palonnier coaxial. Deux batteries 6V 2800mAh ont été fixées sous la plaque inférieure à l'aide de Velcro. Quatre supports M3 s'étendant juste au-delà du bas du support de batterie ont été fixés, chacun ayant une botte en caoutchouc souple glissé sur le bas, cela fournit une base stable sur laquelle l'hexapode peut reposer. La partie supérieure de la plaque inférieure a l'Arduino Mega et son bouclier de capteur attachés à l'aide de quatre entretoises de 5 mm. Sur le dessus de la plaque inférieure étaient fixés 4 supports M3 de 6 cm de hauteur, ceux-ci entouraient l'Arduino Mega et fournissaient un support pour la plaque supérieure. La plaque supérieure était dotée d'un boîtier de 120 mm x 70 mm x 30 mm, qui abritera le premier des servos de cou et un écran LCD. Un deuxième support de batterie 2 baies, 2 x 18650 a été attaché à la face inférieure de la plaque supérieure à l'arrière de la carte Arduino Mega face vers l'avant de l'Hexapod.

La plaque supérieure a six palonniers de servos fixés chacun avec quatre vis M2.2. Sur le dessus de la plaque est installé un boîtier de 70 mm x 120 mm x 30 mm dans lequel un support de batterie 18650 à 2 baies, un interrupteur bipolaire, une LED verte et un écran LCD IC2 16 x 2 sont installés. De plus, le premier servo de cou est également installé, l'alimentation et le deuxième câble de données du servo de cou passent à travers un trou pour alimenter le deuxième servo et le module Arduino V3 NodeMcu. Un autre câble de données traverse le boîtier supérieur et alimente le module à ultrasons HC-SR04, également situé dans la tête. Un deuxième câble de données et d'alimentation est également passé à la tête pour alimenter l'anneau led lutin.

Les deux câbles de données servo et le câble de données HC-SR04 sont acheminés à travers la plaque supérieure tandis que le module Bluetooth est fixé sous la plaque à l'aide d'un tampon de forme néon et de colle chaude. La gestion des câbles des 18 câbles de données d'asservissement restants doit être en place avant toute tentative de fixation de la plaque supérieure à la plaque inférieure à l'aide de 4 vis M3 qui s'insèrent dans les 4 supports M3 qui ont été fixés à la plaque inférieure. Dans le cadre du processus de fixation de la plaque inférieure supérieure, les six servos coaxiaux doivent également être placés dans leur position correcte avec le roulement s'insérant dans le trou de la plaque inférieure et la tête du servo s'adaptant dans le cornet de la plaque supérieure. Une fois montés, les sommets des six servos Coax sont fixés avec 6 vis M3. En raison de la position des palonniers pour les six servos Coax, les 4 x M3 ont dû être réduits en hauteur de 2 mm, de sorte que les roulements des servos Coax s'installent correctement dans la plaque inférieure.

DIRIGER

La tête se compose de deux servos à 90 degrés l'un de l'autre, l'un logé dans le boîtier fixé à la plaque supérieure et le second fixé au premier via le palonnier à l'aide d'une section en forme de U de plaque en laiton. Le cornet du second servo est attaché à un support en laiton en forme de L qui est lui-même attaché à une boîte de 70 mm x 70 mm x 50 mm avec deux boulons et écrous. Le boîtier forme la tête, à l'intérieur de laquelle sont installés la caméra Ardcam, le module à ultrasons HC-SR04 et le module Arduino V3 NodeMcu, et la LED d'alimentation. Le module à ultrasons transmet et reçoit les têtes de capteur dépassent de l'avant du boîtier, tout comme l'objectif de la caméra. Autour de l'objectif à l'extérieur de la boîte se trouve un anneau de lutin Nero 16 LCD. La LED d'alimentation NodeMcu est visible via un trou dans la plaque arrière de la tête, le câble d'alimentation, le câble de données du module à ultrasons et les câbles d'alimentation de données Pixie Neon pénètrent par un trou entre la plaque arrière et la plaque de tête.

ÉLECTRONIQUE

Les diagrammes de Fritzing suivants montrent l'électronique du corps et de la tête. Les lignes VCC et GRD ne sont pas représentées pour les 20 servos pour faciliter la clarté du schéma. Le module Bluetooth, via l'application Android, contrôle le mouvement de l'Hexapode, y compris ses servos de cou. Le module Arduino NodeMcu basé sur WIFI contrôle le module de caméra Arducam. Tous les servos sont attachés au blindage du capteur Arduino via un seul bloc contenant les lignes VCC, GRD et de signal. Des câbles de démarrage DuPont standard de 20 cm sont utilisés pour connecter les écrans LCD Bluetooth BT12, HC-SR04 et IC2.

CALIBRAGE DES JAMBES

C'est l'un des domaines de préparation les plus difficiles avant de travailler sur le mouvement de l'Hexapode. L'idée initiale est de régler toutes les jambes comme suit, les servos coaxiaux à 90 degrés, les servos fémur à 90 degrés et les servos tibia réglés à 90 avec la position physique des jambes réglée à 105 degrés pour les jambes 2, 4, 6 et 75 degrés pour les pattes 1, 3 et 5. L'Hexapode a été placé sur une surface plane reposant sur les quatre supports sous le boîtier de la batterie. Ses jambes sont positionnées à égale distance entre chaque jambe et à égale distance du corps. Toutes ces positions étaient marquées sur la surface plane. Lors de la construction des jambes, le point central de chaque servo a été trouvé, cela devrait être la position à 90 degrés des servos. Cette position par défaut à 90 degrés est utilisée avec tous les servos.

Les faces intérieures des servos coaxiaux 2 et 5 sont parallèles les unes aux autres, cela vaut pour les servos 1 et 6, et 3 et 4. Tous les servos fémur et coax sont fixés ensemble à 90 degrés les uns par rapport aux autres pendant la phase de construction. Tous les servos fémur ont le bras fémur qui leur est attaché à un angle de 90 degrés. Tous les servos Tibia sont attachés au Tibia à 90 degrés. Les servos 2, 4 et 6 Tibia sont attachés au bras fémur à 105 degrés, tandis que les servos Tibia 1, 3 et 5 sont attachés au bras fémur à 75 degrés.

Il est important de noter que lors des tests, tous les servos doivent être surveillés pour la température, un servo chaud signifie que le servo travaille trop fort et pourrait tomber en panne, la plupart des servos seront chauds au toucher.

L'étalonnage initial consiste à déplacer l'Hexapode de sa position de repos, après avoir été allumé, à une position debout qui est à la fois stable, stable, de niveau et, plus important encore, aucun des servos ne surchauffe. Afin de maintenir une position stable, il est nécessaire d'écrire sur chaque servo avec un retard inférieur à 20 millisecondes, 10 millisecondes ont été utilisées. Tous les servos ne peuvent se déplacer que de 0 à 180 degrés et de 180 degrés à 0, donc pour tous les servos Femur, 0 et 180 degrés sont verticaux et 90 degrés sont horizontaux.

Avant d'attacher chaque servo, une écriture d'initialisation a été envoyée à chacun des servos précédemment définis, lui donnant son angle de repos actuel, c'est-à-dire la position actuelle dans laquelle se trouve le servo au repos. C'était 90 degrés pour tous les servos Coax, 55 degrés pour les servos fémur et tibia 1, 3 et 5, et 125 degrés pour les servos fémur et tibia 2, 4 et 6.

Il est important de noter que les batteries doivent toujours être complètement chargées au début de la session d'étalonnage.

L'Hexapode part toujours d'une position de repos, l'ensemble du corps étant soutenu par les quatre pieds. À partir de cette position, tous les servos du fémur et du tibia passent de leur position de départ à leur position debout, moment auquel tous les servos sont à 90 degrés. Pour terminer la position debout, la commande « debout » est émise. Cette commande exige que toutes les jambes se lèvent et se redescendent en deux séries de trois mouvements de jambes, les jambes 1, 5 et 4, et 2, 6 et 3.

Étape 8: LOGICIEL

Le logiciel se compose de trois parties, la première partie est le code Arduino qui s'exécute sur l'Arduino Mega, la deuxième partie est le code Arduino qui s'exécute sur le module NodeMcu dans la tête. La communication se fait via l'unité Bluetooth BT12 qui reçoit les commandes de la tablette Android, à savoir une Samsung Tab 2, qui exécute une application personnalisée construite par Android Studio. C'est cette application qui envoie des commandes à l'Hexapode. La même application reçoit également le flux vidéo en direct du module NodeMcu via son WIFI intégré.

CODE ANDRODE

Le code Android sur mesure, développé à l'aide d'Android Studio, fournit la plate-forme sur laquelle l'application à deux écrans est exécutée. L'application dispose de deux écrans, l'écran principal permet à l'utilisateur d'émettre des commandes vers l'hexapode et de visualiser le flux vidéo provenant de la tête de l'hexapode. Le deuxième écran, accessible via le bouton WIFI, permet à l'utilisateur de se connecter d'une part à l'hexapode Bluetooth et d'autre part au point d'accès WIFI généré par la carte NodeMCU Arduino dans la tête de l'hexapode. L'application envoie des commandes à une lettre, via une série de 9600 bauds, de la tablette via le Bluetooth intégré au Bluetooth BT12 attaché à l'hexapode.

CODE ARDUINO

Le développement du code a commencé avec le développement d'un programme de test conçu pour tester les fonctions de base de l'Hexapode, sa tête et son corps. La tête et son fonctionnement étant complètement séparés du corps, son développement logiciel a été testé en parallèle avec le code des fonctions corporelles. Le code de fonctionnement de la tête était en grande partie basé sur un développement précédent avec l'inclusion du mouvement d'asservissement. Le code comprenait le fonctionnement d'un écran LCD 16x2, d'un module à ultrasons HC-SR04 et d'un anneau lumineux à 16 LED. Un développement supplémentaire du code était nécessaire pour fournir un accès WIFI au flux vidéo en direct depuis la tête.

Le code de fonction corporelle a été initialement développé pour fournir la fixation initiale du servo et la position initiale au repos. À partir de cette position, l'Hexapode a été programmé pour simplement se tenir debout. Le développement s'est ensuite poursuivi avec des mouvements supplémentaires de l'Hexapode et la combinaison des sections de code de tête et de corps avec les communications série avec l'application Android.

Le code servo de test a permis le développement des mouvements des jambes et du corps, à savoir:

1. InitLeg - Permet la position de la jambe de repos, la position de la jambe debout, la position initiale de la jambe en crabe pour la marche à gauche ou à droite, la position initiale de la jambe pour la marche en avant ou en arrière.

2. Onduler – Permet aux pattes avant d'agiter quatre fois avant de revenir à la position debout.

3. TurnLeg - Permet à l'Hexapode de tourner à gauche ou à droite.

4. MoveLeg - Permet à l'Hexapode de marcher en avant ou en arrière.

5. CrouchLeg - Permet à l'Hexapode de s'accroupir vers l'avant sur ses pattes avant ou vers l'arrière sur ses pattes arrière.

Le mouvement des jambes est basé sur des paires de jambes travaillant ensemble, donc les jambes 1 et 2, 3 et 4, 5 et 6 fonctionnent par paires. Le mouvement consiste en deux actions de base, une extension et une traction vers l'avant, et une poussée vers l'arrière. Pour marcher vers l'arrière ces deux mouvements sont inversés, donc par exemple en marchant vers l'avant, les jambes 1 et 2 tirent, tandis que les jambes 5 et 6 poussent, les jambes 3 et 4 assurent la stabilité. La marche du crabe consiste simplement en ces mêmes actions mais réglées à 90 degrés par rapport au corps, dans ce cas les pattes 3 et 4 se déplacent également de la même manière que les autres pattes. Pendant que les paires de pattes marchent se déplacent alternativement, cependant, tandis que les pattes 1 et 5 marchent en crabe fonctionnent en paire tandis que la patte 3 fonctionne sur des foulées alternées par rapport aux pattes 1 et 5.

Mouvement La description fonctionnelle suit pour chacune des principales fonctions de mouvement, chacune étant constituée d'éléments de mouvement réunis et actionnés dans une séquence définie.

REPOS: En partant d'une position debout, tous les servos Femur se déplacent vers le haut pour abaisser le corps sur les quatre supports. En même temps, tous les servos Tibia se déplacent tous vers l'intérieur.

DEBOUT: à partir de la position de repos, tous les servos Tibia se déplacent vers l'extérieur, lorsque cela est terminé, tous les servos Fémur se déplacent vers la position 90 degrés, enfin tous les servos Tibia se déplacent vers la position 90 degrés en même temps.

TOURNANT À GAUCHE: les jambes 1, 3 et 5 reculent de 45 degrés de la tête, tandis que les jambes 2, 4 et 6 avancent vers la tête. Une fois terminé, tous les servos coaxiaux passent de leur position actuelle à la position standard à 90 degrés, ce mouvement serait dans le sens inverse des aiguilles d'une montre par rapport au corps.

TOURNER À DROITE: Les jambes 1, 3 et 5 avancent de 45 degrés vers la tête, en même temps les jambes 2, 4 et 6 reculent en s'éloignant de la tête. Une fois terminé, tous les servos coaxiaux passent de leur position actuelle à la position standard à 90 degrés, ce mouvement se ferait dans le sens des aiguilles d'une montre vers le corps.

ACCROCHAGE VERS L'AVANT: les jambes 1 et 2 s'abaissent à l'aide des servos fémur et tibia, tandis que les jambes 5 et 6 sont relevées à l'aide de leurs servos fémur et tibia, les jambes 3 et 4 restent en position standard.

ACCROCHAGE VERS L'ARRIÈRE: Les pattes 1 et 2 sont relevées à l'aide des servos fémur et tibia, tandis que les pattes 5 et 6 sont abaissées à l'aide de leurs servos fémur et tibia, les pattes 3 et 4 restent en position standard.

ONDULATION: Cette routine utilise les jambes 1 et 2 seulement. Les servos Coax se déplacent dans un arc de 50 degrés, tandis que le fémur et le tibia se déplacent également dans un arc de 50 degrés. Les jambes 3 et 4 avancent de 20 degrés vers la tête, ce qui offre une plate-forme plus stable.

MARCHE AVANT: Les jambes 1 et 6, 2 et 5 et 3 et 4 doivent travailler ensemble. Ainsi, pendant que la jambe 1 tire le corps, la jambe 6 doit pousser le corps, dès que cette action est terminée, les jambes 2 et 5 doivent effectuer la même action, tandis que chacun de ces cycles d'action se produit les jambes 3 et 4 doivent effectuer leur avancer la routine.

Les fonctions initiales du module de jambe de test ont permis une conception pour chacun des trois mouvements de jambe. Trois mouvements de jambes sont nécessaires car les jambes opposées effectuent simplement les mouvements inverses. Un nouveau module combiné des jambes 1, 3 et 6 a été développé, testé et copié pour un deuxième module inversé des jambes 2, 4 et 5 jambes. Le test des mouvements des jambes de l'hexapode a été réalisé en plaçant l'hexapode sur un bloc surélevé, permettant ainsi aux jambes un mouvement complet sans toucher le sol. Les mesures ont été prises pendant que les jambes bougeaient et il a été constaté que toutes les jambes se déplacent horizontalement sur une distance de 80 mm tout en restant à 10 mm du sol à leur point le plus bas pendant le mouvement. Cela signifie que l'Hexapode basculera simplement d'un côté à l'autre pendant le mouvement et que toutes les jambes auront une force de traction égale pendant le mouvement.

MARCHE INVERSE:

CRABE MARCHE À GAUCHE: Le mouvement initial commence avec les pattes 1, 2, 5 et 6 qui tournent toutes à 45 degrés dans le sens du déplacement. Cela place toutes les jambes dans le sens de la marche, les jambes 3 et 4 sont déjà dans la bonne orientation. Le fémur et le tibia de chaque jambe commençant dans la position par défaut de 90 degrés. Cette allure se compose de deux séries de trois jambes travaillant sur des foulées alternées, les jambes 1, 5 et 4 et les jambes 3, 2 et 6. Chaque série de trois jambes fonctionne en tirant avec les jambes avant, c'est-à-dire 1 et 5 et en poussant avec jambe 4, ce mouvement est alors inversé donc la jambe 3 tire tandis que les jambes 2 et 6 poussent, aucun des servos Coax ne fonctionne pendant ce mouvement. Chaque ensemble de trois pattes soulève l'autre ensemble de pattes stationnaire au fur et à mesure que le premier ensemble se déplace.

CRABE MARCHE À DROITE:

REMARQUE: La tête tournera dans la direction de la marche du crabe à gauche ou à droite. Cela permet à la détection par ultrasons HC-SR04 d'être utilisée pendant la marche.

RÉGLAGE DES JAMBES: Pour que l'Hexapode soit à niveau, il est nécessaire que toutes les jambes se tiennent à la même hauteur. En plaçant l'hexapode sur des blocs, puis en utilisant les routines de support et de repos, il a été possible de mesurer la distance par rapport au sol de chaque effecteur d'extrémité. J'ai ajouté des bottes en caoutchouc à chaque effecteur d'extrémité pour d'abord ajouter de l'adhérence, mais aussi pour permettre un petit ajustement de la longueur des jambes, avec un objectif de 5 mm ou moins entre toutes les jambes. Le réglage de chaque servo à 90 degrés était facile, mais la fixation de chaque palonnier aux deux extrémités du fémur peut et a causé des problèmes car de très petites différences dans les angles de rotation des épines internes des palonniers entraînent une différence de hauteur des jambes de 20 mm. Le remplacement des vis par des trous de fixation différents dans les palonniers a corrigé cette différence de hauteur de 20 mm. J'étais déterminé à résoudre ce problème en utilisant cette méthode plutôt que d'avoir à compenser ces différences de hauteur à l'aide d'un logiciel.

Conseillé: