Contrôleur de ventilateur avec Raspberry

Dans ce projet, nous utiliserons des modules d'extension Digilent Pmods ainsi qu'une platine Raspberry Pi 4 pour mesurer la température, contrôler la vitesse d'un moteur à courant continu, afficher les données et contrôler l'appareil. 
 

Détail de l'application de contrôle de moteur

Une platine Digilent Pmod HAT est utilisée pour connecter les modules Pmods à la platine Raspberry Pi 4. Le contrôleur de moteur aura deux modes: un dans lequel la vitesse du moteur change en fonction de la température (dans ce mode, les limites de température pour 0% et 100% de la vitesse du moteur peuvent être réglées sur l'interface utilisateur) et un deuxième mode, dans lequel le moteur tourne à vitesse constante pendant un temps défini, puis il est arrêté pour le même temps (dans ce mode, la vitesse du moteur et le temps sont les paramètres contrôlables par l'utilisateur) . L'interface utilisateur sera utilisée pour changer de mode.

Inventaire nécessaire pour réaliser cette application:

1. Matériel

- Platine Raspberry Pi 4 Model B
- Platine Pmod HAT Adapter
- Module Pmod TC1
- Module Pmod HB3
- Module Pmod KYPD
- Module Pmod OLEDrgb
- Module Pmod TPH2
- Module un moteur 5V DC
- Des câbles MTE
- un petit tournevis (pour fixer les boulons dans les borniers)

2. Logiciel sur Raspberry Pi
 
Python 3 - il est préinstallé sur le système d'exploitation Raspberry Pi par défaut
Visual Studio Code - ou tout autre éditeur de texte de votre choix


Description du matériel utilisé:


Platine Pmod HAT adapter Espace 1 Platine Pmod HAT:
Cette platine possède 5 connecteurs principaux et trois cavaliers. En haut, le connecteur standard Raspberry Pi HAT peut être trouvé. L'adaptateur dispose de trois connecteurs 2x6 Digilent Pmod (JA, JB et JC) et chacun d'eux peut également être utilisé comme deux connecteurs 1x6 Pmod séparés (par exemple, JA peut être séparé en JAA et JAB). Tous les ports Pmod contiennent une masse et une broche 3,3 V pour alimenter le module Pmod qui y sera connecté. En plus de la fonction GPIO (General Purpose Input / Output), vous pouvez utiliser JAA et JBA comme interface SPI, JBB comme interface I2C et JCA comme interface UART. La carte Pmod HAT dispose également d'une prise DC d'entrée 5 V, de cavaliers permettant des résistances de pull-up sur les lignes I2C et d'un cavalier qui permet d'écrire dans la mémoire interne des Pmods.

 

Module Pmod OLEDrgb Espace 1 Module Pmod OLEDgrb:
Le Pmod OLEDrgb est un écran LED RVB organique de 96 x 64 pixels avec une résolution couleur de 16 bits. Le module contient un pilote d'affichage qui communique avec les cartes ou systèmes hôtes via des liaisons SPI et GPIO. Pour ce projet, nous connecterons le module Pmod OLEDrgb aux ports JA ou JB sur l'adaptateur Pmod HAT qui prend en charge la communication SPI.
Module clavier Pmod KYPD Espace 1 Module Pmod KYPD:
Le module Pmod KYPD dispose de 16 boutons poussoirs fugitifs, disposés en 4 lignes et 4 colonnes. En pilotant les lignes des colonnes à une basse tension de niveau logique une à la fois, les utilisateurs peuvent lire la tension de niveau logique correspondante sur chacune des lignes pour déterminer quel bouton, le cas échéant, est actuellement enfoncé (principe de lecture d'un clavier matricé). L'appareil communique avec Raspberry Pi via GPIO. Nous pouvons le connecter à n'importe quel port du Pmod HAT.
Module Pmod TC1 Espace 1 Module Pmod TC1:
Le Pmod TC1 contient un fil de thermocouple de type K et un convertisseur thermocouple-numérique à jonction froide. Le fil de thermocouple peut mesurer des températures de -73 ° C à 482 ° C avec une précision de ± 2 ° C et le module renvoie une valeur numérique signée de 14 bits. Le module Pmod TC1 doit être connecté aux ports JAA ou JBA (la partie supérieure des ports JA ou JB) sur le Pmod HAT pour la communication SPI .                                 .
Module clavier Pmod HB3 Espace 1 Module Pmod HB3:
Le Pmod HB3 est un driver de moteur CC à pont en H, avec une sortie allant jusqu'à 12 V et 2 A. Le module communique avec la carte Raspberry Pi via les GPIO. Il peut être connecté à n'importe quel port de l'adaptateur Pmod HAT. Si un moteur 5 V est utilisé, l'alimentation du moteur peut être fournie par l'une des broches 5 V PW du Raspberry Pi, qui sont capables de produire environ 2 A, lorsque le microcontrôleur a une alimentation appropriée.                                         .
Module clavier Pmod TPH2 Espace 1 Module Pmod TPH2:
Le Pmod TPH2 est un connecteur de test à 12 points. Dans ce projet, il peut être utilisé pour diviser l'un des ports 2x6 Pmod de l' adaptateur Pmod HAT afin que plusieurs Pmods puissent être connectés au même port (à l'aide de câbles MTE).                                                                                                                                                                                                                                                                                                                                                                                                                                                                         .
Platine Raspberry Pi4 Espace 1 Platine Raspberry Pi 4:
Une carte Raspberry Pi 4 Model B sera utilisée en tant que "cerveau" dans cette application avec le système d'exploitation Raspberry Pi recommandé. Vous pouvez utiliser d'autres modèles et systèmes d'exploitation Raspberry Pi capables d'exécuter Python 3. La présentation détaillée de l'installation et de la configuration du système d'exploitation ne sera détaillée dans notre note d'application .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .

  


Configuration matérielle:  
 
Les modules Pmod OLEDrgb et Pmod TC1 (avec interface SPI) ne peuvent être connectés qu'à des ports spécifiques sur la platine Pmod HAT. le module Pmod OLEDrgb est connecté au port JA tandis que le module Pmod TC1 ne peut être connecté qu'au port JBA. Le module Pmod KYPD est connecté au port JC et le module Pmod HB3 au port JBB. Le module Pmod TPH2 peut être utilisé pour briser le port JB afin que les deux modules Pmod (TC1 et HB3) puissent être connectés au même port. Connectez le fil du thermocouple et le moteur aux borniers respectifs. Comme mentionné ci-dessous, vous pouvez alimenter le moteur directement à partir de la platine Raspberry Pi. Le fichier Fritzing™ joint montre les connexions à réaliser.
 
 
Schéma de câblage de l'application
 


Configuration du logiciel:  
 

Tout d'abord, vous devez activer le port SPI et le port série sur la carte Raspberry Pi. Ouvrez un terminal, puis tapez: sudo raspi-config

 
Terminal

 
Dans le menu, sélectionnez 3. Options d'interface, puis sélectionnez P4 SPI et activez-le. Sélectionnez à nouveau les options d'interface , puis sélectionnez P6 Serial Port . La première chose qui apparaît, le shell de connexion , peut être laissée désactivée. Il vous suffit d'activer le matériel du port série dans la deuxième invite.
 
 
Ensuite, vous changez la version par défaut de Python en Python 3. Le système d'exploitation Raspberry Pi recommandé est livré avec Python 2 et Python 3 préinstallés. Vérifiez la version Python avec les commandes suivantes:

python --version
python3 --version
 
 
Python default

Si Python 3 3.6 est préinstallé ou une version antérieur, vous devez installer une version plus récente via les commandes:
sudo apt-get installer python3.x

où x est le numéro de version. Par exemple, nous utilisons Python 3.7 dans ce projet (car il s'agit de la version préinstallée sur le système d'exploitation Raspberry Pi recommandé). Donc, vous allez taper sudo apt-get install python 3.7


Pour changer la version python par défaut en Python 3, exécutez la commande suivante:
sudo update-alternatives --install / usr / bin / python python / usr / bin / pythonn3 1

Maintenant, Python 3 devrait apparaître comme l'interpréteur par défaut.

 
Modules python

La dernière étape consiste à installer les modules requis. Pour cela, tapez simplement les commandes suivantes dans le terminal:
sudo pip installer designspark.pmod

  

Code:  
 
1. fan_controller.py

Le script Python se compose de trois modules: fan_controller.py, keypad.py et display.py. Le fan_controller.py est le module principal. Dans ce module, tout d'abord, nous importons toutes les bibliothèques et modules requis, créons une classe et définissons des variables:
 

  1. #!/usr/bin/env python  
  2.   
  3.   
  4. """ 
  5. The controller sets the speed of a fan according to temperature (mode 1), 
  6. or lets the fan run with a constant speed for a given time (mode 2). 
  7. Temperature is measured with Pmod TC1. 
  8. The motor is driven by Pmod HB3. 
  9. The user interface is realized with Pmod OLEDrgb and Pmod KYPD. 
  10. """  
  11.   
  12. # import necessary modules  
  13. from DesignSpark.Pmod.HAT import createPmod  
  14. from luma.core.render import canvas  
  15. from datetime import datetime, timedelta  
  16. import time  
  17.   
  18. # import own modules  
  19. import display  
  20. import keypad  
  21.   
  22. # create objects for each pmod  
  23. TC1 = createPmod('TC1', 'JBA')  
  24. HB3 = createPmod('HB3', 'JBB')  
  25. keypad.KYPD = createPmod('KYPD', 'JC')  # Pmod KYPD and Pmod OLEDrgb are  
  26. display.OLED = createPmod('OLEDrgb', 'JA')  # used in separate modules  
  27.   
  28.   
  29. class settings:  
  30.     """ this class contains "global variables" """  
  31.     TEMP_AVG = 500  # number of temperature measurements to average  
  32.     TEMP_MIN = 22.0  # temperature for 0% fan speed  
  33.     TEMP_MAX = 35.0  # temperature for 100% fan speed  
  34.     TIME_RUN = 15  # number of minutes to run (mode 2)  
  35.     CONST_SPEED = 75    # speed in mode 2  
  36.     MOTOR_REV = False  # reverse the rotation of the motor  
  37.     MODE = 1  # starting mode  


 
Ensuite, les fonctions sont définies. Les quatre fonctions sont action_M1 () , qui règle la vitesse du moteur en fonction de la température mesurée et moyenne, action_M2 () , dont la vitesse du moteur est définie, puis la fonction attend le temps défini (les pressions sur les touches terminent la fonction). La fonction set_param () définit un paramètre et la fonction decode_key () décide quel menu ou sous-menu afficher en appuyant sur une touche.
  
 

  1. def action_M1():  
  2.   
  3.     """ this is done in mode 1 """  
  4.     # get average temperature  
  5.     average_temp = 0.0  
  6.     for _ 
    Publié dans: News

Laisser un commentaire

Chargement...
Retour en haut