wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?
sqph 发布的帖子
-
wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?
-
wifi扩展板 长时间发送请求,会出现不响应的情况,需要重新打开一次IDE 才能生效,是不稳定吗?
wifi扩展板 长时间发送请求,会出现不响应的情况,
需要重新打开一次IDE 才能生效,是不稳定吗?
如何确保在使用中WiFi扩展板可以一直收到请求? -
RE: 如何通过向OpenMV发送不同的命令获取距离或者是图片?
@kidswong999 不是用Http请求的,是用的Socket通信 TCP 请求的,发完参数,如何返回图片呢,直接 client.send()吗?这个可以实现吗
-
RE: OpenMV怎么控制3DoF机械臂?用AprilTag3获取转换成机械臂坐标?
根据实际大小算出的像素比例
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发送不同的命令获取距离或者是图片?
如何通过向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)
-
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] 是相机的内参矩阵,它包含相机的焦距和光学中心的位置。
-
星瞳科技自己的串口通信的板子 和 距离传感器是不能一起使用的吗?
星瞳科技自己的串口通信的板子 和 距离传感器是不能一起使用的吗?
如果我想用串口板子 和 距离传感器 该怎么办?
自己单独买一个串口通信的?距离传感器用星瞳的
还是单独买一个距离传感器的板子?串口通信的用星瞳的 -
RE: 加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,
单独运行获取距离是可以的
range: mm 282通过串口获取的时候报错
Uart error: [Errno 110] ETIMEDOUTTraceback (most recent call last):
File "", line 101, in
File "vl53l1x.py", line 144, in read
OSError: [Errno 110] ETIMEDOUT -
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)
-
加入距离传感器 和 串口通信传感器,串口可以通信,但是获取距离的时候,距离传感器报错,
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