最近在网上看到了个视频,挺好玩的,分享给大家。
其实作者在2014年就开始做这个了,最开始是这样的:
看完了,是不是觉得似曾相识呢?这不就是2017年的电赛B题目的升级版吗?17年电赛那个题目,常用的解决方案是把摄像头放在上面,而且小球只在平板上进行二维运动。这个项目是把摄像头放在了透明玻璃的下面,小球的高度和和摄像头采集的小球图像大小成比例关系,在二维运动的基础上升级为了三维立体运动。
上位机实时状态显示
这是一个基于步进电机 + Teensy 4.0 + OpenCV实现的乒乓球控制系统,整个项目实现原理的框图如下:
软件整体框图
主要分为上位机和下位机,上位机是通过摄像头采集的图像,使用OpenCV算法进行图像处理,计算出小球的三维位置,然后通过PID算法,计算出每个步进电机所需要运动的角度,然后通过串行总线把数据发送给下位机Teensy开发板,开发板根据上位机发来的数据,解析出4个步进电机所需的角度,然后通过PWM输出脉冲信号给驱动。
输出的控制方波
Teensy 4.0开发板,使用NXP RT1062,可以当做Arduino来使用。
Teensy 4.0开发板
所使用到的步进电机和驱动器。
步进电机和驱动器
3D打印的五金零部件。
零部件
零部件
组装效果。
组装完成
组装完成
GitHub开源地址:
https://github.com/T-Kuhn/HighPrecisionStepperJuggler