V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
rocwang
V2EX  ›  分享创造

手机遥控的红包发射器。有了它,你就是今年春节最靓的仔!📱🧧🚀

  •  4
     
  •   rocwang ·
    rocwang · 2021-02-08 12:15:44 +08:00 · 3136 次点击
    这是一个创建于 1384 天前的主题,其中的信息可能已经有所发展或是发生改变。


    我业余时间用树莓派制作了一个红包发射器,前后断断续续大约花了三个月时间。

    * [视频演示]( https://www.bilibili.com/video/BV1fT4y1N7Ng)
    * [客户端 Demo]( https://kiwiberry.nz/)
    * [客户端源代码]( https://github.com/rocwang/cash-launcher)
    * [服务器源代码]( https://github.com/rocwang/cash-launcher-server)

    ## 客户端





    客户端是一个手机 Web App,用于控制发射器硬件。 这个 App 会连接安装在发射器中的树莓
    派,使用 WebSocket 将手机朝向数据和手指滑动速度实时地发送至服务器。而服务器会用这
    些数据来控制发射器的动作。

    App 有两个页面:

    * 菜单:提供数种纸币和红包以供选择。
    * 发射界面:显示一叠钱。用户上滑即可发射。

    App 使用 Vue 3 以及 vue-router 实现。为了在手机上实现流畅的动画效果,发射 UI 的那一叠钱
    是使用一个 HTML 2D Canvas 库——[konva]( https://github.com/konvajs/konva) 实现的。另
    外我还使用了 rxjs 来帮助实现用户操作和设备朝向事件流向 WebSocket 消息的变换。

    ## 服务器

    服务器跑在树莓派中,使用 Node.js 实现,提供 HTTPS + WebSocket 服务,用于将客户端发来
    的控制信息转换为发射器的控制信号,最终旋转发射器和开启其内部的直流电机,将纸币从
    不同角度吐出去。

    服务器使用[ws]( https://www.npmjs.com/package/ws) 库接受客户端的连接。有两个接口:
    `/orientation`和`/velocity`。它将手机朝向和手指滑动速度值转化为脉宽调制信
    号和使能信号,用以控制连接在树莓派上的两个伺服电机和一个直流电机。底层的 GPIO 操作交
    由[rpio]( https://www.npmjs.com/package/rpio) 处理。服务器同样利用了 rxjs 来实现数据
    流的变换。

    服务器还提供了一个`/siri`接口。当其被调用时,发射器上的直流电机会工作半秒钟。视
    频中一开始使用 Siri 来控制发射器就是使用此接口实现的。

    ---

    (不知为何,V2EX 的 Markdown 发帖接口总报 500 错误,所以只能使用 Default 接口。)
    第 1 条附言  ·  2021-02-08 13:24:24 +08:00
    更正:

    客户端 Demo: https://cash.kiwiberry.nz/
    10 条回复    2021-02-09 11:15:37 +08:00
    rocwang
        1
    rocwang  
    OP
       2021-02-08 12:25:43 +08:00
    ThirdFlame
        2
    ThirdFlame  
       2021-02-08 12:48:50 +08:00
    有趣 更想看发射部分的物理实现
    whyou126
        3
    whyou126  
       2021-02-08 12:55:07 +08:00 via Android
    大佬牛逼
    Tink
        4
    Tink  
       2021-02-08 13:23:44 +08:00 via Android
    UncleBrandy
        5
    UncleBrandy  
       2021-02-08 13:50:47 +08:00
    帅的一批
    lihanyu
        6
    lihanyu  
       2021-02-08 15:07:46 +08:00   ❤️ 2
    我缺的是发射器吗
    neekeV2
        7
    neekeV2  
       2021-02-08 15:47:23 +08:00
    默默的看了眼我那正在吃灰的树莓派 2B
    rocksolid
        8
    rocksolid  
       2021-02-08 15:50:16 +08:00   ❤️ 1
    我要的是接收器
    Cytion
        9
    Cytion  
       2021-02-08 16:00:57 +08:00 via Android   ❤️ 1
    只能买一箱冥币清明再用了
    gba
        10
    gba  
       2021-02-09 11:15:37 +08:00
    有点萌
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2872 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:54 · PVG 14:54 · LAX 22:54 · JFK 01:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.