0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino制造出一个精灵宝可梦Go孵蛋车?

笑过就走 来源:DevicePlus 作者:DevicePlus 2023-02-23 11:17 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

poYBAGPzEF6AewVEAATAPoUb1G0655.jpg

精灵宝可梦Go是全世界最受欢迎的手机游戏之一。捕捉精灵宝可梦有很多技巧,但是今天我们将构建一个Arduino精灵宝可梦Go车,使您可以更容易地完成孵蛋。精灵宝可梦Go孵蛋车旨在协助玩家孵化游戏中的蛋,最终通过制造一辆车并携带您的个人手机来完成。我们将对常规的RC车进行修改,并加载一些组件,例如用于蓝牙控制的HC06模块和用于检测物体以在撞上障碍物前转弯的HC-SR04距离传感器。游戏中有三种类型的蛋,车辆具有调整机制来适应不同的孵蛋里程。在本教程中,我们将介绍两种蛋(3km和5km)。

目标

1.车辆根据用户指定的距离进行移动。

2.车辆具有避障功能

3.通过蓝牙进行无线控制。

硬件

• Arduino Uno

• RC车

• L9110S H桥

• HC-SR04 超声波传感器

• HC06 蓝牙模块

软件

• Arduino IDE

• 蓝牙终端应用程序

• https://github.com/formus14/PokemonGO

工具

• 面包板

• 螺丝刀

• 烙铁

组件概述
I. H桥

poYBAGPzEGSANwmyAASTmnzkad0097.jpg

图1:L9110S H桥步进电机双直流驱动控制器

pYYBAGPzEGeAUGdzAABesH6Zg64806.jpg

图2:H桥概要图示

H桥中的H来自上图中四个电机连接所构成的H形。我们使用H桥而不是直接使用Arduino的GPIO主要因为我们想用外部电源来给电机供电,这样就不会影响Arduino的电源供给。

下表显示了H桥如何根据开关状态进行操作。S1和S2是前部电机的端子,而S3和S4是后部电机的端子。

S1 S2 S3 S4 Result
1 0 0 1 电机右转
0 1 1 0 电机左转
0 0 0 0 电机未被使用
0 1 0 1 电机制动
1 0 1 0 电机制动
1 1 0 0 短路
0 0 1 1 短路
1 1 1 1 短路

表1:H桥开关表

II. 超声波传感器

pYYBAGPzEGuAQsVdAAO3qGHvbws888.jpg

图3:HC-SR04 超声波传感器

我们将一个典型的HC-SR04超声波传感器用于实现避障功能。超声波传感器发出一个高频脉冲,然后计算脉冲的反射波返回的时间。该时间对应于传感器与最近的障碍物之间的距离。传感器有两个开口:一个发射超声波,另一个接收超声波。

III. 蓝牙模块

pYYBAGPzEHGAKcHpAAYAm4yUeJw875.jpg

图4:HC06蓝牙模块

如果您想要找一个低成本的蓝牙模块,那么HC06能够满足您的要求。虽然它的覆盖范围很小(10米),但是可以用于有低功耗要求的项目中。

HC-06模块有两种模式:主模式和从模式。主设备具有存储最后配对的从设备的功能。主设备将搜索最后配对的从设备,直到建立连接。如果按下“唤醒”按钮,则模块内存将会丢失并开始搜索新的设备。

在我们的项目中,我们将遥控器(移动电话)作为主设备,将RC车作为从设备。只要RC车在连接范围内,就会自动与主设备连接。

步骤1:构建一个小车!

对于本项目,我选择购买一辆RC车并进行拆解和改造,以添加前面所提到的其他组件。您也可以使用任何可用的车辆。毕竟,这只是一辆有两台电机(每个电机都有两个端子)的小车。

poYBAGPzEHaAB6a4AAPhL9Z5UUc870.jpg

图5:改造前的RC车

poYBAGPzEHuADd3XAAS4wSGR8vs316.jpg

图6:RC车(底视图)

我在这里想要做的是移除所有不再使用的塑料覆盖物/装饰物。我直接通过拧开RC车两侧的螺钉完成了拆卸。

pYYBAGPzEIKANuoTAARfsumA5tY286.jpg

图7:无盖RC车及其主控制器板

卸下盖子后,您会看到一些电线和主控制器板。之后不会使用这个主控制器板,因此可以将其卸下。我们需要保留用于与轮胎机械连接的电机电线,其他的电线就可以拆卸了。

pYYBAGPzEIeAdyktAAL73g2Jglo740.jpg

图8:RC车基底

您会看到两根电线从两个电机引出。您可以通过将9V电池的正极连接到一根电线,然后将另一根电线接地来对其进行测试。如果您不想执行查找电机电线端子这一步骤,则可以购买两个装有直流3-6v齿轮电机的塑料轮胎轮,就像此处的这样。

步骤2:设置蓝牙模块

我们将使用一个简单的蓝牙终端应用程序来发送数据,并检查模块是否捕获了串行监视器上的数据。

首先,我们必须按照下图所示方式连接模块:

poYBAGPzEIuAPqCBAAENhxPYQSU052.jpg

图9: HC06蓝牙模块与Arduino UNO的连接/© c-sharpcorner

上传该草图,并确保上传草图时断开TX和RX,因为这些引脚负责与PC进行UART通信

https://github.com/formus14/PokemonGO/tree/master/Milestone%20sketches/BluetoothTest

如果您不熟悉Arduino通信协议,请随时查阅我们的Arduino通信协议教程!

成功上传后,按照接线图重新连接TX和RX,然后下载该应用程序:Bluetooth Terminal HC-05

pYYBAGPzEI-AZTM4AAGFVCA829g826.jpg

这个应用程序可以使我们通过蓝牙对RC车进行控制,而且您可以用应用程序终端传送任何类型的指令。该应用程序有5个按钮,您可以通过按下其中的按钮来选择发送特定的指令。

当您打开应用程序时,它将自动搜索可用的设备。根据模块版本,您将会找到名为“HC-05”或“HC-06”的模块。连接到模块,您将看到嵌入式LED在闪烁。

pYYBAGPzEJGAYLtkAAEwTKq1cw4306.jpg

如下图所示,将应用程序连接到模块后,嵌入式LED将停止闪烁,并在整个连接过程中都保持稳定亮起。您可以以此来判断蓝牙是否成功配对!

poYBAGPzEJSAEM3OAADmLwkillU720.jpg

现在可以尝试编写任何文本,并注意Arduino串行监视器上所发生的情况。

pYYBAGPzEJeACxCTAAEASKoTvVw817.jpg

我们写入“test ..”看看会发生什么。

pYYBAGPzEJmAUWwXAAEUkj9E0nI375.jpg

将串行监视器中的波特率设置为9600,您将在屏幕上看到文本信息

注意:发送文本之前,请以9600波特率打开串行监视器。

如果有任何问题,请重新检查连线和嵌入式LED(如果它们在非稳定状态下发光)。

poYBAGPzEJyAfqy8AAB2zFHJuJw354.jpg

在应用程序上创建控制按钮

在同一应用程序上,您可以添加发送特定数据的按钮。例如,按钮“Press Here”可以发送字符串“I love Pokemon GO”或者任何您想发送的指令。

我选择创建5个按钮来用于5种不同的功能:2个按钮用于控制方向(左右)。1个按钮用于停止车辆,2个按钮用于控制在找到您的宝可梦之前所需要的孵蛋里程(3km或5km)。

poYBAGPzEJSAEM3OAADmLwkillU720.jpg

想要选择按钮名称对应发送的数据,请用力按下任意按钮,控制窗口将会被打开。

pYYBAGPzEKGAJ-FQAAFCB203XYA309.jpg

您可以指定按钮的名称(我选择了“Left”),然后在指令部分指定从应用程序发送的数据或字符。我选择了“l”,可以在之后的Arduino代码中再次确认是否接收到了“l”。

pYYBAGPzEKSAG3jtAAFDF7Lzyuc265.jpg

与“Left”按钮相同,您可以指定按钮名称和相应要发送的数据。只要发送的字符与您在Arduino代码中指定的字符相匹配,发送什么字符都可以。但是还是建议您使字符与名称一致(如“r”代表“Right”,“l”代表“Left”等等),以免造成混淆。

poYBAGPzEKeAS67VAAGCTxS_mS4294.jpg

按钮3Km将字符“3”发送给Arduino,以激活计时器,一旦接收到该字符,计时器便开始计算车辆所行驶的距离。

pYYBAGPzEKuATqCLAAFC4cC6zyA289.jpg

按钮5Km将字符“5”发送给Arduino,以激活计时器,一旦接收到该字符,计时器便开始计算车辆所行驶的距离。

pYYBAGPzEK-AV_r-AAFB3aNhHL8327.jpg

字符“s”命令车辆停止。添加此按钮用于紧急情况下停车或一般状况下让车辆停止。

poYBAGPzELGAK1oEAADfTRWGW78467.jpg

现在,我们已经添加了5个按钮。

您还可以通过写入字符或指令来激活这些功能,就像我们之前通过发送“testing..”来实现的那样。我们通过写入“b”添加了汽车向后移动的功能。您可以通过组合传感器的多种函数来创建自己的功能(如自动泊车)。

步骤3:将H桥与电机端子连接

您需要将H桥连接到2个电机和Arduino上,如下所示:

poYBAGPzELSAHe70AAFKD6pI3wA779.jpg

图10:H桥连接

草图 :

https://github.com/formus14/PokemonGO/tree/master/Milestone%20sketches/Hbridge

步骤4:确定汽车速度/行驶距离

确定行驶距离的最简单方法是速度x行驶时间。

pYYBAGPzELeARE5kAACvXCKm5Mw757.jpg

图11:速度,距离和时间之间的关系

在假设车的速度恒定的前提下,我使用了外部测量的方式来确定车辆的平均速度。还有其他可以用于确定距离的方法:可以使用GPS模块,通过旋转编码器测量车轮的RPM或者使用霍尔效应传感器。这些方法都会消耗主电池的能量,而这是我希望尽量避免的。您只需要将起点和终点突出地显示出来,然后测量出车辆经过该范围所花费的时间,就可以简单地计算出速度。

poYBAGPzELuALrYNAAQG12Y0SqU927.jpg

图12:测量车辆所要行驶区域的固定距离

我标记了汽车所行使区域的多个固定距离,然后检测出所花费的时间,从而计算出汽车的平均速度。

在我的项目中,车辆在2秒内行驶了1.1米,速度=(1.1) / (2)= 0.55 米/秒。

我又进行了几次试验来测量速度。每次试验的速度几乎都相同。使用这些数据,我们可以计算出车辆达到所需里程花费的时间:

1.1 米 — 2 秒 ( 2/60 分钟)

5 米 — 9 秒 ( 9/60 分钟)

3,000 米 ( 3 Km) — 1.5 小时

5,000 米 ( 5 Km) — 2.5 小时

• 行驶3 Km所需时间 = ( 3000 X (9/60 ) ) / 5 = 90 分钟 = 1.5 小时

• 行驶5 Km所需时间 = ( 5000 X (9/60 ) ) / 5 = 150 分钟 = 2.5 小时

• 行驶10 Km所需时间 = ( 10000 X (9/60 ) ) / 5 = 300 分钟 = 5 小时

这些结果与三个重要因素相关:电机功率,电池功率以及增加了部件之后车辆的总重量。

步骤5:将手机放在车辆上并上传最终草图

我已经用塑料手机壳和橡皮筋将手机固定在了车辆上,如图13所示。您可以使用3D打印制造手机壳,或者直接使用任何可以达到相同目的的手机壳。

对于该项目,我们不需要使用任何库。所有的需要的函数都在主草图中。

不要忘记更改定义的车速,使其与以下所示的已定义部分中的车速匹配:

poYBAGPzEL-Ab63eAAHFwd50Am8904.jpg

pYYBAGPzEMSALY6nAATDtomJA5c175.jpg

图13:最终的精灵宝可梦Go车(侧视图)

poYBAGPzEMiAAdGrAAQwzKIqQqM202.jpg

图14:最终的精灵宝可梦Go车(顶视图)

技巧和窍门

• 每当您上传草图时,都要从Arduino断开RX线,否则会出现编译错误。这是因为引脚0和1负责UART通信,开发板将会接收来自PC端的代码。

• 一定要选择可充电电池。我使用过Nikko可充电电池组。这种电池在RC车领域非常受欢迎。

• 选择H桥模块而非H桥PIC,PIC很容易发热,H桥模块板上嵌有散热器,可以防止这种情况产生。

在这里,我们构建了低成本、低功耗、功能强大的精灵宝可梦Go车。完成组装很容易,但是仍有很多可以提升的地方。我们可以添加更多的传感器来实现高级功能,也可以通过升级电机和电池来加快行驶速度。我们还可以使用覆盖范围更大的蓝牙模块来实现更长距离的控制。请继续关注这个有趣项目的进展!如果您有任何改进建议,请随时与我们分享!

98a6030aed62b88b844576ac7e5d7a85?s=128&d=mm&r=g

Rabindranath Andujar

Rab拥有计算物理学博士学位,是计算、自动化和复杂系统领域的专业科研人员。Rab还拥有电子机器人和数字制造方面的经验。

审核编辑黄宇

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

    关注

    2548

    文章

    50698

    浏览量

    752048
  • 蓝牙
    +关注

    关注

    114

    文章

    5771

    浏览量

    169831
  • 超声波
    +关注

    关注

    63

    文章

    2990

    浏览量

    138241
  • Arduino
    +关注

    关注

    187

    文章

    6464

    浏览量

    186665
收藏 人收藏

    评论

    相关推荐

    Pokemon GO点燃AR HoloLens发展有何难题?

    精灵宝GO」(Pokemon GO)游戏的问世,彻底点燃AR(augmented reality,扩增实境)的热潮,其应用与商业模式也大
    发表于 08-01 10:16 929次阅读

    如何理解制造出这块电路板

    想理解制造出这块电路板该从哪里入手?要哪些东西 哪里找?
    发表于 02-25 19:29

    pokemon go 显示GPS signal not found解决方法?用垦鑫达s60测试

    原因: 安装游戏第次进入游戏的时候,会出现是否允许给《精灵宝:GO》定位。(安装
    发表于 07-20 14:04

    制造出高品质的线路板需要哪些条件

    `请问制造出高品质的线路板需要哪些条件?`
    发表于 03-11 15:03

    请问ARM是怎么制造出来的?

    今天突然有问题单片机,ARM是怎么制造出来的?哪位高手能简单讲讲制造过程吗?还有问题,从电脑往单片机里面下载程序是二进制代码,这些进入
    发表于 07-13 10:40

    如何采用BiCom3工艺制造出款功能丰富的电压反馈放大器?

    双极晶体管性能特点是什么如何采用BiCom3工艺制造出款功能丰富的电压反馈放大器?
    发表于 04-20 06:56

    芯片是怎样制造出来的

    芯片是怎样制造出来的?有哪些过程呢?
    发表于 10-25 08:52

    AR+LBS游戏暂不过审,支付宝的AR实景红包还是能体验下新技术

    现象级 AR 手游《精灵宝GO》在 2016 年引发的轰动效应,吸引了国内游戏从业者与玩家的留意,些人认为,《
    发表于 01-11 10:17 1215次阅读

    AR领域再起风浪 Niantic宣布正式收购Seismic Games

    继今年2月份收购AR公司EscherReality之后,《精灵宝GO》开发商Niantic宣布收购Sei
    的头像 发表于 07-19 16:33 3210次阅读

    制造工艺制造出来的芯片能与以目前最先进的技术所制造出来的芯片相媲美

    DARPA的电子复兴计划重金资助麻省理工学院Max Shulaker牵头的项目,该项目的目标是利用单片3D集成技术,来使以用了数十年之久的旧制造工艺制造出来的芯片能与以目前最先进的
    的头像 发表于 08-16 08:54 5421次阅读

    Elyland推出款结合了区块链技术的AR游戏

    两年前,《精灵宝Go》将AR带入了手游玩家的眼帘,两年后,游戏领域又出现了款创新的AR游戏《Clash&
    发表于 08-24 09:18 913次阅读

    涨姿势,辆汽车是怎么制造出来的?

    咱们看下汽车是怎样制造出来的。
    的头像 发表于 06-17 16:59 6161次阅读

    日本制造出款能够感知疼痛的智能机器人

    日本科学家宣称已经制造出种可以“感觉”疼痛的机器人,专家称它们离1982年科幻电影《银翼杀手》中的人造人不远了。
    发表于 02-24 15:43 1333次阅读

    工业4.0时代,增强现实技术如何变革制造

    说到增强现实,很多人可能首先会想到曾在夜之间席卷全球,风靡世界的精灵宝AR游戏。
    发表于 03-16 10:21 686次阅读

    芯片是如何制造出来的

    什么是芯片?芯片是导体元件产品的统称,是集成电路的载体。芯片作为半导体领域的核心科技产物,在多个领域有着至关重要的位置。那么芯片是如何制造出来的呢?接下来给大家简单介绍下芯片制造
    的头像 发表于 01-04 19:12 1.4w次阅读