想要通过从Edge Impulse上导入的程序实现通过图像识别的结果来控制电机的转动要怎么实现?
-
import sensor, image, time, os, tf,pyb from pyb import UART sensor.reset() # Reset and initialize the sensor. sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE) sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) sensor.set_windowing((240, 240)) # Set 240x240 window. sensor.skip_frames(time=2000) # Let the camera adjust. pinADir0 = pyb.Pin('P3', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE) pinADir1 = pyb.Pin('P2', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE) pinBDir0 = pyb.Pin('P1', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE) pinBDir1 = pyb.Pin('P0', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE) net = "trained.tflite" labels = [line.rstrip('\n') for line in open("labels.txt")] clock = time.clock() pinADir0.value(0) pinADir1.value(1) pinBDir0.value(0) pinBDir1.value(1) tim = pyb.Timer(4, freq=1000) chA = tim.channel(1, pyb.Timer.PWM, pin=pyb.Pin("P7")) chB = tim.channel(2, pyb.Timer.PWM, pin=pyb.Pin("P8")) tim = pyb.Timer(4, freq=1000) chA = tim.channel(1, pyb.Timer.PWM, pin=pyb.Pin("P7")) chB = tim.channel(2, pyb.Timer.PWM, pin=pyb.Pin("P8")) uart1=UART(3,115200) while(True): clock.tick() img = sensor.snapshot() # default settings just do one detection... change them to search the image... for obj in tf.classify(net, img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5): print("**********\nPredictions at [x=%d,y=%d,w=%d,h=%d]" % obj.rect()) img.draw_rectangle(obj.rect()) # This combines the labels and confidence values into a list of tuples list1=list(labels) list2=list(obj.output()) position=list2.index(max(list2)) print(list1[position]) if list1[position]=dianchi pyb.delay(100) chA.pulse_width_percent(20) pyb.delay(100) chA.pulse_width_percent(0) chB.pulse_width_percent(20) pyb.delay(100) chB.pulse_width_percent(0) uart.write(position) time.sleep_ms(1000) 请在这里粘贴代码
-
以及怎么控制电机转动一定的角度?
-