Etape 1: Moteur de Direction du DC de contrôle par l’intermédiaire de RPi
Contrôle de moteur à courant continu à l’aide de RPi
Notre prochaine tâche est de contrôler un moteur à courant continu à l’aide de script python et en-têtes GPIO sur pi framboise et cela vont créer une image de 'comment le robot travaille' dans notre esprit. Vous pouvez contrôler le ventilateur de votre chambre selon les conditions météorologiques à l’extérieur (comme vous le savez l’utilisation de capteurs avec IPD). Faire tout cela vous fera comprendre les règles de base de la robotique.
Nous allons au moteur de contrôle un contrôleur de domaine qui nécessitera au moins 400mA de courant pour fonctionner correctement, mais notre RPi peut fournir près de 20mA seulement. Cela signifie que nous avons pour vous connecter à une source d’alimentation CC externe. Il n’est pas un problème ! Nous avons des petites batteries de 6V et 9V disponible sur le marché.
AVERTISSEMENT : Ne pas brancher un moteur directement à la Pi de la framboise, cela endommagerait votre Pi de framboise.
Évidemment il nous faudra un contrôleur de moteur IC pour contrôler les fonctionnalités du moteur (pour la faire tourner dans le sens horaire ou anti-horaire). Il est préférable de commencer avec le contrôleur de moteur L293D IC.
Exigences :
· Raspberry Pi avec carte SD préinstallé avec Raspbian
· Une maquette
· Un pilote de moteur L293D IC
· Fils de raccordement (mâle/mâle) et la femelle vers mâle
· Un moteur de C.C évalué pour 6v
· Une batterie 6V ou 9V.
L293D
C’est un moteur IC nous pouvons contrôler 2 moteurs à la fois de lui. Sa configuration des broches est illustrée ci-dessous. C’est une broche 16 IC qui comprend (à côté) un SCR (de puissance), une broche GND, deux entrées correspondant à deux sorties, une broche Enable (on et off un moteur).
Connexions :
· Tout d’abord connecter la broche Vcc du L293D à 5V (3.3V peut également être utilisé)
· Reliez maintenant les motifs
· Nous utilisons GPIO-2,3,4 pour contrôler l’IC. (GPIO-02 & 03-GPIO comme entrée 1 et 2 respectivement)
· Branchez GPIO-04 sur broche de Enable respectif de l’IC.
· Maintenant enfin raccorder sortie 1 & 2 pour la connexion du moteur tel qu’illustré à la figure.
Code Python:-
importation RPi.GPIO comme GPIO
de temps importer sommeil
GPIO.setmode (GPIO. BCM)
Motor1A = 02
Motor1B = 03
Motor1E = 04
GPIO.setup (Motor1A, GPIO. OUT)
GPIO.setup (Motor1B, GPIO. OUT)
GPIO.setup (Motor1E, GPIO. OUT)
imprimer « Le moteur va démarrer »
GPIO.output (Motor1A, GPIO. # HAUT) pour exécuter le moteur dans le sens horaire
GPIO.output (Motor1B, GPIO. # FAIBLE), mettez-le en haut pour faire tourner le moteur dans le sens antihoraire
GPIO.output (Motor1E, GPIO. # HAUT) doit être toujours élevée pour démarrer le moteur
Sleep(5)
imprimer « Arrêt moteur »
GPIO.output (Motor1E, GPIO. # BASSE) pour arrêter le moteur
GPIO.cleanup()
Après avoir exécuté le code ci-dessus votre moteur tournera dans le sens horaire pendant 5 secondes. En modifiant le code ci-dessus, vous pouvez faire inverser la tendance. Maintenant, nous pouvons faire une voiture à l’aide de deux ou quatre moteurs.
Contrôler la vitesse du moteur à courant continu à l’aide de RPi
Comme vous le savez à certains endroits, il faut également contrôler la vitesse des moteurs. Ce sujet vous fait comprendre le contrôle de marche-arrêt des moteurs, mais ce n’est pas assez droit?? Maintenant vous devriez avoir une question dans votre esprit que la façon dont nous pouvons produire une tension analogique de broches GPIO du RPi. Pas de problème parce que nous pouvons produire des impulsions de tension de celle-ci par l’intermédiaire de PWM (modulation de largeur d’impulsions) et contrôler la tension de sortie de broche GPIO.
Modulation de largeur d’impulsion
C’est un processus très simple, d'où nous pouvons contrôler la fréquence de la tension de la source. Module PWM est disponible pour GPIO dans RPi & comme nous le savons
Période de temps = 1/fréquence
Donc, si je sélectionne une fréquence de 100Hz que cela signifie que le délai est de 10m sec (la tension est triged à « HIGH » s 10m). Notre batterie alimentation 9V à moteur et de réduire la vitesse, il faut réduire cette tension. Donc, si nous voulons réduire la moitié de la vitesse que nous devons changer du rapport cyclique (c’est le pourcentage de la période pour laquelle la tension est haute) à 50.
Tension fournie pour le moteur est la maîtrise par broche Enable du pilote moteur IC - L293N donc nous avons seulement besoin d’appliquer le PWM à broche Enable pour faire varier la vitesse. Ci-dessous est le code python pour comprendre PWM et qui nécessite la connexion ci-dessus dans la rubrique précédente (commande moteur à courant continu par l’intermédiaire de RPi).
>>> importation RPi.GPIO comme bibliothèque de GPIO GPIO # import
>>> de temps importer sommeil
>>> GPIO.setmode (GPIO. BCM)
>>> Motor1A = # 02 réglée GPIO-02 1 entrée du contrôleur IC
>>> Motor1B = 03 # définir GPIO-03 comme entrée 2 du contrôleur IC
>>> Motor1E = # 04 définir GPIO-04 comme activer la broche 1 du contrôleur IC
>>> GPIO.setup (Motor1A, GPIO. OUT)
>>> GPIO.setup (Motor1B, GPIO. OUT)
>>> GPIO.setup (Motor1E, GPIO. OUT)
>>> pwm = GPIO. PWM(04,100) # configuration Enable code pin signifie GPIO-04 pour PWM
>>> pwm.start(50) # il commençant par 50 % du rapport cyclique
>>> imprimer « Aller de l’avant »
>>> GPIO.output (Motor1A, GPIO. HAUTE)
>>> GPIO.output (Motor1B, GPIO. FAIBLE)
>>> GPIO.output (Motor1E, GPIO. HAUTE)
>>> sleep(2)
# Ceci se déroulera votre moteur vers l’avant pendant 2 secondes avec une vitesse de 50 %.
>>> pwm. ChangeDutyCycle(80) # dutycycle croissante à 80
>>> imprimer « Reculer »
>>> GPIO.output (Motor1A, GPIO. HAUTE)
>>> GPIO.output (Motor1B, GPIO. FAIBLE)
>>> GPIO.output (Motor1E, GPIO. HAUTE)
>>> sleep(2)
# Ceci se déroulera votre moteur dans le sens inverse pour 2 secondes avec 80 % de vitesse en fournissant 80 % de la tension de la batterie
>>> imprimer « Arrêter maintenant »
>>> GPIO.output (Motor1E, GPIO. FAIBLE)
>>> arrêt de # pwm.stop() PWM de GPIO sortie il faut
>>> GPIO.cleanup()
Espère que cela fonctionnera pour vous !