查看: 4193|回复: 6

[原创] 【翻译】Gixie时钟

[复制链接]
  • TA的每日心情
    奋斗
    2020-9-25 11:02
  • 签到天数: 138 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-11-23 02:11:51 | 显示全部楼层 |阅读模式
    分享到:
    辉光管时钟
    项目背景:
    blob_2JBVVBcFca.jpg

    Gixie时钟是一种现代设备,它再现了辉光管显示器的复古美。我们是一群对辉光管充满热情的人,它的辉光真的很迷人。GIXIEClock但作为一个古董,辉光管已经停产,而且库存非常昂贵,所以我们决定打破这个模式,创造一个辉光管!为了降低成本,延长使用寿命,我们决定采用WS 2812全彩色LED,内置控制芯片,给布线带来极大的方便。直接动手,画电路布线.
    img_20180310_163306_cuSP7oLGsz.jpg

    电路板由于灯太大太密,所以电路板上有很多问题。这是最终版本。
    img_20181111_120212_Ii6ez7ahiA.jpg

    让我们看看实际效果。
    img_20180323_113753_Bkt07wXFkl.jpg

    我们得加个玻璃盒子。
    img_20180312_212143_fOLYEhjevI.jpg

    好的,来个测试管。
    img_20181111_135756_HiAvUtyS0G.jpg

    LED辉光管,我们还需要定制的钣金外壳。
    img_20181111_115631_bacgK2V3ro.jpg

    金属片壳这种涂料很糟糕。要做到最好。板材是氧化的,是由高级胡桃木制成.
    img_20181106_220216_qpCQOSsCII.jpg


    GIXEXClock!立刻提高了品味。可以说它很漂亮!我认为不仅仅是我,肯定有更多的人喜欢辉光管,但它的价格和寿命令人头疼,所以我们必须告诉每一个粉丝爱好者:我们以最低的价格制作了它,并将它发布给了Indiegogo。我希望我最喜欢的朋友会来支持它。这是链接。现在以69美元的价格购买。https:/www.indiegogo.com/project/gixie-时钟-最漂亮-辉光管时钟/x/19759163#/这里有更多的生产工艺。https://hackaday.io/project/162313


    qq20181111123653_l5Kh1HzsvP.jpg qq20181111123657_ayiyjwZ49j.jpg qq20181111123636_0zXLs8uzfy.jpg

    原理图:

    _VlHRG4jlmu.PNG

    代码:

    1. #include <avr/io.h>
    2. #include <EEPROM.h>
    3. #include "clock.h"
    4. #include "key.h"
    5. #include "light.h"

    6. #define  OFF     0
    7. #define  TIME    1
    8. #define  SET     2
    9. #define  EFFECT1 3
    10. #define  EFFECT2 4
    11. #define  EFFECT3 5
    12. #define  EFFECT4 6

    13. extern unsigned char timer_10ms_flag;
    14. unsigned char key;
    15. unsigned char _t[6]={1,1,3,7,3,0};
    16. unsigned char color_number;
    17. unsigned char mode = TIME; //工作模式

    18. #define SETED 0xAA  /*出厂第一次设置标志*/



    19. void setup() {
    20.   unsigned char color_number_reset = EEPROM.read(0x01); // 如果0x01内值为SETED则已经完成初始化
    21.   if(color_number_reset != SETED)   // 否则出厂设置
    22.   {
    23.     EEPROM.write(0x00,230); // 辉光管颜色值
    24.     EEPROM.write(0x01,SETED); // 标记已经完成初始化
    25.   }
    26.   color_number = EEPROM.read(0x00);

    27.   delay(100);
    28.   key_init();
    29.   light_init();
    30.   clock_init();

    31.   make_color(&rgb[0],color_number);
    32.   for(unsigned char i=1;i<6;i++){
    33.     rgb[i] = rgb[0];
    34.   }
    35.   poeron_effect();//开机动画
    36. }

    37. void loop() {
    38.     static unsigned long timesOfLoop = 0;
    39.     static unsigned char effect2Num = 0;

    40.     if(millis()-timesOfLoop>100)
    41.     {
    42.       switch(mode)
    43.       {
    44.         case TIME:
    45.           clock_read(_t);
    46.           light_wirte(_t,rgb);
    47.           break;
    48.         case OFF:
    49.         break;
    50.         case SET:
    51.           break;
    52.         case EFFECT1://渐变彩虹
    53.           clock_read(_t);
    54.           wheel(rgb);wheel(rgb);wheel(rgb);
    55.           light_wirte(_t,rgb);
    56.           break;
    57.         case EFFECT2://慢刷
    58.           wheel(rgb);
    59.           for(unsigned char i=1;i<6;i++)rgb[i] = rgb[0];
    60.           effect2Num++;effect2Num %= 20;
    61.           for(unsigned char i=0;i<6;i++)_t[i]=effect2Num>>1;
    62.           light_wirte(_t,rgb);
    63.           break;
    64.         case EFFECT3://快刷
    65.           effect2Num++;effect2Num %= 10;
    66.           for(unsigned char i=0;i<6;i++)_t[i]=effect2Num;
    67.           light_wirte(_t,rgb);
    68.           delay(49);
    69.           effect2Num++;effect2Num %= 10;
    70.           for(unsigned char i=0;i<6;i++)_t[i]=effect2Num;
    71.           light_wirte(_t,rgb);
    72.           break;
    73.         case EFFECT4://相对刷
    74.           effect4();
    75.           break;
    76.       }
    77.       timesOfLoop = millis();
    78.     }

    79.         if(timer_10ms_flag&key_flag == 1)
    80.     {
    81.       timer_10ms_flag &= clear_key_flag;
    82.           //读第一个按键
    83.       key = key_read(0);

    84.       switch(key)
    85.       {
    86.         case key_click:
    87.           color_dec();
    88.         break;
    89.         case key_double:
    90.          color_dec();color_dec();
    91.         break;
    92.         case key_long:
    93.           color_dec();
    94.         break;
    95.         default:
    96.         break;
    97.       }

    98.           //读第二个按键
    99.           key = key_read(1);

    100.       switch(key)
    101.       {
    102.         case key_click:
    103.           color_inc();
    104.         break;
    105.         case key_double:
    106.           color_inc();color_inc();
    107.         break;
    108.         case key_long:
    109.           color_inc();
    110.         break;
    111.         default:
    112.         break;
    113.       }

    114.           //读第三个按键
    115.           key = key_read(2);

    116.       switch(key)
    117.       {
    118.         case key_click:
    119.           power();
    120.         break;
    121.         case key_double:
    122.           modde_effect();
    123.         break;
    124.         case key_long:
    125.           time_set();
    126.         break;
    127.         default:
    128.         break;
    129.       }
    130.     }
    131. }

    132. void color_dec()
    133. {
    134.    make_color(&rgb[0],--color_number);
    135.    for(unsigned char i=1;i<6;i++){
    136.      rgb[i] = rgb[0];
    137.    }
    138.    //light_wirte(_t,rgb);
    139.    EEPROM.write(0x00,color_number); // 更新辉光管颜色值
    140. }

    141. void color_inc()
    142. {
    143.   make_color(&rgb[0],++color_number);
    144.    for(unsigned char i=1;i<6;i++){
    145.      rgb[i] = rgb[0];
    146.    }
    147.    //light_wirte(_t,rgb);
    148.    EEPROM.write(0x00,color_number); // 更新辉光管颜色值
    149. }

    150. void power()
    151. {
    152.   static unsigned char n = 0;
    153.   if((n & 0x01) == 0)
    154.   {
    155.     mode = OFF;
    156.     for(unsigned char i=0;i<6;i++)
    157.        rgb[i] = {0,0,0};
    158.      light_wirte(_t,rgb);
    159.   }
    160.   else
    161.   {
    162.     mode =TIME;
    163.     make_color(&rgb[0],color_number);
    164.     for(unsigned char i=1;i<6;i++){
    165.        rgb[i] = rgb[0];
    166.     }
    167.     clock_read(_t);
    168.     light_wirte(_t,rgb);
    169.   }
    170.   n++;
    171. }

    172. void modde_effect()
    173. {
    174.   static unsigned char n = 0;
    175.   n++;
    176.   switch(n % 5)
    177.   {
    178.     case 0:
    179.     make_color(&rgb[0],color_number);
    180.     for(unsigned char i=1;i<6;i++){
    181.        rgb[i] = rgb[0];
    182.     }
    183.     mode = TIME;
    184.     break;
    185.     case 1:
    186.     mode = EFFECT1;
    187.     break;
    188.     case 2:
    189.     mode = EFFECT2;
    190.     break;
    191.     case 3:
    192.     make_color(&rgb[0],color_number);
    193.     for(unsigned char i=1;i<6;i++){
    194.        rgb[i] = rgb[0];
    195.     }
    196.     mode = EFFECT3;
    197.     break;
    198.     case 4:
    199.     mode = EFFECT4;
    200.     break;
    201.   }
    202. }

    203. void time_set()
    204. {
    205.   EEPROM.write(0x00,230); // 辉光管颜色值
    206.   color_number = 230;
    207.   make_color(&rgb[0],color_number);
    208.     for(unsigned char i=1;i<6;i++){
    209.        rgb[i] = rgb[0];
    210.     }
    211.     //power();
    212. }
    复制代码


    附件:工程代码
    游客,如果您要查看本帖隐藏内容请回复


    评分

    参与人数 1 +350 收起 理由
    satoll + 350 300+50自选翻译完成奖励

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-25 11:02
  • 签到天数: 138 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2018-11-23 02:15:01 | 显示全部楼层
    原文链接https://www.hackster.io/xingda/gixie-clock-7c129b
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    前天 16:36
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2018-11-23 08:45:43 | 显示全部楼层
    大兄弟,这篇缺视频,最后的代码也缺了不少。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-25 11:02
  • 签到天数: 138 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2018-11-23 09:36:55 | 显示全部楼层
    这个代码跟视频的格式有点问题,晚上再改
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    前天 16:36
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2018-11-23 09:45:13 | 显示全部楼层
    呃(⊙o⊙)… 发表于 2018-11-23 09:36
    这个代码跟视频的格式有点问题,晚上再改

    代码可以下载后打包上传,视频在google搜索“YouTube下载”就行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-25 11:02
  • 签到天数: 138 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2018-11-23 23:55:29 | 显示全部楼层
    已修改完成
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-11-30 10:33:51 | 显示全部楼层
    工艺品欸,艺术与科技的结合
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 22:21 , Processed in 0.211728 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.