这个遥控器实际上只是一个无线键盘。这个遥控器就是结果。让我向您展示如何自己构建它,但请记住,这并不是一个适合初学者的项目。
确保您查看我制作的原始遥控器,因为我将对其进行一些比较。且不说大部分硬件都是一样的,只是缩水了。
我在这里可能有点偏见,但我认为这个遥控器非常完美。它明显更小,电池可持续使用约 12 个月,可使用 USB C 型充电。不再有开/关开关。设备仍将其识别为标准键盘,这意味着它可以在任何支持键盘的设备上工作。最重要的是,它支持多种布局,并在它们之间无缝切换。我目前有2个布局。一个用于 youtube/VLC 播放器,另一个用于 Spotify。
我什至编写了一个 Windows 应用程序来自定义这些布局。您只需要插入加密狗,即可对遥控器进行无线编程。
工具:
材料:
稍后会列出电子元件,除此之外,您只需要 M2x5 DIN 912 螺钉和 M2 螺纹插件。我的是 4.1 毫米长,但还有更长的空间。这就是你所需要的。
该项目旨在安装在一个 PCB 上,然后分成两部分。你只需要打破几个小标签。我建议让 PCB 专业制造,因为它非常复杂。有很多便宜的中国公司只需几美元就可以做到。我已经包含了 Gerber 文件。它们是您制作所需的全部内容。PCB 的厚度必须为 0.6 毫米,否则外壳不适合。
您还可以制作模板以使焊接更容易,但它们有点贵。特别是如果您只制作一个遥控器。我得到了第一批 PCB 的模板,我在一天内制作了 10 个 PCB。当我在修复一些错误后重新订购 PCB 时。我决定不买模板了。我现在后悔了,因为焊接一块 PCB 需要 4-5 个小时。
当谈到把它放在一起。这很简单。BOM(物料清单)包括组装 PCB 所需的所有组件。board.pdf 上显示了组件的位置。我只想谈几个组件。
USB C 型是一个槽孔 16 针一号。由于这些连接器的类型很多,我还包括数据表中的图片和一些链接,以确保您拥有正确的连接器。全球速卖通、亚马逊、Sparkfun
收发器也称为 NRF24L01 模块。有很多中国制造商生产这些产品,最近他们添加了更小的 SMD 版本。查看链接。速卖通,亚马逊
我使用的电池是 500mAh Li-Po 电池。尺寸为(高 x 长 x 宽):5 毫米 x 35 毫米 x 30 毫米。如果找不到相同的,可以使用较小的。即使容量只有一半,电池寿命也应该没问题。这是我从那里得到的。
电子设备完成后,是时候上传 Arduino 程序了。这通常是一项非常简单的任务,但我设法使其复杂化。别客气 :)
所有的编程都是在 1.8.8 版本的 Arduino IDE 上完成的。您需要几个库:
每个 PCB 有两个 Arduino。Atmega32u4 用于接收器,atmega328p 用于遥控器。虽然我说遥控器可以无线编程,但它不适用于这里。只有配置可以无线修改。因此,必须首先使用 PCB 背面的焊盘对这两个微控制器进行编程。引脚排列如图所示。我个人决定制作一个小型编程夹具,因为我正在构建更多它们。我在这里包含了它的文件,但它很笨拙,所以请记住这一点。
在接线方面,微控制器必须连接到在线串行编程器。我刚刚使用了另一个 Arduino nano。如果您想以相同的方式进行操作,请点击此处的链接。接线后,两个微控制器都有 4 个相同的步骤。
1. 烧录引导程序
上面的链接也解释了这个过程,但本质上你是在烧“固件”,告诉微控制器它是什么类型的 Arduino。对于 atmega328,我们需要特殊的引导加载程序,因为我们将使用内部时钟。我从这里得到它。对于 Atmega32U4,我们可以使用默认的(Arduino micro)。我发现的另一个怪癖是 Arduino IDE 总是无法无缘无故地刻录引导加载程序。我通过使用旧版本的 IDE 解决了这个问题。1.0.5 具体。
2.更改保险丝设置
简而言之,微控制器上的熔断器是其基本设置。我们需要改变一个选项。EESAVE 保险丝。默认情况下,上传新程序也会删除 EEPROM 存储器。更改此保险丝将意味着即使在我们重新编程后 EEPROM 也会保留。这是至关重要的,因为遥控器和接收器的地址保存在 EEPROM 中。遥控器和接收器的实际程序不包含它们的地址。
让我们谈谈如何做到这一点。我们需要使用 avrdude,它是 Arduino IDE 的标准工具,我在这里再次使用 1.0.5 版本。不幸的是,它没有图形界面,因此您必须使用命令行。打开 CMD 并导航到 avrdude,它通常位于 Arduino IDE 文件夹中的 hardware/tools/avr/bin/
对于这两个微控制器,我们将把 HIGH 保险丝更改为以下内容:
原来是 0xDA 改为 0xD2 -atmega328p
原来是 0xD8 改为 0xD0 -atmega32u4
这些是我使用的实际命令,但您必须调整路径:
G:\Mirko\arduino\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CG:\Mirko\arduino\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v - cstk500v1 -PCOM11 -b19200 -patmega328p -U hfuse:w:0xd2:m
G:\Mirko\arduino\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CG:\Mirko\arduino\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v - cstk500v1 -PCOM11 -b19200 -patmega32u4 -U hfuse:w:0xd0:m
3. 加载地址到 EEPROM
当我说我的地址时,我指的是 NRF24 的通信管道。我决定给每个远程唯一地址的唯一原因是,如果您在一个房间里有多个,它们将不会相互触发。该地址保存在 EEPROM 存储器中,这意味着即使拔下电池也不会被擦除。由于我们在上一步更改了熔断器设置,因此即使在上传新程序时也会保存该地址。要将地址写入内存,您需要上传 eeprom_writer 草图。在草图中,您可以通过更改 n1、n2、n3 变量来自定义地址。草图必须上传到两个微控制器。
要上传草图,请使用 ICSP,如前所述。我又一次偶然发现了 IDE 的问题。我能够在 1.8.8 版本中编译草图,但它不会上传。在 1.0.5 版本中,它不会编译,但上传效果很好。我的解决方法是用 1.8.8 版本生成一个 hex 文件,然后用 1.0.5 IDE 的 avrdude 上传它。该过程在此处进行了更多讨论。
4. 上传最终程序。
最后,您只需上传遥控器和接收器的草图。你实际上可以用它的 USB 端口插入接收器并这样做。对于遥控器,您仍然需要在线串行编程器。上面描述的生成 hex 文件和使用 avrdude 的过程也适用于此。一旦你上传了程序,它就完成了。他们应该工作。您现在可以按照自己的喜好对其进行配置。
Windows 应用程序现在可用于自定义您喜欢的按钮。玩得开心 :)
您可以打印所有文件,将它们放在一起,然后收工。只是不要期望您在图片中看到的结果。
我将遥控器打印在 0.1 毫米层高的 Creality CR-10 上。按钮中间有一个小孔,这意味着切片机将在外侧和中间形成一个周边。我还把周边加厚了,所以没有填充物。这使得按钮在打磨后非常干净。
顶部和底部都印有接触构建板的大面。我还添加了支撑材料,因为悬垂有点太陡了。除了旋钮上的环形灯用透明 PLA 打印外,所有东西都用白色 PLA 打印。
旋钮被强力粘合在一起,这是唯一需要胶水的部分。为了打磨外壳,我把它放在一起,同时打磨两半。这样可以确保以后它们之间不会有任何差距。我从120砂砾开始。在大部分图层线消失后,我切换到 320 粒度,然后使用 1500 粒度进行哑光效果。它并不完美,但由于我没有使用任何油漆,它应该更耐刮擦。旋钮和按钮也使用了相同的打磨技术。
其实,我撒了谎。我也在加密狗上使用了胶水。老实说,我没有在加密狗上投入太多精力,你也不应该。一起拍吧。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !