Table des matières:
- Étape 1: Pièces
- Étape 2: PROTOTYPAGE
- Étape 3: GANT
- Étape 4: BOÎTIER ÉMETTEUR
- Étape 5: BOÎTIER DE CONTRLE DU BRAS
- Étape 6: ATTRIBUTION DU PIN
- Étape 7: COMMUNICATION
- Étape 8: CROQUIS et plus…
- Étape 9: QUOI D'AUTRE ?
- Étape 10: *** NOUS AVONS GAGNÉ !!! ***
Vidéo: Agitez votre main pour contrôler le bras robotique OWI Aucune condition : 10 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
L'IDÉE:
Il existe au moins 4 autres projets sur Instructables.com (au 13 mai 2015) autour de la modification ou du contrôle du bras robotique OWI. Ce n'est pas surprenant, puisqu'il s'agit d'un kit robotique si génial et peu coûteux avec lequel jouer. Ce projet est similaire dans l'esprit (c'est-à-dire contrôler le bras robotique avec Arduino), mais différent dans l'approche. [vidéo]
L'idée est de pouvoir contrôler le bras robotique sans fil à l'aide de gestes. De plus, j'ai essayé de réduire au minimum les modifications du bras robotique, afin qu'il puisse toujours être utilisé avec le contrôleur d'origine.
Cela semble simple.
Il s'agit finalement d'un projet en trois parties:
- Un gant équipé de suffisamment de capteurs pour contrôler une LED et 5 moteurs
- Un dispositif émetteur basé sur Arduino Nano pour accepter les commandes de contrôle du gant et les envoyer sans fil au dispositif de contrôle Arm
- Un récepteur sans fil basé sur Arduino Uno et un dispositif de commande de moteur attaché au bras robotique OWI
CARACTÉRISTIQUES
- Prise en charge des 5 degrés de liberté (DOF) et de la LED
- Gros bouton rouge - pour arrêter immédiatement les moteurs sur le bras en évitant les dommages
- Conception modulaire portable
Pour les mobinautes: la "vidéo promotionnelle" de ce projet est sur YouTube ici.
Étape 1: Pièces
GANT:
Vous aurez besoin des éléments suivants pour créer un contrôleur de gant:
- Isotoner Smartouch Tech Stretch Stitched Glove (ou similaire) - sur Amazon.com
- Capteur Spectra Symboflex 2.2" - sur Amazon.com
- Gyroscope 3 axes + module accéléromètre GY-521 6DOF MPU6050 - sur Fasttech.com
- EN-TÊTE DE BOÎTE 2X5 DROITE - sur Phoenixent.com
- PRISE-RECEPTACLE 2X5 IDC - sur Phoenixent.com
- CÂBLE RUBAN PLAT 10 Conducteurs Pas.050" - sur Phoenixent.com
- 2 LED 5 mm - Vert et Jaune
- 2 x petits boutons
- Résistances, fils, aiguille, fil noir, pistolet à colle, pistolet à souder, soudure, etc.
BOÎTE À SANGLE DE TRANSMISSION:
- Carte compatible Arduino Nano v3.0 ATmega328P-20AU - sur Fasttech.com
- Émetteur-récepteur sans fil nRF24L01+ 2,4 GHz compatible Arduino - sur Amazon.com
- Bracelet Gymboss - sur Amazon.com
- Boîtier de support de batterie 9V avec interrupteur marche/arrêt - sur Amazon.com
- EN-TÊTE DE BOÎTE 2X5 DROITE - sur Phoenixent.com
- pile 9v
- Condensateur 47uF (50v)
- Résistances, fils, pistolet à colle, pistolet à souder, soudure, etc.
BOÎTIER DE CONTRLEUR DE BRAS ROBOTIQUE OWI:
- Carte de développement Uno R3 Rev3 compatible Arduino - sur Fasttech.com
- KIT de bricolage Prototype Shield pour Arduino (ou similaire) - sur Amazon.com
- Émetteur-récepteur sans fil nRF24L01+ 2,4 GHz compatible Arduino - sur Amazon.com
- 3 x L293D 16 broches Circuit intégré Pilote de moteur IC - sur Fasttech.com
- 1 x SN74HC595 74HC595 Registre à décalage 8 bits avec registres de sortie à 3 états DIP16 - sur Amazon.com
- Condensateur 47uF (50v)
- Boîte pour Arduino - sur Amazon.com
- Interrupteur marche / arrêt
- 2 boutons de 13 mm (un rouge et un vert)
- 2 x 2X7 BOX EN-TÊTE DROITE - comme ci-dessus sur Phoenixent.com
- CÂBLE RUBAN PLAT 14 Conducteur Pas de 0,050" - comme ci-dessus sur Phoenixent.com
- Pile 9v + connecteur à clipser
- Résistances, fils, pistolet à colle, pistolet à souder, soudure, etc.
… et bien sûr:
OWI Robotic Arm Edge - Bras robotique - OWI-535 - sur Adafruit.com
Étape 2: PROTOTYPAGE
Je suggère fortement de prototyper chacun des contrôleurs avant de souder tous les composants ensemble.
Ce projet utilise quelques éléments de matériel difficiles:
nRF24L01
Il m'a fallu un certain temps pour que les deux nRF24 se parlent. Apparemment, ni Nano, ni Uno ne fournissent suffisamment d'alimentation stabilisée de 3,3 V pour que les modules fonctionnent de manière cohérente. Une solution dans mon cas était un condensateur de 47 uF sur les broches d'alimentation des deux modules nRF24. Il y a aussi quelques bizarreries avec l'utilisation de la bibliothèque RF24 en modes IRQ et non-IRQ, je recommande donc d'étudier les exemples très attentivement.
Quelques bonnes ressources:
nRF24L01 Page du produit du circuit intégré d'émetteur-récepteur RF 2,4 GHz à très faible consommation
Page de la bibliothèque du pilote RF24
Le simple fait de googler nRF24 + arduino produira beaucoup de liens. Cela vaut la peine de faire des recherches
74HC595 REGISTRE DE CHANGEMENT
Sans surprise, devant contrôler 5 moteurs, une LED, deux boutons et un module sans fil, j'ai manqué de broches sur l'Uno assez rapidement. La façon bien connue d'"étendre" votre nombre de broches est d'utiliser un registre à décalage. Étant donné que nRF24 utilisait déjà l'interface SPI, j'ai décidé d'utiliser également SPI pour la programmation du registre à décalage (pour la vitesse et pour économiser les broches) au lieu de la fonction shiftout(). À ma grande surprise, cela a fonctionné comme un charme dès la première fois. Vous pouvez le vérifier dans l'affectation des broches et dans les croquis.
La planche à pain et les fils de connexion sont vos amis.
Étape 3: GANT
OWI Robotic ARM a 6 éléments à contrôler (OWI Robotic Arm Edge Picture)
- Une LED située sur le GRIPPER de l'appareil
- UNE PINCE
- UN POIGNET
- Un COUDE - est la partie du bras robotique attachée au POIGNET
- Une ÉPAULE est la partie du bras robotique attachée à la BASE
- UNE BASE
Le gant est conçu pour contrôler la LED du bras robotique et les 5 moteurs (degrés de liberté).
J'ai des capteurs individuels marqués sur les images ainsi qu'une description ci-dessous:
- Le GRIPPER est contrôlé par les boutons situés sur le majeur et l'auriculaire. La pince est fermée en pressant l'index et le majeur ensemble. La pince s'ouvre en pressant l'anneau et le petit doigt ensemble.
- Le POIGNET est contrôlé par la résistance flexible sur le chercheur d'index. Recourber le doigt à mi-chemin fait descendre le poignet et le recourber complètement fait monter le poignet. Garder l'index droit arrête le poignet.
- Le COUDE est contrôlé par un accéléromètre - l'inclinaison de la paume vers le haut et vers le bas déplace le coude de haut en bas respectivement
- L'ÉPAULE est contrôlée par un accéléromètre - l'inclinaison de la paume vers la droite et vers la gauche (mais pas à l'envers !) déplace l'épaule vers le haut et vers le bas respectivement
- La BASE est également contrôlée par un accéléromètre, similaire à l'épaule - l'inclinaison de la paume vers la droite et vers la gauche complètement à l'envers (paume vers le haut) déplace la base respectivement à droite et à gauche
- La LED sur la pince est allumée/éteinte en appuyant simultanément sur les deux boutons de commande de la pince.
Toutes les réponses des boutons sont retardées d'un quart de seconde pour éviter la gigue.
L'assemblage du gant nécessite un peu de soudure et beaucoup de couture. Fondamentalement, il s'agit simplement d'attacher 2 boutons, une résistance flexible, un module Accel/Gyro au tissu du gant et d'acheminer les fils vers la boîte de connexion.
Deux LED sur le boîtier de connexion sont:
- VERT - sous tension
- JAUNE - clignote lorsque les données sont transmises au boîtier de commande du bras.
Étape 4: BOÎTIER ÉMETTEUR
Le boîtier émetteur est essentiellement un Arduino Nano, un module sans fil nRF24, un connecteur de fil flexible et 3 résistances: 2 résistances déroulantes de 10 kOhm pour les boutons de commande de la pince sur le gant et une résistance à division de tension de 20 kOhm pour le capteur flexible contrôlant le poignet.
Tout est soudé ensemble sur un vero-board. Notez que nRF24 est "suspendu" au-dessus de Nano. J'avais peur que cela puisse causer des interférences, mais cela fonctionne.
L'utilisation de la batterie 9v rend la partie sangle un peu encombrante, mais je ne voulais pas jouer avec les batteries LiPo. Peut-être plus tard.
Veuillez consulter l'étape d'affectation des broches pour les instructions de soudage
Étape 5: BOÎTIER DE CONTRLE DU BRAS
Le boîtier de contrôle du bras est basé sur Arduino Uno. Il reçoit les commandes du gant sans fil via le module nRF24 et contrôle le bras OWI Robotoc via 3 puces de pilote L293D.
Comme presque toutes les broches Uno ont été utilisées, il y a beaucoup de fils à l'intérieur de la boîte - elle se ferme à peine !
De par sa conception, le boîtier démarre en mode OFF (comme si un bouton d'arrêt rouge était enfoncé), laissant à l'opérateur le temps de mettre le gant et de se préparer. Une fois prêt, l'opérateur appuie sur le bouton vert et la connexion entre le gant et le boîtier de commande doit être immédiatement établie (comme indiqué par la LED jaune sur le gant et la LED rouge sur le boîtier de commande).
CONNEXION À OWI
La connexion au bras robotique s'effectue via un en-tête à double rangée à 14 broches (selon l'image ci-dessus) via un câble plat à 14 fils.
- Les connexions LED sont à la terre commune (-) et à la broche arduino A0 via une résistance de 220 ohms
- Tous les fils du moteur sont connectés aux broches L293D 3/6 ou 11/14 (+/- respectivement). Chaque L293D supporte 2 moteurs, donc deux paires de broches.
- Les lignes électriques OWI sont les broches les plus à gauche (+6v) et les plus à droite (GND) du connecteur à 7 broches à l'arrière du haut jaune. (Vous pouvez voir les fils branchés sur la photo ci-dessus). Ces deux sont connectés aux broches 8 (+) et 4, 5, 12, 13 (GND) sur les trois L293D.
Veuillez voir le reste de l'affectation des broches à l'étape suivante
Étape 6: ATTRIBUTION DU PIN
NANO:
- Puce 3.3v - 3.3v vers nRF24L01 (broche 2)
- 5v - 5v vers carte accéléromètre, boutons, capteur flexible
- a0 - entrée de résistance flexible
- a1 - contrôle LED jaune "coms"
- a4 - SDA vers accéléromètre
- a5 - SCL vers accéléromètre
- d02 - Puce nRF24L01 Broche d'interruption (broche 8)
- d03 - ouvrir l'entrée du bouton de préhension
- d04 - fermer l'entrée du bouton de préhension
- d09 - Broche SPI CSN vers puce nRF24L01 (broche 4)
- d10 - Broche SPI CS vers puce nRF24L01 (broche 3)
- d11 - Puce SPI MOSI vers nRF24L01 (broche 6)
- d12 - Puce SPI MISO vers nRF24L01 (broche 7)
- d13 - Puce SPI SCK vers nRF24L01 (broche 5)
- Vin - 9v +
- GND - terrain d'entente
ONU:
- Puce 3.3v - 3.3v vers nRF24L01 (broche 2)
- 5v - 5v aux boutons
- Vin - 9v +
- GND - terrain d'entente
- a0 - LED poignet +
- a1 - Broche SPI SS pour Shift Register Select - à la broche 12 sur Shift Register
- a2 - Entrée bouton ROUGE
- a3 - Entrée bouton VERT
- a4 - direction base droite - broche 15 sur L293D
- a5 - led de communication
- d02 - nRF24L01 Entrée IRQ (broche 8)
- d03 - activer la broche 1 ou 9 du servo de base (pwm) sur L293D
- d04 - direction base gauche - broche 10 sur L293D respectif
- d05 - activer la broche 1 ou 9 du servo d'épaule (pwm) sur L293D
- d06 - activer la broche 1 ou 9 du servo coude (pwm) sur L293D
- d07 - Broche SPI CSN vers puce nRF24L01 (broche 4)
- d08 - Broche SPI CS vers puce nRF24L01 (broche 3)
- d09 - activer la broche 1 ou 9 du servo de poignet (pwm) sur L293D
- d10 - activer la broche 1 ou 9 du servo de préhension (pwm) sur L293D
- d11 - Puce SPI MOSI vers nRF24L01 (broche 6) et broche 14 sur le registre à décalage
- d12 - Puce SPI MISO vers nRF24L01 (broche 7)
- d13 - Puce SPI SCK vers nRF24L01 (broche 5) et broche 11 sur le registre à décalage
SHIFT REGISTRE ET L293Ds:
- broche QA (15) de 74HC595 à broche 2 de L293D #1
- broche QB (1) de 74HC595 à broche 7 de L293D #1
- broche QC (2) de 74HC595 à broche 10 de L293D #1
- broche QD (3) de 74HC595 à broche 15 de L293D #1
- broche QE (4) de 74HC595 à broche 2 de L293D #2
- broche QF (5) de 74HC595 à broche 7 de L293D #2
- broche QG (6) de 74HC595 à broche 10 de L293D #2
- broche QH (7) de 74HC595 à broche 15 de L293D #2
Étape 7: COMMUNICATION
Glove envoie 2 octets de données au boîtier de commande 10 fois par seconde ou chaque fois qu'un signal de l'un des capteurs est reçu.
2 octets suffisent pour 6 contrôles car il suffit d'envoyer:
- ON/OFF pour LED (1 bit) - J'ai en fait utilisé 2 bits pour être cohérent avec les moteurs, mais un suffit
- OFF/RIGHT/LEFT pour 5 moteurs: 2 bits chacun = 10 bits
Un total de 11 ou 12 bits est suffisant.
Codes de direction:
- OFF: 00
- DROITE: 01
- GAUCHE: 10
Le mot de contrôle ressemble à ceci (au niveau du bit):
Octet 2 ---------------- Octet 1----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - pince
- M2 - poignet
- M3 - coude
- M4 - épaule
- M5 - socle
L'octet 1 pourrait être facilement introduit directement dans le registre à décalage, car il contrôle la direction droite/gauche des moteurs 1 à 4.
Un délai d'attente de 2 secondes est activé pour les communications. Si une temporisation se produit, tous les moteurs sont arrêtés comme si un bouton ROUGE était enfoncé.
Étape 8: CROQUIS et plus…
GANT
Glove sketch utilise les bibliothèques suivantes:
- DirectIO - disponible sur Github
- I2Cdev - disponible sur Github
- Fil - partie de l'IDE Arduino
- MPU6050 - disponible sur Github
- SPI - partie de l'IDE Arduino
- RF24 - disponible sur Github
et trois bibliothèques développées par moi:
- AvgFilter - disponible sur Github
- DhpFilter - disponible sur Github
- TaskScheduler - disponible sur Github
Le croquis du gant est disponible ici: Croquis du gant v1.3
BOÎTIER DE COMMANDE DE BRAS
Arm sketch utilise les bibliothèques suivantes:
- DirectIO - disponible sur Github
- PinChangeInt - disponible sur Github
- SPI - partie de l'IDE Arduino
- RF24 - disponible sur Github
et une bibliothèque développée par moi:
TaskScheduler - disponible sur Github
Le croquis du bras est disponible ici: Croquis du bras v1.3
Fiches techniques du matériel utilisé
- Registre à décalage 74HC595 - fiche technique
- Pilote de moteur L293D - fiche technique
- Module sans fil nRF24 - fiche technique
- Module accéléromètre/gyroscope MPU6050 - fiche technique
MISE À JOUR du 31 mai 2015:
Une nouvelle version des croquis du boîtier de commande des gants et des bras est disponible ici: Croquis des gants et des bras v1.5
Ils sont également situés sur github ici.
Changements
- Ajout de deux octets supplémentaires à la structure de communication pour envoyer la vitesse du moteur demandée pour les moteurs du poignet, du coude, de l'épaule et de la base sous la forme d'une valeur de 5 bits (0.. 31) à partir du gant proportionnellement à l'angle du geste de contrôle (voir ci-dessous). Arm Control Box mappe les valeurs [0.. 31] aux valeurs PWM respectives pour chacun des moteurs. Cela permet un contrôle progressif de la vitesse par l'opérateur et une manipulation plus précise du bras.
- Nouvel ensemble de gestes:
1. LED: LED de contrôle des boutons - bouton majeur - allumé, bouton auriculaire - éteint
2. PINCE: Commandes de bande flexible Pince - doigt à moitié plié - OUVERT, doigt complètement plié - FERMER
3. POIGNET: Le poignet est contrôlé en inclinant la paume de la position complètement horizontale vers le HAUT et le BAS respectivement. Plus d'inclinaison produit plus de vitesse
4. BRAS: Le bras est contrôlé en inclinant la paume de la position complètement horizontale à GAUCHE et à DROITE. Plus d'inclinaison produit plus de vitesse
5. ÉPAULE: L'épaule est contrôlée en tournant la paume à DROITE et à GAUCHE à partir de la paume pointant vers le haut. La paume est tournée le long de l'axe du coude (comme c'est le cas en agitant la main)
6. BASE: La base est contrôlée de la même manière que l'épaule avec la paume dirigée vers le bas.
Étape 9: QUOI D'AUTRE ?
IMAGINATION AU TRAVAIL
Comme d'habitude avec de tels systèmes, ils pourraient être programmés pour faire beaucoup plus.
Par exemple, la conception actuelle intègre déjà des capacités supplémentaires, impossibles avec la télécommande standard:
- Augmentation progressive de la vitesse: chaque mouvement du moteur est initié à une vitesse minimale prédéfinie, qui est augmentée progressivement toutes les 1 seconde jusqu'à ce qu'une vitesse maximale soit atteinte. Cela permet un contrôle plus précis de chacun des moteurs (notamment le poignet et la pince)
- Annulation de mouvement plus rapide: lorsque la commande est reçue par l'Arm Box pour arrêter un moteur, il inverse momentanément le moteur pendant environ 50 ms, " cassant " ainsi le mouvement, et permettant un contrôle plus précis.
QUOI D'AUTRE?
Peut-être qu'une gestuelle de contrôle plus élaborée pourrait être mise en œuvre. Ou des gestes simultanés pourraient être utilisés pour des contrôles élaborés. Le bras peut-il danser ?
Si vous avez une idée de la façon de reprogrammer le gant, ou si vous avez une version d'un croquis que vous voulez que je teste - faites-le moi savoir: [email protected]
Étape 10: *** NOUS AVONS GAGNÉ !!! ***
Ce projet a remporté le premier prix du concours de créations codées parrainé par Microsoft.
Vérifiez-le! WOO-HOO !!!
Deuxième Prix des Créations Codées
Conseillé:
Comment contrôler un bras robotique 4dof haute puissance de grande taille avec une télécommande Arduino et Ps2 ? : 4 étapes
Comment contrôler un bras robotique 4dof haute puissance de grande taille avec une télécommande Arduino et Ps2 ?: ce kit utilise un moteur haute puissance mg996, il a besoin d'un courant élevé, nous avons testé beaucoup d'alimentation. La carte arduino fonctionne également sur le bras du robot 6dof. fin: écrire acheter SINONING Un magasin de jouets de bricolage
Un bras robotique simple contrôlé par le mouvement réel de la main : 7 étapes (avec photos)
Un bras robotique simple contrôlé par le mouvement réel de la main : il s'agit d'un bras robotique DOF très simple pour les débutants. Le bras est contrôlé par Arduino. Il est connecté à un capteur qui est fixé sur la main de l'opérateur. Par conséquent, l'opérateur peut contrôler le coude du bras en pliant son propre mouvement de coude
Bras robotique de palettisation miniature UArm pour Arduino : 19 étapes (avec photos)
Bras robotique de palettisation miniature UArm pour Arduino : En 2014, j'ai acheté un bras robotique de palettisation miniature pour Arduino en ligne, je commençais également à expérimenter l'impression 3D. J'ai commencé à faire de l'ingénierie inverse sur le bras que j'ai acheté et à faire des recherches lorsque je suis tombé sur David Beck en train de faire la même chose sur M
Contrôler le bras robotique avec Zio à l'aide du contrôleur PS2 : 4 étapes
Contrôlez le bras robotique avec Zio à l'aide d'un contrôleur PS2 : ce billet de blog fait partie de la série Zio Robotics. Dans ce tutoriel, nous allons ajouter une autre partie à notre bras robotique. Les tutoriels précédents n'incluent pas de base pour le
Contrôler un bras robotique avec les modules Zio Partie 1 : 8 étapes
Contrôler un bras robotique avec des modules Zio Partie 1 : Ce billet de blog fait partie de la série Zio Robotics.IntroductionDans ce didacticiel, nous allons créer un projet dans lequel nous utiliserons des modules Zio pour contrôler le bras robotique. Ce projet vous apprendra comment faire en sorte que votre griffe de bras robotique s'ouvre et se ferme. Ce n