电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Pico:ed和Smart Cutebot入门介绍

Pico:ed和Smart Cutebot入门介绍

2023-06-13 | zip | 0.00 MB | 次下载 | 免费

资料介绍

描述

在本教程中,我将向您介绍Pico:edSmart Cutebot ,并提供一些有关CircuitPython的提示这些产品由ELECFREAKS制造,ELECFREAKS 是一家生产和销售 STEM 电子套件的公司我们将使用这两个对象一起使用 CircuitPython 编程语言制作一个用于教育目的的微型机器人

Pico:ed

Pico:ed 是一个小型开发板(他的形状总是让我想起吃豆人幽灵!)(部分)与最著名的Micro:bit兼容,但具有RaspberryPI RP2040作为微控制器单元 ( MCU )。

poYBAGSAhVuAZUOLAAcSeXQIiZc668.jpg
Pico:ED V2 与 Micro:bit。我都有而且我都喜欢
 

你会注意到我部分地使用了这个词:你知道我喜欢准确,所以这个词到期了。

起初我已经在 Pico:ed 上写了一个不同的 MCU:RP2040(双核 Cortex-M0+ @133MHz,2MB 闪存可扩展,265kB RAM )而不是 Nordic nRF51822(Cortex-M0 @16MHz,256kB闪存,16kB RAM )所以,从数字上看,Pico:ed 上使用的 MCU 更强大。在 Micro:bit 上使用 Microsoft Makecode:这允许图形化的类似 Scratch 的环境、Python 或 Javascript。在 Pico:ed 上,我们可以使用常见的 RP2040 Python分支(MicroPythonCircuitPython )或C++

CircuitPython 是最佳选择,因为 ELECFREAKS 和 Adafruit 用我们需要的所有库制作了 CircuitPython 固件。到 Micro:bit。这些功能是 IMU(惯性测量单元)和蓝牙无线电。

个人考虑很少:Micro:bit 上的蓝牙是使用的 MCU 的一个功能,因为 Nordic nRF51822 是用嵌入式蓝牙模块构建的。如果您需要这些功能,请考虑始终可以使用外部板添加 IMU 或无线电模块。

另一方面,Pico:ed 拥有 Micro:bit 没有的其他很酷的东西。Micro:bit 上的 LED 矩阵显示器是使用 5x5 (25) 个 LED 制成的,而在 RP2040 兄弟上,我们有一个 7x17 (119) LED 矩阵,使用更小(更密集)的 LED;此外,这些 LED 由 IS31FL3731 IC 驱动,它可以独立地对每个 LED 进行 PWM:这将带来更准确和可读的滚动文本和动画以及灰度图像!最后,在 Pico:ed 上,我们还有一个很酷的蜂鸣器来制作声音和音乐。

底部的边缘连接器采用 Micro:bit 外形,因此该板与大多数 Micro:bit 板兼容。

聪明的可爱机器人

Smart Cutebot 是一个采用经典配置的微型机器人平台:带有后枢轴点(投球)的差动驱动。该平台旨在与 Micro:bit 或 Pico:ed 配对,用于制作非常适合儿童和教育目的的小型机器人(或仅用于学习如何在实际应用程序中使用 Python - 实际上你不会需要像孩子一样玩这些东西!)。

Cutebot 的特点是:

  • 用于 Micro:bit 或 Pico:ed 的边缘连接器
  • 2 个全封闭式减速电机 + 后置滚珠脚轮
  • 前面有 2 个大 (10mm) RGB LED
  • 2 个 RGB LED(Neopixel)在底盘下方,在车轮前面
  • 可拆卸式 HC-SR04 超声波传感器
  • 2 IR 光反射器位于底部,用于巡线
  • 一个红外线接收器,用于使用遥控器控制机器人
  • 机器人正面 (I2C) 和背面的扩展接头用于连接配件
  • 使用 3 节 AAA 电池的电池座供电(有使用锂聚合物的可选附件)
  • 盒子里还有一条纸轨(白底黑线),可用于线跟随器模式

Cutebot 已经组装好,您只需将微控制器板插入插槽、超声波传感器和电池座。当我在 Instagram 上发布这个机器人的帖子时,一些人联系我说已经安装好的电路板在组装阶段并没有带来乐趣。是的,这是一个正确的观点,但考虑到整个机器人的重量约为 120 克(包括电池和微控制器板)并且适合一只手。

poYBAGSAhV6AVhTMAAIWqMaVnIE417.jpg
Smart Cutebot 重量和尺寸。它很小
 

为了达到这个体积,机器人是使用 SMD 组件制造的,并且不容易在家中或学校组装(还考虑到由于不正确的操作而导致的故障)。最后一个特点:Cutebot 真的很安静!移动时几乎听不到。

准备 Pico:ed

首先,您必须在 Pico:ed 板上上传CircuitPython 解释器。拿起 Pico:ed 并按住Bootsel按钮。Bootsel 按钮是板背面微型 USB 连接器左侧的按钮:

pYYBAGSAhWGAIBhBAAJtklnNo20700.jpg
Bootsel:先按住此按钮再为电路板供电,电路板将进入引导加载程序模式,允许您以 UF2 格式上传新固件
 

在按住该按钮的同时,使用 USB 电缆将电路板连接到计算机:等待几秒钟,必须出现一个名为RPI-RP2的新存储单元。

poYBAGSAhWOARg15AAALGa_fcJI837.png
当您在引导加载程序模式下连接每个基于 RP2040 的板时,RPI-RPI2 单元出现在 PC 上
 
奖励信息这是所有 Raspberry Pi RP2040 开发板的工作方式。使用 Python 分支和 C++ 对其进行编程的唯一区别在于,对于 Python,您仅在第一次上传 Python 解释器,然后您可以将源代码(其中许多)作为 .py 文件(不在本 RPI-RP2 单元中上传但另一个 circuitpython 解释器将创建),而在 C++ 中编程时,您将编译代码以获得要在引导加载程序模式下上传的.uf2文件(C/C++ 是一种编译语言)。

现在您必须上传 CircuitPython 解释器。您可以从 CircuitPython 官方网站下载这是链接

奖励信息使用这个用于 Pico:ed 的官方 Adafruit Circuitpython 解释器,你不需要上传库来使用一些功能,例如 led 驱动器 IS31FL3731,或者蜂鸣器,例如:包括这个特定板所需的一切。这些功能称为FrozenModules :它们是已嵌入 CircuitPython 解释器的库。包含的模块有:adafruit_is31fl3731、adafruit_motor、adafruit_ticks、asyncio、elecfreaks_music、neopixel、picoed

下载.uf2文件后,您只需将该文件拖放到计算机上的RPI-RPI2存储单元上。等待几秒钟:RPI-RPI2单元将消失,一个名为CIRCUITPY的新单元将出现。

在启动时(我的意思是不按 bootsel 按钮),您在引导加载程序模式下上传的.uf2开始:在这种情况下将是 CircuitPython 解释器,它将使电路板作为 CIRCUITPY 单元可见在这里您可以上传具有.py扩展名。CircuitPython 解释器启动后,它将搜索一个特定的命名文件(我们稍后会看到)以使其启动,否则它什么都不做。

现在您可以开始用 Circuitpython 语言编写代码并将它们上传到板上。

即使您可以使用简单的文本编辑器(Python 程序是简单的文本文件)执行此操作,然后使用拖放操作上传文件,也开发了更强大的工具来以安全的方式执行此操作,避免损坏文件的内容闪存(记住不安全的存储单元删除会损坏代码)并使用称为REPL 读取评估打印循环)的功能,该功能允许您从命令行进行一些调试和启动程序。

我说过你可以将你的.py文件上传到创建的内存存储单元上,但是文件不会在开机时自动执行。如果你想让程序在给电路板供电时自动启动,你必须将其命名为code.txtcode.pymain.pymain.txt - 这是确切的优先顺序。如果您放置一个名为code.py的文件和另一个名为main.py的文件,则只有code.py会自动启动。如果您将文件命名为与此不同,您可以使用 REPL 功能启动它(我们很快就会看到),因此这个平台对于在同一块板上存储许多软件实验和调试非常有用。

我喜欢使用Thonny IDE :它可能是最常用于 Python / Python 分支的,我喜欢它的工作方式(另一个类似的编辑器是Mu。Mu是 Adafruit 的建议)。

下载Thonny(我在上面放的链接是Github Release page——在那里你可以下载一个不需要安装的便携版本,无论如何你也可以去Thonny官方页面),安装/启动它;现在我们将进行一些快速设置以使其与我们的 Pico:ed 一起使用。

单击工具/选项:

pYYBAGSAhWWAbSchAAA_zxTRSCk806.png
 

单击Interpreter并从下面的列表中选择CircuitPython (generic) ,然后按 OK:

poYBAGSAhWeAUO9XAACHZE3Ny2Q402.png
每当您将 Thonny 与不同的 RP2040 板一起使用时,您将首先执行此操作,无论如何您只会在第一次执行此操作。
 

现在使文件外壳窗口可见,因为这些功能对于向开发板上传/下载文件以及与 REPL 交互非常有用单击“查看”菜单,然后选择“文件”“外壳”:

pYYBAGSAhWqAUoyWAABeQ42LNM0150.png
 

棘手的设置都完成了!

为确保 Pico:ed 已连接到 Thonny,shell 窗口中必须出现与此类似的文字(连接电路板并按下Thonny 上的停止按钮):

pYYBAGSAhWyAQSs3AAAil3VINPc896.png
 

如果显示一些错误,请转到本教程中的故障排除段落。

shell中的那3个>>>是REPL的提示符,等待命令或者准备写东西

出色地。即使我们上传的 CircuitPython 解释器是为使用所有 Pico:ed 功能而制作的,现在我们必须上传使用 Cutebot 功能所需的库(用于驱动电机、使用超声波传感器等)。

我说过我们已经有一些FrozenModules,是的:这对特定的板有效。Smart Cutebot 是连接到 Pico:ed 的附件板,因此没有冻结的模块,因此我们必须手动添加它们。

从此链接下载 cutebot 库(它是一个名为cutebot.py 的文件)

该链接将从所在的 Github 存储库以 zip 格式下载库,并且始终是最新上传的。该库的 Github 存储库位于此链接

如果我们也想使用红外遥控功能(注意:包装中不包含红外遥控),我们还可以从此链接下载 Adafruit Circuitpython红外遥控库

让我们解压缩文件,我们从下载中需要的唯一文件称为cutebot.pyadafruit_irremote.py:将它们复制到计算机或外部驱动器上的文件夹中,以便您可以在接下来的段落中快速找到它们。

我们必须将这 2 个文件上传到 Pico:ed 上一个名为lib的特殊文件夹中,我们的代码中将在该文件夹中导入库。

从 Thonny 右键单击​​ circuitpythondevice窗口并选择NewDirectory

poYBAGSAhW6Ab_JiAAAjWervHFM598.png
 

在下一个窗口中写入lib ,然后按OK 现在双击lib文件夹,这样您现在就位于 Pico:ed 上的该文件夹中。

从上面显示计算机内容的窗口(文件)中,搜索放置cutebot.pyadafruit_irremote.py的文件夹,选择它们并单击鼠标右键。选择上传到/lib

pYYBAGSAhXCAbtSWAAAxX-zcDeE067.png
 

等待几秒钟以允许上传。现在您将在CircuitPython 设备窗口中看到这些库现在您可以退出设备上的lib文件夹以返回根目录,以便您可以在此处保存您的程序:只需单击CircuitPython 设备写入。

我们上传的这两个库是单个文件库。会发生其他库由文件夹中的更多文件组成的情况:在这种情况下,您将上传整个文件夹,因此/lib文件夹中会有子文件夹。

出色地。一切就绪。让我们编写一个简单的程序上传到 Pico:ed,看看是否一切正常。

在 Thonny 上单击文件,然后单击新建。将出现一个空的编辑器窗口。复制并粘贴此代码:

from picoed import display

while True:
    display.scroll("HACKSTER.IO")

播放按钮:

poYBAGSAhXKAagWyAAATwO5FvGs480.png
 

由于这个文件是新的,没有保存,Thonny 会要求您保存它,因此会出现一个窗口询问保存位置:如果在计算机上或在 CircuitPython 设备上,我们将按 che CircuitPythonDevice按钮

然后你必须输入一个名字:write scroll.py然后ok

该程序将开始在 LED 矩阵上显示HACKSTER.IO 的文字。

Micro:bit 做不到
 

很简单,不是吗?

我们可以在不启动文件的情况下按“保存”按钮来保存文件。让我们指出一些事情: - 一个非常常见的错误是没有将.py扩展名放在文件的末尾:即使按下播放按钮文件无论如何都会被执行,编辑器中的语法突出显示将不起作用。 -如果你想让文件在开机时自动启动,你必须像我上面说的那样调用它:例如code.pymain.py,在所有其他情况下你可以让程序在你编写后按下 Thonny 的播放按钮开始或者在编辑器中加载(双击.py文件)

出色地。现在是组装 Cutebot 的时候了。

准备智能可爱机器人

这里有几件事要做:

插入超声波传感器。前面有一个 4x2 母接头(机器人的前面是两个 RGB LED 所在的位置。超声波传感器接头必须插入最前面的孔中:

poYBAGSAhXWALHHtAAJll8K9Z4k513.jpg
第一行是 HC-SR04 传感器,第二行是 I2C 设备/配件
 

将自粘胶带贴在电池座背面

poYBAGSAhXeAPl1SAAFEaQqMnjA666.jpg
 

将电池座连接器连接到机器人中心的插座中,在电机之间穿过电缆,然后将电池座粘在电机外壳上,注意与 Pico:ed 插槽保持间隙:最好对齐电池座的中心如图所示带轮轴:

pYYBAGSAhXuAfmTzAAMY-A5FMGI875.jpg
 

确保 ON/OFF 开关处于最右边的位置 (OFF),然后将 3 节 AAA 电池(不包含在供货范围内)放入电池座中。

poYBAGSAhX6AUVIrAAFpKNAs_DE504.jpg
我用永久性黑色记号笔在开关上写了 1-0 :)
 

将 Pico:ed 插入其面向前面 LED 矩阵的插槽中

pYYBAGSAhYGAQXsCAAGAOVMzLlU762.jpg
 

组装完成!让我们编写第一个程序来测试 linefollower

编程实例

在 ELECFREAKS wiki 上,有一个将 Smart Cutebot 与 Pico:ed 结合使用的分步教程。每节课都教如何每次使用一个元素。我建议您先按照他们的教程进行操作,然后尝试下面的 Line Follower 示例。

线跟随器

我编写了自己的巡线器程序,试图将 Pico:ed 和 Cutebot 的大部分功能放入其中:我在前面使用了蜂鸣器、点阵显示器和 RGB LED。

这个巡线程序以这种方式工作:

  • 打开机器人后,等待点阵显示屏上出现“兴奋”的脸
  • 将机器人放在纸张轨道上,注意前面的两个小 smd 蓝色 LED 灯都亮着,表示黑色轨道就在红外传感器下方
  • 按下 Pico:ed 上的“A”按钮(这是你左边的那个,机器人的脸在你面前)
  • 按下按钮后,正面 BIG LED 会呈蓝白色闪烁,并会播放类似警车的声音
  • 机器人开始沿着轨道移动。前面的大 LED 变成绿色。沿直线移动时,点阵显示器(面部)上会出现微笑。当机器人转动时,显示屏上描绘的脸会根据方向向右或向左看
  • 如果机器人偏离轨道,LED 变为红色,面部变化,机器人转圈试图恢复线路
  • 如果你按下“B”按钮,机器人就会停止,LED 会变红,面部也会发生变化。按“A”按钮重新启动

您可以在我的 Cutebot Github 存储库中下载我的示例,请点击此处

以下是一些注意事项和提示:

  • 在我的示例中,机器人运行速度比官方 ELECFREAKS 示例慢。这是一件需要的事情,因为我也在使用点阵显示器,即使没有人注意到它,更新点阵显示器时也会有一些延迟,这会导致线跟踪操作延迟,使机器人不断偏离轨道,所以最快的解决方案是让机器人缓慢移动。
  • 沿线跟踪使用超声波传感器模块具有挑战性,因为超声波模块需要时间并且不能连续调用(测量之间必须至少允许 500 毫秒),因此您不能简单地将距离读数放入跟踪循环中,否则会发生奇怪的错误,使机器人卡住在无限循环中。恕我直言,最好的方法是使用单独/异步任务来执行此操作(这对您来说是一个专业挑战)。
  • 机箱下的 2 neopixel 可以使用 CircuitPython 的 Adafruit Neopixel 库(它是一个冻结模块)进行管理。

故障排除

有时您会注意到 Thonny IDE 卡住了,找不到显示错误消息的开发板。在这种情况下,您必须尝试(从第一件事到最后):

  • 按下停止按钮
  • 断开并重新连接 USB 数据线,等待 10 秒,然后按下停止按钮
  • 关闭并重新启动 Thonny IDE,重复上述所有操作
  • 在旧的 Microsoft Windows 版本上,有时即使未连接CIRCUITPY单元也会在计算机设备中可见:在这种情况下,您只能重新启动 PC。我在 Windows 7 上总是出现这种故障,而在 Windows 10 和 11 上则不会发生这种情况。无论如何最好在代码上传后安全地断开 Circuitpy 单元。

在其他情况下,您会看到 main.py 不会执行:当代码中存在错误导致 python 解释器卡住导致无限循环时,就会发生这种情况。在这种情况下,将电路板连接到计算机,打开 thonny,加载程序并按播放按钮执行程序,以便您可以在终端窗口中读取错误。

在其他情况下,您只是将文件命名为与main.pycode.py不同的名称,但无论如何您都希望它在开机时自启动:它不能!

非常常见的编程错误:

  • Python 适用于缩进(没有大括号!),所以请检查你的缩进
  • 我经常犯的错误是没有将冒号放在 IF 语句之后。我真的总是犯这个错误,所以我在我的显示器上贴了一张便利贴,上面写着:IF 后面的冒号!
  • 在函数外声明的变量是全局的,但是如果你想在函数中使用它们,你必须使用关键字global否则你会遇到一个not previously declared variable错误或类似的东西

链接


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费