作者:王超
首发:电子电路开发学习
最近在网上看到这个,挺好玩的,分享给大家。
其实作者在2014年就开始做这个了,最开始是这样的:
看完了,是不是觉得似曾相识呢?这不就是2017年的电赛B题目的升级版吗?17年电赛那个题目,常用的解决方案是把摄像头放在上面,而且小球只在平板上进行二维运动。这个项目是把摄像头放在了透明玻璃的下面,小球的高度和和摄像头采集的小球图像大小成比例关系,在二维运动的基础上升级为了三维立体运动。
这是一个基于步进电机 + Teensy 4.0 + OpenCV实现的乒乓球控制系统,整个项目实现原理的框图如下:
主要分为上位机和下位机,上位机是通过摄像头采集的图像,使用OpenCV算法进行图像处理,计算出小球的三维位置,然后通过PID算法,计算出每个步进电机所需要运动的角度,然后通过串行总线把数据发送给下位机Teensy开发板,开发板根据上位机发来的数据,解析出4个步进电机所需的角度,然后通过PWM输出脉冲信号给驱动。
主要元器件
- 1块Teensy 4.0开发板,主频600MHz,基于i.MX RT1060,可以使用Arduino开发。
- 1个 DM442S 步进电机驱动器,可同时驱动4路步进电机
- 4个Nema 17 42步进电机
- 1个48V 8A的电源
- 1个高分辨率的See3CAM\_CU135摄像头
- 1台安装OpenCV的Windows电脑主机
Teensy 4.0开发板,使用NXP RT1062,可以当做Arduino来使用。
所使用到的步进电机和驱动器。
3D打印的五金零部件。
组装效果。
资料下载
GitHub开源地址: https://github.com/T-Kuhn/HighPrecisionStepperJuggler
推荐阅读
欢迎关注公众号:电子电路开发学习,id:mcu149。
更多电子电路、单片机、嵌入式、物联网等技术文章欢迎关注电子电路开发学习专栏。