导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. sqph
    3. 楼层
    S
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    sqph 发布的帖子

    • wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?

      wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?

      发布在 OpenMV Cam
      S
      sqph
    • wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?

      wifi扩展板 长时间发送请求,会出现不响应的情况,
      需要重新打开一次IDE 才能生效,是不稳定吗?
      如何确保在使用中WiFi扩展板可以一直收到请求?

      发布在 OpenMV Cam
      S
      sqph
    • 测距扩展板测量五次的误差出现10mm情况?如何解决?是正常现象吗?

      GetDistance
      15
      16
      16
      15
      27
      0_1692168743342_9974424e-8884-4847-8bb8-1ba7aaa2003c-image.png

      发布在 OpenMV Cam
      S
      sqph
    • Wifi扩展板的IP经常变怎么办?为啥会变

      Wifi扩展板的IP经常变怎么办?为啥会变

      发布在 OpenMV Cam
      S
      sqph
    • 距离传感器是不是有误差,相同高度,每次测量的都不一样?

      距离传感器是不是有误差?相同高度,每次测量的都不一样。

      https://singtown.com/product/50448/openmv-distance-shield/

      发布在 OpenMV Cam
      S
      sqph
    • RE: 星瞳科技自己的串口通信的板子 和 距离传感器是不能一起使用的吗?

      @kidswong999 我用的是USB-TTL模块 CP2102, 但是用p0p1不好使,用P4P5就好使,请问这是为什么?

      图为串口板子
      0_1692012810319_22559d07-ec7d-4eb4-a620-cdabd25a79f8-image.png

      图为串口使用的P0P1
      0_1692012848112_367a4d38-6b42-4a12-8d58-d5f306bd9b12-image.png

      发布在 OpenMV Cam
      S
      sqph
    • RE: OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      @kidswong999 麻烦大佬回复下

      发布在 OpenMV Cam
      S
      sqph
    • RE: 如何通过向OpenMV发送不同的命令获取距离或者是图片?

      @kidswong999 不是用Http请求的,是用的Socket通信 TCP 请求的,发完参数,如何返回图片呢,直接 client.send()吗?这个可以实现吗

      发布在 OpenMV Cam
      S
      sqph
    • RE: OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      @kidswong999 请帮忙看一下上面的步骤正确不?

      发布在 OpenMV Cam
      S
      sqph
    • RE: OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      根据实际大小算出的像素比例

      0_1691738853662_32_32.png

      1,摄像机高度固定,色块放至摄像头中间
      2,图中绿色色块的实际大小 15mm*15mm
      3,算出比例为,SmartArmCommon.ratioCalculator = 15/32 ;
      4,要移到的二维码key 在摄像头中的cx ,cy为 key_cx,key_cy
      5, 算出要移动的实际距离如下:
       double posx = (key_cx - cx) / SmartArmCommon.ratioCalculator;//
       double posy = (key_cy - cy) / SmartArmCommon.ratioCalculator;//
      

      根据大佬回复中的提示,以上步骤是否正确? 谢谢,但是实际上有很大误差,不能准确移到二维码处

      发布在 OpenMV Cam
      S
      sqph
    • 如何通过向OpenMV发送不同的命令获取距离或者是图片?

      如何通过向OpenMV发送不同的命令获取距离或者是图片?

      import sensor, image, time, network, usocket, sys, json
      
      from machine import I2C
      from vl53l1x import VL53L1X
      import time
      import gc
      gc.enable()
      
      i2c = I2C(2)
      distance = VL53L1X(i2c)
      
      SSID ='HSAuto'     # Network SSID
      KEY  ='Aa123456'     # Network key
      HOST =' 10.119.96.163'     # Use first available interface
      PORT = 8082  # Arbitrary non-privileged port
      dic = {'Fn':0,'Q':1,'T':2,'L':3,'Space':4,'Up':5,'Down':6,'N':7}
      
      sensor.reset()                      # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.VGA)    # Set frame size to QVGA (320x240)
      sensor.skip_frames(time = 2000)
      sensor.set_auto_whitebal(True)
      sensor.set_auto_gain(True)
      #srnsor.set_
      #sensor.set_hmirror(True) #水平方向翻转
      #sensor.set_vflip(True) #垂直方向翻转
      # 二维码的识别img = sensor.snapshot()
      img_w = 640
      img_h = 480
      
      #OV5640 VGA 的像素大小
      f_x = (2.8 / 3.6736) * img_w # 默认值
      f_y = (2.8 / 2.7384) * img_h # 默认值
      #图像的中心位置 分辨率的一半
      c_x = img_w * 0.5 # 默认值(image.w * 0.5)
      c_y = img_h * 0.5 # 默认值(image.h * 0.5)
      
      # Init wlan module and connect to network
      print("Trying to connect... (may take a while)...")
      wlan = network.WINC()
      wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK)
      # We should have a valid IP now via DHCP
      print(wlan.ifconfig())
      # Create server socket
      s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
      # Bind and listen
      print(HOST)
      s.bind([HOST, PORT])
      s.listen(5)
      print(s)
      
      s.setblocking(True)
      def start_streaming(s):
          try:
              print ('Waiting for connections..')
              client, addr = s.accept()
              img_w = 640 * 0.5
              img_h = 480 * 0.5
              client.settimeout(2.0)
              print ('Connected to ' + addr[0] + ':' + str(addr[1]))
              data = client.recv(32)
              recv_data = str(data,'utf-8')
              print(recv_data)
              clock = time.clock()
              img = sensor.snapshot().lens_corr(0.9)
              if recv_data == "GetDistance":
                   Camera_Distance = int(distance.read()) - 11
                   print(Camera_Distance)
                   client.send(str(Camera_Distance)) # +"mm \r\n"
              elif "GetImage" in recv_data:
      
                  clock = time.clock()
                  frame = sensor.snapshot()
                  cframe = frame.compressed(quality=35)
                  client.send("HTTP/1.1 200 OK\r\n" \
                              "Server: OpenMV\r\n" \
                              "Content-Type: image/jpeg\r\n\r\n" )
      
                  print(len(cframe))
                  client.send(cframe)
                  client.send("END")
      #            client.close()
      #            cframe = img.compressed(quality=40)
      #            client.write(cframe)
                  client.close()
              client.close()
              gc.collect()
              print(gc.mem_free())
          except OSError as e:
              print(e)
      
      while (True):
          try:
              start_streaming(s)
          except OSError as e:
              print("socket error: ", e)
              sys.print_exception(e)
      
      
      
      
      发布在 OpenMV Cam
      S
      sqph
    • RE: fx,fy指相机在x轴和y轴上的焦距,cx,cy是相机的光圈中心,这组参数是摄像头生产制作之后就固定的

      相机内参矩阵是相机的重要参数之一,它描述了相机光学系统的内部性质,例如焦距、光学中心和图像畸变等信息。在计算机视觉和图形学中,相机内参矩阵通常用于将图像坐标系中的像素坐标转换为相机坐标系中的三维坐标,或者将相机坐标系中的三维坐标投影到图像坐标系中的像素坐标。

      相机内参矩阵通常表示为一个 3x3 的矩阵,具有以下形式:

      fx 0 cx
      0 fy cy
      0 0 1

      其中 (cx, cy) 是图像的光学中心,表示图像平面中心对应于相机坐标系的投影坐标。fx 和 fy 是相机在 x 和 y 方向上的焦距,表示相机坐标系中的一个单位长度在图像坐标系中对应的像素数。如果图像的 x 和 y 方向的焦距相等,则可以使用一个标量 f 来表示它们的平均值。

      在计算机视觉和图形学中,像素坐标系和相机坐标系之间的转换是非常重要的,因为它允许我们将从相机中捕获的图像中的像素位置转换为三维场景中的物体位置。下面是一个简单的 C++ 代码示例,演示如何将像素坐标系中的坐标转换为相机坐标系中的坐标。

      假设我们有一个相机,它在世界坐标系中的位置为 (cx, cy, cz),相机朝向的方向为 (fx, fy, fz)。假设我们有一个图像,它的分辨率为 (width, height),我们想要将像素坐标 (u, v) 转换为相机坐标系中的坐标 (x, y, z)。

      首先,我们需要计算像素坐标系中的坐标 (u, v) 对应的图像平面上的点 (px, py)。对于具有焦距 f 的相机,可以使用以下公式将像素坐标 (u, v) 转换为图像平面上的点 (px, py):

      px = (u - width/2) / f
      py = (v - height/2) / f

      其中 width 和 height 是图像的分辨率,f 是相机的焦距。

      接下来,我们可以使用相机的内参矩阵将 (px, py) 转换为相机坐标系中的坐标 (x, y, z):


      [y] = [0 fy cy 0] [py]
      [z] [0 0 1 0] [1 ]

      其中 [fx fy cx cy] 是相机的内参矩阵,它包含相机的焦距和光学中心的位置。

      发布在 OpenMV Cam
      S
      sqph
    • RE: OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      Dobot MGB400 机械臂

      1_1691649334956_微信图片_20230807105945.jpg 0_1691649334956_3.jpg

      发布在 OpenMV Cam
      S
      sqph
    • OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?

      发布在 OpenMV Cam
      S
      sqph
    • 星瞳科技自己的串口通信的板子 和 距离传感器是不能一起使用的吗?

      星瞳科技自己的串口通信的板子 和 距离传感器是不能一起使用的吗?

      1_1691383136776_微信图片_20230807123829.jpg 0_1691383136776_微信图片_20230807123826.jpg

      如果我想用串口板子 和 距离传感器 该怎么办?

      自己单独买一个串口通信的?距离传感器用星瞳的
      还是单独买一个距离传感器的板子?串口通信的用星瞳的

      发布在 OpenMV Cam
      S
      sqph
    • RE: 加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,

      串口扩展板型号 CP2102

      发布在 OpenMV Cam
      S
      sqph
    • RE: 加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,

      单独运行获取距离是可以的
      range: mm 282

      通过串口获取的时候报错
      Uart error: [Errno 110] ETIMEDOUT

      Traceback (most recent call last):
      File "", line 101, in
      File "vl53l1x.py", line 144, in read
      OSError: [Errno 110] ETIMEDOUT

      发布在 OpenMV Cam
      S
      sqph
    • RE: 加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,
      
      # Blob Detection and uart transport
      import sensor, image, time
      from pyb import UART
      import json
      import sys
      from machine import I2C
      from vl53l1x import VL53L1X
      import time
      i2c = I2C(2)
      distance = VL53L1X(i2c)
      print("range: mm ", distance.read())
      sensor.reset()                      # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.VGA)    # Set frame size to QVGA (320x240)
      sensor.skip_frames(time = 2000)
      sensor.set_auto_whitebal(True)
      sensor.set_auto_gain(True)
      #srnsor.set_
      sensor.set_hmirror(True) #水平方向翻转
      sensor.set_vflip(True) #垂直方向翻转
      uart = UART(3, 115200)
      while (True):
          try:
             if uart.any():
                  recv_data = uart.read().decode()
                  print("range: mm ", distance.read())
                  uart.write(distance.read())
          except OSError as e:
              print("Uart error: ", e)
              sys.print_exception(e)
      
      
      
      发布在 OpenMV Cam
      S
      sqph
    • 加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,

      Uart error: [Errno 110] ETIMEDOUT
      Traceback (most recent call last):
      File "", line 96, in
      File "", line 49, in start_streaming
      File "vl53l1x.py", line 144, in read
      OSError: [Errno 110] ETIMEDOUT

      2_1691377212792_微信图片_20230807105920.jpg 1_1691377212792_微信图片_20230807105938.jpg 0_1691377212791_微信图片_20230807105945.jpg

      发布在 OpenMV Cam
      S
      sqph