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



    • import sensor
      import time
      import image
      import display
      from machine import UART # 调用串口通信
      
      sensor.reset()  # 初始化sensor函数
      sensor.set_pixformat(sensor.RGB565)  # 设置RGB565
      sensor.set_framesize(sensor.QQVGA)  # QQVGA分辨率160X120
      #sensor.set_hmirror(Ture) # 水平方向翻转
      #sensor.set_vfilp(Ture) # 垂直方向翻转
      sensor.set_auto_gain(False) # 自动增益
      sensor.set_auto_whitebal(False) # 自动白平衡
      sensor.skip_frames(10)  # 跳过10张照片,等待感光元件变稳定
      lcd = display.SPIDisplay() # 调用lcd屏幕
      
      Range = (0,0,160,120) # 设置感兴趣区域
      uart = UART(3, 115200) # 使用串口3,波特率为115200
      
      pink_threshold = (83, 23, 19, 124, -73, 70) # 粉色阈值
      
      while(True):
          img = sensor.snapshot()  # 从感光芯片获得一张图像并返回给img
          #img = sensor.snapshot().lens_corr(strength = 1.8,zoom = 1.0) # 从感光芯片获得一张图像,校准畸变处理,并返回给img
          lcd.write(sensor.snapshot()) # 拍照的数据写入lcd中并显示出来
          for blob in img.find_blobs([pink_threshold],roi = Range, pixels_threshold = 100, area_threshold = 100, merge = True, margin = 10):
              img.draw_rectangle(blob.rect()) # 画框
              img.draw_cross(blob.cx(),blob.cy()) # 画十字
              print(blob.cx(),blob.cy()) # 打印坐标
              list = [blob.cx(),blob.cy()] # 放到列表中
              data = bytearray([0xFF,list[0],list[1],0xFE]) # 发送数据包(帧头,数据,数据,帧尾)
              uart.write(data)# 串口发送请在这里粘贴代码
      


    • 串口发送数据一般是两种形式:字符串、16进制。 如果你想发送十进制的数据过去,原封不动的发过去,那你可以在openmv中将10进制的数据转化为字符串形式,给字符串加上帧头和帧尾,缝合到一起,32端接收到字符串后,可以直接对数据进行裁切,直接获取10进制的数据。不用像16进制那样,还需要再对数据进行一个ascii形式的转换(data[0]-'0')。