它大约两周前在 Hackster 总部开始,当时有一个没有经验的实习生(我)、一个很棒的导师(Ben Larralde)和一些很棒的同事(即 Alex Glow)。我的热情是制造电动滑板,Ben 和 Alex 找到了一种将其与编码联系在一起的方法,他们为我提供了 Arduino 和一些 NeoPixels,让我在学习编码的同时获得乐趣。这个项目就是这样的结果。我相信结果很好,所以我现在与社区分享。
显然下面有一个零件清单,但我认为您真正需要什么以及为什么需要它可能会有所帮助。本质上,这里最重要的东西是 NeoPixels 和一些 Arduino 类型的系统。我从 Arduino Uno 开始,然后转到 Teensy 3.2,但几乎任何东西都可以。它越小,担心的重量就越少(因为对我来说这是在滑板的底部)。您需要基本的面包板知识和一些不错的焊接技能,因为引脚往往很小。此外,我建议拥有一个电动滑板。显然,这个项目不仅仅适用于电动滑板,但拥有一个很有趣,如果你这样做,你将能够在更具体的应用程序中使用本指南。
因此,假设您拥有所有需要的部件,或者至少已经订购了它们,您就可以开始设置了。首先,弄清楚你想要多少个 NeoPixel 以及你想要它们在你的甲板上的什么位置。有些人喜欢它在顶部,但我决定使用每条 21 像素,2 条,朝向甲板的背面。这样当我加速时它看起来特别酷。把所有东西都布置好,先连接起来,然后放在甲板上你想要的地方。不要焊接到 Arduino(或 Arduino 变体),只需将跨接电缆的一端焊接到 NeoPixel 条(5V、接地和数据)上的标签,并在编程过程中使用面包板(你会感谢我以后)。完成所有设置后,将 Arduino 连接到计算机。我们先编程,
我不是编码专家,当我开始这个项目时我就开始学习了。所以,我主要修改了Alex Glow 的精彩教程,并用它来控制这些 NeoPixels。为您运行此程序的最简单方法是复制和粘贴,使用不同的字符串(控制各个 NeoPixels)对其进行修改,然后将 RGB 值更改为您想要的任何值。您还可以修改延迟值以更改您希望 NeoPixels “移动”的速度或速度。上传后,进行测试并确保您喜欢您的模式,然后再继续。
#include //Make sure to include the Adafruit library in order to enable controlling of the Neopixels
#ifdef __AVR__
#include
#endif
#define PIN 12 //This is where the data line of your Neopixels will connect to. It can be any number pin really, I just chose 12.
#define NUMPIXELS 21 //This is where we determine the number of pixels. I am only using 21 for each strip on the actual skateboard, so that's what I chose.
#define STRING_LENGTH0 21 //If you want to be able to control individual pixels in a "moving" string of neopixels, making different stringlengths from the maximum down to 1 is important.
#define STRING_LENGTH 20
#define STRING_LENGTH2 19
#define STRING_LENGTH3 18
#define STRING_LENGTH4 17
#define STRING_LENGTH5 16
#define STRING_LENGTH6 15
#define STRING_LENGTH7 14
#define STRING_LENGTH8 13
#define STRING_LENGTH9 12
#define STRING_LENGTH10 10
#define STRING_LENGTH11 9
#define STRING_LENGTH12 8
#define STRING_LENGTH13 7
#define STRING_LENGTH14 6
#define STRING_LENGTH15 5
#define STRING_LENGTH16 4
#define STRING_LENGTH17 3
#define STRING_LENGTH18 2
#define STRING_LENGTH19 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 5000/100; //100 = 1 second, and this will control how "fast" your string of Neopixels "moves"
void setup() {
pixels.begin();
}
void loop() {
int i=0;
while(true) {
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i-STRING_LENGTH, pixels.Color(255,0,0));
pixels.setPixelColor(i-STRING_LENGTH2, pixels.Color(240,0,0));
pixels.setPixelColor(i-STRING_LENGTH3, pixels.Color(250,110,0));
pixels.setPixelColor(i-STRING_LENGTH4, pixels.Color(255,165,0));
pixels.setPixelColor(i-STRING_LENGTH5, pixels.Color(255,190,0));
pixels.setPixelColor(i-STRING_LENGTH6, pixels.Color(255,220,0));
pixels.setPixelColor(i-STRING_LENGTH7, pixels.Color(255,255,0));
pixels.setPixelColor(i-STRING_LENGTH8, pixels.Color(150,210,0));
pixels.setPixelColor(i-STRING_LENGTH9, pixels.Color(90,170,0));
pixels.setPixelColor(i-STRING_LENGTH10, pixels.Color(0,128,0));
pixels.setPixelColor(i-STRING_LENGTH11, pixels.Color(0,70,90));
pixels.setPixelColor(i-STRING_LENGTH12, pixels.Color(0,30,175));
pixels.setPixelColor(i-STRING_LENGTH13, pixels.Color(0,0,255));
pixels.setPixelColor(i-STRING_LENGTH14, pixels.Color(25,0,200));
pixels.setPixelColor(i-STRING_LENGTH15, pixels.Color(50,0,170));
pixels.setPixelColor(i-STRING_LENGTH16, pixels.Color(75,0,120));
pixels.setPixelColor(i-STRING_LENGTH17, pixels.Color(130,40,160));
pixels.setPixelColor(i-STRING_LENGTH18, pixels.Color(190,85,100));
pixels.setPixelColor(i-STRING_LENGTH19, pixels.Color(238,20,20));
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval);
i = (i+1) % (NUMPIXELS + STRING_LENGTH);
}
}
在项目的这一点上,在完成了 Arduino Uno 的编码和布局之后,我转向了 Teensy 3.2,因为它更小,更容易安装在我的电路板底部。使用 Teensy 附带的参考图很容易移动所有内容,但要记住的一件事是,如果使用外部电源,它必须通过单独的接地和 5V 引脚供电,而不是被黑客攻击的 microusb 电缆。让代码运行非常简单,只需下载 Teensy 附件并与 Arduino 软件一起运行即可进行连接。
对于事情的实际电源方面,我得到了一个 24V 到 5V 的降压转换器,并将其直接连接到电路板的电池输出端。从那里,很容易将 5V 输出端连接到 Teensy 的 5V 输入和接地。同样,请务必将其连接在正确的位置以使其通电。这是我们开始焊接的地方,我建议使用 XT90 连接器来使一切都变得漂亮和模块化。此时,我还将降压转换器粘在速度控制器外壳的底部,将 NeoPixels 粘在电路板的底部,因为它们不再移动了。
为了同时为两个 NeoPixel 条供电,我使用了 Teensy 上不同的 3V 和接地引脚。唯一需要连接到两个条的引脚是引脚 12,因为它无法复制。焊接时要注意,因为虽然可以为两个条平行连接 3V 和接地引脚,但引脚非常小,我发现将它们分开是有益的。
一旦这些都被焊接起来,我用拉链把它们绑在一起,然后出去骑马了!当电路板打开时,NeoPixels 也会打开。如果我愿意,也可以很容易地进行切换,但在我的书中炫耀更有趣。
这个滑板上的所有其他东西都是防水的(信不信由你),所以我想确保在雨中骑行不会对它造成太大伤害。我3D 打印了一个外壳,可以很容易地用热胶密封,但它也有很好的开口,用于突出在 3 个区域的电线。有一个挂钩也可以轻松连接拉链。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !