24100| 8
|
[项目] DIY小键盘 |
DIY小键盘在这个教程中,我将全程指导你创建一个由Arduino控制的6键小键盘。我将告诉你:需要什么,如何组装,如何编程,以及如何改进或自己独立创新。 经过大量的研究,我真的没找到一个好的教程讲述如何制作一个小键盘或普通的有线键盘。因此我决定自己动手,用最简单的方法,不用二极管、电阻或其他任何东西。我打算把它做成一个独特的、模块化的键盘,可以与任何我需要的部件组合,这是许多其他模块化部件中的第一个。这个模块的灵感来自于键盘上的箭头键。如果你在旅途中需要一些额外的按键,可以装进口袋里随身携带。 说到如何制作这个小键盘,我强烈建议您在购买零部件之前先通篇阅读所有步骤。 我试图按逻辑顺序组织本教程,但实际上我没有完全按照这个逻辑顺序进行制作,因此最好根据自己的制作方式适当调整这些步骤的顺序。 第1步:获取零件购买零部件是最花时间的一步,购买之后还要等待物流配送。您需要的零部件包括:
第2步:改装按键开关开始拆卸你购买的按键开关。改装目的是为了让光线更好地照射在键帽的边缘上。如果选择不支持RGB的键帽,请跳过此步骤。 取2个小楔子(我使用2个一字螺丝刀头)并将其楔入开关侧面的凸耳下。然后在顶部和底部之间的缝隙塞一些东西,这样它就不会复原了。继续楔入另一侧的凸耳,这样就不会有凸耳将顶部固定住。最后弹出开关的顶部。通常有四个部分:外壳的顶部和底部、弹簧和阀杆(固定键帽的开关滑动部分)。 开始从外壳底部切下一些小碎片,让更多的光线能通过。首先剪断将开关固定在板上的凸耳。然后扩大一点原来的LED通孔(有4个孔的部分,这些孔是用于穿过LED引脚的)。慢慢地把凸耳里面剪掉,直到底部。然后继续往上切割到固定弹簧的开关的圆柱形中心。之后,用预先成型的支架支撑,慢慢地切割孔的边缘,使孔稍微变宽。另一个可选的步骤是用锉刀锉平,使它更加美观,减少锯齿。确保外壳内没有塑料碎片,以免开关被卡住。一定要缓慢地、一点一点切削,因为在这过程中我已经损坏了一些外壳。 如果你的开关的上半部分不够清晰,试着稍微改装一下,让光照进来。一点一点地尝试,不要损坏开关,以免阀杆脱落。一个可能的解决方案是剪切一块能容纳普通LED的塑料片,把保持灯杆封闭的塑料片留在一边,只把它往下面锉平。 第3步:3D打印您需要下载下面其中一个zip文件,并进行3D打印。有不同的版本供你选择。有一个文件夹里面包含所有常规stl文件(KeybArrowSTLFiles),另一个文件夹包含Autodesk Inventor文件(KeybArrowSourceFiles),便于您修改文件进行按需定制。这些文件和我打印的有点不同,因为制作过程中发现了一些设计缺陷,我作了一些改进。例如,把我的外壳边缘有点太高,导致键帽不能完全按下。新的文件已经进行修正。 模型的设计相当复杂,有30多个步骤。我要说的是,如果你想设计一个不同尺寸的外壳,必须具备一些复杂的三维设计的经验。这真的不太适合刚接触3D设计的人。 注意两个外壳设计的角度都是3度,你应该把它们平放在键盘上。 3D打印模板: KeybArrowSourceFiles.zipKeybArrowSTLFiles.zip 第4步:组装目前的所有零部件既然我们有了所需的全部零件,还有3D打印的零件,是时候开始组装了! 把6个按键开关都放在平板上,然后用胶水粘住。由于我们切断了固定它的凸耳,所以需要把它们粘在一起。我建议你等胶水干了后再把OLED放进去,以免把它弄倾斜。 接下来,从LED灯带上剪下6个LED,并将它们放在LED板上。板上的方块有助于定位LED。方形的LED可以放在里面,所以你可以3D打印另一个用来帮助对齐,或者直接从背面排列。确保箭头指向其它LED,因为DO要焊接到DI上。用热熔胶把LED固定在适当的位置,等待热熔胶粘牢。 我用了一个原型板辅助按键开关来固定LED(在图片中),因为我不想浪费材料,所以决定继续使用旧的。新文件不会影响任何东西,只是让它更容易对齐。 第5步:设置OLED我建议您使用这个教程进行完整的演练。教程解释得很好。 您需要下载并导入Adafruit的SSD1306库和GFX库才能使代码工作。 所需库文件: Adafruit_SSD1306.zipAdafruit-GFX-Library.zip 先按图把线接好。将VCC连接到VCC,GND连接到GND。然后连接SDA和SCL引脚。SDA和SCL引脚可能每个Arduino不尽相同,在Pro Micro上,SDA连接至引脚2,SCL连接至引脚3。如果您不确定SDA和SCL连接到哪个引脚,请参考控制器的引脚说明。 下一步是使它显示和生成图像。下面有如何让它工作的文件。第一步是使用屏幕扫描代码(原始版本由Arduino提供)。把代码上传到Pro Micro并打开串口监视器(在顶部的“工具”选项卡)。串口监视器会回显OLED的地址。如果您的地址是0x3C,那么您不需要做任何更改。如果不是,那么为了让它正常工作您需要更改ssd1306_128x32_i2c代码和最终代码(名为ArrowKeypad)中的地址。 现在测试Adafruit ssd1306库中包含的示例代码,该代码用于128x32 i2c代码(名为ssd1306_128x32_2c) 之后,让Arduino保持开启状态,并试着在按键开关板上对齐OLED,然后关闭电源并把它粘在适当的位置。你很可能不会一次成功,需要不断调整,使它对齐,这样完工时它就不会歪斜。我建议先把一边粘住一点,在粘另一边之前先检查一下,确保它没有歪斜。 现在下载代码,并使用本教程后面步骤8中的其它代码文件。 下载代码文件:InstructablesCode.zip 第6步:焊接下面提供了Fritzing文件下载。有了Fritzing文件你就可以与电路进行交互,如果单击并一直按住,可以看到所有连接的电线(以黄色圆点突出显示)需要导入到Fritzing的文件将显示在下面(适用于Pro Micro和LED)。 确保标有“MOSI、MISO或SCLK”的引脚悬空,否则会导致OLED出现故障。 把6个发光二极管切成单独的一个后,把它们粘在LED板上。将烙铁放在铜焊盘上,并在每个焊盘上添加焊锡。把导线剪成小段,剥去一半,拧紧它,然后取下另一半,把它拧在一起。电线需要用钳子或一些助焊手来固定,而你要用焊锡把它固定在适当的位置上。添加更多焊锡,使其接触良好。将同一行的所有LED焊接在一起。剪取一根导线,将其焊接到第一行的LED末端,标签为“DO”或“D-”,然后将其连接到第二行的第一个LED上,标签为“DI”或“D+”。以类似的方式连接5v和GND,但如果每行的第一个LED 5v和GND连接在一起,就更容易了。在Arduino上,将5v导线连接到VCC,将Data针脚连接到任何数字引脚(代码已设置为引脚10),将GND连接到Arduino上的GND。 要使Arduino识别输入,开关需要将接地连接到数据引脚。所以,你可以焊接一根导线把6个开关都接地。把一根导线焊接到每个开关上,如果可能的话,用不同颜色的导线以便跟踪哪个开关是什么导线。将导线穿过LED板,并将其连接到Arduino上的一个数据引脚(我使用数据引脚5-9) 旁边的两个开关有不同的功能,一个是用于编程的复位开关,另一个是功能切换开关,它将在键盘的各个层之间切换,以快速改变按键的功能。顶部开关连接至reset(RST)和GND,当接通时,它会导致复位。底部开关连接至引脚18,在Pro Micro上标记为A0。让开关线有些松弛,因为仍然需要在板中滑动,而且导线太短将不允许按键板插入顶部。 Fritzing电路图:KeybArrowFritzingCircuitDiagram.zip 第7步:编程简介在你扣上外壳之前,你需要测试它并确保它能正常工作。虽然你现在就可以跳到第11步进行组装,但我发现事先测试它有助于减少打开和扣上外壳的次数。尽管版本不会有太大的影响,但是我使用了ArduinoIDE 1.8.3版本,因此如果您遇到了问题,请尝试使用这个版本。代码在步骤5中,是一个zip文件,您需要把它解压并上传到Arduino。 下面将有多段代码。一个是最终代码,两个是测试OLED的代码(一个测试,一个查找地址),另一个是测试RGB。使用最终代码测试按键开关。 如果你想设计你自己的代码,我会在接下来的3个步骤中教你,但是你完全可以使用我的代码,或者在此基础上进行修改。 编程的一些基本知识:
接下来测试LED,上传代码,确保它们都能工作。如果没有工作,你可能漏掉了一个引脚,检查你的第一个LED的焊接。 最后,使用最终代码来测试的开关来测试代码。这应该是最容易做到的。注意,由于上传一些HID代码,每次上传代码时都需要重置Arduino。应该可以在上传过程中重置它。 步骤8:按键开关编程在所有的编程中,开关是最不复杂的。要将其识别为键盘,只需使用Arduino键盘库和条件语句。如果你像我一样使用Pro Micro,请确保在“工具”菜单,“电路板”子菜单下选择Arduino Leonardo。 在我们开始使用条件语句之前,我们需要设置引脚模式。我们只需要进行一次,所以把它放入 输入上拉有两种状态,低和高。当接地(GND)时,Arduino的读数为低,断开时,读数为高。为了找到pin的读数,我们使用 从基础知识开始,我们使用条件if语句来确定是否按下了按键。我们希望这个循环不断重复,所以把这个语句放 对于键盘的代码,请导入键盘库。在 步骤9:OLED编程要开始OLED编程,您需要有基本的设置代码。基本上就是告诉计算机你的OLED在哪里、它的大小以及它是如何编程的。一旦有了OLED的设置代码,如果你只需要显示文本,那编程应该很简单。首先导入Wire和SSD1306库。 在代码中将 以语句 在对显示器进行编程之前,应确保调用 即使我们的显示器是单色的,我们也需要设置文本的颜色,所以我们使用语句 既然已经导入了显示库和定义了显示对象,现在可以开始编程了。要添加文本,请使用 在能看到任何内容显示之前,您需要更新OLED,并告诉它进行更新,可以使用不带参数的 完整的代码现在应该是这样的:
这个教程链接和这个Github链接都是很好的参考资料,可以帮助您进行故障排除,并进一步学习如何进行显示器编程。 步骤10:LED编程LED编程也相当简单。我们将使用Adafruit Neopixel库。我个人认为,NeoPixel库非常类似于在Processing中编程。 这里有第一个设置代码,说明了我们使用的库,并设置了一个数组,基本上是声明显示管脚上有多少个LED,哪个管脚用于数据,以及它是如何编程的。这是通过一个例子来实现的,比如 之后你需要使用 一旦你调用了 其中一个你需要知道的函数是 还需要把数据发送给目标LED,这是 完整代码应如下所示:
可以在这里找到更多信息。 第11步:装配!这可能是最简单、最酷的一步。 首先将Pro Micro放置并滑动到外壳上。用一些热熔胶把它粘在适当的地方。 外壳的设计使您可以从侧面滑入按键开关板和LED板。根据打印方式的不同,您可能需要锉平或切割滑槽内部,去除一些突起的塑料。 之后,把螺丝钉用力拧进塑料里面,做出自攻螺纹孔。我在设计文件时没有具体的螺纹,所以我只做了一个螺丝大小的洞,然后自己把螺丝拧进去。用打火机加热,可以帮助你把它做成适应你需要的螺丝,而且通常会加固相应的层。一定不要用力过猛,否则会把头部剥掉。我用内六角螺丝来减少这种风险。 然后把键帽按在按键开关上。这样就完工了!我的箭头键盘已经做成了! 第十二步:你自己的改进!既然你了解了如何制作我这个版本,你就可以制作自己的了!键盘可以说是关于自我表达,所以仅仅拥有别人的设计是没有很多乐趣的,除非按你自己的需求进行改进!你可以做很多改进!下面是一些我要进行或想到的改进:
创作快乐!请随意添加提示或向我提问! 如果你想看到其他部件的进展,可以考虑查看我的Instagram。感谢您阅读我的教程!
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed