Comment j'ai fait une carte électronique pour les capteurs de télémétrie et pour contrôler les périphériques

Dans le processus de création d'un robot-serveur, d'un robot de téléprésence, d'un robot selfie, certains développements sont apparus que c'est un péché de ne pas partager avec la communauté, c'est-à-dire de faire de l'open source. L'une des versions de travail était une carte électronique, nommée SB version 4.0, utilisant un Arduino peu coûteux et relativement peu fonctionnel, à savoir Nano 3.0. La carte SB 4.0 est assez simple et compréhensible pour consolider ses connaissances en électronique et en soudure lors de son assemblage, est suffisamment fonctionnelle pour réaliser ses propres projets pratiques (par exemple, allumer l'ampoule par les signaux du capteur de mouvement et du capteur de lumière ou par votre commande via Bluetooth), et le coût des composants avec livraison lors de la commande auprès de nos amis chinois avec taobao était d'environ 55 $ (y compris les capteurs eux-mêmes).

Le but principal de la carte SB 4.0 est l'interface matérielle. Une fois collecté, vous pouvez l'utiliser pour recevoir et traiter les données de plusieurs capteurs préinstallés et pour la prise de décision et l'exécution d'algorithmes. Pour faciliter le débogage, une interface a été créée dans OS Windows, dans laquelle les relevés télémétriques des capteurs et d'une source d'alimentation, l'état des boutons et des servos sont clairement affichés et des commandes peuvent être envoyées au microcontrôleur.

Dans cette publication, je décrirai les caractéristiques de la carte et un exemple de son application. Encore une fois, tout cela est open-source, sous licence CC Attribution Non-Commercial Share Alike.

Oui, il existe déjà des cartes de contrôle et des kits avec capteurs similaires (cartes Arduino plus coûteuses avec blindages, pour Raspberry Pi, pour ampère d'iode), mais SB 4.0 en diffère en présence d'une carte d'alimentation et d'un programme de contrôle pratique écrit à l'aide de l'environnement de développement LabView. Autrement dit, SB 4.0 se compose de deux cartes: contrôle + alimentation. Cela sera vu dans les photos et les vidéos.

Photo des deux cartes, capteur de mouvement, batterie:



Programmation


Pour programmer le microcontrôleur, comme toujours, nous utilisons C / C ++. Nous développons dans l'IDE Arduino.

La capture d'écran montre l'interface du programme Selfiebot Control Panel, où les lectures télémétriques des capteurs et de la source d'alimentation, l'état des boutons et des servos sont clairement affichés, vous pouvez envoyer des commandes au microcontrôleur.

Capture d'écran de la partie interface:



Performances


SB 4.0 utilise l'une des plates-formes Arduino Nano 3.0 les plus économiques avec un microcontrôleur ATmega328 8 bits. Cela suffit pour traiter le code et résoudre les problèmes: robots de contrôle, systèmes de maison intelligente, etc.



La compatibilité


La tension logique est de 5 V, ce qui garantit la compatibilité électrique avec les périphériques Arduino.

Ports d'entrée / sortie


Broches de contrôle du microcontrôleur disponibles. Entre parenthèses, il a indiqué les éléments préinstallés avec lesquels la carte sait déjà comment travailler.
  • 2 broches, qui peuvent être configurées comme entrée / sortie numérique et sortie PWM (pour deux servos numériques);
  • 1 broche, entrée / sortie numérique (pour détecteur de mouvement);
  • 3 broches, entrée / sortie numérique (pour LED RGB);
  • 1 broche, entrée / sortie numérique (pour capteur de limite, boutons);
  • 1 broche, sortie numérique + 5V / 0V (pour contrôler la charge externe).

Le bus I2C et le port UART sont utilisés respectivement pour la carte d'extension de port et le module Bluetooth.
L'universalité de la carte SB 4.0 est fournie. Faites correspondre les niveaux de puissance, les niveaux de signal, le type d'entrée / sortie! Remplacez les capteurs préinstallés par vos capteurs:

  • température
  • niveau de bruit
  • humidité
  • pression, etc.


La broche d'entrée fonctionne sur une base fermée / ouverte. C'est-à-dire sur la broche allant au MK ou + 5V, ou 0. Ces valeurs sont incluses dans les données de télémétrie qui sont envoyées au logiciel Selfiebot Control Panel.

La broche de sortie produit soit 5V avec une capacité de charge de 1A, soit est désactivée - 0V. Appliquer une tension ou non à ce connecteur n'est possible que par une commande externe ou par une commande de l'algorithme du firmware.

Cela n'a aucun sens de connecter des capteurs analogiques à des broches numériques.

La nutrition


L'alimentation est fournie par la prise de courant de 2,1 mm ou par des batteries Li-Ion avec un contrôleur de charge. La source est déterminée automatiquement.
En cas d'alimentation via une prise, la tension d'entrée recommandée est de 12 à 12,6 V. Les convertisseurs de tension CC-CC fournissent 7 V aux servos, 5 V à USB1, USB2 et d'autres charges. Un adaptateur secteur ou des piles peuvent être utilisés comme source d'alimentation.
Utilisez des broches 5 V pour alimenter les périphériques. Lorsque vous utilisez une source d'alimentation externe, jusqu'à 1 A peut être obtenu à partir d'une broche 5 V.

Le kit d'alimentation comprend:
  • Batterie 3x18650, 1 pc.
  • Batterie 18650, 3,7 V, à partir de 2200 mAh, 3 pièces.
  • Contrôleur de charge, 1 pc.
  • 1 x connecteur d'alimentation
  • Convertisseurs DC-DC, 4 pcs.
  • Capteur Hall, 1 pc.
  • Transistors, 3 pièces.
  • Optocoupleurs et résistances.




La communication


Le microcontrôleur Arduino Nano est programmé via USB avec un logiciel gratuit standard du site Web du fabricant MK. Pour transférer des données entre SB 4.0 et un ordinateur, comme toujours, j'ai choisi le module Bluetooth HC-06 commun peu coûteux, le taux de transfert de données de 9600 Kb / s. Les données de télémétrie et les commandes de contrôle passent par ce canal sans fil.

Les dimensions


J'ai obtenu les dimensions de la carte d'alimentation électronique - 100 × 70 × 40 mm. Les dimensions de la carte électronique de commande sont de 90 × 70 × 45 mm. Mais je suis sûr que vous pouvez toujours chamaniser et réduire la taille.

L'espacement des contacts est de 0,1 ″ (2,54 mm).

Spécifications du microcontrôleur


  • Microcontrôleur: ATmega328 8 bits.
  • Fréquence d'horloge: 16 MHz.
  • Mémoire flash: 32 Ko (2 Ko sont utilisés pour le chargeur de démarrage, 30 Ko - pour stocker le code de votre programme).
  • RAM 2KB.
  • EEPROM 1 Kb.
  • Tension de fonctionnement nominale: 5 V


Caractéristiques de la carte électronique SB 4.0


  • Tension de fonctionnement nominale: 12,6 V
  • Tension d'entrée recommandée: 12–12,6 V.
  • Courant maximum du bus 5 V: 1000 mA
  • Ports d'E / S à usage général: 2
  • Ports avec prise en charge PWM: 2


Le tableau de commande comprend les éléments suivants:

  • Module Bluetooth HC-06, 1 pièce.
  • Carte électronique d'extension de port pour microcontrôleur, 1 pc.
  • Microcontrôleur Arduino Nano 3.0, 1 pc.
  • 1 carte électronique de niveau d'éclairage
  • Servos TowerPro MG966R, 2 pièces.
  • Photorésistance, 1 pc.
  • Détecteur de mouvement, 1 pc.
  • 1 x LED RGB
  • Bouton, 1 pc.
  • Fusible, 1 pc.
  • Cavalier, 1 pc.
  • Transistor, 1 pc.
  • Condensateur, 1 pc.




Utilisation pratique


Options d'utilisation pratique:

1. Ouvrez / fermez les fenêtres lorsque la température change.
2. Allumez / éteignez le ventilateur lorsque l'humidité de la pièce change.
3. Allumez / éteignez la lumière en présence de mouvement dans l'obscurité.
4. Ouvrez / coupez l'alimentation en eau lorsque vous modifiez l'humidité du sol.
5. Activez l'éclairage infrarouge dans l'obscurité.
6. Transfert de toutes les données de télémétrie au serveur via la connexion Internet.

Exemple d'application de la carte SB 4.0


Objectif: à condition d'appuyer sur le bouton, allumer la lumière lorsqu'un mouvement est détecté.



Pour ce faire, nous avons en outre besoin d'un module relais, d'une ampoule (220 ADC ou jusqu'à 12 VDC).

1. Le plus souvent, nous trouvons des relais 12VDC et 05VDC. Le nombre signifie quelle valeur de tension continue doit être fournie à l'entrée du relais.
2. Considérez le fonctionnement du relais SRD-05VDC de Songle, qui est courant pour Arduino.
3. Lorsque l'alimentation est appliquée à la broche Vcc et court-circuitée à la broche «GND», la LED verte s'allume.
4. Depuis nous avons un module monocanal, puis sur la carte, vous ne verrez qu'une seule broche de signal In1. Si vous réglez le niveau de tension LOW sur In1, la LED rouge du module relais s'allume et le relais fonctionne avec un clic caractéristique. Sur Arduino, la commande digitalWrite (pin, LOW) est responsable du réglage du niveau de tension sur la broche; Pour ramener le relais à son état précédent, utilisez la commande digitalWrite (pin, HIGH);
5. Connectez le module de relais à la carte SB 4.0, qui dispose d'un capteur de mouvement préinstallé et d'un bouton utilisateur.
5.1. La broche de signal In1 du module relais est connectée à la broche 13.
5.2. Dans le code du programme Arduino Nano, nous trouvons:
***********************************
 //     -   ,       timeout_SnSM
 if (var_Tlm_SnSM == 1) { time_Move_detect = millis(); }
 if (millis() - time_Move_detect < timeout_Move_detect) { Move_detect = 1; } else { Move_detect = 0; }
***********************************


Ajoutez ces lignes ci-dessous:
***********************************
  //     (== 0),     (== 1)     13 (== LOW),   timeout_SnSM
  if (var_Tlm_BUT == 0) { 
    if (Move_detect == 1) { digitalWrite(PIN_D13, LOW); } else {  digitalWrite(PIN_D13, HIGH); }
  } else {
    digitalWrite(PIN_D13, HIGH); 
  }
***********************************

5.3. Téléchargez le nouveau firmware et allumez la carte.

Si le capteur de mouvement détecte un mouvement, alors grâce à notre algorithme, le niveau BAS apparaît sur la broche d'alimentation externe, le relais fonctionne, fermant le circuit et la lumière s'allume.

Ainsi, si une personne passe devant un capteur de mouvement, la lumière s'allume.

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


All Articles