Étape 1: Configuration
2. Télécharger code sur Arduino (c’est à la dernière page)
3. Assurez-vous que vous avez trouvé un bon signal
Vous aurez besoin d’un R/C radio transmitter(Tx) et receiver(Rx) paire, qui est la partie la plus chère du projet, mais peut être utilisée pour tous les projets futurs que vous pourriez avoir concernant R/C. Je suis allé avec un système de FM 6 canaux, mais j’ai testé un AM 27mHz émetteur/récepteur et il fonctionne tout aussi bien. La beauté de l’Arduino est que si vous souhaitez ajuster la bande morte ou la vitesse de moteur à l’allumage, (contrairement aux commerciaux de l’ESC) il est facile a changé dans l’IDE Arduino.
Une fois que vous avez votre radio, tout ce que vous devez faire est de télécharger le code de votre Arduino, brancher les 2 canaux que vous souhaitez utiliser votre récepteur de radio en numérique les broches 2 et 3 de l’Arduino (ce sont les 2 broches d’interruption externe sur l’Arduino) et vous êtes prêt à contrôler tout ce que vous voulez. Si vous n’avez pas un paquet de pâte pour le récepteur, vous pouvez exécuter des fils de raccordement du Arduino + 5v et GND à la receiever de R/C pour le pouvoir, vous devez uniquement fournir un canal unique avec GND et + 5v (il n’est pas nécessaire alimenter tous les canaux).
Télécharger le code à l’aide de l’IDE Aruino (j’utilise la version 0016 sur Ubuntu).
J’ai commencé en contrôlant 3 LED à 1 canal sur une maquette. J’ai branché une LED rouge pour être vers l’avant (broche numérique 9), un voyant jaune pour le retour (broche numérique 5) et une LED verte pour neutre (broche numérique 12). Cela vous permet d’ajuster le code pour l’adapter aux besoins de votre système radio. Vous aurez lisse 0-100 % contrôle PWM des deux LED et le neutre voyant seront allume quand le levier de commande est centré. Si nécessaire, vous pouvez élargir la zone morte pour neutre, mais cela augmentera la rapidité à l’allumage (qui commence à 0 %, alors ce serait sans doute souhaitable). Voir les photos.
----------------------------------------
Le code a 4 sorties PWM pour contrôle moteur :
canal 1 vers l’avant = Arduino broche numérique 9
canal 1 retour = Arduino broche numérique 5
canal 2 vers l’avant = Arduino broche numérique 10
Inversion de 2 canal = Arduino broche numérique 6
2 sorties pour voyants neutre :
canal 1 = broche numérique 12
canal 2 = broche numérique 13
Les 2 entrées du récepteur R/C devraient aller à :
canal 1 = broche numérique 2
canal 2 = broche numérique 3
---------------------------------------
Si vous êtes intéressé à voir vos lectures, allumez votre Serial Monitor dans l’IDE Arduino (valeur 9600 bits/s) et vous pouvez voir les lectures de réelle impulsion en temps réel pour chaque canal, ils devraient se lire :
complètement vers l’avant = 2000 (2 millisecondes)
Centre = 1500 (1,5 ms)
inversion = 1000 (1 ms)
Ces lectures correspondent au nombre de microsecondes qui le signal d’impulsion du récepteur R/C reste élevée (ou à 5v). Le signal de Servo typique qui provient d’un récepteur R/C est une impulsion dont la longueur varie entre environ 1 ms à 2 ms avec 1,5 ms étant neutre (qui devrait être également de la position que le levier de commande retourne à lorsque vous laisser aller). L’émetteur lit la position du joystick et envoie cette longueur de pouls environ une fois chaque 20milliseconds. Donc il est constamment mise à jour pour un contrôle précis (pour plus d’informations, recherchez PPM sur wikipedia). Si vous poussez le manche vers l’avant, la lecture doit aller jusqu'à 2000, si vous le poussez en arrière qu'il devrait descendre à 1000. Vous pouvez également utiliser un voltmètre à ce stade, de voir que le numérique broches 5, 6, 9 et 10 vont être modifiées depuis 0-5v selon la position des bâtons contrôle de l’émetteur R/C.
Si vous vous souciez de savoir, le code utilise les interruptions externes 2 de l’Arduino pour capturer lorsque la broche signal Rx change d’État (goes de haute à basse ou vice versa), quand il le fait au début de chaque signal, il appelle la fonction d’interruption qui lit l’état numérique de l’axe et si élevé, il enregistre la valeur de microsecondes sur l’Arduino système timer0. Il retourne ensuite à la boucle jusqu'à ce que la goupille se LOW, à quel point il soustrait la valeur de microseconde précédemment enregistré de la valeur nouvelle microseconde actuel pour déterminer combien de temps le pouls est resté élevé (qui nous indique la position du levier de commande de l’émetteur). Puis, elle fait cela encore et encore très rapide.
J’ai les valeurs contraints de 600-2400 dans le code de l’Arduino pour garder les choses simples. Une fois qu’il reçoit le signal et il contraint, il mappe cette valeur pour être proportionnellement entre 0 et 511, où 255 sera neutre. Le code détermine ensuite lorsque la valeur change et utilise une fonction pour déterminer l’approprié 0-255 valeur PWM dans la direction appropriée et chaque direction a broche sa propre sortie PWM pour contrôler le pont en H.
Sur une note latérale :
Pour faciliter les choses, j’ai construit une carte de dérivation axée sur l’Arduino à l’aide de Radio-Shack perf-Conseil, une prise DIP 28pin, un oscillateur 16mhz et un peu de fil. J’ai aussi ajouté un ensemble de femelle-en-têtes de telle sorte que je peux brancher mon récepteur R/C directement sur la carte de dérivation. Pour les connexions sécurisées pendant la tonte d’herbe, j’ai ajouté bornes à vis sur chaque broche de sortie et chacune des 6 canaux du récepteur. Il a également construit dans le régulateur 5v pour alimenter les deux l’Atmega168 de l’Arduino et le récepteur R/C (qui obtient le pouvoir lorsque vous le branchez sur la carte de dérivation). Si vous routez juste les fils de raccordement des canaux à utiliser sur le récepteur, à l’Atmega numériques broches 2 et 3. J’ai aussi ajouté 2 lumières de LED qui sont durs câblés aux pins numériques 12 et 13 pour les lumières neutres pour chaque canal donc je peux facilement voir quand je suis au point mort.
Étant donné que ce bot est une configuration de steer Tank avec moteur de 1 entraînement sur chaque roue, le codage est très simple, où le levier gauche commande le moteur gauche et le stick droit contrôle le moteur droit. Les deux bâtons moyens avant tondeuse va tout droit vers l’avant, deux en arrière, et il va dans le sens inverse. Si vous poussez vers l’avant gauche et la droite en arrière, elle fait un cercle de giration zéro. Comme vous pouvez l’imaginer, tondre le gazon est vraiment amusant maintenant.