Skip to content

MayCinco/c_AutoFocus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto Focus 助手

感谢B站网友alexlai2860基于C++的开源资料,站在前辈的肩膀上才能加快这个项目的开发进程。

本软件采用Python语言编写,python属于解释性的语言,在不同硬件平台上可通用。

硬件环境: 树莓派4b 4GB x1 原力N 一代电机 + 原装线 x1 原力N 对焦手柄 + 原装线 x1 自制线 x1 USB转TTL UART x1 英特尔 Realsense2 D435 深度相机 x1 USB Type C 数据线 x1 尼采激光雷达支架 x1

自制线制作方法:

  1. 原力N手柄提供了一头为type C,另一头是microUSB的原装线
  2. 原力N电机提供了两头为micro usb头的原装线。
  3. 为了不破坏原装线,制作由两个micro USB母口的DIY线。 手柄侧,microUSB母口出来的V+ 是8V给电机供电,GND是地,电源直供电机,不要连到树莓派。地需要连到树莓派,共地后,指令才能正常传输。 手柄线,micro USB母口D+是串口数据输出端TX, 接到在树莓派上的USB串口的RX. 树莓派的USB串口的TX则连到电机侧microUSB母口的D+。 看到这里就知道树莓派是接受手柄的指令,并且处理后把指令发给电机。

D435是一款深度相机,能够输出深度图和RGB图两种图像,深度图中在每个像素位置都有相对准确的距离数据。测量距离范围大概在18cm ~ 1000cm。

算法方面,请大家自行看代码了。

相机标定需要在命令行模式下输入镜头编号,镜头名称和最近对焦距离等参数后。在最近对焦距离和一些指定的距离上进行标定。短按CAL键则可录下一组标定数据,等所有距离标定完之后,会自动存储数据到参数文件。

如果想要树莓派开机则开启自动对焦,则需要通过systemctl新增开机启动的服务。如果启动为服务,需要手动标定镜头时,需要把这个服务给停掉。

默认执行sudo python3 main.py后,会自动校准一次镜头,让电机知道镜头的行程。然后就开始自动对焦。 短按手柄的录制键可以切换手动模式和自动对焦模式。手动模式时,树莓派将无条件转发手柄的指令到电机。 工作在自动模式时,短按CAL键可以切换AI(人脸识别+目标识别+中央区域识别自适应模式)模式和 中央区域识别两种模式。

开发环境: ubuntu 20.04 + python3.9 + realsense2 SDK

软件依赖一些包,重要的我记了一下: opencv-contrib-python==4.5.4.60 pyserial==3.5 numpy==1.25.0 pyrealsense

realsense2 SDK 需要进行编译, 比较繁琐,我记录在env_setup.txt里了。

总之,这个项目虽然开源了,应用还是比较繁琐。适合动手能力强的朋友。

About

AutoFocus with D435 and Nucleus N

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%