当前位置:网站首页>Comment faire votre propre robot
Comment faire votre propre robot
2022-07-06 00:27:00 【Acktomas】
Comment faire votre propre robot
Device Plus Équipe de rédaction
2016 Année 5 Mois 23 Jour
Comment utiliser avec Arduino Le moteur stepper des composants et des capteurs est 2 Faire son propre robot sur une roue:
Une fois que vous avez appris les bases de l'utilisation du moteur stepper,Vous pouvez créer des projets intéressants,Peut même fabriquer son propre robot.Cette fois,Je vais essayer de construire un 2 Robot rotatif.
En hautDans un article,Utiliser Arduino Moteur de commande - Direction à l'aide d'un servomoteur Fabrication de véhicules télécommandés , Nous avons construit une voiture télécommandée , Où le moteur général fournit l'avance / Marche arrière , Direction contrôlée par servomoteur .
Ici 2 Dans un robot à roues ,En avant./ Le mouvement et la rotation vers l'arrière peuvent être effectués en plaçant deux moteurs côte à côte . Vous verrez souvent l'utilisation de ceci 2 ..Robot avec empattement comme source de mouvement . Je vais faire quelque chose avec cette polyvalence .
Faites votre propre robot avec cette recette de construction électronique
Temps approximatif :90 Minutes
Pièces requises
- Arduino UNO R3
- 42mmMoteur stepper12V x2
- L6470 Kit - Stepper Motor Drive
- L6470/42x34mm Ensemble de vis du moteur stepper (Version japonaise)
- 5mm Montage universel (Un ensemble 2 - Oui.)
- 006P 9VBatterie
Conception d'un robot à deux roues
Fig. 1 – Pour 2 Modélisation robotique des roues
Tout d'abord,, Vous devez y réfléchir. 2 Conception complète du robot à roues .S'il y a 2 Moteurs, Vous pouvez créer un 2 Robot rotatif.2 Les moteurs tournant dans la même direction sont fournis vers l'avant / Mouvement vers l'arrière , La rotation inversée fournit une capacité de rotation .C'est ça., C'est - à - dire que la commande de mouvement de base peut être facilement réalisée à l'aide de deux moteurs , Ceci a été adopté dans de nombreux domaines . Mesurer les dimensions du moteur stepper et des autres composants à utiliser , Et faire un fuselage qui correspond à cette taille .
Je l'utilise. 3D Les pièces de l'imprimante se trouvent ici .
Fig. 1 Avec un logiciel de modélisation gratuit “123d design”, Montre mon 2 L'idée d'une conception simple du corps du robot à roues . Je pense utiliser un morceau de bois rond comme base , Et le moteur stepper 、Arduino Connecté à la batterie . Parce que le robot à deux roues peut finir par basculer vers l'avant ou vers l'arrière , Donc je vais installer un petit rouleau à bille à l'arrière de la planche comme support .
Pour déterminer la taille des roues , Veuillez placer le moteur stepper sur la figure 1 Sur le bloc rond indiqué , Mesurer ensuite la hauteur du plancher . À cette hauteur. , Avec un peu de roue flottante + 2-3mmHauteur de l'heure, Vous obtenez le diamètre de la roue .
Fig.1 3D Plaques et roues produites par l'imprimante
Fig.2 Roulettes à billes de soutien
En outre, J'ai simulé la partie qui verrouille le moteur stepper sur la planche . Il y a quatre côtés de l'arbre du moteur stepper 4mm Trou de vis, Donc j'ai fait une pièce , Ils peuvent être utilisés pour verrouiller la plaque circulaire sur le moteur stepper .
Fig.2 Partie du moteur à pas fixée à la plaque circulaire
Fig.3 3D Pièces imprimées par l'imprimante
Une fois 3D L'imprimante produit des pièces , J'ai installé le moteur stepper et j'ai vérifié les dimensions. .C'est parfait pour.
Fig. 4 – Assemblage de pièces
Connectez l'entraînement au moteur stepper .
Comme tous les composants sont montés sur un diamètre de 12 Sur la planche en centimètres , Nous devons donc utiliser l'espace aussi prudemment que possible. . À cause du moteur stepper L6470 L'emplacement et les dimensions des plaques et des trous de vis sont les mêmes que ceux de la surface du moteur stepper. , Je peux visser le conducteur à l'arrière du moteur stepper .En faisant ça, Je peux économiser un peu d'espace .
Fig. 5 – Retirer temporairement les vis et installer la plaque d'entraînement .
Fig. 6 – Plaque d'entraînement à l'arrière du moteur stepper
Utiliser Arduino Circuit d'entraînement du moteur à deux pas
Avant, On ne conduit qu'un moteur pas à pas .Cette fois, Il nous faut un moteur à deux pas . Utiliser une méthode appelée chaîne chrysanthème ,L6470 Peut contrôler plusieurs moteurs stepper .
Chaîne de chrysanthèmesC'est un Schéma de câblage , Plusieurs de ces dispositifs sont reliés en séquence ou de façon circulaire . En plus de la boucle unique complète , Les systèmes contenant des boucles internes ne peuvent pas être appelés chaînes Daisy .
Avec L6470 Les circuits nécessaires à l'exécution de la chaîne Daisy sont les suivants: . Parce qu'il y a plus de fils , Attention au câblage .
Fig. 3 – Circuit de connexion des deux moteurs stepper
La différence par rapport à un seul circuit est que , Les moteurs Step 1 et Step 2 ont maintenant un composant qui les connecte .Avec L6470 Après confirmation de la Feuille de données , Le premier moteur stepper est connecté à SDO, Le deuxième moteur stepper est connecté à SDI. Transmission et réception des données par cette section .
Fig. 4 – L6470 Schéma
Conclusions
Une fois le câblage du circuit terminé , Je dirais qu'il est temps de commencer la partie programmation , Mais la procédure de traitement des moteurs à pas multiples peut être un peu compliquée , Il peut être sage de prendre du recul pour en savoir plus sur la programmation des moteurs stepper .Si tout se passe bien,, Les deux moteurs stepper seront synchronisés comme dans la vidéo ci - dessous .
Comment faire votre propre robot(No 2 Section)
Device Plus Équipe de rédaction
2016 Année 5 Mois 24 Jour
Comment faire 2 Faire son propre robot sur une roue,Utiliser avec Arduino Moteur stepper pour composants et capteurs ……No 2 Section
En 1 En partie,Nous Utiliser la bibliothèque pour conduire le moteur stepper .Cette fois, Nous étudierons plus en détail la programmation du moteur stepper et apprendrons à le contrôler. , Problèmes rencontrés lors du traitement du moteur stepper ,Et quelques solutions.
Formule de construction électronique
Temps approximatif :90m
Pièces requises
- Arduino UNO R3
- 42mmMoteur stepper12V x2
- L6470 Kit - Stepper Motor Drive
- L6470/42x34mm Ensemble de vis du moteur stepper (Version japonaise)
- 5mm Montage universel (Un ensemble 2 - Oui.)
- 006P 9VBatterie
Commentaires sur le moteur stepper
Fig. 1 – Moteur stepper et L6470
Dans cet article, je vais passer en revue comment contrôler les moteurs pas à pas par programmation . Comme le montrent les caractéristiques suivantes: , Par rapport aux moteurs et servomoteurs ordinaires , Le moteur stepper est unique dans sa capacité à contrôler la rotation .
- Moteur électrique: Rotation sous tension
- Servomoteur: Correspond à un signal dans 0ÀN Rotation en degrés
- Moteur stepper: Peut être contrôlé sans limitation de signal
En outre, Vous envoyez le moteur dans l'ordre où vous le contrôlez PWM Signal.C'est - à - dire,Si Arduino Connexion directe au moteur stepper , Le contrôle sera difficile. .Donc d'habitude,,Pour des choses comme Arduino Ces microcontrôleurs , Vous voudrez contrôler le moteur stepper à travers le conducteur du moteur , Cela permet différents types de contrôle .( Informations sur le traitement des conducteurs de moteurs ordinaires ,Voir#12.)
Cette fois L6470 Les moteurs stepper sont à la fois bon marché et à bord / Circuit oscillateur , Pour tester le moteur stepper 、DSP Et communications I/F Courant excessif .Fondamentalement,, Lorsque vous essayez de contrôler le nombre de Tours ou la puissance du moteur ou lorsque vous avez besoin d'un mouvement précis , Vous devez sélectionner un conducteur de moteur avec les fonctions et les capacités suivantes pour compléter votre circuit .
[](http://www.rohm.com/web/global/search/parametric/-/search/Stepping Motor)
[ Catalogue des moteurs stepper – ROHM](http://www.rohm.com/web/global/search/parametric/-/search/Stepping Motor)
Parce que je veux un produit facile à utiliser et bon marché ,Donc j'utilise L6470.Mais, La dernière fois et avant , Quand j'ai essayé d'actionner le moteur stepper , Je m'attendais à ce qu'il tourne. .Au contraire., Je n'ai que du bruit et des vibrations. , Mais l'arbre ne tourne pas . Je me demande si j'ai fait quelque chose pour rendre ça bizarre ?
Moteur stepper“Pas perdu”Phénomènes
Lors de l'utilisation d'un moteur stepper , Vous rencontrez souvent une perte de pas .Bref, La perte de pas est le mouvement réel du moteur pas à pas qui ne suit pas le signal de commande de rotation. , Mauvais alignement de la position de rotation prévue du conducteur du moteur par rapport à la position réelle du moteur à pas , Cela entraîne une perte de synchronisation et le moteur ne tourne pas .
Les raisons du saut sont multiples . Les moteurs à pas d'entraînement décrits ci - dessous le font généralement .
- Moteur à pas à accélération ou décélération soudaine
- Le moment de l'accélération et de la décélération soudaines entraîne la possibilité que le signal ne soit pas synchronisé avec le moteur. .Dans ces cas,, D'abord, on accélère. / La décélération élimine cette possibilité .
- Couple insuffisant
- Si le moteur n'a pas un couple suffisant ( Puissance de rotation ), Un mauvais pas peut se produire .Dans ce cas,, Vous devez passer à un moteur avec le couple désiré .
- Basse tension d'entraînement /Instabilité
- Si la tension d'entraînement est basse /Instabilité, Cela peut entraîner une perte de pas .L6470 Exigences de spécification 8V-45V,Mais dans 8V Faites attention en descendant .
- Effets des vibrations
- Si des vibrations sont appliquées au moteur , Peut entraîner une perte de pas .
En général, En cas de perte de pas , Toutes ces raisons sont possibles , Mais une accélération soudaine ou une survitesse due à un couple insuffisant est la cause la plus fréquente .Donc,, En cas de défaillance de votre moteur stepper , Ces raisons méritent d'être examinées. .
En outre, les semi - conducteurs italo - français sont vendus L6470De,Avec des instructions détaillées,Vous pouvez également vous référer à.
Programmation du moteur stepper
Maintenant, Examinons le sujet de cet article , Programmation du moteur stepper .Pour passer L6470 De Arduino Moteur à pas de commande,Vous devez l6470 Programmation pour envoyer un signal de commande .Les circuits sont les suivants.
Fig. 1 – Connexion Arduino、L6470 Et le circuit du moteur stepper
Procédure de commande du moteur stepper
Voici la procédure du moteur stepper . Nous allons maintenant examiner le processus de ce programme .
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | #include <Arduino.h>#include <SPI.h> //(1) Import for SPI transmission //(2) Define the stepper motor pin#define PIN_SPI_MOSI 11#define PIN_SPI_MISO 12#define PIN_SPI_SCK 13#define PIN_SPI_SS 10 void setup(){ delay(1000); Serial.begin(9600); //(3) Initialize the stepper motor pin pinMode(PIN_SPI_MOSI, OUTPUT); pinMode(PIN_SPI_MISO, INPUT); pinMode(PIN_SPI_SCK, OUTPUT); pinMode(PIN_SPI_SS, OUTPUT); digitalWrite(PIN_SPI_SS, HIGH); //(4) SPI signal to commence SPI transmission SPI.begin(); SPI.setDataMode(SPI_MODE3);// When SCK is high, send/receive data, when idle, set pin to HIGH SPI.setBitOrder(MSBFIRST);// Transmission from MSB //(5) L6470 settings L6470_setup();} //**********************************************//(6) SPI transmission method//void L6470_send(unsigned char value){ digitalWrite(PIN_SPI_SS, LOW); SPI.transfer(value); // Send control signal via SPI transmission digitalWrite(PIN_SPI_SS, HIGH); } //// (7) L6470 setup//void L6470_setup(){ // Device settings L6470_send(0x00); L6470_send(0x00); L6470_send(0x00); L6470_send(0x00); L6470_send(0xc0); //Set maximum revolution speed L6470_send(0x07);//register address L6470_send(0x20);//value(10bit),default 0x41 //Voltage setting when motor is idle L6470_send(0x09);//register address L6470_send(0xFF);//value(8bit),default 0x29 //Voltage setting when motor rotating at constant speed L6470_send(0x0a);//register address L6470_send(0xFF);//value(8bit),default 0x29 //Voltage setting when accelerating L6470_send(0x0b);//register address L6470_send(0xFF);//value(8bit),default 0x29 //Voltage setting when decelerating L6470_send(0x0c);//register address L6470_send(0xFF);//value(8bit),default 0x29 //full step, half step,1/4,1/8,…,1/128 step setting L6470_send(0x16);//register address L6470_send(0x00);//value(8bit} //// (8)Main process - loop()//**********************************************void loop(){ //360 degrees - Turn one complete revolution L6470_send(0x50);// Run(DIR,SPD),0x51:Forward,0x50:Reverse L6470_send(0x00); L6470_send(0x20);// Rotation speed settings L6470_send(0x00); delay(1604);// Turn 1 time every 1604ms L6470_send(0xB8);// Hard stop} |
---|---|
Signal de commande——À propos de SPI Transmission
Tout d'abord,,L6470 Et Arduino L'échange de signaux de commande entre eux passe par un appel SPI Transmission(Interface périphérique série)La méthode de.Ce genre de SPI La transmission est utilisée pour Arduinos Et IC L'échange de signaux entre microcontrôleurs tels que les puces .
À la deuxième ligne de la procédure (1)De“#include SPI.h”Dans l'expression,Je suis prêt àArduinoUtilisation surSPITransmission. Lors de l'utilisation de la bibliothèque , Souviens - toi de ça. “#include <***.h>” L'expression a toujours existé .
Et puis...,In(2)Moyenne,J'ai mis en place L6470 Pins utilisés.Ici, Vous pouvez voir par écrit MOSI Et MISO.Ce sont SPI Ligne de signal de base utilisée pour la transmission .
In SPI Transmission en cours, La ligne de signalisation est composée des éléments suivants: 3 Éléments de base (Utiliser SS Au signal 4 Éléments). Chaque ligne de signal a une horloge spécifique (SCK)、Signal de sortie(MOSI:Master Out Slave In) Et signaux d'entrée (MISO:Master In Slave Out).Lors de la transmission réelle, Les modalités de communication sont les suivantes: Arduino Sortie du signal d'horloge standard (SCK),Et puis avec L6470 À utiliser ensemble In Et Out(MISO Et MOSI) Connexion pour transférer des données d'avant en arrière .
- SCK——Horloge série
- MISO – Entrée principale et sortie
- MOSI – Entrée / sortie principale
- SS – Sélectionner à partir de la machine
In (3) Moyenne, Régler le mode pin du fil de signalisation utilisé .Et puis...,In(4)Moyenne,Définir lesSPIMode de transmission. .L'appareil connecté détermine le mode .
Une fois SPI Préparation du transfert terminée ,In (5) Moyenne,On peut enfin utiliser SPI Transmission et démarrage L6470 Paramètres.Envoi effectifSPI La partie qui transmet le signal est (6) L6470_send()Comment écrire une fonction.
En cours L6470 Lors du réglage, Veuillez définir les éléments requis en fonction des spécifications documentées dans la Feuille de données et le manuel. .
Lorsque vous visualisez le contenu de la Feuille de données , Vous verrez le tableau d'adresses de commande ci - dessous . Cette fois, parce que nous utilisons 12026Moteur électrique,Donc à traversSPI Le transfert envoie l'adresse du registre enregistrée dans le tableau à l'initialisation L6470.
Exemple d'utilisation d'un tableau dans la programmation :
123 | //Highest revolution speed settingL6470_send(0x07);//register addressL6470_send(0x20);//value(10bit),default0x41 |
---|---|
C'est le Code..Si nous étions“Vitesse maximale” Vue dans le tableau de la ligne de fonction ,L'adresse est“0x07”,La longueur est“10”Bits,La valeur initiale est“0x20”(Par12026Exemple de modèle).Adoption SPI Transmettre les valeurs dans le tableau d'envoi , Vous pouvez faire différents réglages .
Tableau 1 L6470 Fiche technique.
Une fois l'initialisation terminée,In (8) Commande trouvée dans le processus principal pour conduire le moteur stepper . Vous pouvez voir à nouveau les différentes commandes enregistrées dans la table de données .
- Instruction de rotation
0x51(En avant.)、0x50(Inversion) - Arrêtez!(Doux.)Les ordres 0xB0
Dans cet exemple, Envoyer une commande de rotation vers l'avant ou vers l'arrière ,Et puis 20 Commande de vitesse de rotation du BIT , Puis le retard (1604). Ça le fait tourner pendant ce temps. . Si vous changez cette valeur de vitesse , Il peut accélérer ou ralentir .
C'est l'utilisationArduinoAdoptionL6470 Processus d'entraînement du moteur stepper .En plus,Ça correspond à, En changeant certaines connexions , Il est possible de contrôler plusieurs moteurs stepper comme décrit précédemment .
Essayons de piloter un robot à deux roues.
Maintenant nous avons compris le flux de la fonction de programmation du moteur stepper ,Finissons 2 Robot rotatif. Je l'ai utilisé dans mon dernier article 3D L'imprimante complète l'impression des roues et du corps , Les composants nécessaires seront maintenant installés sur le corps , Pour que vous puissiez faire votre propre robot complètement .
Fig. 2 – Toutes les pièces nécessaires à la fabrication de votre propre robot sont montées sur le corps
Installé Arduino、 Plaques de pain et pour moteurs à pas (2 Série )De 9V Derrière la batterie , Il n'y a presque plus d'espace ……Oh, mon Dieu..
Donc,,Je n 'ai pas utilisé Arduino UNO, Au lieu de cela, essayez de le remplacer par Arduino Pro Mini.
Fig. 3 – Utiliser Arduino Pro Mini,C'est parfait!
Fig. 4 – Il est bien monté sur la plaque de pain
Fig. 5 – Roues solidement montées sur l'arbre , Pour ne pas glisser
Après l'installation de tous les composants , On peut enfin allumer le courant et essayer de le conduire. .
Ça marche!Dans la vidéo, Le moteur stepper est connecté à un 12V Adaptateur.Quand je me connecte 9V Batterie, Ils sont un peu trop lourds. , J'ai remarqué que le moteur stepper n'avait pas assez de couple .Dans ce cas,, Si c'est trop lourd , Comme je l'ai déjà décrit. , Vous pouvez remplacer le moteur lui - même ,Réduire le poids, Ou améliorer encore l'alimentation électrique pour permettre un fonctionnement stable .
Conclusions
Cette fois, Nous utilisons un moteur stepper pour fabriquer votre propre robot sur deux roues . Le Mouvement se produit dans le Code . Quand vous faites votre propre robot , Vous pouvez ajouter autre chose , Comme installer un capteur de lumière de chaque côté , Pour créer un robot qui se déplace vers la lumière la plus brillante , Ou un robot qui se déplace vers le son , Même un robot qui peut être piloté par un smartphone ESP- WROOM -02Utiliser WIFI Communications. Diverses applications sont possibles . J'essaierai peut - être d'introduire quelques améliorations dans les prochains messages .
La prochaine fois, Je pense que je vais faire un appareil qui utilise un capteur magnétique ou quelque chose de cool .
边栏推荐
- Date类中日期转成指定字符串出现的问题及解决方法
- [designmode] composite mode
- 2022-02-13 work record -- PHP parsing rich text
- notepad++正则表达式替换字符串
- Spark SQL空值Null,NaN判断和处理
- FFmpeg学习——核心模块
- LeetCode 6006. Take out the least number of magic beans
- 从底层结构开始学习FPGA----FIFO IP核及其关键参数介绍
- Go learning --- read INI file
- Problems encountered in the database
猜你喜欢
Atcoder beginer contest 258 [competition record]
如何解决ecology9.0执行导入流程流程产生的问题
Transport layer protocol ----- UDP protocol
MySQL functions
notepad++正則錶達式替換字符串
Gd32f4xx UIP protocol stack migration record
Wechat applet -- wxml template syntax (with notes)
MySql——CRUD
Single merchant v4.4 has the same original intention and strength!
Notepad + + regular expression replace String
随机推荐
《编程之美》读书笔记
wx. Getlocation (object object) application method, latest version
LeetCode 1189. Maximum number of "balloons"
Huawei equipment configuration ospf-bgp linkage
DEJA_ Vu3d - cesium feature set 055 - summary description of map service addresses of domestic and foreign manufacturers
硬件及接口学习总结
PHP determines whether an array contains the value of another array
Gavin teacher's perception of transformer live class - rasa project actual combat e-commerce retail customer service intelligent business dialogue robot system behavior analysis and project summary (4
QT -- thread
2022-02-13 work record -- PHP parsing rich text
Global and Chinese markets of POM plastic gears 2022-2028: Research Report on technology, participants, trends, market size and share
[Chongqing Guangdong education] Chongqing Engineering Vocational and Technical College
Spark SQL空值Null,NaN判断和处理
[QT] QT uses qjson to generate JSON files and save them
Date类中日期转成指定字符串出现的问题及解决方法
Notepad++ regular expression replacement string
MySql——CRUD
The global and Chinese markets of dial indicator calipers 2022-2028: Research Report on technology, participants, trends, market size and share
Hardware and interface learning summary
notepad++正則錶達式替換字符串