Comment contrôler les appareils électriques, les modèles radiocommandés, les poussettes motorisées en un coup d'œil



Dans mes articles précédents, j'ai expliqué comment aider les personnes paralysées à communiquer avec le monde extérieur: communiquer leurs désirs, écrire des lettres, surfer sur Internet en utilisant uniquement leurs yeux et un appareil qui suit votre regard (eye tracker). Dans ce cas, physiquement, une personne reste limitée par le monde de l'ordinateur et du lit.

Ici, je vais parler des moyens les plus simples (à mon avis) de changer moi-même quelque chose dans le monde extérieur: allumer la lumière ou une guirlande sur un arbre du Nouvel An, contrôler un véhicule tout-terrain sur une radiocommande, faire avancer un chariot motorisé dans la bonne direction.

Table des matières


Présentation
Composants requis
Connectez Arduino à un ordinateur
Schéma de contrôle de la prise de courant
Circuit de commande du moteur

Présentation


En plus du dispositif de suivi du regard et du logiciel gratuit pour celui-ci, décrit ici dans cet article, nous avons besoin de quelque chose qui relie l'ordinateur à des objets externes.

Malgré la vente de divers appareils pouvant être contrôlés à partir d'un ordinateur, l'option la plus simple et la moins chère pour moi était d'utiliser deux parties: une carte Arduino et une carte multi-relais.

Si vous n'avez jamais rencontré Arduino, n'abandonnez toujours pas la lecture, à l'avenir, vous verrez que dans ce contexte, il est assez simple de travailler avec lui, ce n'est pas pour rien qu'il existe de nombreux designers pour enfants basés sur Arduino à vendre.

Dans le même temps, si vous n'êtes pas familier avec la sécurité électrique et n'avez jamais fait de câblage électrique dans la maison, n'essayez pas de répéter les circuits qui utilisent la connexion aux prises!

Tout ce que vous devez savoir sur l'Arduino: il s'agit d'un petit appareil qui peut être branché sur le port USB de l'ordinateur, après quoi il peut activer / désactiver les signaux électriques sur ses contacts selon les instructions reçues.

Les signaux sont plutôt de faible puissance, par conséquent, pour contrôler quelque chose de plus puissant (ampoules électriques, par exemple), nous avons mis une unité de relais qui, en réponse au signal de l'Arduino, ferme et ouvre les contacts de contrôle des appareils externes. De plus, les relais isolent les circuits électriques de l'ordinateur Arduino + des circuits électriques de l'appareil géré.
Ainsi, la base des circuits de commande des prises électriques et des moteurs, qui sera décrite plus loin, est la suivante: deux parties reliées par des fils entre elles, reliées par un câble USB à un ordinateur et des fils à ce que nous voulons contrôler:



Dans le monde réel, cela pourrait ressembler à ceci:



Nous envoyons une commande à partir d'un ordinateur, Arduino l'un de ses contacts active / désactive le relais, qui est l'interrupteur de n'importe quel appareil ou un bouton distinct sur l'appareil.

Composants requis


Nous en aurons besoin (entre parenthèses sont les prix de 2018 dans un magasin local. Ceux qui peuvent acheter en Chine peuvent économiser beaucoup d'argent, mais perdre du temps):

1) Carte Arduino UNO avec un câble USB (c'est possible après-vente, avec CH340 pas cher au lieu de FTDI cher) (450 roubles)

2) Une carte à quatre relais fonctionnant sur une tension de 5 volts et capable de contrôler des appareils avec une tension de 220 volts. (450 roubles). Il y a encore des cartes fonctionnant sur 12 Volts, ne les mélangez pas!

3) Un tas de fils pour connecter deux cartes. Dans mon cas, des fils avec une prise d'un côté et une broche de l'autre étaient nécessaires, car le bloc de relais a des contacts à broches et Arduino a des prises. Regardez les connecteurs sur vos cartes lors de l'achat de fils (150 roubles).



Connectez Arduino à un ordinateur


Tout d'abord, installez le logiciel de programmation Arduino à partir de www.arduino.cc :

Sur la page https://www.arduino.cc/en/Main/Software, cliquez sur «Windows Installer»:



Cliquez sur «Télécharger simplement»:



Téléchargez et exécutez le programme d'installation:



Nous sommes d'accord sur tout:









Une fois le programme installé, connectez la carte Arduino et l'ordinateur avec un câble USB.

Les voyants de la carte Arduino s'allument et dans le gestionnaire de périphériques, vous verrez qu'un nouveau port est apparu et qu'un certain nombre lui a été attribué, par exemple COM3:



Modifions son numéro en COM9, car à l'avenir, tout sera lié spécifiquement à COM9. Pour ce faire, faites un clic droit dessus, appelez le menu contextuel et sélectionnez-y «propriétés»:



Dans l'onglet "paramètres du port", cliquez sur le bouton "avancé":



Et enfin, sélectionnez "COM9" comme numéro de port COM.



Fermez toutes les fenêtres ouvertes avec le bouton «OK», puis retirez et insérez le câble USB pour vérifier qu'Arduino continuera à se connecter via le port COM9 s'il est inséré dans le même port USB de l'ordinateur:



Maintenant, appelez et configurez le programme Arduino récemment installé à partir du site:



Dans le menu "Outils", réglez la carte "Arduino UNO" et le port "COM9":



Maintenant, tout est prêt à collecter les schémas et à leur donner vie.

Schéma de contrôle de la prise de courant


Si vous n'êtes pas familier avec la sécurité électrique et n'avez jamais fait de câblage dans la maison, n'essayez pas de répéter ce schéma! Le circuit utilise une tension mortelle!

Encore une fois, contrôlez les questions:

  • Savez-vous comment distinguer un fil avec une phase d'un fil avec un zéro dans une prise?
  • Savez-vous comment faire sonner les fils et assurez-vous qu'il n'y a pas de court-circuit après le branchement?

Si vous ne répondez pas avec certitude à ces questions, demandez à une personne plus expérimentée de monter le circuit.

Maintenant au point.

Cela fonctionne comme ceci:


Le schéma de connexion de socket ressemble à ceci:



Nous fournissons zéro directement aux prises et la phase à travers le relais. Si vous faites le contraire, cela fonctionnera, mais il y aura un risque de choc électrique des appareils OFF MALFUNCTIONAL. Autrement dit, prenez le téléviseur défectueux éteint et cela vous choquera.

Si la maison a une terre de protection, utilisez une prise de terre.

Vient ensuite ma conception de référence. Dans ce document, j'ai fait une erreur avec la couleur des fils: la couleur du fil neutre est devenue brune et les phases bleues. Faites attention à cela.

Nous prenons un morceau de la carte de la taille appropriée pour l'adapter (de gauche à droite): Arduino, bloc relais, quatre prises, un support pour presser le fil sur la carte.



Nous coupons l'excédent et utilisons un ciseau pour faire une rainure pour les fils afin qu'ils s'insèrent librement sous les prises.



Nous visons les cartes Arduino et le bloc relais avec des vis sur la carte, en posant des rondelles en plastique.



Si les rondelles n'étaient pas à portée de main, vous pouvez couper les chevilles:



Préparez les fils: coupez à la longueur désirée et retirez-les de l'isolant. Il est conseillé de les étamer avec un fer à souder aux endroits de contact avec les prises et relais.



Appuyez le fil sur la carte avec un support afin qu'il ne puisse pas être retiré.



On connecte les fils et on visse les douilles. Nous appelons la chaîne.





Nous connectons la carte Arduino à l'unité de relais avec un faisceau de fils conformément au schéma ci-dessus.



Nous couvrons les panneaux avec un boîtier de protection en matériau non conducteur. Cela doit être fait ici, car la tension mortelle convient au bloc de relais! Dans un cas extrême, enveloppez au moins les contacts électriques du relais.

J'ai utilisé un conteneur pour les produits en plastique dur comme boîtier, en le fixant avec des vis:



N'oubliez pas de faire un trou pour le câble USB.



Connectez l'appareil à l'ordinateur, mais ne le branchez pas sur une prise de courant .

Nous lançons le programme «Arduino» et y copions ce texte du programme:

//     2,3,4,5 int Relay1=2, Relay2=3, Relay3=4, Relay4=5; void setup() { pinMode(Relay1,OUTPUT); pinMode(Relay2,OUTPUT); pinMode(Relay3,OUTPUT); pinMode(Relay4,OUTPUT); Serial.begin(9600); } void loop() { delay (200); // 1.     while(Serial.available()) { switch(Serial.read()) { case '0': //    digitalWrite(Relay1,0); break; case '1': //    digitalWrite(Relay1,1); break; case '2': //    digitalWrite(Relay2,0); break; case '3': //    digitalWrite(Relay2,1); break; case '4': //    digitalWrite(Relay3,0); break; case '5': //    digitalWrite(Relay3,1); break; case '6': //    digitalWrite(Relay4,0); break; case '7': //    digitalWrite(Relay4,1); break; } // switch } // while } 

Cliquez ensuite sur le bouton de téléchargement du programme en Arduino (voir la figure ci-dessous). Si tout s'est déroulé sans erreur, nous voyons l'inscription «Téléchargement terminé».



Vérifiez que notre appareil exécute les commandes. Pour ce faire, appelez le moniteur de port:



Maintenant, nous allons saisir le chiffre 1 et appuyer sur Entrée ou sur le bouton "Soumettre":



Un déclic caractéristique du relais se fera entendre et le contact dans la première prise se connectera au fil de phase. Vérifiez cela avec un testeur. Composez ensuite le numéro 0 et le relais déconnectera le contact.

En regardant le texte du programme, vous pouvez voir ce qui se passera si nous tapons d'autres chiffres:

3.2 - allumer, éteindre la deuxième prise

5,4 - allumer, éteindre la troisième prise

7.6 - allumer, éteindre la quatrième prise

Vérifiez avec un testeur la connexion de ces prises. Après vérification, vous pouvez connecter le fil à la tension du réseau et commencer à allumer / éteindre de vrais appareils.

Notre prochaine tâche consiste à allumer et éteindre les appareils d'un coup d'œil. Pour ce faire, nous configurons le programme bkb décrit ici dans cet article (LA DERNIÈRE VERSION DU PROGRAMME EST NÉCESSAIRE !!!) .

Supposons que nous voulions allumer et éteindre une lampe et une guirlande d'arbre de Noël.
Dans le programme Paint standard, nous dessinons quatre dessins 200x200 au format BMP :



Nous allons également créer quatre fichiers batch: c.cmd, d.cmd, e.cmd, f.cmd

Ils contiendront des commandes pour envoyer les caractères 1,0,3,2 au port COM9. Et nous nous souvenons qu'ils allument et éteignent les première et deuxième prises. Il est important qu'il n'y ait pas de lignes vides entre les deux lignes dans ces fichiers!

c.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 1 > com9: 

d.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 0 > com9: 

e.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 3 > com9: 

f.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 2 > com9: 

Nous remplaçons les fichiers .bmp et .cmd créés dans le répertoire grid du programme bkb .

Après avoir démarré le programme bkb en mode tableau, une nouvelle cinquième ligne avec nos images apparaîtra:



Lorsque nous regardons l'image, l'action correspondante est lancée.

ATTENTION! La première fois après le démarrage du programme, l'action ne fonctionne pas. Toutes les fois suivantes - cela fonctionne. Cela est dû au fait que lors de la première initialisation du port, le signal sur la ligne DTR change, ce qui provoque le redémarrage de l'Arduino, qui dure environ trois secondes.

Ils disent que cela peut être résolu avec un fer à souder, mais je n'ai pas osé me lancer dans de tels bijoux. Donc, pour l'instant, n'oubliez pas que la première fois que vous devez allumer deux fois.

Remarque

Vous avez probablement déjà compris que dans les fichiers .cmd, vous pouvez appeler n'importe quel programme externe. Si vous avez un périphérique qui peut être contrôlé à partir de la ligne de commande, vous pouvez vous-même exécuter ces commandes en attribuant les actions nécessaires à toutes les images du tableau.

Circuit de commande du moteur


Mon ami a amélioré le scooter gyroscopique et l'a remplacé par l'essieu arrière de la poussette. La gestion a été effectuée par des télécommandes via la carte Arduino.



Nous avons décidé d'essayer de donner à l'enfant la possibilité de contrôler la poussette par ses propres yeux. Pour ce faire, le mode de commande du fauteuil roulant a été ajouté au programme bkb .



Après avoir démarré dans ce mode, des flèches apparaissent à l'écran, ce qui amène le programme à envoyer des caractères de contrôle au port COM9, qui sont ensuite interprétés par la poussette pour avancer / reculer, tourner et s'arrêter à gauche / à droite.


Pendant que la poussette est en cours de finalisation, j'ai décidé d'utiliser le même programme pour contrôler à distance le modèle de réservoir à chenilles. C'est aussi une chose assez utile. Premièrement, l'enfant reçoit des compétences utiles pour contrôler la poussette. Deuxièmement, ce n'est qu'un jeu passionnant.



Chacune des chenilles du char est contrôlée par un levier qui peut être déplacé vers l'avant ou vers l'arrière. Lorsqu'il déplace le levier vers l'avant, il appuie sur le bouton, forçant le moteur à tourner vers l'avant. En reculant le levier, il appuie sur le bouton, ce qui fait tourner le moteur dans le sens opposé. Il n'est pas possible d'appuyer sur deux boutons en même temps - en avant et en arrière est impossible.
L'unité de relais a été connectée aux boutons de la télécommande selon le schéma ci-dessous. Le circuit ne permet pas d'activer simultanément les boutons «moteur avant» et «moteur arrière». Un relais allume / éteint le moteur et le second sélectionne la direction avant ou arrière.

Trouvez sur la carte du panneau de commande où les boutons sont connectés et connectez-vous à eux, selon le schéma ci-dessus.

Veuillez noter que contrairement au circuit précédent, Arduino contrôle le bloc de relais avec les broches 6 à 9.



J'ai connecté le bloc de relais à la télécommande via le connecteur afin que la télécommande puisse être facilement déconnectée et utilisée séparément:



Le programme que Arduino doit télécharger reçoit les mêmes commandes de l'ordinateur qui sont utilisées pour contrôler la poussette motorisée:

F-avant
B-back
L-gauche
R-droit
S-stop

Le texte du programme est donné ci-dessous.

 //     6,7,8,9 int Relay1=6, Relay2=7, Relay3=8, Relay4=9; int heartbeat=0; //     void setup() { pinMode(Relay1,OUTPUT); pinMode(Relay2,OUTPUT); pinMode(Relay3,OUTPUT); pinMode(Relay4,OUTPUT); Serial.begin(9600); } void RCStop() { digitalWrite(Relay1,0); digitalWrite(Relay2,0); digitalWrite(Relay3,0); digitalWrite(Relay4,0); } void RCForward() { digitalWrite(Relay1,1); digitalWrite(Relay2,1); digitalWrite(Relay3,1); digitalWrite(Relay4,1); } void RCBack() { digitalWrite(Relay1,1); digitalWrite(Relay2,0); digitalWrite(Relay3,1); digitalWrite(Relay4,0); } void RCLeft() { digitalWrite(Relay1,1); digitalWrite(Relay2,0); digitalWrite(Relay3,1); digitalWrite(Relay4,1); } void RCRight() { digitalWrite(Relay1,1); digitalWrite(Relay2,1); digitalWrite(Relay3,1); digitalWrite(Relay4,0); } void loop() { // 1.     while(Serial.available()) { switch(Serial.read()) { case 'S': //  ! RCStop(); heartbeat=0; break; case 'F': //  ! RCForward(); heartbeat=0; break; case 'B': //  ! RCBack(); heartbeat=0; break; case 'L': //  ! RCLeft(); heartbeat=0; break; case 'R': //  ! RCRight(); heartbeat=0; break; } // switch } // while // 2.    //       -   delay(10); heartbeat++; if(heartbeat>30) { heartbeat=30; //    ! RCStop(); //   -   } } 

Si la connexion avec l'ordinateur est interrompue (aucun caractère n'arrive dans les 0,3 secondes, alors l'Arduino éteint les moteurs). Cette situation peut être modélisée en fermant les yeux tout en contrôlant vos yeux. Aitreker ne pourra pas déterminer la direction de la vue et aucun signal ne sera envoyé. Les moteurs s'arrêteront.

J'ai équipé le modèle de réservoir d'une caméra vidéo, généralement appelée taux de change, ou FPV (First Person View), qui transmet un signal analogique à une fréquence d'environ 5,8 GHz. J'ai pris l'une des caméras les moins chères, également équipée d'un émetteur et d'une antenne: AKK BA-3. Cela m'a coûté 1050 roubles. La caméra avec l'émetteur est si petite qu'elle tient dans les mains de la figurine Lego:



Tout ce qui doit être fait pour que la caméra fonctionne est de la connecter à l'alimentation (de 3,2 à 5,5 volts). Ensuite, avec un seul bouton, sélectionnez la gamme, la fréquence et la puissance de l'émetteur.

La caméra chauffe considérablement, je recommande donc de régler la puissance minimale (25 milliwatts). De plus, je l'ai connecté à la batterie du réservoir avec une tension de 6 volts, ce qui dépasse les valeurs autorisées. Par conséquent, je ne sais pas combien de temps cela durera. Je vous recommande d'utiliser un stabilisateur de tension pour alimenter l'appareil photo.

Lors de la fixation de la caméra, j'ai collé un élément du constructeur Lego au réservoir, et les éléments restants y étaient déjà attachés avec une simple connexion. Cela facilite le retrait et le rangement de l'appareil photo. De plus, lorsque vous vous heurtez à un obstacle, l'appareil photo peut simplement se replier, ce qui le sauvera des dommages.



Pour recevoir le signal vidéo de la caméra, j'ai utilisé le récepteur Eachine ROTG01. Il n'a pas pris de nouveau pour 1800 roubles. Ce n'est qu'une boîte avec une antenne qui se connecte au port USB de l'ordinateur et est visible comme une caméra USB. Autrement dit, nous lançons l'application Appareil photo sous Windows et voyons ce que le récepteur accepte. Même au début, vous devez maintenir enfoncé le seul bouton du récepteur pour qu'il scanne l'éther et trouve la fréquence à laquelle notre caméra transmet un signal.

En général, nous avons besoin de trois ports USB dans l'ordinateur:

- pour un tracker informatique
- pour Arduino, contrôler le panneau de commande du réservoir
- pour récepteur vidéo



Nous commençons la sortie d'image de la caméra, par exemple, le programme "Camera". Nous lançons le programme bkb et sélectionnons le mode de contrôle de la poussette motorisée.

Ce qui peut arriver ensuite est montré dans la vidéo:


On voit que la vitesse de déplacement, et surtout la vitesse des virages, est trop grande. Donc, si vous choisissez un modèle radiocommandé, choisissez le plus lent. Une pelle ou quelque chose.

Et pourquoi ne pas prendre le «robot espion» fini?


Je suis tombé entre les mains d'un tel, HappyCow 777-325.



J'étais ravi: il a tout, et la télécommande, et la transmission vidéo, et roule assez lentement. Il y a cependant une fonctionnalité - elle est contrôlée uniquement via une application Android ou iOS. Eh bien, nous allons résoudre ce problème grâce à la télécommande d'Android, par exemple, en utilisant scrcpy .

Mais il s'est avéré qu'en plus des défauts corrigibles (angle de vision étroit de la caméra), la machine en possède un incorrigible. La vidéo transmise via Wi-Fi a un terrible retard.
Autrement dit, ce robot s'est écrasé sur quelque chose depuis longtemps, et vous appuyez tous sur le gaz, pensant qu'il n'a pas encore atteint d'obstacle.

Pour un enfant qui apprend à contrôler une machine à distance, cela, à mon avis, est inacceptable.

Le robot obtient donc une démission. Bien que je lui emprunterais le châssis.

Conclusion


Je vous souhaite à tous de réussir à répéter et à développer les solutions techniques décrites.

Source: https://habr.com/ru/post/fr430078/


All Articles