Étape 10 : Commande #1 & 2 - conduit blinky !
Nous allons modifier notre code de python pour juste envoyer la commande #1 et voir ce qui se passe. De nos journaux, nous savons que pour envoyer des commandes de hôte-appareil, nous devrions utiliser bRequestType de 0 x 40 (vérifier cela en regardant les bits de bmRequestType des paquets commande), wIndex et wLength de zéroPour la commande #1, la valeur bRequest à 0 x 06 et un wValue 4. Le dernier argument est maintenant un tableau vide [] à indiquer qu'aucune donnée n’est transmise
importation usb.core
importation usb.util
import sys
# trouver notre dispositif
dev = usb.core.find (idVendor = 0x045e, idProduct = 0x02B0)
# a été trouvé ?
Si aucune n’est dev :
générer ValueError ("périphérique non trouvé")
# définir la configuration active. Sans argument, la première
# configuration sera celle active
dev.set_configuration()
RET = dev.ctrl_transfer (0 x 40, 0 x 6, 0 x 1, 0, [])
imprimer le ret
Nous avons couru que notre python code and...nothing est arrivé !
OK Eh bien peut-être que c’était une commande d’initialisation. Permet de remplacer avec la prochaine commande #2, la valeur bRequest à 0 x 06 et une wValue 1
RET = dev.ctrl_transfer (0 x 40, 0 x 6, 0 x 1, 0, [])
Nous avons manqué cette commande et le moteur n’a pas bougé mais la LED cessé de clignoter.
Pour le plaisir, nous avons couru à nouveau la commande précédente et la LED a commencé à clignoter.
Maintenant nous avons une idée : peut-être que ce bRequest 0 x 6 contrôle la LED ?
Vous-même, poursuivre cette ligne de pensée en essayant différentes wValues de 0 pour voir quelle autre wValues, garder une trace d’eux tous dans un fichier bloc-notes ou projet.