0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

乒乓球LED时钟的制作

454398 来源:工程师吴畏 2019-08-21 14:30 次阅读

第1步:材料/工具:

材料:

在本地购买:

- Mdf板(80 * 30 cm)

- 用于框架的木材(必须宽5厘米,总长度至少200厘米)

- 128乒乓球球(白色的,最好是乳白色)

- 一些(4)小钉子

- 旧USB线(可以为Arduino nano供电

- 旧电子设备的电源线

在线购买(中国)

- 5V 10A电源(较低的安培数也可能有效)

- Arduino nano(克隆)

- ws2812b LED灯条(5m 30Leds/米IP30)

- DS3231 RTC

- 带3芯(2米以上)的电线

可选

- 母针连接器

- 电阻器(介于两者之间) 300和500欧姆)

工具:

- 可以切割30度角的锯(斜切锯)

- 带细齿的手锯(金属) -saw)

- 剥线钳

- 烙铁

- 12mm钻头

- 32mm孔锯

- 木胶

- 热胶

- 手电筒

- 砂纸

注意:

选择正确类型的乒乓球对于这个项目非常重要。乒乓球通常具有两个加在一起的接缝。这本身不是问题,因为通过在这些半部中间形成一个孔,在显示器中将看不到接缝。然而,当乒乓球在一侧也具有印花时,重要的是球上的印花朝向背面。这可能导致从前面看到一块接缝。购买乒乓球时,也不要购买闪耀的球(反射光)。它们会不那么好地散射光线而且看起来会很奇怪(你不应该买乒乓球的例子)。

摘要:最好使用无白色打印的无缝乒乓球并做不反射光。

第2步:在乒乓球中打洞。

每个乒乓球都有自己的LED背后。为了获得尽可能多的光线照射,需要移除乒乓球背面的一块,因此LED的光线只需穿过球的一侧。这些孔需要非常大(大约30mm),因为LED不会在球后面居中。

在乒乓球中制作这些大洞是一个挑战。由于球本身很弱,因此在制作球之前需要一些支撑。我是通过在一块MDF上钻一些32毫米的孔来做到这一点的。在锯球时,我用一只手在乒乓球上施压,将它们压在孔上。由于孔的直径比球小约8mm,因此球将被压在孔上。虽然在一侧提供压力,但我在另一侧切断了乒乓球的顶部,只是在直线上对着MDF进行锯切。

在锯切它们之前,我确保了徽标印在球上的,是在我要去的那边。我还用手电筒找到了将两半加在一起的接缝。我把球转得更多了,所以从前面看不到徽标,而且从接缝处可以看到很少的东西。

注意:如果不是所有的孔都完全相同也没关系尺寸,尺寸可以变化几毫米。在构建完成时,无法从任何方向看到这一点。

步骤3:在行中粘合所有球

在所有大洞中他们需要将乒乓球按行(2行(17,18和19)和1行20)粘在一起。这些行应该尽可能直,并且球之间应该没有空间。我用我买的木头来制作框架来做到这一点。通过两块木头支撑球,我确信它们在一条线上。在放置几个球之后,确保孔朝上并且球彼此接触,我将它们粘在一起。只需要一点点胶水即可。如果你使用大量胶水,它将从正面看到。我再次使用手电筒来确保乒乓球的正面没有丑陋的斑点(有些人因为便宜的球而有了这些斑点)。

步骤4:胶合行一起。

要做到这一点,我使用框架的木材来保持2行压在一起。请记住使用小滴胶水,如果使用量很大,从前面可以看到。在每次在8个连接处放置胶水之后,我用双手提供压力以确保球紧紧地粘在一起。

步骤5:制作框架

框架中有6件。 2件长件和4件短款。这些部件的所有边缘应具有60度角。由于乒乓球的大小不是40毫米,而是(39,5个东西),我计算了框架件的大致长度(这可以通过测量面板的高度或宽度并使用^来完成。 2 + b ^ 2 = c ^ 2)。我计算出2个长件的内部长度应为66.3cm,4个短件的内部长度应为14.3cm。由于我的锯不太准确,所以我确保将它们剪得更大一些,所以它们不会短路。

在切断所有6个之后,我将它们放在乒乓球面板周围,看看如果它很合适它没有,所以我看到几毫米的一些碎片。我把所有东西粘在乒乓球面板上,以确保它的形状完全正确,这是必要的,因为角度没有在60度完美切割,但更可能是59.5毫米。

步骤6:焊接LED灯条

需要切割LED灯条(一个1个LED,一个3个LED,一个5个LED和17个7个LED)。 LED条带需要接线,如图中所示(首先是一个LED,然后是5个LED,接下来是17个带有7个LED,最后是带有3个LED的部分)。连接较短条带的金属丝应该比其他零件长,因为它需要覆盖更大的距离。我在一块MDF上录下条带,看看每个led是否都在自己的球后面。将所有部件焊接在一起之后,我通过逐个激活每个LED(checkIfLedsAreBehindBalls.ino)来测试所有焊接连接是否良好。

步骤7:切割MDF

一帧已完成我将框架和乒乓球面板放在MDF上,MDF上贴着LED。确保每个LED都在自己的球后,我取下了乒乓球面板。接下来,我沿着MDF上的框架内侧绘制,以获得我需要剪切的形状。我是这样做的,因为LED不在球的中心,这样我就能看到LED与框架的相对位置。在取下贴在电路板上的LED后,我剪下了面板的形状并打磨了边缘,因此它很好地贴合在框架内。

注意:请注意,LED指示灯不会以乒乓球为中心,见草图

步骤8:向MDF添加孔和LED

如前所述,连接LED的导线有点像。它现在的方式,从前面可以看到电线。我决定通过在每个垂直LED条的位置末端钻孔来解决这个问题,因此电线可以放在背面。我将带状导线穿过孔并暂时用胶带粘住。在再次确定之后,每个LED都在自己的乒乓球后面,我取下了磁带,并用LED条上已有的胶条将LED条连接到电路板上。

注意:在MDF上钻孔时,要非常小心,你可以轻松打破板。

步骤9:将球粘到框架上

我将乒乓球面板倒置在框架中,然后我涂上胶水乒乓球接触(或几乎没有碰到框架)的每个点。

步骤10:将LED面板安装到框架

我将LED面板放在球的背面顶部。接下来,我用4个小钉子将面板固定在框架上。我是通过将钉子放在框架内侧来做到这一点的。我选择这样做,因为它允许我修复一些东西,如果它曾经破坏(它也允许我加倍LED的数量,因为许多流明不存在)

步骤11:电子设备

好的,我(几乎)没有经验Arduino所以这可能不完美。但我尝试以尽可能简单的方式做到这一点。

我将连接器焊接到Arduino nano(图像中的黑色东西)(不是必需的)。

我决定这样做,所以如果我想要添加按钮或光依赖电阻(LDR)或其他功能,一切都可以轻松拆开。

接下来,我将RTC连接到Arduino,只需确保时钟模块的SDA和SCl连接到Arduino Nano的SDA和SCL。然后连接引脚9和LED灯条数据之间的电阻。

最后,电线连接到LED灯条的末端,以便为LED灯条的末端提供电源,以便防止电压下降。

是的,它真的很简单。

为了提供所有功能,我切断了一根USB线,可以将Arduino nano连接到一半并连接5V两条电缆的一侧连接到LED灯条和切成两半的USB电缆。我对另一方做了同样的事情。这样我就可以在不通过Arduino供电的情况下为LED灯条供电。

旧灯泡的电缆用于连接5V 10A电源和时钟

我也是在框架一侧底部钻一个洞,让电源线穿过。这使得时钟可以平放在墙上,同时如果愿意的话仍然能够站在表面上。

唯一要做的就是编写一些代码。

步骤12:代码

上传代码时,请确保电源已关闭!

时钟前模块知道当前时间,必须在模块上设置时间。幸运的是,有一些代码可以做到这一点。在仅添加4行代码并安装DS1307RTC模块后,我们可以运行此命令(SetTime_on_ds3231_nano.ino,链接到原始代码/关于如何在DS3231RTC上设置时间的指令)代码以将Arduino上的时间设置为PC的时间。

设置时间后,我们可以开始考虑为这个时钟编写一些代码。我在程序中使用了2个库,FastLED库和DS3232RTC库。这两个库将为您完成几乎所有工作,并允许编程经验很少的人编写程序。

在这里,您可以看到我在此Instructable顶部的视频中使用的代码,在大多数图片中。 (timeWhiteBackgroundRainbow.ino)

#include

#include

#define LED_PIN 9

#define NUM_LEDS 128

DS3232RTC myRTC(false);

tmElements_t tm;

CRGB leds[NUM_LEDS];

CHSV colour( 0, 255, 180);

int counter=0;

const int Digits[10][10] =

{

{7,8,10,11,14,18,22,24},

{14,16,18,22,24},

{7,8,9,11,14,16,18,24},

{7,9,11,14,16,18,22,24},

{9,10,11,16,18,22,24},

{7,9,10,11,14,16,18,22},

{7,8,9,14,15,16,18,22},

{7,11,14,16,17,24},

{7,8,9,10,11,14,16,18,22,24},

{7,9,10,11,14,16,17,24},

};

void setup()

{

pinMode(17, OUTPUT); //ground and v5 for clock module

pinMode(16, OUTPUT);

digitalWrite(17, HIGH);

digitalWrite(16, LOW);

FastLED.addLeds《WS2812, LED_PIN, GRB》(leds, NUM_LEDS);

myRTC.begin();

}

//function that uses the Digit aray to display numbers between 0 and 100

void displaynumber( int place , int number){

for (int i = 0 ; i 《 10 ; i++) {

if (Digits[number/10][i] != 0) {

leds[(Digits[number/10][i]+place)] = CRGB(255,255,255);;

}

if (Digits[number%10][i] != 0) {

leds[(Digits[number%10][i]+28+place)] = CRGB(255,255,255);;

}

}

}

void loop(){

RTC.read(tm);

//changes the colour of background every 10 cycles

if (counter《10){

counter++;

}else{

colour.hue = (colour.hue+1)%256;

counter=0;

}

// sets background to rainbow colours

for ( int i=0; i《 128;i++){

colour.hue = (colour.hue+1)%256;

leds[i]= colour;

}

colour.hue = (colour.hue+128)%256;

displaynumber(0,tm.Hour);

displaynumber(70,tm.Minute);

//display colons

if ( tm.Second%2 == 0 ){

leds[64] = CRGB(255,255,255);

leds[66] = CRGB(255,255,255);

}

FastLED.show();

}

我认为守则相对较短,但当然可以改进。它只是从RTC读取时间并显示该时间。应点亮以形成数字的LED的位置在矩阵“数字”中硬编码。例如,Digits [0]包含应该点亮以形成零的LED的位置。

我还提供了我制作的其他程序,它们是对上述程序的轻微改动。程序‘CycleThroughDigits.ino’只计算9999,以演示所有数字的外观。程序‘onlyTime.ino’只显示更改颜色的时间,没有背景颜色。最后,‘FastledExampleCode.ino’是由FastLED库提供的一些代码,用于演示一些简单的动画。

步骤13:添加您想要的每个功能

这个项目不仅仅是一个基本的时钟,你可以添加按钮,让它根据光线改变亮度,让它只显示一些颜色,制作它对音乐有反应,用ESP连接到wifi。它基本上是连接到显示器的Arduino,一切皆有可能

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22420

    浏览量

    645790
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130295
收藏 人收藏

    评论

    相关推荐

    基于FPGA的乒乓球游戏的设计原理

    发表于 11-06 08:31 4次下载
    基于FPGA的<b class='flag-5'>乒乓球</b>游戏的设计原理

    旋转球都看透了!商汤联合SMT打造2023世界乒乓职业挑战赛「AI解说员」

    不到 5 m ² 的乒乓球台上,AI又玩出新花样: 描绘运动轨迹: 转速、旋转方向可视化: 呈现击球落点: 你以为AI炫技?NO! 乒乓大战,选手对抗技巧和战术意图一览无余,以往无法直接呈现的观赛
    的头像 发表于 10-31 15:55 217次阅读
    旋转球都看透了!商汤联合SMT打造2023世界<b class='flag-5'>乒乓</b>职业挑战赛「AI解说员」

    如何使用 Kivy 编写一款乒乓球游戏

    。 本教程将教你如何使用 Kivy 编写一款乒乓球游戏。我们将从一个基本的应用程序开始,描述创建这个游戏的每个步骤。 Kivy 是用 Python 和 Cython 编写的,基于 OpenGL ES 2,支持各种输入设备并拥有丰富的部件库。使用相同的代码,你可直接实现多平台应用,包括 Windo
    的头像 发表于 10-21 14:36 278次阅读
    如何使用 Kivy 编写一款<b class='flag-5'>乒乓球</b>游戏

    基于FPGA乒乓球比赛游戏机的设计

    电子发烧友网站提供《基于FPGA乒乓球比赛游戏机的设计.pdf》资料免费下载
    发表于 10-20 10:31 1次下载
    基于FPGA<b class='flag-5'>乒乓球</b>比赛游戏机的设计

    制作RGB HexMatrix物联网时钟

    HexMatrix是具有许多三角形像素的LED矩阵。六个像素组合成一个六边形。FastLED库的矩阵上可以显示许多不同的动画。我还设计了0到9的数字,并为矩阵中的每个数字使用了10个段,并制作了一个IOT时钟
    发表于 09-25 06:58

    基于51单片机乒乓球游戏计分电路图及程序

    本资源内容概要: 这是基于51单片机的乒乓球游戏计分设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开) 。 本资源适合人群: 单片机爱好者、电子
    发表于 08-29 15:53 0次下载

    LED虚拟制作在电影制作中的重要作用

    随着科技的进步,电影制作技术也在不断提升,其中一个具有革命性的技术改变就是LED虚拟制作的使用。LED虚拟制作的使用已经在革新电影
    的头像 发表于 08-01 17:43 296次阅读

    制作时钟的电容器测量设备

    电子发烧友网站提供《制作时钟的电容器测量设备.zip》资料免费下载
    发表于 07-04 10:16 0次下载
    <b class='flag-5'>制作</b>带<b class='flag-5'>时钟</b>的电容器测量设备

    HARDWARIO乒乓球台开源分享

    电子发烧友网站提供《HARDWARIO乒乓球台开源分享.zip》资料免费下载
    发表于 06-30 09:57 0次下载
    HARDWARIO<b class='flag-5'>乒乓球</b>台开源分享

    使用Arduino制作简单的数字时钟

    电子发烧友网站提供《使用Arduino制作简单的数字时钟.zip》资料免费下载
    发表于 06-26 10:48 5次下载
    使用Arduino<b class='flag-5'>制作</b>简单的数字<b class='flag-5'>时钟</b>

    如何制作3D打印的Arduino时钟

    电子发烧友网站提供《如何制作3D打印的Arduino时钟.zip》资料免费下载
    发表于 06-26 09:48 0次下载
    如何<b class='flag-5'>制作</b>3D打印的Arduino<b class='flag-5'>时钟</b>

    DIY TTR(乒乓球机器人)

    电子发烧友网站提供《DIY TTR(乒乓球机器人).zip》资料免费下载
    发表于 06-25 16:08 0次下载
    DIY TTR(<b class='flag-5'>乒乓球</b>机器人)

    乒乓球开源分享

    电子发烧友网站提供《乒乓球开源分享.zip》资料免费下载
    发表于 06-15 10:06 0次下载
    <b class='flag-5'>乒乓球</b>开源分享

    Arduino液晶显示乒乓球游戏

    电子发烧友网站提供《Arduino液晶显示乒乓球游戏.zip》资料免费下载
    发表于 06-09 10:21 0次下载
    Arduino液晶显示<b class='flag-5'>乒乓球</b>游戏

    什么是FPGA里面的乒乓机制?

    什么是FPGA里面的乒乓机制?求大神解答
    发表于 04-23 14:14