Lançons le véhicule à quatre roues FT-MC-004 d'Akizuki Denshi avec Raspberry Pi.
FT-MC-004 est le kit voiture 4 roues motrices basé sur Arduino d'Akizuki Denshi. Le prix est de 2610 ¥. 4WD Mobile Robot Platform Kits for Education FT-MC-004 http://akizukidenshi.com/catalog/g/gK-13652/
La configuration du kit du FT-MC-004 est un ensemble de 4 moteurs, une carte de commande de moteur, un châssis et des haubans pour une carte de micro-ordinateur. La machine Brother FT-MC-002 est un ensemble de deux moteurs, une carte de commande de moteur, un châssis et un support pour une carte de micro-ordinateur. Il existe deux types en fonction du nombre de moteurs. Cependant, il ne peut pas être utilisé tel quel.
Il est difficile de mettre le Raspberry Pi et la batterie. Pour cette raison, nous utiliserons le jeu de plaques universelles 2 feuilles Tamiya Fun Work Series No.157 (70157). Image de la fixation du Raspberry Pi Placez-le sur FT-MC-004.
Cette fois, j'ai utilisé Raspberry Pi dans un boîtier au lieu de le mettre directement. L'alimentation provenait d'une batterie USB. Nous ne recommandons pas d'utiliser RaspberryPi 5V car cela pourrait brûler le câblage.
Déplaçons-le. Le FT-MC-004 est contrôlé en entrant la fréquence PWM dans le pilote du moteur.
[Question] Quelle est l'entrée de largeur d'impulsion sur la carte connectée? [Réponse] Puisqu'il n'y a pas de données du fabricant, les valeurs mesurées sont indiquées ci-dessous. Rotation avant: 1,2 à 1,4 (pas de changement visuel en dessous) Toujours: 1,5 (il y a une légère zone morte à l'avant et à l'arrière) Inversion: 1,6-1,8 (plus de changements visuels) Unité (ms) (C)http://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=K-13652 Il est contrôlé en envoyant PWM aux broches 4 et 17 du GPIO. ** Selon un autre document, de 1 ms à 2 ms, le centre est de 1,5 ms.
Le programme ressemble à ceci. Je suis stationnaire
servoX.ChangeDutyCycle(7.2)
C'était fabriqué. Il est possible de contrôler la marche avant et arrière de 6,5 à 8,5. (Le devant et le dos ne sont pas bien équilibrés) Si vous faites cela en Python, je pense que les pneus tourneront.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
lp_out = 4
rp_out = 17
GPIO.setup(lp_out, GPIO.OUT)
GPIO.setup(rp_out, GPIO.OUT)
servol = GPIO.PWM(lp_out, 50)
servor = GPIO.PWM(rp_out, 50)
servol.start(0)
servor.start(0)
for i in range(1):
print("Stop")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
print("Start")
servol.ChangeDutyCycle(6.5)
servor.ChangeDutyCycle(8.0)
time.sleep(1.5)
print("Stop")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
servol.stop()
servor.stop()
GPIO.cleanup()
Allons un peu plus longtemps.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
lp_out = 4
rp_out = 17
GPIO.setup(lp_out, GPIO.OUT)
GPIO.setup(rp_out, GPIO.OUT)
servol = GPIO.PWM(lp_out, 50)
servor = GPIO.PWM(rp_out, 50)
servol.start(0)
servor.start(0)
for i in range(1):
print("Stop")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
print("Start")
servol.ChangeDutyCycle(6.5)
servor.ChangeDutyCycle(8.0)
time.sleep(1.5)
print("Stop")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
print("R")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(8.0)
time.sleep(1.5)
print("L")
servol.ChangeDutyCycle(5.0)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
print("BR")
servol.ChangeDutyCycle(7.2)
servor.ChangeDutyCycle(5.0)
time.sleep(1.5)
print("BL")
servol.ChangeDutyCycle(10.0)
servor.ChangeDutyCycle(7.2)
time.sleep(1.5)
servol.stop()
servor.stop()
GPIO.cleanup()