Pikocube是一个54像素的小LED立方体,一个ESP8285-01F WiFi MCU和一个ADXL345陀螺仪传感器。每个PCB的尺寸为25x25mm。可通过一侧的6个贴片焊盘闪光。计划是将立方体用作一个电子骰子来检测它何时被抛出,何时变得不活跃。
您需要的零件
5x PCB
45个WS2812 2020 LED
5个0.1µF 0603电容器
5个10 µF 0603电容器
5x 0欧姆0603电阻
一些电线
它仅将一个LED的DIN连接到另一个LED的DOUT。它包含两个介于5V和GND之间的电容器。根据WS2812的数据表,建议为每个LED使用一个电容器,但是九个LED的面积非常小,并且LED彼此之间相距不远,这就是为什么我只使用了两个电容器的原因。
为了将五个PCB连接在一起,我在所有四个边缘上都添加了一些焊盘,这些焊盘包含5V,GND,DIN,DOUT。有些配备了跳线垫,因为特别是对于顶部PCB,您不应该连接所有的垫-5V会被焊接到GND,那将是不好的……诚然,这些垫太小了,其尺寸仅为0.635 ×0.635mm,但稍有耐心,它将以某种方式工作。
该项目仅用于连接45个LED,因此在对Pikocube进行编程时可以非常有创意。我在大多数LED项目中都使用FastLED库,但是Neopixel库在很多情况下也可以使用。我编写了一个简单的函数,将圆形(?)矩阵映射到多维数据集上,得到一个12×5矩阵,其中第五行(y = 4,因为第一行是y = 0)只是顶部的中间像素,使用哪个x坐标的问题。
int get_pixel(int x, int y){
int num = -1;
int mat = x/3;
if(y 《 3){
//bottom matrix 3x12
if(x《3){
//matrix 1
if(y==1) num = 5 - x;
else num = y * 3 + x;
}
else if(x《6){
//matrix 2
if(y==1) num = 17 - x;
else num = y * 3 + x + 6;
}
else if(x《9){
//matrix 3
if(y==1) num = 29 - x;
else num = y * 3 + x + 12;
}
else if(x《12){
//matrix 4
if(y==1) num = 41 - x;
else num = y * 3 + x + 18;
}
}
else if(y == 3){
//top matrix 3x3
if(x==0 || x==11) num = 38;
if(x==1) num = 39;
if(x==2 || x==3) num = 44;
if(x==4) num = 43;
if(x==5 || x==6) num = 42;
if(x==7) num = 41;
if(x==8 || x==9) num = 36;
if(x==10) num = 37;
}
else if(y==4){
//top middle led
num = 40;
}
return num;
}
责任编辑:pj
全部0条评论
快来发表一下你的评论吧 !