http://docs.openmv.io/library/pyb.USB_HID.html
Here's the code I'm using
Code: Select all
import sensor, image, time, math
import pyb
# I've tried both modes here but neither works, so moved it to a separate boot.py script
#pyb.usb_mode('VCP+HID', hid=pyb.hid_keyboard)
#pyb.usb_mode('CDC+HID', hid=pyb.hid_keyboard)
hid = pyb.USB_HID()
red_led = pyb.LED(1)
green_led = pyb.LED(2)
blue_led = pyb.LED(3)
ir_leds = pyb.LED(4)
red_led.off();
green_led.off();
blue_led.off();
ir_leds.off();
sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.VGA) # High Res!
sensor.set_windowing((640, 10)) # V Res of 80 == less work (40 for 2X the speed).
sensor.skip_frames(time = 2000)
sensor.set_auto_gain(False) # must turn this off to prevent image washout...
sensor.set_auto_whitebal(False) # must turn this off to prevent image washout...
clock = time.clock()
while(True):
clock.tick()
img = sensor.snapshot()
codes = img.find_barcodes()
for code in codes:
img.draw_rectangle(code.rect())
print_args = (code.type(), code.payload(), (180 * code.rotation()) / math.pi, code.quality(), clock.fps())
print("Barcode {}, Payload \"{}\", rotation {} (degrees), quality {}, FPS {}".format(*print_args))
green_led.on()
for c in code.payload():
buf = bytearray(8)
buf[0] = 0x00 # no modifier keys
buf[2] = 0x17 # just send char 'T' for now
hid.send(buf)
pyb.delay(5)
buf[0] = 0x00 # no modifier keys
buf[2] = 0x00 # release key
hid.send(buf)
pyb.delay(5)
if not codes:
green_led.off()
Code: Select all
import pyb
#pyb.usb_mode('HID', hid=pyb.hid_keyboard)
pyb.usb_mode('VCP+HID', hid=pyb.hid_keyboard)
#pyb.usb_mode('CDC+HID', hid=pyb.hid_keyboard)
The green light flashes when a barcode is detected, so the script seems to run fine without errors (although I'm not sure if boot.py is running beforehand), but it's not passing an HID data to my laptop (Mac OS)
Thanks