14浏览
查看: 14|回复: 0

[ESP8266/ESP32] 基于ESP32-S3 AI CAM的重力加速度测定实验原型设计与实践...

[复制链接]
  一直想做一个测定重力加速度的实验,寒假期间使用NubiaZ60Pro手机拍摄了自由落体视频并进行数据分析,完成了实验结果测定。虽然得到的实验结果有些变差,大约为9.92m/s²,但应该也还在允许范围之内。拿到ESP-S3AICAM后,我比较关心是够能够取得流式视频。只有取得流式视频才有可能进行后续的数据分析进而得到相应的实验结果。
  经过对camwebserver提供的网页进行分析得到提供流式视频的网址:http://camwebserverip:81/stream。
  根据https://wiki.dfrobot.com.cn/SKU_DFR1154_ESP32_S3_AI_CAM提供的视频图传教程,烧录指定的程序CameraWebServer,启动之后根据串口监视器中提供的IP地址进行访问。
  设置视频宽度、高度并开启stream,保险起见,关闭该网页页面,然后运行如下获取流式视频程序代码,若需要中断视频则可以按Q键实现退出。

import cv2
#url = 'http://your_esp32_cam_ip_address:your_esp32_cam_port/stream'
url = 'http://192.168.6.101:81/stream'  # 自己的esp32视频流地址
cap = cv2.VideoCapture(url)

if not cap.isOpened():
    print("Failed to open video stream!")
    exit()

# 设置视频编码器和输出文件
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 60.0, (1920, 1080))  #60帧,视频宽1920,高1080
while True:
    ret, frame = cap.read()
    if not ret:
        print("从视频流中获取视频帧失败!")
        break
    resized_frame = cv2.resize(frame, (1920, 1080))  # 调整帧的尺寸
    out.write(resized_frame)  # 写入调整后的帧到输出文件
    cv2.imshow('frame', resized_frame)    # 显示调整后的帧
    if cv2.waitKey(1) & 0xFF == ord('q'):  # 按下 'q' 键退出循环
        break
cap.release()
out.release()
cv2.destroyAllWindows()

  后续数据处理分析得到重力加速度的过程可以参考https://github.com/linkallatcn/cv_amga,或扫描二维码基于ESP32-S3 AI CAM的重力加速度测定实验原型设计与实践...图1进行查阅。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail