Giter Site home page Giter Site logo

dovehai / yi_4kplus_for_klipper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jdiaan/yi_4kplus_for_klipper

0.0 0.0 0.0 253 KB

这是包含了小蚁4K+运动相机API以及在3d打印Klipper固件中Gcode调用相机功能的项目

License: GNU Affero General Public License v3.0

Shell 0.32% Python 99.68%

yi_4kplus_for_klipper's Introduction

yi_4kplus_for_klipper

这是包含了小蚁4K+运动相机API以及在3d打印Klipper固件中Gcode调用相机功能的项目

这是我的第一个上传的项目,目前还在学习阶段,在使用上或各种地方有各种问题请提出,感谢! 😘😘😘

镇楼图

简要说明:

为何:

小蚁4K+运动相机是很久很久以前我买的了,这么多年过去了已经是吃灰的状态了。现在,刚好需要给3d打印机一个比较好的记录相机,为何不拿出来重新利用呢?经过几天研究发现这相机其实可以实现很多自己的控制功能,好用!当实现功能后,我发现其实这个就是厂商对应手机APP无线控制相机的方法吧!那么比如说佳能相机,它是否也有可以自己实现类似操作的方法?那么有没有大哥指一条明路?😊

实现:

  • Python操作小蚁4K+的实现:
    • 感谢以下参考🎉🎉🎉

      综上原理,可以实现python对小蚁4k+相机进行控制!

    • 简易流程:
      1. 前提:相机需要在添加打开Wifi和Telnet的文件夹和文件来实现这两个功能
      2. 相机成功连接上路由
      3. 脚本TCP连接相机并发送连接的命令
      4. 控制相机修改拍摄设置、更改拍摄模式、拍照、录像等等操作,并会接收响应操作的响应数据
      5. 通过Telnet打开相机上的FTP服务
      6. 通过接收的响应数据获取到视频或图片的文件名,并通过FTP下载到本地文件夹
      7. 本地其它操作✌️
  • Klipper中G-Code操作Python代码的实现(由Klipper插件实现):
    • Klipp关于插件说明的在代码总览
    • 由于我太菜的原因没有看懂👆,所以看了官方其它的插件代码,才悟出了一些些道理。因此没有感谢对象,感谢一下我自己。😘

    注:你可以使用官方的API服务器来获取信息,可以去看一下API服务器。如果你使用了Moonraker服务,那我更加推荐你去使用他们的API服务器!有HTTP接口,操作非常简单快捷。本库没有加入实现HTTP API的方法,但会在下方写如何操作的说明。

    • 简易流程(详细):
      1. 将脚本文件(可以是包也可以是单文件)放到你安装的klipper软件文件夹底下,具体路径为:{你的klipper软件文件夹}/klippy/extras/底下
      2. 文件中有专门的使klipper识别的方法和添加G-Code的方法
      3. 在Klipper启动时会读取里面的插件脚本,并加载进环境中
      4. 就能用你添加的G-Code调用脚本啦✌️

问题:

  • 小蚁4K+:
    • 添加使用说明文档
    • 已经好多年前的相机了,现在貌似挺难买的,价格还不划算😎👉👓🥹
    • 无法实现上电开机!需要加个外置装置?需要修改电路?有没有大哥搞一个?😍
    • RTSP服务使用的是手机APP连接相机的那个流服务,不是直播那个。我不晓得怎么更改这个流服务的设置,应该有方法吧😢
  • Klipper插件:
    • 正常调用没问题,但是放在打印机结束代码中调用就出现了无法下载的问题
    • 添加更改拍摄参数的代码
    • 整理代码
    • 虽然在小蚁API中写了几乎有的指令,但是在插件中只是用没几个,因为我自己已经够用了。这么老的设备除我之外应该没啥人使用了,所以没写

文件:

注意事项:

  1. 长时间使用时可以拿出小蚁4k+的电池,直接用type-c口连接5V电源,以此来减少发热对电池的影响

    🌟但是,由于小蚁4k+无法上电开机,因此供电电源重启后可能会无法连接至相机

如何安装:

  1. 在上位机python中安装第三方库
    • requests库:pip install requests(使用monraker的HTTP API才需要安装,本插件暂时不需要)
    • exifread库:pip install ExifRead用来获取图片中的Exif信息
    • Klipper中使用了python虚拟环境,python应该为
  2. 需要安装FFmpeg,但是一般你已经安装完其它插件的情况,上位机应该已经安装完成了 (如果你需要图片合成视频的话,否则不需要)
  3. console_enable.script文件放入相机用的SD卡根目录
  4. Wi-Fi.DEBUG整个文件夹放入相机用的SD卡根目录
  5. 修改Wi-Fi.DEBUG/start.sh这个文件内的代码
    • 将{Wifi名}修改为你的无线名称
    • 将{Wifi密码}修改为你的无线密码
    • 将{静态IP地址}修改为你设置的ip地址

    原代码:/usr/local/share/network/start.sh WIFI_MODE=sta STA_SSID={Wifi名} STA_PASSWD={Wifi密码} STA_FREQ=1 STA_NAME=yi_cam_1 STA_SCAN=1 CHIP_TYPE=43340 WIFI_MAC=58:70:C6:AA:AA:AA STA_IP={静态IP地址}
    我的wifi名是:密码是啥不告诉你
    我的wifi密码是:shabugaosuni
    我设置一个没有使用的IP:192.168.1.10
    所以最终的代码为:/usr/local/share/network/start.sh WIFI_MODE=sta STA_SSID=密码是啥不告诉你 STA_PASSWD=shabugaosuni STA_FREQ=1 STA_NAME=yi_cam_1 STA_SCAN=1 CHIP_TYPE=43340 WIFI_MAC=58:70:C6:AA:AA:AA STA_IP=192.168.1.10
    聪明的你学会了吗?

  6. yi_46_plus文件放到你安装的klipper路径下的/klippy/extras/yi_4k_plus/底下
  7. yi_4k_plus.cfg文件放到/home/orangepi/printer_data/config底下,应该都是一样的吧
  8. 你可以修改yi_4k_plus.cfg中的配置 其实改不改都无所谓,因为我还没写相关的代码呢
    • ip: 192.168.199.16 # *IP地址
    • output_path: ~/timelapse/ # *最终合成文件地址
    • frame_path: /tmp/yi4kplus # 缓存的位置
    • ffmpeg_binary_path: /usr/bin/ffmpeg # ffmpeg的位置
    • =======================================
    • port: 7878 # 端口,不修改就行
    • resolution: 12MP (4000x3000 4:3) fov:w # 照片分辨率
    • shutter: auto # 快门速度
    • meter: center # 测光模式
    • wb: 5500k # 色温
    • color: flat # 色彩模式
    • iso_min: 100 # 最小感光度
    • iso: 400 # 感光度
    • sharpness: medium # 锐度
    • ev: 0 # 曝光补偿
    • stamp: off # 时间戳
    • quick_view: off #
    • file_type: jpg # 保存文件类型
  9. 重启整个上位机
  10. enjoy🎉

如何使用:

  1. 你可以直接试试这些G-Code打在控制台来操作小蚁4k+的相机了 (请不要使用开头带_的命令,除非你知道你在干什么)
    • YI_GET_PHOTO_OPTIONS
    • YI_CONNECT_CAMERA
    • YI_TAKE_PHOTO
    • YI_DOWNOLD
    • YI_RENDER_VIDEO
    • YI_DISCONNECT_CAMERA
      你可以点击?-> 输入 YI 来查询命令列表啦 mainsail查询命令
  2. 可以将G-Code放在你想放的位置

其它:

单独的API使用测试文件(请自行修改必要的代码):

请看Yi4k+_API说明.md 一个测试文件camera_api_test.py(无法直接使用,需要简单配置一下模块环境)

Klipper插件教程:

很简单就一句话概括!请看klipper插件.md (👈这是一句话)

如何使用Moonraker API:

请看文档Moonraker_API说明.md

感谢:

感谢资料获取的库和网站
Xiaomi_Yi_4k_Camera -> https://github.com/irungentoo/Xiaomi_Yi_4k_Camera.git
yi4kplus-video-export -> https://github.com/ffonord/yi4kplus-video-export.git
rigacci.org -> https://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/sjcam-8pro-ambarella-wifi-api

yi_4kplus_for_klipper's People

Contributors

jdiaan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.