全球首款配备电子纸屏幕的抽纸盒~

IMG_1927

用树莓派+电子纸屏做了一个时钟,很偶然的搭配一个抽纸盒作为外壳,虽然并不是第一款电子纸屏的时钟,但绝对是全球甚至宇宙第一款带有电子纸屏幕的抽纸盒。。

先放图:

IMG_1912

内部构造,模块和跳线全部用热熔胶固定

IMG_1916

后视:

IMG_1918

检查一下这款时钟的抽纸盒功能。。

IMG_1919

 

IMG_1920

图就贴到这,下面聊聊我为啥突发奇想做出这么个东西。某天我想在淘宝上买个简单的闹钟,在搜索栏输入 简约 闹钟 俩关键词,出来结果里面有个很合心意,是这样的:

屏幕快照 2016-04-25 下午5.16.14

外观简单,白屏黑字,对比好强烈,好高大上。。于是我又看了一下评论里的买家show

屏幕快照 2016-04-25 下午5.18.47

WTF, 差距也忒大了吧,果断放弃,再找,然后发现基本都是描述里屏幕P的很白,实物就是另一番面貌了。 揍在这个时候,想起了吃灰已久的kindle,如果用kindle的电子纸屏来做个闹钟一定很理想,然后在google找到了下面的图片:

E-Paper-Display-HAT

显示效果符合预期,而且图中时钟是基于树莓派做的,正好我也有两块树莓派,于是很快做了一个决定:自己DIY一块电子纸屏的时钟,这块时钟除了显示基本的日期时间,还可以显示天气和室内的温湿度(如果只能显示日期,优越感何在。。)。果断在淘宝采购了材料:4.3寸串口电子纸屏,DHT22温湿度传感模块,还有一块树莓派3(没错,虽然我是一个拥有了1代和2代的男人,但是还是忍不住购买了3代。。)后面,经过一阵python乱舞,原型很快出来了:

IMG_1879

搞到这里,加个壳子就算完活了。但是如何利用自身现有条件DIY一个即合身又高大上的壳恰恰是个难点。。。

我最开始设想的材料是:超轻粘土。这东西可塑性超高,自己捏捏就OK,不用神马3D打印之类的高科技。但是后面实际操作的结果是:1.  没有耐心,手残,很难把这个东西的表面处理的平整 2. 表面粗糙,没有光泽,体现不出高大上的效果。

经过一番考虑,又想出一个方案:自己淘宝买一个尺寸和样式合适的实木收纳盒,然后自己打个孔,改造一下。实际操作的结果就是:只有这个抽纸盒符合我的心意。。 反正桌子上也是要放抽纸的,就让他们结合吧。。。

IMG_1928

最后,Python脚本已开源,欢迎参观指导:https://github.com/emptyhua/epaper_clock

ABOUT 2015

2015又要过去了,我很怀念它。记下一些印象深刻的东西:

看:

  1. 寄生兽,东京喰种,真血腥,好过瘾。。
  2. 曼食慢语,做的既好看又好吃的样子
  3. 万万没想到,大力金刚, 我的笑点很低
  4. 端脑,中国惊奇先生,尸兄 支持国漫。。
  5. 斗鱼war3直播(fly,ted)。
  6. 电影:星际穿越,银河护卫队

玩:

  1. 杀戮地带(KILLZONE),玩起来很痛快的射击游戏,里面各种武器和兵种设计都非常好。
  2. minecraft,一开始我是抵制的,因为一进游戏画面搓到哭,但是上手后发现还是蛮耐玩的,创造模式玩了下红石电路,然后在PSV上生存模式耐着性子玩到白金。

明年搬完家一定要上PS4!!

听:

  1. tobu 电音好听,耐听,提神。Infectious 这首做手机铃声非常赞。

软件:

  1. Reeder,用过最顺手,最漂亮的feed阅读器
  2. Mailbox, 不多说了,要关了。。
  3. 直到我发这篇blog时才发现,我之前斥巨资购买的DeskPM已经彻底SB了,一发表就崩溃。。

书:

  1. 东野圭吾系列,真的是拿起来放不下。

大事件:

  1. 离开北京。

有B格的写作软件Desk

  博客是很久没有更新了,不过wordpress却是一直跟随升级到最新的4.1版本,界面越来越好,新特性也越来越多,写blog的欲望却没了。。每次登陆后台,无非是删下垃圾评论,升级下插件。人也越来越懒,对酒的热情已经高过写垃圾代码。

  于是为了提高写blog的兴致,入手了一款专门用于写作的mac软件:Desk。额,话说我对这类软件要求很低了,只要满足2点就够了:1.界面够简单,能贴图 2.可以发布到wordpress。至于排版,我是没有什么要求了,如果写东西还要关注字号粗细,那还有tmd神马乐趣。。

  上图一张:

  


 木有看错,就一块简单的编辑区,类似之前用过的一款叫zenwriter的软件(截图黑漆漆是开了夜间模式)。

 OK,发出去看看效果。。

获取两组数据的固定乱序组合

修改自一个矩阵z形遍历代码,改成从中间开始遍历,乱序效果更好

function matrix_mess_order($rows, $cols) {
    $cuts = $rows + $cols - 1;
    $mid  = (int)($cuts/2);
    $result = array();
    for ($i = 0; $i < $cuts; $i++) {
        if ($i % 2 == 0) {
            $j = $mid - (int)($i % $mid);
        } else {
            $j = $mid + (int)($i % $mid);
        }
        $row_extra = ($j + 1) > $rows ? ($j + 1 - $rows) : 0; 
        $col_extra = ($j + 1) > $cols ? ($j + 1 - $cols) : 0; 
        $len = ($j + 1) - $row_extra - $col_extra;
        $topright_row = $col_extra;
        $topright_col = $j - $col_extra;
        $leftbotm_row = $j - $row_extra;
        $leftbotm_col = $row_extra;
        if ($j % 2 == 0) {
            while ($len -- > 0) {
                $result[] = array($leftbotm_row - $len, $leftbotm_col + $len);
            }
        } else {
            while ($len -- > 0) {
                $result[] = array($topright_row + $len, $topright_col - $len);
            }
        }
    }
    return $result;
}