Table des matières:

UCL Embedded - B0B le suiveur de ligne : 9 étapes
UCL Embedded - B0B le suiveur de ligne : 9 étapes

Vidéo: UCL Embedded - B0B le suiveur de ligne : 9 étapes

Vidéo: UCL Embedded - B0B le suiveur de ligne : 9 étapes
Vidéo: Barca Juve Atleti crash out of the Champions League! (vs Bayern 0-3 vs Benfica 4-3 vs Leverkusen) 2024, Juillet
Anonim
UCL Embedded - B0B le suiveur de ligne
UCL Embedded - B0B le suiveur de ligne

C'est B0B.*

B0B est une voiture radiocommandée générique, servant temporairement de base à un robot suiveur de ligne.

Comme tant de robots suiveurs de ligne avant lui, il fera de son mieux pour rester sur une ligne causée par une transition entre le sol et un matériau contrasté, dans notre cas du ruban adhésif.

Contrairement à tant d'autres robots suiveurs de ligne, B0B collecte également des données et les envoie via WiFi.

Complètement exagéré pour un projet de loisir, il implique un certain nombre de sujets que vous pourriez trouver intéressants. Ce guide décrit sa naissance, ses fonctions et comment vous pouvez en faire un comme lui.

Cela implique également d'être en colère contre divers appareils électroniques pour ne pas fonctionner comme nous le voulions, et les mesures que nous avons prises pour surmonter ces difficultés (je vous regarde ESP 8266-01).

Il y a 2 codes pour faire fonctionner le projet. Le premier code est pour le module ESP8266 que nous utilisons l'Arduino comme programmeur, et le deuxième code va s'exécuter sur l'Arduino.

Étape 1: Composants

Pour ce projet, vous aurez besoin de:

Matériel:

• 1x voiture contrôleur radio, (doit avoir ESC et servo de direction).

Nous utilisions principalement un Traxxas 1/16 E-Revo VXL d'origine, principalement parce que c'était ce que nous avions, et nous étions assez confiants de pouvoir le contrôler avec un Arduino. De plus, parce qu'il finira par transporter une quantité non négligeable de matériel supplémentaire, nous étions convaincus que ce ne serait pas un problème pour le 1/16 E-Revo.

Cependant, la plupart des voitures radiocommandées (qui peuvent être facilement démontées) pourraient probablement être utilisées à la place, et le processus sera très similaire.

• Une tonne de ruban adhésif.

La couleur doit autant que possible contraster avec le sol. Dans notre environnement de test, nous avons utilisé du ruban adhésif blanc sur un sol sombre.

• 1x Arduino Mega 2560.

Les Arduino plus petits conviennent probablement aussi, mais vous serez pressé pour les épingles.

• 1x grande planche à pain.

Un suffit, mais nous en avions également un plus petit pour séparer les autres lignes électriques de tension afin de réduire le risque d'erreur de l'utilisateur.

• 1x capteur analogique TCRT5000 IR (utilisé pour éviter les collisions).

La marque/le modèle exact n'a pas d'importance s'il est compatible Arduino et mesure la distance. Recherchez des mots-clés tels que « Distance », capteur « obstacle ». Techniquement, un capteur numérique fonctionnerait aussi bien avec des changements de code mineurs, mais nous utilisons un capteur analogique.

• 1x ou 2x Gravity: capteur analogique en niveaux de gris v2

L'un est une nécessité pour le suiveur de ligne. Le modèle exact n'a pas d'importance, tant qu'il examine l'intensité de la lumière réfléchie et émet un signal analogique. Le second pour la détection de « pièce » ne fonctionnait pas aussi bien que prévu et peut être omis, ou une alternative, comme un capteur de couleur RVB, peut être trouvée, probablement pour un meilleur effet. Nous devons encore tester cela.

• 1 x ESP 8266-01.

Il existe de nombreuses versions de l'ESP 8266 disponibles. Nous n'avons d'expérience qu'avec le 8266-01 et ne pouvons garantir que le code ESP fonctionnera avec une version différente.

• 1 bouclier Wi-Fi ESP8266-01.

Techniquement facultatif, mais si vous ne l'utilisez pas, tout ce qui concerne le module Wi-Fi deviendra beaucoup plus compliqué. Le guide, cependant, supposera que vous l'avez (sinon, trouvez les guides en ligne pour câbler correctement l'ESP-01 dans l'Arduino), car cela peut endommager et probablement endommager le module.

• Des batteries pour le véhicule lui-même et des batteries pour alimenter l'électronique complémentaire.

Nous avons utilisé une paire de batteries Lipo de 2,2 AH et 7,4 V en parallèle pour tout alimenter. Vous devriez pouvoir utiliser toutes les batteries que vous utiliseriez normalement avec le véhicule de votre choix. Si vous êtes au-dessus de 5V mais en dessous de 20V, la capacité est plus importante que la tension nominale.

• Beaucoup de câbles de démarrage.

J'ai renoncé à en compter le nombre exact. Si vous pensez que vous en avez assez, ce n'est probablement pas le cas.

• Enfin, pour tout attacher, vous devrez monter l'Arduino, les capteurs, la (les) maquette(s) et le module Wi-Fi sur le véhicule de votre choix. Votre résultat variera en fonction de ce que vous utilisez comme base et des matériaux disponibles.

Nous avons utilisé:

• Liens zippés.

• De la super colle.

• De petits morceaux de papier brouillon/tube de résine que nous avions avec un diamètre approprié.

• Une ancienne plaque arrière en masonite à partir d'un cadre photo, découpée sur mesure.

• Un peu plus de ruban adhésif.

• Tous les outils nécessaires pour travailler sur votre voiture radiocommandée de choix.

Nous avons principalement utilisé un petit jeu de tournevis avec plusieurs embouts, mais nous avons parfois dû retirer l'ensemble d'outils fourni avec la voiture.

Logiciel:

• Noeud-rouge

Une partie importante de la collecte de données.

• Un serveur MQTT.

L'intermédiaire entre notre véhicule et Node-red. Initialement, pour les tests, nous avons utilisé test.mosquitto.org

Plus tard, nous avons utilisé:

• CloudMQTT.com

C'était beaucoup plus fiable, ce qui compensait largement le fait d'être légèrement plus compliqué à mettre en place.

• Serveur Wamp.

La dernière partie de la collecte des données. Plus précisément, nous utiliserons sa base de données SQL pour stocker nos données collectées.

Étape 2: schéma électrique

Schéma électrique
Schéma électrique

Étape 3: Construction physique

Construction physique
Construction physique
Construction physique
Construction physique
Construction physique
Construction physique

Notre solution a une approche directe de l'assemblage physique.

Le récepteur d'origine et son boîtier étanche ont été retirés de la voiture RC, car il n'est pas nécessaire.

Nous avons constaté qu'il y avait un emplacement approprié entre les roues avant pour notre capteur de suivi de ligne, nous l'avons donc maintenu en place en passant une fermeture éclair au-dessus de la plaque de protection avant.

Le capteur que nous utilisons pour l'anti-collision est en quelque sorte coincé derrière le pare-chocs avant. Il est toujours protégé des impacts et de son ajustement par friction. Il finit par regarder vers l'avant avec un angle ascendant toujours aussi léger. C'est parfait.

La plaque Masonite, (plaque arrière de l'ancien cadre photo), sur le dessus, a de petites sections de tuyau en papier/résine coupées sur mesure et collées sur le fond. Ceux-ci s'alignent avec les supports pour les poteaux du corps et reposent simplement sur le dessus, maintenant tout en toute sécurité. En supposant que la colle fixant le tuyau à la plaque tienne, et qu'elle ne s'incline pas excessivement, celle-ci restera en place. Il convient également de noter que la plaque se trouve dans la sphère de protection des roues et des pare-chocs. L'Arduino Mega et les deux planches à pain ont été fixés à la plaque avec du ruban adhésif double face ou avec une boucle de ruban adhésif en toile enroulée, collée.

Aucune mesure particulière n'a été prise pour sécuriser le module WiFi. Ce n'est pas le nôtre, donc le coller ou le coller a été jugé inutile car il est si léger qu'il ne bougera pas beaucoup, et les fils suffisent pour le maintenir en place.

Enfin, nous avons un capteur pour détecter les "pièces" qui a été attaché aux composants de la suspension par l'une des roues arrière. Pendant le fonctionnement, celui-ci doit être éloigné de la ligne de marquage que le véhicule utilise pour naviguer.

Étape 4: Module ESP8266

Module ESP8266
Module ESP8266
Module ESP8266
Module ESP8266

Le module WiFi, ESP8266, nécessite deux configurations de broches différentes. Une configuration doit être utilisée lors du flashage du module avec un nouveau programme et de l'utilisation de l'Arduino Mega 2560 en tant que programmeur. L'autre configuration concerne le module lorsqu'il est utilisé et envoie des informations au courtier MQTT.

En utilisant Arduino IDE pour télécharger le code sur le module ESP8266, vous devrez installer un gestionnaire de cartes et un gestionnaire de cartes supplémentaires

Sous le gestionnaire de carte, installez le gestionnaire de carte esp8266. Il sera facilement trouvé en recherchant "esp". Il est crucial que vous installiez la version 2.5.0, ni plus ancienne, ni plus récente.

Sous les paramètres dans les URL supplémentaires du gestionnaire de tableaux, copiez dans cette ligne:

arduino.esp8266.com/stable/package_esp8266c…

Pour pouvoir télécharger quoi que ce soit sur le module ESP8266, vous devrez utiliser une configuration de broche spécifique afin de pouvoir flasher le module. Cela doit être fait chaque fois que vous souhaitez modifier le code en cours d'exécution sur le module. N'oubliez pas de sélectionner le bon module ESP8266 dans le gestionnaire de carte avant de flasher le module. Dans ce projet, nous avons choisi la carte générique ESP8266. La configuration des broches pour flasher le module se trouve sur la première image de ce segment.

Après avoir flashé le module ESP8266, vous devez changer la configuration des broches. Vous pouvez également choisir d'utiliser un adaptateur pour vous faciliter la configuration. Dans ce projet, nous avons choisi d'avoir un adaptateur chaque fois que le module était en cours d'exécution. La configuration des broches avec adaptateur se trouve sur la deuxième image de ce segment.

Le code à flasher sur le module ESP8266 configure la connexion à un WiFi et à un Broker MQTT, dans ce cas avec un nom d'utilisateur et un mot de passe, mais peut se faire sans si vous effectuez les modifications nécessaires décrites dans les commentaires du code. Pour ce projet, notre courtier avait besoin d'un nom d'utilisateur et d'un mot de passe pour travailler. Le module lit les messages entrants à partir du port série auquel il est connecté. Il lira chaque nouvelle ligne créée par le code Arduino, déchiffrera le message et recréera le message. Ensuite, il envoie le message au courtier MQTT qui a été spécifié dans le code. Le code du module ESP8266:

Étape 5: Arduino

Après avoir configuré le module WiFi, nous examinons le programme qui sera utilisé pour contrôler le moteur et le servo de la voiture RC. La voiture va réagir en fonction des informations en niveaux de gris du capteur central, également connu sous le nom de "Détecteur de ligne" dans ce projet. Il vise clairement à maintenir les informations du détecteur de ligne près d'une valeur prédéfinie qui est égale aux informations enregistrées lors du changement entre la lumière et l'obscurité ou dans ce projet, le blanc et le noir. Donc, si la valeur diffère trop, la sortie correspondante du servo dirigera la voiture près de la valeur prédéfinie de la ligne.

Le programme a deux boutons qui fonctionnent comme un bouton de démarrage et d'arrêt pour la voiture RC. Techniquement, le bouton "stop" est un bouton "armer" qui équivaut en termes à une valeur PWM envoyée au moteur qui provoque l'arrêt de la voiture RC. Le bouton de démarrage envoie une valeur PWM qui équivaut à la voiture RC qui avance à peine car elle roulera trop vite si elle prend trop d'élan.

Un détecteur anticollision est ajouté à l'avant de la voiture RC pour détecter si la voie à suivre est libre ou bloquée. S'il est bloqué, la voiture radiocommandée s'arrêtera jusqu'à ce que l'obstacle disparaisse/supprime. Le signal analogique du détecteur est utilisé pour déterminer si quelque chose bloque ou non le chemin et constitue un critère pour pouvoir avancer ainsi que pour s'arrêter.

Un capteur d'échelle de gris secondaire, "Room Detector", est utilisé pour détecter dans quelle pièce la voiture RC est entrée. Il fonctionne sur un principe similaire à celui du détecteur de ligne, mais il ne recherche pas le changement entre la lumière et l'obscurité, mais plutôt des valeurs dans une plage spécifique qui correspond à différentes pièces en fonction de la valeur vue par le détecteur de pièce.

Enfin, le programme crée une ligne d'informations à partir des capteurs pour le module WiFi à lire et ensuite à envoyer au courtier MQTT. La ligne d'informations est créée sous forme de chaîne et écrite dans le numéro de série correspondant auquel le module WiFi est connecté. Il est important que l'écriture sur la série ne se produise qu'aussi souvent que le module WiFi peut lire le message entrant, mais n'oubliez pas de ne pas utiliser de retard dans ce code car cela interférera avec la capacité de la voiture RC à suivre la ligne. Utilisez plutôt "millis" car cela permettra au programme de s'exécuter sans délai, mais après qu'un nombre défini de millis s'est écoulé depuis la mise sous tension de l'Arduino, écrira un message sur la série sans bloquer le code de la même manière que le délai.

Le code de l'Arduino Mega 2560:

Étape 6: Base de données MySQL

WampServer est un environnement de développement Web pour Windows qui nous permet de créer des applications avec PHP et une base de données MySQL. PhpMyAdmin nous permet de gérer nos bases de données de manière simple.

Pour commencer, rendez-vous sur:

Dans ce projet, nous utilisons la version 3.17 x64 bits pour Windows. Après l'installation, assurez-vous que tous les services sont en cours d'exécution, ce qui signifie que la petite icône devient verte au lieu de rouge ou d'orange. Si l'icône est verte, vous pouvez accéder à PhpMyAdmin pour gérer votre base de données MySQL.

Accédez à MySQL à l'aide de PhpMyAdmin et créez une nouvelle base de données. Nommez-le quelque chose d'approprié dont vous vous souviendrez, dans ce projet, il s'appelait "line_follow_log". Après avoir créé la base de données, vous devez créer une table dans la base de données. Assurez-vous que le nombre de colonnes correspond. Dans le projet, nous utilisons 4 colonnes. Une colonne est pour un horodatage et les trois dernières sont utilisées pour stocker les données du véhicule. Utilisez un type de données approprié pour chaque colonne. Nous avons utilisé "longtext" pour la colonne d'horodatage et "mediumtext" pour le reste.

Cela devrait être tout ce que vous avez à faire dans PhpMyAdmin et MySQL. N'oubliez pas votre base de données et le tableau de la section sur Node-Red.

Étape 7: Noeud-Rouge

Pour gérer la collecte de données, nous utiliserons un flux assez simple dans Node-red. Il se connecte à notre serveur MQTT et écrit dans notre base de données MYSQL.

Pour ce faire, nous avons besoin de quelques palettes pour que diverses fonctions fonctionnent, et nous avons besoin de code réel pour qu'elles s'exécutent.

Tout d'abord. Nous aurons besoin des palettes suivantes.

Node-red-contrib-mqtt-broker: Il s'agit de la connexion à notre courtier MQTT.

Node-red-dashboard: Notre tableau de bord, nécessaire pour représenter visuellement les données collectées.

Node-red-node-mysql: notre connexion à la base de données SQL.

Ce n'est pas censé être un guide à part entière de Node-red, mais j'expliquerai ce que fait le flux Node-red.

Au début, nous avons eu des problèmes avec la mort/déconnexion de notre serveur MQTT de choix, apparemment au hasard, ce qui a rendu toute modification frustrante car il n'était pas clair si les modifications avaient été bénéfiques ou non lorsque nous ne pouvions pas voir le résultat. Donc le bouton 'Le serveur est-il mort ?' injecte 'Non' le bloc suivant l'injecte dans notre serveur MQTT. S'il n'est pas mort, « Non » apparaîtra dans la fenêtre de débogage. Ceci est fait non seulement pour tester, mais pour forcer Node-red à tenter de se reconnecter au serveur MQTT.

La « chaîne de test » envoie une chaîne personnalisée au courtier MQTT. Nous avons formaté cette chaîne pour qu'elle soit similaire à ce que nous obtiendrions de l'Arduino. Il s'agissait d'avoir plus de facilité à configurer le réseau qui décode les messages, sans avoir besoin de faire tourner le projet, de collecter des données.

Le dernier flux dans l'espace de travail peut être divisé en deux segments. La branche inférieure lit simplement les messages entrants, les publie dans la fenêtre de débogage et les enregistre sur le serveur SQL.

Le vaste réseau de commutateurs connectés suit un nœud de fonction si la véritable « magie » se produit.

La fonction de procédure lit la chaîne entrante, la sépare avec chaque point-virgule et transmet les sections sur chacune des sorties. Les commutateurs suivants recherchent l'une des deux informations entrantes différentes. Une information spécifique est toujours transmise par une sortie, l'autre option part par la deuxième sortie. Après cela, se trouve un deuxième groupe de blocs de commutation. Ils ne s'activeront qu'avec une entrée spécifique et sortiront autre chose.

Un exemple, 'obstacle', comme tous les autres sont un choix binaire, soit c'est clair à conduire, soit ce ne l'est pas. Il recevra donc un 0, ou un 1. Un 0 sera envoyé à la branche 'clear', un 1 sera envoyé à la branche 'obstruée'. Les commutateurs « Clear », « Obstructed », s'ils sont activés, produiront quelque chose de spécifique, Clear ou obstrué, respectivement. Les blocs de procédure verts s'afficheront dans la fenêtre de débogage, le bleu écrira sur notre tableau de bord.

Les branches 'statut' et 'location' fonctionnent exactement de la même manière.

Étape 8: Courtier MQTT

Un courtier est un serveur qui achemine les messages des clients vers les clients de destination appropriés. Un courtier MQTT est un courtier où les clients utilisent une bibliothèque MQTT pour se connecter au courtier sur un réseau.

Pour ce projet, nous avons créé un courtier MQTT en utilisant le service CloudMQTT avec l'abonnement gratuit pour une version "Cute Cat". Il a ses limites mais nous ne dépassons pas ceux de ce projet. Le module WiFi peut se connecter au courtier et le courtier achemine ensuite les messages vers un client de destination approprié. Dans ce cas, le client est notre Node-Red. Le service CloudMQTT configure un nom d'utilisateur et un mot de passe pour leur serveur, ce qui nous garantit une sécurité plus élevée. Cela signifie essentiellement que seuls ceux qui possèdent le nom d'utilisateur et le mot de passe peuvent accéder à ce service CloudMQTT spécifique. Le nom d'utilisateur et le mot de passe sont cruciaux lors de la configuration de la connexion sur le code ESP8266 ainsi que Node-Red.

Les statistiques en cours pour les messages que le courtier reçoit est une fonctionnalité agréable, qui peut être utilisée pour voir dans quelle mesure votre plan d'abonnement gère les informations qu'il achemine.

Une fonctionnalité intéressante est la possibilité d'envoyer des messages du Broker au module WiFi, mais nous ne les avons pas utilisés dans ce projet.

Étape 9: Électronique de loisir

Avant de commencer, nous savions d'après un projet antérieur que le servo de direction d'origine pouvait être contrôlé à partir d'un Arduino avec un signal PWM, ayant un câblage similaire et se branchant sur différents canaux sur le même récepteur radio d'origine, nous avons supposé le contrôle électronique de la vitesse (ESC de maintenant allumé), qui contrôle le moteur, pourrait également être contrôlé via PWM à partir de l'Arduino.

Pour tester cette théorie, nous concevons une petite esquisse Arduino. L'esquisse lit une entrée analogique à partir d'un potentiomètre, remappe la valeur de 0, 1024 à 0, 255 et génère la valeur résultante sur une broche PWM, en utilisant analogWrite() tout en ayant la voiture R/C sur une petite boîte, et avait le roues enlevées.

Après avoir balayé la plage sur le potmètre, l'ESC a semblé «se réveiller» et nous pouvions le ralentir de haut en bas, nous avions également l'Arduino d'imprimer les valeurs sur la connexion série afin que nous puissions les surveiller.

L'ESC semblait ne pas aimer les valeurs inférieures à un certain seuil, dans ce cas 128. Il considérait le signal 191 comme un gaz neutre et 255 était un gaz maximum.

Nous n'avions pas besoin de faire varier la vitesse du véhicule et le faisions parfaitement avancer à la vitesse la plus lente qui le ferait avancer. 192 était la valeur la plus basse qui ferait tourner le moteur, mais nous n'avons pas encore tout assemblé et nous ne savons pas si cette sortie serait suffisante pour déplacer le véhicule après l'assemblage final, mais entrer une valeur légèrement plus grande devrait être trivial.

Le contournement du potentiomètre et la mise en valeur fixe dans le code n'ont cependant pas fonctionné. L'ESC d'origine clignotait simplement et ne faisait pas tourner le moteur, "réglait le trim des gaz" selon le manuel.

Le dépannage furieux, l'utilisation de différentes valeurs, l'utilisation de différents fils et même l'expérimentation de la modification de la fréquence PWM utilisée par Arduino ont tous entraîné plus d'étrangeté.

Cela semblait être un problème intermittent, parfois il fonctionnait, d'autres fois il refusait de faire quoi que ce soit. Il a simplement continué à clignoter. Un test avec le contrôleur et le récepteur d'origine a confirmé que l'ESC fonctionnait toujours exactement comme prévu, ce qui rendait les problèmes encore plus étranges. Des valeurs plus élevées, il a ignoré et a continué à clignoter, des valeurs plus faibles l'ESC est revenu à briller d'un vert heureux, mais n'a toujours pas tourné.

Qu'est-ce qui était différent de la configuration avec le potentiomètre, ou l'émetteur et le récepteur d'origine, et la version qui fournissait des valeurs fixes ?

Parfois, travailler comme prévu et fonctionner comme prévu ne se chevauchent pas vraiment beaucoup sur le diagramme de Venn. Dans ce cas, étant un jouet, il ne devrait y avoir aucune chance que le modèle décolle ou se casse les doigts ou se coince les cheveux dans les roues ou la transmission lorsque le modèle s'allume, même si quelque chose comme tenir l'émetteur bizarrement a la manette des gaz dans toute autre position que neutre.

« Ajuster le trim des gaz », c'est exactement ce que cela signifie. L'ESC attend un signal neutre lorsqu'il s'allume, avant de comprendre qu'il ne fera rien. Normalement, l'émetteur serait toujours au neutre lorsque l'ESC est allumé et à partir de là, il conduira avec plaisir. Dans le cas contraire, il est probablement revenu au point mort au moins une fois lorsque le modèle est fermement au sol et que l'opérateur se sent prêt à courir.

Tout en utilisant le potentiomètre, nous « balayions » les plages, puis il commençait à fonctionner. Il s'est simplement armé lorsque le potentiomètre a dépassé la position neutre, puis cela a fonctionné.

Les gammes inférieures semblaient cependant toujours déplaire à l'ESC. Il s'avère qu'il s'agit d'un produit des cycles de service PWM.

Que ce soit par conception ou pour une raison technique, le servo de direction et l'ESC ignorent les signaux inférieurs à 50% des cycles de service. Cela pourrait être dans le cas où le récepteur/émetteur cesse de fonctionner ou manque de puissance, le modèle reviendrait au neutre et ne décollerait pas au loin à plein régime. De même, le servo ne tourne que de 180 degrés et n'a pas besoin de toute la plage.

Avec ces nouvelles connaissances en main, un nouveau sketch Arduino a été créé. La version initiale accepte les chaînes saisies dans le moniteur série, les convertit en nombre entier et les déplace vers la broche PWM, en utilisant la bibliothèque d'asservissement et write()*. Si une nouvelle valeur est entrée dans le moniteur série, la valeur write() est mise à jour.

Au cours des tests, le stock Traxxas ESC a été remplacé par un Mtroniks G2 Micro, mais ils devraient fonctionner de la même manière, bien que les valeurs exactes puissent être légèrement différentes.

Cette bibliothèque traite l'ESC comme un servo, c'est bien apparemment. La fonction write() de la bibliothèque Servo.h va de 0 à 180, le signal d'armement attendu devrait se situer autour du milieu.

Le G2 Micro s'arme à une écriture () dans une plage de valeurs proche de 90, mais il était difficile de le déterminer car il semble se "souvenir" d'avoir été armé.

Le Traxxas VXL-s3 devrait s'armer à une valeur d'écriture () de 91.

Après le signal d'armement, l'un ou l'autre ESC a accepté avec plaisir les signaux PWM, quelles que soient les fonctions Arduino appelées pour les générer, et contrôle le moteur en conséquence.

En parlant de fonctions; l'analogWrite () standard, ainsi que write () et writeMicroseconds () de la bibliothèque Servo.h peuvent tous être utilisés de manière interchangeable, gardez simplement à l'esprit ce qui fait quoi, et en fin de compte, rien d'autre que le cycle d'utilisation n'a d'importance. WriteMicroseconds() pourrait être utilisé si une plus grande granularité est requise, gardez juste à l'esprit que la plage ici est de 1000 à 2000, avec l'armement ou "neutre" censé être à 1500. Avec le analogWrite() standard, la plage utilisable devrait être être de 128 à 255 avec environ 191 étant neutre.

Conseillé: