• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 串口通信。 用串口助手发送hex和utf8的1 都不行



    • import sensor, image, time,pyb
      from pyb import UART
      import json

      thresholds = [(-5,50, 20, 80, 0, 60), # generic_red红_thresholds
      (10, 80, -50, -20, 0, 40), # generic_green绿_thresholds
      (15,75, -40, 35, -60, 0)] # generic_blue蓝_thresholds
      uart = UART(3, 9600)

      ledR= pyb.LED(1)
      ledG= pyb.LED(2)
      ledB= pyb.LED(3)
      led= pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.

      def R():
      ledR.on() #亮灯
      time.sleep(1000) #延时150ms
      ledR.off() #暗灯
      time.sleep(500)
      def B():
      ledB.on() #亮灯
      time.sleep(1000) #延时150ms
      ledB.off() #暗灯
      time.sleep(500)
      def G():
      ledG.on() #亮灯
      time.sleep(1000) #延时150ms
      ledG.off() #暗灯
      time.sleep(500)

      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
      clock = time.clock()

      def twoley():
      while(True):
      clock.tick()
      img = sensor.snapshot()
      for code in img.find_qrcodes():
      img.draw_rectangle(code.rect(), color =(255,0,0))
      message =code.payload()
      a_er=int(message)
      uart.write(message)
      print(message)
      if a_er==123:
      while(True):
      R()
      G()
      B()
      print(a_er)

              elif a_er==132:
                  while(True):
                      R()
                      B()
                      G()
                      print(a_er)
      
              elif a_er==213:
                  while(True):
                      G()
                      R()
                      B()
                      print(a_er)
              elif a_er==231:
                  while(True):
                      G()
                      B()
                      R()
                      print(a_er)
      
              elif a_er==312:
                  while(True):
                      B()
                      R()
                      G()
                      print(a_er)
              elif a_er==321:
                  while(True):
                      B()
                      G()
                      R()
                      print(a_er)
      

      def yanshe():
      while(True):
      clock.tick()
      img = sensor.snapshot()
      for blob in img.find_blobs([thresholds[0]], pixels_threshold=200, area_threshold=200):
      img.draw_rectangle(blob.rect())
      img.draw_cross(blob.cx(), blob.cy())
      a=blob.cx()
      for blob in img.find_blobs([thresholds[1]], pixels_threshold=200, area_threshold=200):
      img.draw_rectangle(blob.rect())
      img.draw_cross(blob.cx(), blob.cy())
      b=blob.cx()
      for blob in img.find_blobs([thresholds[2]], pixels_threshold=200, area_threshold=200):
      img.draw_rectangle(blob.rect())
      img.draw_cross(blob.cx(), blob.cy())
      c=blob.cx()
      time.sleep(500)
      if a<b :
      if a<c :
      if b<c :
      a_yanse='123'
      else :
      a_yanse='132'
      else :
      a_yanse='312'
      else :
      if b<c :
      if a<c :
      a_yanse='213'
      else :
      a_yanse='231'
      else :
      a_yanse='321'

                  print(a_yanse)
                  uart.write(a_yanse[0])
                  time.sleep(1000)
                  uart.write(a_yanse[1])
                  time.sleep(1000)
                  uart.write(a_yanse[2])
                  time.sleep(1000)
      

      while(True):

        if uart.any():  uart.readchar()
        flag=uart.read()
      

      if flag=='1':
      twoley()

      elif flag=='0':
      yanshe()



    • 什么叫做不行,请说具体的现象



    • 运行之后 一段时间之后画面就定格了, 用串口助手发送0 和1 都不工作。 openmv也一直在工作



    • 所以你的问题是如何使用串口接收数据?



    • 是的。 还有接受的数据类型 是什么



    • 串口的问题,一两句话说不清。

      等过两天串口接受的视频上传上去。



    • 好吧。 谢谢