那请问适用openm4 h7 plus的这个代码在哪里。我book.openmv.cc里的这个代码试过了,IDE自带的也试过了都不行呢
c2zq
@c2zq
c2zq 发布的帖子
-
RE: openmv4h7plus自测故障
-
selftest自检,显示COLOR BARS TEST FALLED 是什么回事?
Self Test Example
This example shows how your OpenMV Cam tests itself before being allowed out
of the factory. Every OpenMV Cam should pass this test.
import sensor
import pybdef test_int_adc():
adc = pyb.ADCAll(12)
# Test VBAT
vbat = adc.read_core_vbat()
vbat_diff = abs(vbat - 3.3)
if vbat_diff > 0.1:
raise Exception("INTERNAL ADC TEST FAILED VBAT=%fv" % vbat)# Test VREF vref = adc.read_core_vref() vref_diff = abs(vref - 1.2) if vref_diff > 0.1: raise Exception("INTERNAL ADC TEST FAILED VREF=%fv" % vref) adc = None print("INTERNAL ADC TEST PASSED...")
def test_color_bars():
sensor.reset()
# Set sensor settings
sensor.set_brightness(0)
sensor.set_saturation(3)
sensor.set_gainceiling(8)
sensor.set_contrast(2)# Set sensor pixel format sensor.set_framesize(sensor.QVGA) sensor.set_pixformat(sensor.RGB565) # Enable colorbar test mode sensor.set_colorbar(True) # Skip a few frames to allow the sensor settle down for i in range(0, 100): image = sensor.snapshot() # color bars thresholds t = [ lambda r, g, b: r < 70 and g < 70 and b < 70, # Black lambda r, g, b: r < 70 and g < 70 and b > 200, # Blue lambda r, g, b: r > 200 and g < 70 and b < 70, # Red lambda r, g, b: r > 200 and g < 70 and b > 200, # Purple lambda r, g, b: r < 70 and g > 200 and b < 70, # Green lambda r, g, b: r < 70 and g > 200 and b > 200, # Aqua lambda r, g, b: r > 200 and g > 200 and b < 70, # Yellow lambda r, g, b: r > 200 and g > 200 and b > 200, ] # White # color bars are inverted for OV7725 if sensor.get_id() == sensor.OV7725: t = t[::-1] # 320x240 image with 8 color bars each one is approx 40 pixels. # we start from the center of the frame buffer, and average the # values of 10 sample pixels from the center of each color bar. for i in range(0, 8): avg = (0, 0, 0) idx = 40 * i + 20 # center of colorbars for off in range(0, 10): # avg 10 pixels rgb = image.get_pixel(idx + off, 120) avg = tuple(map(sum, zip(avg, rgb))) if not t[i](avg[0] / 10, avg[1] / 10, avg[2] / 10): raise Exception( "COLOR BARS TEST FAILED." "BAR#(%d): RGB(%d,%d,%d)" % (i + 1, avg[0] / 10, avg[1] / 10, avg[2] / 10) ) print("COLOR BARS TEST PASSED...")
if name == "main":
print("")
test_int_adc()
test_color_bars() -
openmv4h7plus自测故障
Self Test Example
This example shows how your OpenMV Cam tests itself before being allowed out
of the factory. Every OpenMV Cam should pass this test.
import sensor
import pybdef test_int_adc():
adc = pyb.ADCAll(12)
# Test VBAT
vbat = adc.read_core_vbat()
vbat_diff = abs(vbat - 3.3)
if vbat_diff > 0.1:
raise Exception("INTERNAL ADC TEST FAILED VBAT=%fv" % vbat)# Test VREF vref = adc.read_core_vref() vref_diff = abs(vref - 1.2) if vref_diff > 0.1: raise Exception("INTERNAL ADC TEST FAILED VREF=%fv" % vref) adc = None print("INTERNAL ADC TEST PASSED...")
def test_color_bars():
sensor.reset()
# Set sensor settings
sensor.set_brightness(0)
sensor.set_saturation(3)
sensor.set_gainceiling(8)
sensor.set_contrast(2)# Set sensor pixel format sensor.set_framesize(sensor.QVGA) sensor.set_pixformat(sensor.RGB565) # Enable colorbar test mode sensor.set_colorbar(True) # Skip a few frames to allow the sensor settle down for i in range(0, 100): image = sensor.snapshot() # color bars thresholds t = [ lambda r, g, b: r < 70 and g < 70 and b < 70, # Black lambda r, g, b: r < 70 and g < 70 and b > 200, # Blue lambda r, g, b: r > 200 and g < 70 and b < 70, # Red lambda r, g, b: r > 200 and g < 70 and b > 200, # Purple lambda r, g, b: r < 70 and g > 200 and b < 70, # Green lambda r, g, b: r < 70 and g > 200 and b > 200, # Aqua lambda r, g, b: r > 200 and g > 200 and b < 70, # Yellow lambda r, g, b: r > 200 and g > 200 and b > 200, ] # White # color bars are inverted for OV7725 if sensor.get_id() == sensor.OV7725: t = t[::-1] # 320x240 image with 8 color bars each one is approx 40 pixels. # we start from the center of the frame buffer, and average the # values of 10 sample pixels from the center of each color bar. for i in range(0, 8): avg = (0, 0, 0) idx = 40 * i + 20 # center of colorbars for off in range(0, 10): # avg 10 pixels rgb = image.get_pixel(idx + off, 120) avg = tuple(map(sum, zip(avg, rgb))) if not t[i](avg[0] / 10, avg[1] / 10, avg[2] / 10): raise Exception( "COLOR BARS TEST FAILED." "BAR#(%d): RGB(%d,%d,%d)" % (i + 1, avg[0] / 10, avg[1] / 10, avg[2] / 10) ) print("COLOR BARS TEST PASSED...")
if name == "main":
print("")
test_int_adc()
test_color_bars()