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

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

3天内不再提示

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

海阔天空的专栏 来源:Travis Foss 作者:Travis Foss 2025-01-26 17:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:Travis Foss

一个反复提出的有趣问题是控制 XRP 的不同方法是什么。我碰巧发现了适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器,Kitronik 有一篇关于将此控制器与他们的 Pico 自主机器人平台一起使用的精彩文章,该平台也是一个基于 Raspberry Pi Pico 的机器人。我认为由于这两个平台相似,因此使用 XRP 会更容易过渡。

我开始深入研究他们的 GitHub 存储库[KitronikLtd/Kitronik-Pico-Mini-Controller-MicroPython (github.com)] ,我在 GitHub 页面的自述文件部分注意到的第一件事是控制器和机器人都需要一份KitronikPicoWBluetooth.py 来自此页面[,Kitronik-Pico-W-Bluetooth-MicroPython/KitronikPicoWBluetooth.py 位于 main · Kitronik Ltd/Kitronik-Pico-W-Bluetooth-MicroPython (github.com)] 。我将此文件的副本下载到我的计算机上以供将来使用。

浏览 Pico Controller.py 后,我发现该文件无需更改即可与 XRP 配合使用。由于控制器上需要 Kitronik 蓝牙和 Pico 控制器文件,因此我将 Kitronik_Pico_W_Bluetooth 和 Pico 控制器文件安装到我要在控制器中使用的 Pico W 上

接下来,我开始深入研究机器人的代码。在 Pico ARP.py 文件的顶部,我注意到他们导入了 PicoAutonomousRobotics 文件。因此,我决定深入研究该文件,该文件位于此处,[Kitronik-Pico-Autonomous-Robotics-Platform-MicroPython/PicoAutonomousRobotics.py at main · KitronikLtd/Kitronik-Pico-Autonomous-Robotics-Platform-MicroPython (github .com)] 。在查看此文件时,我注意到他们正在使用的许多功能已经在 XRP 上设置的库中调用。这让我很好奇是否可以在不使用这个库的情况下让 XRP 工作。然后我再次研究 Pico ARP.py 文件。我知道我将尝试在不使用前面提到的库的情况下运行 XRP,因此我首先注释掉它调用该库及其使用的函数的行。我首先删除了设置越野车的开始部分。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

然后我查看了下一部分,其中 LED 灯亮起以显示机器人已开启。知道它使用了我不会使用的库,然后我决定编写一个名为 test_leds 的新函数。然后立即调用该函数,以便机器人准备好后 LED 就会闪烁。目前,代码设置为在关闭前闪烁 3 次,但是,通过更改代码中第 20 行括号中的数字,可以轻松将其更改为闪烁更多次。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

代码中的下一系列行定义了与控制器连接相关的函数,因此我将这些行保持原样,而不进行任何更改。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

然后代码调用将 LED 设置为绿色,以表明机器人已准备好进行控制。我决定对此代码发表评论,因为我认为此时不需要它。使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

代码的下一部分控制机器人的运动。在这一部分,我意识到我可以使用 XRP 库控制机器人。

我决定让其中一个按钮起作用来测试代码更改。我从第 74 行开始,该行指出如果按下控制器上的向上按钮,就会导致机器人向前移动。我决定尝试使用我根据 XRP 上的原始驱动器示例设置的命令,而不是使用 Kitronik 示例中使用的 buggy.motorOn 命令。我将文件命名为 Driving_for_controller,并设置了几个不同的函数:drive_straight、drive_backwards、point_turn_left 和 point_turn_right。这些功能的设置方式与机器人的设置方式类似,机器人会施加一定的力并移动一小段时间,在本例中为 1/2 秒。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

我还必须在代码开头调用库才能使其正常工作。我在顶部添加了这些行。添加后,我在代码的前部部分输入了 Drive Straight 命令。使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

在 XRP 上进行测试后,它确实有效,但是,机器人会结结巴巴,因为这会导致机器人向前行驶,然后在继续执行下一个前进命令之前停止。这不是我希望机器人执行的方式。因此,我开始思考想法,并想为什么不按下按钮来设置电机的力度级别,直到释放按钮?为了实现这一点,我将代码更改为按下按钮时的drivetrain.set_effort命令。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

然后我转到 else 语句,当按钮被释放时,并将左右轮的作用力设置为 0。检查之间的睡眠时间已经设置,所以我想我会像示例中那样尝试一下。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

令我惊讶的是,这段代码运行得非常好。它运行得非常好,我决定保持原样,然后继续设置其他方向按钮。您会注意到,在第 76、80、84 和 88 行,我注释掉了我在代码中设置的先前驱动方法,并注释了我调用控制器库驱动的行。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

最后,我留下了 A 和 B 按钮,没有为它们添加任何代码,除了添加的打印语句以便我可以确认这些按钮是否正常工作。

使用适用于 Raspberry Pi Pico 的 Kitronik 迷你控制器控制您的 XRP 机器人

根据我正在从事的项目,我可以设置这些按钮来完成特定任务,但是为了测试,我不确定我会使用什么,所以我只是给它们留下了打印语句。在稍后考虑这一点时,我可以使用它们将力度设置为一半或使用它们来控制伺服器拾取物体,但是,在编写本指南之前我从未深入研究过这一点。这可能是未来项目的一部分。

现在编码部分已在 XRP 上完成,最后一步是对其进行测试。首先,我将为控制器编程的 Pico W 插入控制器。接下来,我打开 XRP,一旦板载 Pico 上的灯开始闪烁,我就打开控制器。使用此代码,如果控制器和 XRP 之间的配对绑定成功,控制器上 Pico 上的 LED 将亮起并保持亮起状态。如果由于某种原因第一次没有发生这种情况,它似乎有助于重新启动控制器,然后它似乎会立即绑定。一旦控制器上的灯亮起,程序就应该启动并运行。将 XRP 放在有空间行驶的表面上并尝试一下。我在页面底部链接了完整的代码供您参考。

该控制器的一个奇妙之处在于,它具有通过模拟输入引脚添加操纵杆的引脚分配,以及带有其他断开的 IO 的额外按钮。我计划在未来的项目中尝试使用额外的按钮,但是目前还不需要。如果您想查看这方面的教程,请告诉我们,我可以将其放在一起。

以下是 XRP 的完整代码:

复制代码

从蓝牙导入BLE
从时间导入sleep_ms
#from PicoAutonomousRobotics ‎导入 KitronikPicoRobotBuggy
从KitronikPicoWBluetooth导入‎BLEPeripheral
#from Driving_for_controller import * from XRPLib.defaults import *
 ‎ 导入时间

#设置 Pico 自主机器人 ‎平台越野车#buggy = KitronikPicoRobotBuggy() 
‎ ‎ #将越野车速度设置为 50% 
‎ ‎ #speed = 50

#将 LED 设置为红色以显示其已打开#for i in range(4): 
‎ ‎ # buggy.setLED(i, (100, 0, 0)) 
‎ ‎ # buggy.show()

def  test_leds () :
board.led_blink( 3 )
时间.睡眠( 1 )
‎board.led_off()‎
‎ ‎
test_leds()‎

#设置蓝牙外设
外设 = BLEPeripheral(BLE())‎

#等待连接...

审核编辑 黄宇

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

    关注

    114

    文章

    17650

    浏览量

    190309
  • 机器人
    +关注

    关注

    213

    文章

    30612

    浏览量

    219678
  • XRP
    XRP
    +关注

    关注

    0

    文章

    4

    浏览量

    8595
  • Pico
    +关注

    关注

    0

    文章

    185

    浏览量

    18352
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Raspberry Pi Pico是什么

    Waveshare给介绍一款树莓派家族的新成员,Raspberry Pi Pico 是一款低成本,高性能的微控制器开发板,具有灵活数字接口
    发表于 07-14 07:02

    控制器开发板Raspberry Pi Pico

    树莓派基金会最新发布一款低成本、高性能的微控制器开发板Raspberry Pi Pico,新产品相比普通树莓派体积更小
    发表于 10-29 07:33

    DIY一个友好型自主机器人

    描述ISLA 自主机器人ISLA 项目是一个 DIY 友好型自主机器人,主要使用通孔组件,使得这种设计对于任何有钱、Raspberry Pi Pic
    发表于 07-13 06:18

    基于raspberry pi pico的EPS系统

    描述Sweet Manufacturing电子转向系统该项目是一个基于 raspberry pi pico 的 EPS(电动助力转向)系统。该项目使用汽车电池。该项目中使用的传感是转
    发表于 07-15 10:05

    Raspberry Pi 4/3B的Pico开发板

    英国 Raspberry Pi 设计的全新微控制器芯片。”从控制电器到操作灯光显示Raspberry
    发表于 07-26 07:14

    适用于Raspberry Pi的ADAU1452 + AD1934

    描述DSP 机器 3 - 适用于 Raspberry Pi 的高分辨率流媒体,ADAU1452 + AD1934DSP Machine 3 - 流媒体、数模转换
    发表于 08-31 06:21

    可视频直播的Raspberry Pi网络控制机器人

    本文档的主要内容详细介绍的是可视频直播的Raspberry Pi网络控制机器人
    发表于 03-17 15:31 14次下载
    可视频直播的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>网络<b class='flag-5'>控制</b><b class='flag-5'>机器人</b>

    树莓派 Raspberry Pi 设计的微控制器 RP2040迷你开发板Raspberry Pi Pico

    Waveshare给介绍一款树莓派家族的新成员,Raspberry Pi Pico 是一款低成本,高性能的微控制器开发板,具有灵活数字接口
    发表于 12-02 13:21 24次下载
    树莓派 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 设计的微<b class='flag-5'>控制器</b> RP2040<b class='flag-5'>迷你</b>开发板<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>

    适用于Raspberry Pi 4的Raspberry Pi Pico开发板

    电子发烧友网站提供《适用于Raspberry Pi 4的Raspberry Pi Pico开发板
    发表于 07-22 09:27 6次下载
    <b class='flag-5'>适用于</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>开发板

    Raspberry Pi Pico是什么?有哪些主要特点

    Raspberry Pi Pico 是一款具有灵活数字接口的低成本、高性能微控制器板。
    的头像 发表于 07-28 11:11 7897次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>是什么?有哪些主要特点

    适用于Raspberry Pi 3/4的Jamma街机板

    电子发烧友网站提供《适用于Raspberry Pi 3/4的Jamma街机板.zip》资料免费下载
    发表于 08-04 15:10 2次下载
    <b class='flag-5'>适用于</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3/4的Jamma街机板

    基于Raspberry Pi Pico的自主机器人ISLA

    ISLA 项目是一个 DIY 友好的自主机器人,主要使用通孔组件,这使得这种设计对于任何有钱的人来说都非常容易实现,一个 Raspberry Pi Pico 和一个烙铁。我决定这样做是
    发表于 12-26 16:38 0次下载

    适用于类人机器人的TI DLP® Pico™技术

    电子发烧友网站提供《适用于类人机器人的TI DLP® Pico™技术.pdf》资料免费下载
    发表于 08-23 09:26 0次下载
    <b class='flag-5'>适用于</b>类人<b class='flag-5'>机器人</b>的TI DLP® <b class='flag-5'>Pico</b>™技术

    使用串行连接通过 Raspberry Pi 增强XRP 项目

    指南更为高级。通过本指南,您将能够将 Raspberry Pi 连接到XRP,从而使XRP
    的头像 发表于 10-02 15:28 871次阅读
    使用串行连接通过 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 增强<b class='flag-5'>您</b>的 <b class='flag-5'>XRP</b> 项目

    Raspberry Pi Pico 2

    、可选的RISC‑V内核、增强的安全特性,以及升级的接口功能。该器件由RP235x微控制器平台提供支持,此平台也由Raspberry Pi设计。Pico 2将RP2350与4MB板载Q
    的头像 发表于 11-25 15:10 2173次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b> 2