低成本、可扩展的 CyberBrick 复现方案,自己动手做一台 3D 打印遥控车
Matrix 首页推荐 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 文章代表 2025-11-19 09:33:1 Author: sspai.com(查看原文) 阅读量:15 收藏

Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 

文章代表作者个人观点,少数派仅对标题和排版略作修改。


拓竹 CyberBrick 介绍及本项目缘由

首先,拓竹是一家消费级 3D 打印机厂商,其开发的多款 3D 打印机广受好评,尤其是 A1 系列价格已经低至千元左右。

同时,拓竹运营的 MakerWorld 社区是一个大型 3D 作品分享平台,让小白用户(无任何建模经验)可以通过这个社区下载获取模型,并进行 3D 打印。

但是,绝大多数 3D 打印作品只能静态展示,或者手动推拉把玩。想要让 3D 打印的小车动起来,又需要一定经验的电子电路技能和知识。介于此,拓竹官方推出了 CyberBrick 套件,这个套件让小白用户通过简单的积木拼搭方式,就可以创作一个能够遥控行走的 3D 打印小车,提供了更多乐趣。

拓竹对于 CyberBrick 的官方介绍:

CyberBrick 是一款模块化智能玩具生态系统,融合了可编程硬件、3D 打印结构和双层编码环境。它通过乐高般的简洁性,将 3D 打印与电子和编程相结合。CyberBrick 使任何人都能构建和享受各种 3D 打印项目,从遥控玩具到生产力工具。

然而,CyberBrick 套件的价格却并不便宜,一套新手入门套件要 199 元,且一套只能应用一个玩具小车。所以就有了我做的这个项目,利用便宜的散件复现「拓竹 CyberBrick」,不仅可以降低成本,还可以提供更多的玩法可能性。

我把这个项目称为「OpenCyberBrick」,让我们开始吧。

拆解和复现思路

CyberBrick的核心逻辑

在 CyberBrick 众筹阶段,我就通过介绍和观看演示视频,大致了解了其构成和运行逻辑。CyberBrick 套件发布的第一天,我就入手了新手套装,并且打印了官方卡车模型进行了试用。

CyberBrick 虽分为遥控部分和被控部分,但两部分使用的主控板均为 esp32 c3 mini,且可以互换。只是遥控部分,通过「遥控接收底板」收集摇杆、按钮、开关等输入设备的信息,发送给被控部分。而被控部分,将收到的信号,通过「遥控接收底板」传递给电机、舵机 LED 灯等输出设备。而遥控部分和接收部分,似乎使用的是 eps 独有的 espnow 协议。

复现思路

了解了 CyberBrick 的核心逻辑,也就理清了复现思路。

  1. 主控板传输协议:主控板我们也采用乐鑫 esp 系列芯片,其 esp8266、esp32、esp32-c3 等芯片价格便宜,还包含 Wi-Fi 模块。模块之间,可以通过 espnow 进行通信,也解决了通信传输协议的问题。
  2. 被控部分:采用 esp8266 连接一个 L208N 电机驱动模块(电机驱动模块连接电机提供动力)、9g 舵机模块(用于转向)、WS2812 的 LED 灯组(用于行车灯、转向灯、灯光秀等)。
  3. 遥控部分:采用 esp32-c3 连接两个 ps2 摇杆模块(自带两个按钮),和另外两个按钮模块,这样就组成了 12 通道的遥控器,可支持的动作非常多。
  4. 在后续的优化过程中,我发现其实使用手机来作为遥控端更合适,支持的动作更多,还进一步省去了遥控端的硬件、软件成本。所以后续介绍中,涉及复现遥控部分,只会简单介绍。

被控部分详解

3D 打印的 Jeep 小车本体

首先,需要和 CyberBrick 一样用 3D 打印机打印出 Jeep 小车的零件并组装。这里需要注意的是:因为我们散件集成度不高,占用的空间要比原装 CyberBrick 零件大很多,所以要选择大一些的模型,太小的模型没有空间放置我们的电子零件。

这里我选择的是威利的 CyberBrick 遥控吉普车,这款Jeep前备箱里有足够的空间容纳电子设备,并且是一个比较典型的架构:使用电机来提供动力前进后退,使用舵机来进行转向,并且有 LED 灯的预留空间。

image.png

Jeep小车的电子电路

image.png

以上,是这个 Jeep 小车的电子电路接线示意图,这里我踩过的坑有:

  • 不同设备模块有不同的额定电压,比如 esp8266 需要稳定的 3.7V 电压、舵机和 LED 需要的是 5V、电机驱动模块则是一个区间(电压越高动力越好),如果想要用一块电池来给整个系统供电,就要在不同设备前增加降压稳压模块。
  • 7.4V 电压的电池价格比较贵,且需要配套充电设备。但是 3.7V 的 18650 和 14500  电池在很多废旧玩具、废旧电子产品里都有,我制作了一条串联线,可以将两个3.7V 电池串联为一个 7.4V 来使用,但是要注意使用内阻一致的电池串联。
  • esp8266 的 GPIO 接口连接电机驱动、舵机、LED 的信号接口,并通过 PWM 信号发出控制命令,但是也需要和这些设备共地。

 软件程序

esp 设备支持使用 Micropython 和 Arduino 语言进行开发,我正好有一些 Python 基础,所以默认就使用 Micropython 进行了开发。

软件部分项目代码已经放在 GitHub 上,地址:OpenCyberBrick的Github 地址或  OpenCyberBrick的Gitee地址

这里介绍一下每个项目文件的作用:

  • jeep_motor.py,电机的驱动程序,控制电机的转向和转速,实现小车的前进和后退。
  • jeep_servo.py,舵机的驱动程序,控制舵机的旋转角度,实现小车的转向。
  • jeep_led.py,LED 灯的驱动程序,控制两个 WS218 的点亮,实现小车的行车灯、倒车灯、转向灯和灯光秀效果。
  • wifi.py,用来让主控设备联网,实现局域网控制。
  • wificonfig.json,用来存储要连接的网络的信息,可在遥控端网页修改。
  • jeep_action.py,Jeep 小车的动作汇总控制,将收到的遥控信号,翻译为电机、舵机、LED 的动作命令并调用执行,电机、舵机、LED 的控制 GPIO 引脚号也放在这里配置。
  • jeep_espnow_rec.py,esp now 信号监听程序,会持续监听 esp now 收到的信息,并传递给 jeep_action 执行。
  • jeep_websocket_rec.py,发起一个 websocket 的服务端,可通过局域网接收网页客户端发出的信号,传递给 jeep_action 执行。
  • main.py,程序主入口,可控制使用何种遥控信号接收方式。
  • jeep_remote_index.html,遥控端 H5 页面,支持通过按钮、设备陀螺仪体感来控制。此文件不需要上传到 esp 主控,需要保存到用来遥控的手机上。

遥控部分详解

不同于 CyberBrick,本项目在复现时虽然也实现了单独的遥控设备控制,但是最终还是推荐使用手机进行遥控。在使用手机遥控时,还分为按钮控制和体感控制。

espnow 遥控

espnow 遥控其实可以作为一个独立的项目,它不仅可以用作 CyberBrick 的遥控,还可以遥控其它 esp 设备。它也包含了硬件部分和软件部分:

image.png

硬件部分,由一个 esp32 连接两个 PS2 摇杆和两个普通按钮,以及电源、开关组成。软件部分,同样由 Micropython 开发,获取 PS2 摇杆及按钮的数据,格式化后转发给被控设备。这个遥控,还可以通过按钮切换被控设置,实现一个遥控控制多个设备。

这个遥控的项目,随后可能会有单独的文章介绍。

手机网页按钮遥控

一个遥控设备和一个被控设备,成本还是很高。能不能利用大家都有的手机作为遥控终端呢?答案当然是可以的。esp 设备有 Wi-Fi 功能,可以连接路由器接入家里的局域网,也可以发射一个热点网络,自己组建一个局域网。

在被控设备的 esp 主控上,运行一个服务端,可以接收局域网设备发送的命令请求,再将这些命令请求转为 Jeep 小车的动作。

在遥控侧,使用手机打开一个 HTML 页面,将页面上的按钮点击释放等动作发送到服务端,就可以进行远程操作。这里有几个点比较特殊:

  • 由于 esp 设备内存非常少,无法让服务端返回 HTML 内容,所以控制页面的 HTML 文件,需要提前保存到遥控手机上。iPhone 可以使用 HTML Viewer 打开浏览本地的 HTML 文件。安卓设备可点击 HTML 文件,使用浏览器打开浏览。
  • 由于遥控器对实时性的要求很高,普通的 HTTP 的 get 或 post 请求对服务端的压力很大,所以这里使用了 websocket 类型的长连接。满足实时性的同时,对服务端的压力也降低了很多。

手机体感遥控

image.png


按钮控制虽然简单明了,但是在「酷」方面还不太够,而体感控制就很「酷」。在 HTML 页面上,获取手机陀螺仪的数据,将手机姿态的变化,转化为 Jeep 小车的动作。比如:

  • X 轴:小于-20度时为向前进,大于20度时为向后退,介于-20到20之间时为静止。
  • Y 轴:小于-20度时为左转,大于20度时为右转,介于-20到20之间时为静止。 
  • Z 轴:未用到。
  • X轴和Y轴,可以同时检测实现左前方、右前方、左后方、右后方这些组合动作。

成本计算

如果使用手机作为遥控终端,那整套系统就只有 Jeep 小车的电路成本。我们来计算一下大概的成本:

  • esp8266 或 esp32 主控:11.7 元。
  • 一个 L298N 电机驱动:7.42 元,应该有更加便宜的点击驱动板,手上有这个就用了这个。
  • 两个 N20 电机:6.16 元(10 个 30.8 元)。
  • 一个 9g 塑料舵机:4.7 元。
  • 两颗 WS2812LED 灯:0.37 元(60 个 11 元)。
  • 两个 DC-DC 稳压芯片:3.6 元(1 个 1.8 元),如果有电容相关知识,应该接一个便宜的电容就可以。
  • 两个 3.7V 14500 电池:0 元,找一些废旧玩具都可以拆出一些 14500 电池。
  • 电子线、接线端子、开关:共计2元。

共计 35.95 元,这里没有计算 Jeep 小车需要的一些五金配件,比如螺丝、轴承等。

更多功能可能性

以上大部分功能,都是对标 CyberBrick 实现的,在遥控端有不一样的地方。但是其实,我们可以有更多的可能性,比如给 esp now 遥控加一个屏幕、给 Jeep 小车加一个屏幕、给 Jeep 小车增加一些音效、增加避障雷达等等。这个可能就是 OpenCyberBrick 这个项目可以提供的更多可能性和趣味性的地方。

总结

本篇文章,只是介绍了这个项目的大体逻辑,硬件和软件方面都还有很多细节,这里限于篇幅的问题,就不再一一讲解了。如果你对这个项目感兴趣,欢迎给我留言,一起交流。

如果你会嘉立创打板,并对我的这些项目感兴趣,愿意和我一起折腾也「非常」欢迎和我联系,一起创作一些有意思的项目。


文章来源: https://sspai.com/post/103872
如有侵权请联系:admin#unsafe.sh