×

黑客路易开源分享

消耗积分:2 | 格式:zip | 大小:0.31 MB | 2022-10-28

kmno4

分享资料个

描述

Looping Louie、Gino Pilotino 或 Aviador Loco - 无论您在本国如何称呼这款游戏,这对儿童和成人来说都非常有趣。

我们破解了世界知名的游戏,以便将其提升到一个新的水平。通过使用我们基于传感器的简单电机控制解决方案来驱动两个 BLDC 电机。一个放在底座上,另一个放在 Looping Louie 的手臂上,我们可以完全控制设置 - 这可能是目前最有趣的两轴机器人!

pYYBAGNY296ASGG2AAPoDgSafow084.png
黑客路易
 

基本游戏模式

在基本游戏模式中,我们模仿您所知道的游戏。它以恒定的慢速旋转底座,同时防止飞行员跌落到四个杠杆下方(在原版中这是机械解决的 - 现在由软件完成),因此您可以正确击中他。您必须使用杠杆将飞行员向上推,这样它就不会撞到您的谷仓并撞倒一只鸡(硬币) - 如此简单,如此令人上瘾。在玩的过程中,您可能会记得飞行员有时会卡在顶部 - 这已经成为过去,因为我们的控制器在欣赏那里的景色后将他推回去,您可以将手放在控制杆上。

开始新游戏
 

为游戏增添趣味

由于我们可以完全控制两个 BLDC 电机,因此我们完全有能力改变游戏的物理特性。我们引入了改变模式:

速度:慢/中/快
 
将重力从“月球”更改为增加重力设置
 

也:

狂人速度模式
 

您会更改哪个设置来为游戏增添趣味?在下面的评论中让我们知道!

自主模式

我们还引入了一种自主模式,其中飞行员遵循给定的飞行路径。在这个例子中是一个正弦波:

跟随正弦波形的飞行员
 

虚拟玩家

只有你和你爱的人在玩吗?您现在可以添加任意数量的虚拟玩家。它们被编程为在飞行员触手可及的情况下将其向上推。施加的力是随机选择的 - 但要小心,这些家伙可能很讨厌!

四个虚拟玩家竞争
 

如何破解游戏

力学

我们更新了连接臂的转子以及底座以适应新推出的电机。

该臂连接到 T-Motor GB2208 BLDC 万向节电机。它位于 3D 打印的更新转子中(STL:“left_arm”、“motor_holder”、“right arm”、“baseplate”、“TLE5012_round”和“adapter”):

 
 
 
poYBAGNY2-CAW_fLAABWJUwqITE346.png
 
1 / 2更新转子
 

“TLE5012_round”包含一个定制设计的 PCB(附加文件),具有 TLE5012B 磁性角度传感器。这会将手臂的实际角度反馈给我们的控制器。一个 6x2、5 毫米直径的磁铁位于电机轴的末端。

poYBAGNY2-KAeWwZAAAzLNDipPI310.png
将带有径向磁铁的 TLE5012 安装在轴上。
 

转子下方装有 T-Motor GB54-1。它转动整个转子和臂设置。这两个部分通过 3D 打印的“GB54-1_LL_adapter”组合在一起。它的上环粘在转子底板上。

pYYBAGNY2-aASNVYAABk5iL4XrY434.png
底座电机组装
 

电机背面还有另一个传感器,用于反馈整个设置的位置。上电机的所有信号线和电源线都通过底座电机的空心轴馈电。电机已经配备了一个完美的集电环来做到这一点。一个 10x7x3 直径的环形磁铁粘在集电环的转动件上,电缆穿过它并放在一侧。电缆屏蔽层可防止电缆磨损。第二个磁性角度传感器位于这些电缆的正下方。

 
 
 
pYYBAGNY2-mAdE8oAAEO7a7ltdw934.png
 
1 / 3
 

“Cover_Base”隐藏了 GB54-1,让我们回到原来的样子。杠杆和谷仓可以很容易地连接到它上面。

pYYBAGNY2-yAEsSoAABZBy3-aBE757.png
底盖
 

电子产品

电子设备非常简单。我们正在使用一个微控制器——Relax Lite 套件上的 XMC4700它读取传感器值,处理电机控制算法,进行所有系统控制并通过 HMI(套件上的两个按钮)进行输入。此外,我们使用两个 3 相功率级来驱动我们的 BLDC 电机 - BLDC-SHIELD_IFX007T一个直接在控制器板的顶部,另一个在它的 X2 侧靠近它,IN 和 INH 引脚通过电线连接。要了解手臂和底座的位置,使用了定制 PCB 上的两个TLE5012B 磁性角度传感器每个都使用自己的 SPI 通道,连接到扩展的排针 X1 和 X2。

//Sensor 1 and 2 init
#define PIN_SPI1_SS0   38 // P0.3
#define PIN_SPI1_MOSI  39 // P0.1 -----> connect 0.1 und 0.0! (3-Wire SPI)
#define PIN_SPI1_MISO  65 // P0.0
#define PIN_SPI1_SCK   40 // P0.10

#define PIN_SPI2_SS0   96 // P0.12
#define PIN_SPI2_MOSI  71 // P3.11 -----> connect 3.11 und 3.12! (3-Wire SPI)
#define PIN_SPI2_MISO  97 // P3.12
#define PIN_SPI2_SCK   70 // P3.13

//Motor init
const int U_base = 11;     const int U = 81;
const int V_base = 10;     const int V = 83;
const int W_base = 9;      const int W = 72;
const int EN_U_base = 6;   const int EN_U = 86;
const int EN_V_base = 5;   const int EN_V = 84;
const int EN_W_base = 3;   const int EN_W = 95;
poYBAGNY2_SAR8MoAANORNs_FfE108.png
连接图
 

软件

整个软件是在 ArduinoIDE 中开发的,它使用 XMCforArduino v1.6.0 和 TLE5012 库 v2.0.1XMCforArduino.

整个代码基于三个基于定时器的中断:

第一个中断:BLDC 电机控制 - 读取角度值并在 3 个电机相位上设置正确的 PWM 值

第二个中断:系统控制 - 处理系统的所有控制算法

第三个中断:HMI - 使用控制器板上的两个按钮来调整设置和模式

我们尽最大努力让它得到很好的评论,你可以找到它 -快乐的黑客!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !