DIY平衡台游戏:小球请不要滚下去


编者注:本项目来自Instructables,项目原作者为Ramy Mounir。

本项目是为满足南佛罗里达大学的Make课程的项目要求而设计的。我的名字叫Ramy Mounir,是南佛罗里达大学的Make课程的一名学生创客。在本项目中,我使用一块Arduino作为微控制器打造了一个能用舵机控制的游戏平台。该平台有三种操作模式,支持0~2位玩家。

  • 0位玩家模式:不管盒子是怎么放置的,平台都始终处于水平状态。

  • 1位玩家模式:玩家使用控制杆操作,确保小球位于平台之上。

  • 2位玩家模式:和1位玩家模式类似,但2位玩家时可能通过灯光对平台进行控制。

第一步:组件

  • Arduino Uno

  • 面包板

  • 控制杆模组

  • 2个舵机

  • 2个光电池

  • 3轴加速度计/陀螺仪(MPU 6050)

  • 2个330Ω电阻

  • 9V电池组(带开关)

  • 线材等

第二步:3D打印组件

我使用的是Solidworks设计我的3D打印组件,采用的材料是常见的PLA塑料。至于舵机等装置,即可以选择使用螺钉的形式固定,也可以使用强力胶进行固定。

点击下载我的3D打印文件

第三步:控制系统

控制系统的结构示意图如下:

继电器的主要结构由线圈、触点构成,并且线圈和触点本身就是隔离的。通过控制继电器线圈的得电情况就能实现触点的动作。典型的单片机驱动继电器的电路图如下。

其中Arduino从红色框所表示的传感器和控制器上获得信号,然后输出PWM信号到执行器(绿框表示的舵机),然后由舵机控制平台的方向。

光控制时,控制系统的设计也大致类似。

第四步:连线

系统的线路连接如下所示:

  • 两颗光电池和330Ω电阻一起连接分压电路中,信号输入Arduino的A0和A1。

  • 加速度计连接到A4和A5(SDA和SCL)。

  • 控制杆连接到A2和A3。

  • 两个舵机分别连接到PWM数字引脚3和5。

第五步:Arduino程序

Arduino程序分成了两个部分:主要部分和功能部分。

主要部分基本上是一个循环函数中的开关。其可以调用模式检查函数,然后根据得到的返回值定向到特定的功能部分函数。(程序点击这里下载。)

功能部分包含5个主要函数:

  • setplane():在设置函数中,该函数用来设置平台的水平

  • checkbuttons():该函数用来检查系统现在所处的模式。如果控制杆不在其正常位置上,该函数会返回特定的数值。类似地,如果其探测到一个比特定值大一点的数值,它又会返回另一个值。如果没有探测到任何东西,那么就返回默认值。

  • followlight():通过控制系统对实际光值和期望光值的偏差的计算来保持光电池和光源之间的特定距离。

  • balance():和上面的followlight()函数的目的相同,只不过其数值来源于加速度计输出的值。

  • followjoystick():将控制杆输入的信号映射到输出到舵机的PWM信号上。

第六步:完成

到这里项目就完成了,可以开始玩耍了!

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

本人自动化专业毕业,刚毕业就是做的单片机开发,做了三年,18年初离职,并决定转行,接下来失业闭关学习了大半年(这个不推荐),没存款,期间全靠借呗花呗和朋友帮助撑着.后来终于在18年尾成功转行进了机器人公司做机器人应用.

生成海报
点赞 0

Abin

我还没有学会写个人说明!

相关推荐

Openwrt基于MT7628平台下更换flash

过完年了,新的一年先祝大家新年快乐,由于年前买了一个基于MT7628平台下的4G路由模块的改装,发现标配的flash有点小,遇上过年,也没有什么技术支持了,就想