当前位置:网站首页>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 .
边栏推荐
- 如何解决ecology9.0执行导入流程流程产生的问题
- Leetcode:20220213 week race (less bugs, top 10% 555)
- 7.5 simulation summary
- There is no network after configuring the agent by capturing packets with Fiddler mobile phones
- [EI conference sharing] the Third International Conference on intelligent manufacturing and automation frontier in 2022 (cfima 2022)
- Spark获取DataFrame中列的方式--col,$,column,apply
- [Chongqing Guangdong education] reference materials for Zhengzhou Vocational College of finance, taxation and finance to play around the E-era
- Data analysis thinking analysis methods and business knowledge - analysis methods (III)
- Extension and application of timestamp
- Notepad++ regular expression replacement string
猜你喜欢
MySql——CRUD
MySQL storage engine
Idea远程提交spark任务到yarn集群
Problems encountered in the database
notepad++正則錶達式替換字符串
Mysql - CRUD
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
Uniapp development, packaged as H5 and deployed to the server
[designmode] Decorator Pattern
从底层结构开始学习FPGA----FIFO IP核及其关键参数介绍
随机推荐
Key structure of ffmpeg - avformatcontext
Knowledge about the memory size occupied by the structure
FFmpeg学习——核心模块
Determinant learning notes (I)
Solve the problem of reading Chinese garbled code in sqlserver connection database
Arduino六足机器人
《编程之美》读书笔记
FFMPEG关键结构体——AVCodecContext
MySQL storage engine
FFMPEG关键结构体——AVFrame
The global and Chinese markets of dial indicator calipers 2022-2028: Research Report on technology, participants, trends, market size and share
Set data real-time update during MDK debug
anconda下载+添加清华+tensorflow 安装+No module named ‘tensorflow‘+KernelRestarter: restart failed,内核重启失败
Model analysis of establishment time and holding time
Yolov5, pychar, Anaconda environment installation
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
JS can really prohibit constant modification this time!
Introduction of motor
Intranet Security Learning (V) -- domain horizontal: SPN & RDP & Cobalt strike
Configuring OSPF GR features for Huawei devices