Stap 10: Command #1 & 2 - geleid BLINKIE!
We zullen het bewerken van onze python code gewoon verzenden opdracht #1 en zien wat er gebeurt. Uit onze logs weten we dat we bRequestType van 0x40 voor het verzenden van opdrachten van host-naar-apparaat, moet gebruiken (dit controleren door te kijken naar de bits van de bmRequestType van de opdracht pakketten), wIndex en wLength van nulIngesteld voor opdracht #1, bRequest op 0x06 en een wValue op 4. Het laatste argument is nu een lege array [] om aan te geven dat geen gegeven wordt overgebracht
usb.core importeren
usb.util importeren
importeren van sys
# find onze apparaat
dev = usb.core.find (idVendor = 0x045e, idProduct = 0x02B0)
# was het gevonden?
als dev geen:
verhogen van de ValueError ('apparaat niet gevonden')
# Stel de actieve configuratie. Zonder argumenten, de eerste
# configuratie is de actieve
dev.set_configuration()
RET = dev.ctrl_transfer (0x40, 0x6 gemaakt, 0x1, 0, [])
afdrukken ret
We liepen dat onze python code and...nothing gebeurd!
OK Nou misschien was dat een commando van de initialisatie. Laat het vervangen door de volgende opdracht #2, bRequest tot 0x06 en een wValue ingesteld op 1
RET = dev.ctrl_transfer (0x40, 0x6 gemaakt, 0x1, 0, [])
We liepen deze opdracht en de motor niet verplaatsen maar gestopt met de LED knippert.
Voor de lol liepen we weer de vorige opdracht en de LED begon weer knipperen.
Nu we een idee hebben: misschien deze bRequest 0x6 gemaakt bepaalt de LED?
Op uw eigen, blijven deze lijn van denken door te proberen verschillende wValues van 0 op tot Zie wat andere wValues doen, bijhouden van hen allemaal in een laptop- of project-bestand.