OpenMV H7 communication with arduino mega

I have an OpenMV H7, I try to connect with arduino mega. I also tried the UART, SPI and I2C communications. It was not work. I would like to achieve that, if the camera detects a color or anything, for example, it should send a signal/message to the arduino. And the arduino must handle the sent data within a condition.

Arduino example: if(data == 1){ Serial.println(“camera found color”}

Can you send programs about them?

I look forward to hearing from you soon. I hope you can help me.

Bendeguz Eigner

For informed help, please read and follow the instructions in the "How to get the best out of this forum" post, linked at the head of every forum category.

Post code as text, using code tags, rather than as screen shots.

# Multi Color Blob Tracking Example
#
# This example shows off multi color blob tracking using the OpenMV Cam.

import sensor, image, time, math

# Color Tracking Thresholds (L Min, L Max, A Min, A Max, B Min, B Max)
# The below thresholds track in general red/green things. You may wish to tune them...




#thresholds = [(18, 59, -5, 66, -6, 38), # generic_red_thresholds
              #(27, 64, -49, -8, 9, 33),  # generic_green_thresholds
              #(18, 82, -3, 14, 42, 66)]    # generic_yellow_thresholds



thresholds = [(4, 39, 23, 63, 16, 48), # generic_red_thresholds
              (6, 46, -47, -26, 7, 39),  # generic_green_thresholds
              (47, 57, 1, 22, 52, 61),    # generic_yellow_thresholds
              (1, 39, -20, 31, -9, 27),    # H
              (0, 24, -17, 10, -12, 21),   # S
              (1, 13, -12, 10, -7, 11)]   # U


              #(0, 15, 0, 40, -80, -20)] # generic_blue_thresholds
# You may pass up to 16 thresholds above. However, it's not really possible to segment any
# scene with 16 thresholds before color thresholds start to overlap heavily.

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
#sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking

#sensor.set_brightness(3)
#sensor.set_contrast(3)

clock = time.clock()

# Only blobs that with more pixels than "pixel_threshold" and more area than "area_threshold" are
# returned by "find_blobs" below. Change "pixels_threshold" and "area_threshold" if you change the
# camera resolution. Don't set "merge=True" becuase that will merge blobs which we don't want here.

while(True):
    clock.tick()
    img = sensor.snapshot()
    for blob in img.find_blobs(thresholds, pixels_threshold=100, area_threshold=100):
        # These values depend on the blob not being circular - otherwise they will be shaky.
        print("blob.cx() = ", end=' ')
        print(blob.cx(), end=' ')
        print("blob.cy() = ", end=' ')
        print(blob.cy(), end=' ')
        print("blob.code() = ", end=' ')
        print(blob.code())
        if(blob.code() == 1):
            print("piros")
        if(blob.code() == 2):
            print("green")
        if(blob.code() == 4):
            print("yellow")
        #if(blob.code() == 8):
            #print("H")
        #if blob.elongation() > 0.5:
            #img.draw_edges(blob.min_corners(), color=(255,0,0))
            #img.draw_line(blob.major_axis_line(), color=(0,255,0))
            #img.draw_line(blob.minor_axis_line(), color=(0,0,255))
        # These values are stable all the time.
        img.draw_rectangle(blob.rect())
        img.draw_cross(blob.cx(), blob.cy())
        # Note - the blob rotation is unique to 0-180 only.
        #img.draw_keypoints([(blob.cx(), blob.cy(), int(math.degrees(blob.rotation())))], size=20)
    #print(clock.fps())

[szinek_felismerese_red,yellow,green.py|attachment](upload://nyrLisVWFuycqxfIA17vlehpdYA.py) (3,0 kB)
I would like to communicate with openMV h7 and arduino mega

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.